Implementation of GoMacH protocol. More...

Detailed Description

Implementation of GoMacH protocol.

Author
Shuguo Zhuo shugu.nosp@m.o.zh.nosp@m.uo@in.nosp@m.ria..nosp@m.fr

Definition in file gomach.h.

#include "periph/rtt.h"
#include "kernel_types.h"
#include "net/gnrc/netif.h"
+ Include dependency graph for gomach.h:

Go to the source code of this file.

Macros

#define GNRC_GOMACH_CP_DURATION_US   (10U * US_PER_MS)
 The default duration of GoMacH's wake-up period (WP). More...
 
#define GNRC_GOMACH_SUPERFRAME_DURATION_US   (300LU * US_PER_MS)
 GoMacH's superframe duration, i.e., time between two consecutive wake-ups. More...
 
#define GNRC_GOMACH_CP_RANDOM_END_US   (1U * US_PER_MS)
 The maximum duration of the random period at the end of GoMacH's wake-up period (WP). More...
 
#define GNRC_GOMACH_CP_DURATION_MAX_US   (5LU * GNRC_GOMACH_CP_DURATION_US)
 The maximum duration of GoMacH's wake-up period (WP). More...
 
#define GNRC_GOMACH_WAIT_BEACON_TIME_US   (GNRC_GOMACH_CP_DURATION_MAX_US)
 The maximum time for waiting the receiver's beacon in GoMacH. More...
 
#define GNRC_GOMACH_CP_MIN_GAP_US   (25U * US_PER_MS)
 The minimum gap between neighbor nodes' wake-up phases in GoMacH. More...
 
#define GNRC_GOMACH_WAIT_RX_END_US   (6U * US_PER_MS)
 Timeout duration for waiting NETDEV_EVENT_RX_COMPLETE in GoMacH. More...
 
#define GNRC_GOMACH_NO_TX_ISR_US   (50U * US_PER_MS)
 Timeout duration for confirming TX-No-ISR event in GoMacH. More...
 
#define GNRC_GOMACH_MAX_PREAM_INTERVAL_US   (6U * US_PER_MS)
 Maximum time interval between two consecutive preamble packets in GoMacH. More...
 
#define GNRC_GOMACH_PREAMBLE_INTERVAL_US   (2U * US_PER_MS)
 Time interval between two consecutive preamble packets in GoMacH. More...
 
#define GNRC_GOMACH_BCAST_INTERVAL_US   (1U * US_PER_MS)
 Time interval between two consecutive broadcast packets in GoMacH. More...
 
#define GNRC_GOMACH_PREAMBLE_DURATION_US   (21LU * GNRC_GOMACH_SUPERFRAME_DURATION_US / 10)
 The Maximum preamble duration time of GoMacH. More...
 
#define GNRC_GOMACH_VTDMA_SLOT_SIZE_US   (5U * US_PER_MS)
 The transmission slot size in GoMacH. More...
 
#define GNRC_GOMACH_TX_BUSY_THRESHOLD   (5U)
 Maximum times of CSMA TX attempts under busy-indication in the WP period of the receiver. More...
 
#define GNRC_GOMACH_CP_EXTEND_THRESHOLD   (5U)
 Maximum WP period extension number in GoMacH. More...
 
#define GNRC_GOMACH_RX_DUPCHK_UNIT_LIFE   (30U)
 GoMacH's check-duplicate-packet unit life time in cycle count. More...
 
#define GNRC_GOMACH_MAX_ALLOC_SLOTS_NUM   (25U)
 Maximum number of slots allowed to be allocated in one cycle. More...
 
#define GNRC_GOMACH_REPHASELOCK_THRESHOLD   (4U)
 Maximum t2k attempts before going to t2u in GoMacH. More...
 
#define GNRC_GOMACH_T2U_RETYR_THRESHOLD   (2U)
 Maximum t2u attempts before dropping data packet in GoMacH. More...
 
#define GNRC_GOMACH_MAX_T2U_RETYR_THRESHOLD   (10U)
 Maximum t2u attempts before re-initiate radio in GoMacH. More...
 
#define GNRC_GOMACH_IPC_MSG_QUEUE_SIZE   (8U)
 Default message queue size to use for the GoMacH thread. More...
 

Functions

gnrc_netif_tgnrc_netif_gomach_create (char *stack, int stacksize, char priority, char *name, netdev_t *dev)
 Creates an IEEE 802.15.4 GoMacH network interface. More...