Detailed Description

Files

file  config.h
 Configuration macros for 6LoWPAN.
 

Macros

#define GNRC_SIXLOWPAN_STACK_SIZE   (THREAD_STACKSIZE_DEFAULT)
 Default stack size to use for the 6LoWPAN thread.
 
#define GNRC_SIXLOWPAN_PRIO   (THREAD_PRIORITY_MAIN - 4)
 Default priority for the 6LoWPAN thread.
 
#define CONFIG_GNRC_SIXLOWPAN_MSG_QUEUE_SIZE_EXP   (3U)
 Default message queue size to use for the 6LoWPAN thread (as exponent of 2^n). More...
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_FB_SIZE   (1U)
 Number of datagrams that can be fragmented simultaneously. More...
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_SIZE   (4U)
 Size of the reassembly buffer. More...
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_TIMEOUT_US   (3U * US_PER_SEC)
 Timeout for reassembly buffer entries in microseconds. More...
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_DO_NOT_OVERRIDE
 Do not override oldest datagram when reassembly buffer is full. More...
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_DEL_TIMER   (0U)
 Deletion timer for reassembly buffer entries in microseconds. More...
 
#define CONFIG_GNRC_SIXLOWPAN_ND_AR_LTIME   (15U)
 Registration lifetime in minutes for the address registration option. More...
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_VRB_SIZE   (16U)
 Size of the virtual reassembly buffer. More...
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_VRB_TIMEOUT_US   (CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_TIMEOUT_US)
 Timeout for a VRB entry in microseconds. More...
 
#define GNRC_SIXLOWPAN_MSG_QUEUE_SIZE   (1 << CONFIG_GNRC_SIXLOWPAN_MSG_QUEUE_SIZE_EXP)
 Message queue size to use for the 6LoWPAN thread.
 

Selective fragment recovery configuration

See also
draft-ietf-6lo-fragment-recovery-07, section 7.1
Note
Only applicable with gnrc_sixlowpan_frag_sfr module
#define GNRC_SIXLOWPAN_SFR_MIN_FRAG_SIZE   (96U)
 Default minimum value for fragment size (MinFragmentSize)
 
#define GNRC_SIXLOWPAN_SFR_MAX_FRAG_SIZE   (112U)
 Default maximum value for fragment size (MaxFragmentSize) More...
 
#define GNRC_SIXLOWPAN_SFR_OPT_FRAG_SIZE   (GNRC_SIXLOWPAN_SFR_MAX_FRAG_SIZE)
 Default value for fragment size that the sender should use to start with (OptFragmentSize)
 
#define GNRC_SIXLOWPAN_SFR_USE_ECN   (0U)
 Indicates whether the sender should react to ECN (UseECN) More...
 
#define GNRC_SIXLOWPAN_SFR_MIN_WIN_SIZE   (1U)
 Default minimum value of window size that the sender can use (MinWindowSize)
 
#define GNRC_SIXLOWPAN_SFR_MAX_WIN_SIZE   (16U)
 Default maximum value of window size that the sender can use (MaxWindowSize) More...
 
#define GNRC_SIXLOWPAN_SFR_OPT_WIN_SIZE   (16U)
 Default value of window size that the sender should start with (OptWindowSize)
 
#define GNRC_SIXLOWPAN_SFR_INTER_FRAME_GAP_US   (100U)
 Default minimum amount of time between transmissions in microseconds (InterFrameGap) More...
 
#define GNRC_SIXLOWPAN_SFR_MIN_ARQ_TIMEOUT_MS   (350U)
 Default minimum amount of time in milliseconds a node should wait for an RFRAG Acknowledgment before it takes a next action (MinARQTimeOut)
 
#define GNRC_SIXLOWPAN_SFR_MAX_ARQ_TIMEOUT_MS   (700U)
 Default maximum amount of time in milliseconds a node should wait for an RFRAG Acknowledgment before it takes a next action (MaxARQTimeOut)
 
#define GNRC_SIXLOWPAN_SFR_OPT_ARQ_TIMEOUT_MS   (GNRC_SIXLOWPAN_SFR_MAX_ARQ_TIMEOUT_MS)
 Default starting point of the value of the amount of time in milliseconds that a sender should wait for an RFRAG Acknowledgment before it takes a next action (OptARQTimeOut)
 
#define GNRC_SIXLOWPAN_SFR_FRAG_RETRIES   (2U)
 The maximum number of retries for a particular fragment (MaxFragRetries)
 
#define GNRC_SIXLOWPAN_SFR_DG_RETRIES   (0U)
 The maximum number of retries from scratch for a particular datagram (MaxDatagramRetries)
 

Macro Definition Documentation

◆ CONFIG_GNRC_SIXLOWPAN_FRAG_FB_SIZE

#define CONFIG_GNRC_SIXLOWPAN_FRAG_FB_SIZE   (1U)

Number of datagrams that can be fragmented simultaneously.

This determines the number of gnrc_sixlowpan_frag_fb_t instances available.

Note
Only applicable with gnrc_sixlowpan_frag_fb module

Definition at line 66 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_DEL_TIMER

