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
RFC 8931, section 7.1
Note
Only applicable with gnrc_sixlowpan_frag_sfr module
#define CONFIG_GNRC_SIXLOWPAN_SFR_MIN_FRAG_SIZE   96U
 Default minimum value for fragment size (MinFragmentSize)
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_MAX_FRAG_SIZE   112U
 Default maximum value for fragment size (MaxFragmentSize) More...
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_OPT_FRAG_SIZE   CONFIG_GNRC_SIXLOWPAN_SFR_MAX_FRAG_SIZE
 Default value for fragment size that the sender should use to start with (OptFragmentSize) More...
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_USE_ECN   0U
 Indicates whether the sender should react to ECN (UseECN) More...
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_MIN_WIN_SIZE   1U
 Default minimum value of window size that the sender can use (MinWindowSize)
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_MAX_WIN_SIZE   16U
 Default maximum value of window size that the sender can use (MaxWindowSize) More...
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_OPT_WIN_SIZE   16U
 Default value of window size that the sender should start with (OptWindowSize) More...
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_INTER_FRAME_GAP_US   100U
 Default minimum amount of time between transmissions in microseconds (InterFrameGap) More...
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_MIN_ARQ_TIMEOUT_MS   350U
 Minimum RFRAG-ACK timeout in msec before a node takes a next action (MinARQTimeOut)
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_MAX_ARQ_TIMEOUT_MS   700U
 Maximum RFRAG-ACK timeout in msec before a node takes a next action (MaxARQTimeOut)
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_OPT_ARQ_TIMEOUT_MS    CONFIG_GNRC_SIXLOWPAN_SFR_MAX_ARQ_TIMEOUT_MS
 Default RFRAG-ACK timeout in msec before a node takes a next action (OptARQTimeOut) More...
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_FRAG_RETRIES   2U
 The maximum number of retries for a particular fragment (MaxFragRetries)
 
#define CONFIG_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 69 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 121 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 106 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 80 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 90 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 153 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 165 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 139 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_INTER_FRAME_GAP_US

#define CONFIG_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 257 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_MAX_FRAG_SIZE

#define CONFIG_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 190 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_MAX_WIN_SIZE

#define CONFIG_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 229 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_OPT_ARQ_TIMEOUT_MS

#define CONFIG_GNRC_SIXLOWPAN_SFR_OPT_ARQ_TIMEOUT_MS    CONFIG_GNRC_SIXLOWPAN_SFR_MAX_ARQ_TIMEOUT_MS

Default RFRAG-ACK timeout in msec before a node takes a next action (OptARQTimeOut)

Precondition
Must be inclusively between CONFIG_GNRC_SIXLOWPAN_SFR_MIN_ARQ_TIMEOUT_MS and CONFIG_GNRC_SIXLOWPAN_SFR_MAX_ARQ_TIMEOUT_MS

Definition at line 285 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_OPT_FRAG_SIZE

#define CONFIG_GNRC_SIXLOWPAN_SFR_OPT_FRAG_SIZE   CONFIG_GNRC_SIXLOWPAN_SFR_MAX_FRAG_SIZE

Default value for fragment size that the sender should use to start with (OptFragmentSize)

Precondition
Must be inclusively between CONFIG_GNRC_SIXLOWPAN_SFR_MIN_FRAG_SIZE and CONFIG_GNRC_SIXLOWPAN_SFR_MAX_FRAG_SIZE

Definition at line 202 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_OPT_WIN_SIZE

#define CONFIG_GNRC_SIXLOWPAN_SFR_OPT_WIN_SIZE   16U

Default value of window size that the sender should start with (OptWindowSize)

Precondition
Must be inclusively between CONFIG_GNRC_SIXLOWPAN_SFR_MIN_WIN_SIZE and CONFIG_GNRC_SIXLOWPAN_SFR_MAX_WIN_SIZE

Definition at line 241 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_USE_ECN

#define CONFIG_GNRC_SIXLOWPAN_SFR_USE_ECN   0U

Indicates whether the sender should react to ECN (UseECN)

When the sender reacts to Explicit Congestion Notification (ECN) its window size will vary between CONFIG_GNRC_SIXLOWPAN_SFR_MIN_WIN_SIZE and CONFIG_GNRC_SIXLOWPAN_SFR_MAX_WIN_SIZE.

Definition at line 212 of file config.h.