19 #ifndef NET_GNRC_GOMACH_TYPES_H 20 #define NET_GNRC_GOMACH_TYPES_H 35 #define GNRC_GOMACH_EVENT_RTT_TYPE (0x4300) 40 #define GNRC_GOMACH_EVENT_RTT_NEW_CYCLE (0x4301) 45 #define GNRC_GOMACH_EVENT_TIMEOUT_TYPE (0x4400) 50 #define GNRC_GOMACH_PHASE_UNINITIALIZED (0) 55 #define GNRC_GOMACH_PHASE_MAX (-1) 60 #define GNRC_GOMACH_DUPCHK_BUFFER_SIZE (8U) 65 #define GNRC_GOMACH_TIMEOUT_COUNT (6U) 71 #define GNRC_GOMACH_SLOSCH_UNIT_COUNT (11U) 77 #define GNRC_GOMACH_TYPE_UNKNOWN (0U) 83 #define GNRC_GOMACH_TYPE_KNOWN (1U) 264 gnrc_gomach_timeout_type_t
type;
270 #define GNRC_GOMACH_TIMEOUT_INIT { {}, {}, false, GNRC_GOMACH_TIMEOUT_DISABLED } 296 #if (GNRC_MAC_ENABLE_DUTYCYCLE_RECORD == 1) 298 uint64_t last_radio_on_time_ticks;
300 uint64_t radio_off_time_ticks;
302 uint64_t system_start_time_ticks;
304 uint64_t awake_duration_sum_ticks;
gnrc_gomach_l2_addr_t node_addr
Node's address.
uint16_t pub_channel_2
Public channel 2.
uint16_t subchannel_occu_flags
Sub-channel usage indicator.
Transmit to phase-unknown node in GoMacH.
Send data packet to the receiver.
Wait for send beacon TX finish.
GoMacH's slot-schedule-unit.
uint64_t last_wakeup_phase_us
Last cycle wakeup phase.
GoMacH's duty-cycled listen procedure.
Wait for CP transmission finish.
Timeout of waiting own slots.
gnrc_gomach_listen_state_t
State-machine states of duty-cycled listening procedure of GoMacH.
gnrc_gomach_timeout_type_t type
GoMacH timeout type.
Wait for the node's allocated slots period.
GoMacH internal L2 address structure.
struct gomach gnrc_gomach_t
GoMacH's specific structure for storing internal states.
bool expired
Timeout expiration indicator.
Announce the sub-channel sequence of the node.
uint8_t slots_num
Node's allocated slots number.
gnrc_gomach_bcast_state_t
State-machine states of Broadcast procedure of GoMacH.
Listen for incoming packets in vTDMA.
gnrc_gomach_t2k_state_t
State-machine states of Transmission-to-phase-known (t2k) procedure of GoMacH.
Wait for Send preamble TX finish.
int16_t rx_pkt_rssi
RSSI of latest received packet in dBm.
gnrc_gomach_l2_addr_t node_addr
Node's address.
Broadcast packet in GoMacH.
Send beacon packet when needed.
xtimer_t timer
xtimer entity.
Wait receiver's beacon.
Timeout of waiting beacon.
Transmit to phase-known node in GoMacH.
Initiate the listen period.
uint16_t gomach_info
GoMacH's internal information.
Timeout of next broadcast transmission.
#define GNRC_GOMACH_DUPCHK_BUFFER_SIZE
GoMacH check duplicate packet buffer size.
uint32_t last_wakeup
Last wake-up timing.
Timeout of next preamble transmission.
GoMacH's vTDMA (dynamic slots allocation) management unit.
uint8_t rx_pkt_lqi
LQI of latest received packet.
Timeout of maximum transmission duration.
gnrc_gomach_timeout_t timeouts[GNRC_GOMACH_TIMEOUT_COUNT]
GoMacH's timeouts.
uint8_t total_slots_num
Number of total allocated transmission slots.
uint32_t backoff_phase_us
Phase backoff time.
gnrc_gomach_hdr_t * header
GoMacH header of packet.
uint8_t life_cycle
Lifetime of this record unit.
#define GNRC_GOMACH_TIMEOUT_COUNT
The default largest number of parallel timeouts in GoMacH.
Transmit data in receiver's CP period.
Wait for TX finish in TX-slot.
GoMacH's transmission procedure.
Wait for Send data TX finish.
Prepare the initialization procedure of GoMacH.
uint8_t queue_head
Check queue's head.
uint8_t queue_indicator
Node's queue-length indicator.
Timeout of maximum preamble interval.
Timeout of maximum CP duration.
Initiate the sleep period.
Wait for announce TX finish.
Sender's vTDMA (dynamic slots allocation) management unit.
uint16_t sub_channel_seq
Sub-channel sequence.
Initiate the vTDMA period.
gnrc_gomach_t2u_state_t
State-machine states of Transmission-to-phase-unknown (t2u) procedure of GoMacH.
xtimer interface definitions
Describes a message object which can be sent between threads.
Header definition of GoMacH.
GoMacH's specific structure for storing internal states.
gnrc_gomach_l2_addr_t src_addr
Copied source address of packet.
Wait for receiver's CP (wake-up) period.
End of packet listen period.
Transmit data in allocate slots.
gnrc_gomach_timeout_type_t
GoMacH timeout types.
Timeout of waiting reception complete.
Timeout of maximum preamble duration.
uint8_t seq
Node's MAC packet sequence.
GoMacH's data structure for recording sender's past TX information.
gnrc_gomach_basic_state_t basic_state
Basic state.
End of the initialization procedure of GoMacH.
uint16_t sub_channel_seq
Receiver's sub-channel sequence.
GoMacH's data structure for recording TX information for avoiding receiving duplicate packets...
gnrc_gomach_init_state_t
State-machine states of initialization procedure of GoMacH.
Listen for incoming packets.
Timeout of CP (wake-up) period ending.
gnrc_gomach_l2_addr_t dst_addr
Copied destination address of packet.
Wait for next broadcast TX timing.
Type to pass information about packet parsing.
Wait for broadcast TX finish.
uint16_t cur_pub_channel
Current public channel.
uint8_t slots_position
Node's own slots position.
Timeout of waiting receiver's CP period.
gnrc_gomach_basic_state_t
State-machine states of basic management procedure of GoMacH.
GoMacH's timeout structure.
Timeout of vTDMA period end.
uint16_t pub_channel_1
Public channel 1.
gnrc_gomach_init_state_t init_state
Initialization state.
uint8_t seq
MAC sequence of the received packet.
gnrc_gomach_transmit_state_t
State-machine states of basic transmission management procedure of GoMacH.
Prepare settings before sending preamble.
Wait for preamble-ACK from receiver.
uint8_t cp_extend_count
CP extend count.
End of broadcast procedure.
Timeout of broadcast procedure end.
#define IEEE802154_LONG_ADDRESS_LEN
long address (EUI-64)
GoMacH internal L2 address structure.
uint8_t sub_channel_seq
Receiver's sub-channel sequence.