#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_DEL_TIMER   (0U)

Deletion timer for reassembly buffer entries in microseconds.

Note
Only applicable with gnrc_sixlowpan_frag_rb module

Time to pass between completion of a datagram and the deletion of its reassembly buffer entry. If this value is 0, the entry is dropped immediately. Use this value to prevent re-creation of a reassembly buffer entry on late arriving link-layer duplicates.

Definition at line 117 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_DO_NOT_OVERRIDE

#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_DO_NOT_OVERRIDE

Do not override oldest datagram when reassembly buffer is full.

Note
Only applicable with gnrc_sixlowpan_frag_rb module

When not set, it will cause the reassembly buffer to override the oldest entry when a fragment for a new datagram is received. When set, only the oldest entry that is older than CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_TIMEOUT_US will be overwritten (they will still timeout normally if reassembly buffer is not full).

Definition at line 102 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_SIZE

#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_SIZE   (4U)

Size of the reassembly buffer.

Note
Only applicable with gnrc_sixlowpan_frag_rb module

Definition at line 76 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_TIMEOUT_US

#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_TIMEOUT_US   (3U * US_PER_SEC)

Timeout for reassembly buffer entries in microseconds.

Note
Only applicable with gnrc_sixlowpan_frag_rb module

Definition at line 86 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_FRAG_VRB_SIZE

#define CONFIG_GNRC_SIXLOWPAN_FRAG_VRB_SIZE   (16U)

Size of the virtual reassembly buffer.

See also
https://tools.ietf.org/html/draft-ietf-lwig-6lowpan-virtual-reassembly-01
Note
Only applicable with gnrc_sixlowpan_frag_vrb module, but has also a direct influence on the number of available gnrc_sixlowpan_frag_rb_int_t entries.

Definition at line 149 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_FRAG_VRB_TIMEOUT_US

#define CONFIG_GNRC_SIXLOWPAN_FRAG_VRB_TIMEOUT_US   (CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_TIMEOUT_US)

Timeout for a VRB entry in microseconds.

See also
https://tools.ietf.org/html/draft-ietf-lwig-6lowpan-virtual-reassembly-01
Note
Only applicable with gnrc_sixlowpan_frag_vrb module.

Definition at line 161 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_MSG_QUEUE_SIZE_EXP

#define CONFIG_GNRC_SIXLOWPAN_MSG_QUEUE_SIZE_EXP   (3U)

Default message queue size to use for the 6LoWPAN thread (as exponent of 2^n).

As the queue size ALWAYS needs to be power of two, this option represents the exponent of 2^n, which will be used as the size of the queue.

Definition at line 53 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_ND_AR_LTIME

#define CONFIG_GNRC_SIXLOWPAN_ND_AR_LTIME   (15U)

Registration lifetime in minutes for the address registration option.

This value should be adapted to the devices power-lifecycle so that it is greater than the time the device spends sleeping.

See also
RFC 6775, section 5.8.1
Note
Only applicable with gnrc_ipv6_nib and gnrc_sixlowpan_nd modules. The first provides automatic sending of neighbor solicitations, the latter provides capabilities to build the address registration option as a gnrc_pktsnip_t

Definition at line 135 of file config.h.

◆ GNRC_SIXLOWPAN_SFR_INTER_FRAME_GAP_US

#define GNRC_SIXLOWPAN_SFR_INTER_FRAME_GAP_US   (100U)

Default minimum amount of time between transmissions in microseconds (InterFrameGap)

All packets to a same destination, and in particular fragments, may be subject to receive while transmitting and hidden terminal collisions with the next or the previous transmission as the fragments progress along a same path. The InterFrameGap protects the propagation of to one transmission before the next one is triggered and creates a duty cycle that controls the ratio of air and memory in intermediate nodes that a particular datagram will use.

Definition at line 244 of file config.h.

◆ GNRC_SIXLOWPAN_SFR_MAX_FRAG_SIZE

#define GNRC_SIXLOWPAN_SFR_MAX_FRAG_SIZE   (112U)

Default maximum value for fragment size (MaxFragmentSize)

It must be lower than the minimum MTU along the path. A large value augments the chances of buffer bloat and transmission loss. The value must be less than 512 if the unit is defined for the PHY layer is the octet.

Definition at line 186 of file config.h.

◆ GNRC_SIXLOWPAN_SFR_MAX_WIN_SIZE

#define GNRC_SIXLOWPAN_SFR_MAX_WIN_SIZE   (16U)

Default maximum value of window size that the sender can use (MaxWindowSize)

Warning
Must be lesser than 32.

Definition at line 220 of file config.h.

◆ GNRC_SIXLOWPAN_SFR_USE_ECN

#define GNRC_SIXLOWPAN_SFR_USE_ECN   (0U)

Indicates whether the sender should react to ECN (UseECN)

When the sender reacts to ECN its window size will vary between GNRC_SIXLOWPAN_SFR_MIN_WIN_SIZE and GNRC_SIXLOWPAN_SFR_MAX_WIN_SIZE.

Definition at line 203 of file config.h.