Loading...
Searching...
No Matches

Detailed Description

Files

file  config.h
 Configuration macros for 6LoWPAN.
 

Macros

#define GNRC_SIXLOWPAN_STACK_SIZE   ((THREAD_STACKSIZE_DEFAULT) - 64)
 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).
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_FB_SIZE   (1U)
 Number of datagrams that can be fragmented simultaneously.
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_SIZE   (4U)
 Size of the reassembly buffer.
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_TIMEOUT_US   (3U * US_PER_SEC)
 Timeout for reassembly buffer entries in microseconds.
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_DO_NOT_OVERRIDE
 Do not override oldest datagram when reassembly buffer is full.
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_DEL_TIMER   (0U)
 Deletion timer for reassembly buffer entries in microseconds.
 
#define CONFIG_GNRC_SIXLOWPAN_ND_AR_LTIME   (15U)
 Registration lifetime in minutes for the address registration option.
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_VRB_SIZE   (16U)
 Size of the virtual reassembly buffer.
 
#define CONFIG_GNRC_SIXLOWPAN_FRAG_VRB_TIMEOUT_US   (CONFIG_GNRC_SIXLOWPAN_FRAG_RBUF_TIMEOUT_US)
 Timeout for a VRB entry in microseconds.
 
#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] (https://tools.ietf.org/html/rfc8931#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)
 
#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)
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_MIN_WIN_SIZE   1U
 Indicates whether the sender should react to Explicit Congestion Notification (UseECN)
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_MAX_WIN_SIZE   16U
 Default maximum value of window size that the sender can use (MaxWindowSize)
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_OPT_WIN_SIZE   16U
 Default value of window size that the sender should start with (OptWindowSize)
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_INTER_FRAME_GAP_US   100U
 Default minimum amount of time between transmissions in microseconds (InterFrameGap)
 
#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)
 
#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)
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_IN_NUM   1U
 The numerator for the factor for when to mark ECN on incoming netif queue state.
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_IN_DEN   2U
 The denominator for the factor for when to mark ECN on incoming netif queue state.
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_OUT_NUM   1U
 The numerator for the factor for when to mark ECN on the outgoing netif's output queue state.
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_OUT_DEN   2U
 The denominator for the factor for when to mark ECN on the outgoing netif output queue state.
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_NUM   1U
 The numerator for the factor for when to mark ECN on frame queue state.
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_DEN   2U
 The denominator for the factor for when to mark ECN on frame queue state.
 
#define CONFIG_GNRC_SIXLOWPAN_SFR_MOCK_ARQ_TIMER   0U
 Deactivate automatic handling of ARQ timer.
 

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 73 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 125 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 110 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 84 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 94 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 157 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 169 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 57 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 143 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_DG_RETRIES

#define CONFIG_GNRC_SIXLOWPAN_SFR_DG_RETRIES   0U

The maximum number of retries from scratch for a particular datagram (MaxDatagramRetries)

Definition at line 312 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_DEN

#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_DEN   2U

The denominator for the factor for when to mark ECN on frame queue state.

When gnrc_sixlowpan_frag_sfr_ecn_fqueue is compiled in, nodes will set the ECN bit of an RFRAG header when the frame queue for SFR is filled by CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_NUM / CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_DEN

Definition at line 388 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_NUM

#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_NUM   1U

The numerator for the factor for when to mark ECN on frame queue state.

When gnrc_sixlowpan_frag_sfr_ecn_fqueue is compiled in, nodes will set the ECN bit of an RFRAG header when the frame queue for SFR is filled by CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_NUM / CONFIG_GNRC_SIXLOWPAN_SFR_ECN_FQUEUE_DEN

Definition at line 376 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_IN_DEN

#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_IN_DEN   2U

The denominator for the factor for when to mark ECN on incoming netif queue state.

When gnrc_sixlowpan_frag_sfr_ecn_if_in is compiled in, nodes will set the ECN bit of an RFRAG header when the message queue of the incoming netif is filled by CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_IN_NUM / CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_IN_DEN

Definition at line 338 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_IN_NUM

#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_IN_NUM   1U

The numerator for the factor for when to mark ECN on incoming netif queue state.

When gnrc_sixlowpan_frag_sfr_ecn_if_in is compiled in, nodes will set the ECN bit of an RFRAG header when the message queue of the incoming netif is filled by CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_IN_NUM / CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_IN_DEN

Definition at line 325 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_OUT_DEN

#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_OUT_DEN   2U

The denominator for the factor for when to mark ECN on the outgoing netif output queue state.

When gnrc_sixlowpan_frag_sfr_ecn_if_out is compiled in, nodes will set the ECN bit of an RFRAG header when the output queue of the outgoing netif is filled by CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_OUT_NUM / CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_OUT_DEN

Definition at line 364 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_OUT_NUM

#define CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_OUT_NUM   1U

The numerator for the factor for when to mark ECN on the outgoing netif's output queue state.

When gnrc_sixlowpan_frag_sfr_ecn_if_out is compiled in, nodes will set the ECN bit of an RFRAG header when the output queue of the outgoing netif is filled by CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_OUT_NUM / CONFIG_GNRC_SIXLOWPAN_SFR_ECN_IF_OUT_DEN

Definition at line 351 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_FRAG_RETRIES

#define CONFIG_GNRC_SIXLOWPAN_SFR_FRAG_RETRIES   2U

The maximum number of retries for a particular fragment (MaxFragRetries)

Definition at line 304 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 267 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_MAX_ARQ_TIMEOUT_MS

#define CONFIG_GNRC_SIXLOWPAN_SFR_MAX_ARQ_TIMEOUT_MS   700U

Maximum RFRAG-ACK timeout in msec before a node takes a next action (MaxARQTimeOut)

Definition at line 283 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 194 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 239 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_MIN_ARQ_TIMEOUT_MS

#define CONFIG_GNRC_SIXLOWPAN_SFR_MIN_ARQ_TIMEOUT_MS   350U

Minimum RFRAG-ACK timeout in msec before a node takes a next action (MinARQTimeOut)

Definition at line 275 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_MIN_FRAG_SIZE

#define CONFIG_GNRC_SIXLOWPAN_SFR_MIN_FRAG_SIZE   96U

Default minimum value for fragment size (MinFragmentSize)

Definition at line 183 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_MIN_WIN_SIZE

#define CONFIG_GNRC_SIXLOWPAN_SFR_MIN_WIN_SIZE   1U

Indicates whether the sender should react to Explicit Congestion Notification (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.

Default minimum value of window size that the sender can use (MinWindowSize)

Definition at line 229 of file config.h.

◆ CONFIG_GNRC_SIXLOWPAN_SFR_MOCK_ARQ_TIMER

#define CONFIG_GNRC_SIXLOWPAN_SFR_MOCK_ARQ_TIMER   0U

Deactivate automatic handling of ARQ timer.

This requires an external source (e.g. a test application) to call gnrc_sixlowpan_frag_sfr_arq_timeout() for 6LoWPAN selective fragment recovery to still work properly.

Definition at line 399 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 295 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 206 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 251 of file config.h.

◆ GNRC_SIXLOWPAN_MSG_QUEUE_SIZE

#define GNRC_SIXLOWPAN_MSG_QUEUE_SIZE   (1 << CONFIG_GNRC_SIXLOWPAN_MSG_QUEUE_SIZE_EXP)

Message queue size to use for the 6LoWPAN thread.

Definition at line 407 of file config.h.

◆ GNRC_SIXLOWPAN_PRIO

#define GNRC_SIXLOWPAN_PRIO   (THREAD_PRIORITY_MAIN - 4)

Default priority for the 6LoWPAN thread.

Definition at line 46 of file config.h.

◆ GNRC_SIXLOWPAN_STACK_SIZE

#define GNRC_SIXLOWPAN_STACK_SIZE   ((THREAD_STACKSIZE_DEFAULT) - 64)

Default stack size to use for the 6LoWPAN thread.

Note
The message queue was previously allocated on the stack. The default number of messages is 2³. Given sizeof(msg_t) == 8, the stack size is reduced by 64 bytes.

Definition at line 39 of file config.h.