The friendly Operating System for the Internet of Things
6LoWPAN Neighbor Discovery

Message types and helper functions for Neighbor Discovery Optimization for 6LoWPAN (6LoWPAN-ND) More...

Detailed Description

See also
RFC 6775, section 4

Files

file  sixlowpan/nd.h
 Message type and helper function definitions for 6LoWPAN-ND.
 

Data Structures

struct  sixlowpan_nd_da_t
 Duplicate address request and confirmation message format. More...
 
struct  sixlowpan_nd_opt_ar_t
 Address registration option format. More...
 
struct  sixlowpan_nd_opt_6ctx_t
 6LoWPAN context option format More...
 
struct  sixlowpan_nd_opt_abr_t
 Authoritative border router option format. More...
 

Functions

static bool sixlowpan_nd_opt_6ctx_is_comp (const sixlowpan_nd_opt_6ctx_t *ctx_opt)
 Checks if a 6LoWPAN context in an 6LoWPAN context option is valid for compression. More...
 
static uint8_t sixlowpan_nd_opt_6ctx_get_cid (const sixlowpan_nd_opt_6ctx_t *ctx_opt)
 Gets a CID (context identifier) from a 6LoWPAN context option. More...
 
static void sixlowpan_nd_opt_6ctx_set_cid (sixlowpan_nd_opt_6ctx_t *ctx_opt, uint8_t cid)
 Sets a CID (context identifier) for a 6LoWPAN context option. More...
 

Lengths for fixed length options

Note
Options don't use bytes as their length unit, but 8 bytes.
#define SIXLOWPAN_ND_OPT_AR_LEN   (2U)
 
#define SIXLOWPAN_ND_OPT_ABR_LEN   (3U)
 

Authoritative border router option constants

See also
RFC 6775, section 4.3
#define SIXLOWPAN_ND_OPT_ABR_LTIME_DEFAULT   (10000U)
 Valid lifetime (in minutes) assumed if sixlowpan_nd_opt_abr_t::ltime is 0.
 

Status values for address registration option and DARs

See also
RFC 6775, section 4.1
#define SIXLOWPAN_ND_STATUS_SUCCESS   (0)
 success
 
#define SIXLOWPAN_ND_STATUS_DUP   (1)
 duplicate address
 
#define SIXLOWPAN_ND_STATUS_NC_FULL   (2)
 neighbor cache full
 

Flags for 6LoWPAN context option

#define SIXLOWPAN_ND_OPT_6CTX_FLAGS_MASK   (0x1f)
 
#define SIXLOWPAN_ND_OPT_6CTX_FLAGS_C   (0x10)
 valid for compression
 
#define SIXLOWPAN_ND_OPT_6CTX_FLAGS_CID_MASK   (0x0f)
 mask for CID
 

6LoWPAN border router constants

See also
RFC 6775, section 9
#define SIXLOWPAN_ND_MIN_CTX_CHANGE_SEC_DELAY   (300U)
 MIN_CONTEXT_CHANGE_DELAY (in sec)
 

6LoWPAN router constants

See also
RFC 6775, section 9
#define SIXLOWPAN_ND_MAX_RA_NUMOF   (3U)
 MAX_RTR_ADVERTISEMENTS.
 
#define SIXLOWPAN_ND_MIN_MS_DELAY_BETWEEN_RAS   (10000U)
 MIN_DELAY_BETWEEN_RAS (in ms)
 
#define SIXLOWPAN_ND_MAX_RA_MS_DELAY   (2000U)
 MAX_RA_DELAY_TIME (in ms)
 
#define SIXLOWPAN_ND_TENTATIVE_NCE_SEC_LTIME   (20U)
 TENTATIVE_NCE_LIFETIME (in sec)
 

Router constants

See also
RFC 6775, section 9
#define SIXLOWPAN_ND_MULTIHOP_HL   (64U)
 MULTIHOP_HOPLIMIT.
 

Host constants

See also
RFC 6775, section 9
#define SIXLOWPAN_ND_RS_MSEC_INTERVAL   (10000U)
 RTR_SOLICITATION_INTERVAL (in msec)
 
#define SIXLOWPAN_ND_MAX_RS_NUMOF   (3U)
 MAX_RTR_SOLICITATIONS.
 
#define SIXLOWPAN_ND_MAX_RS_SEC_INTERVAL   (60U)
 MAX_RTR_SOLICITATIONS_INTERVAL (in seconds)
 

Function Documentation

static uint8_t sixlowpan_nd_opt_6ctx_get_cid ( const sixlowpan_nd_opt_6ctx_t ctx_opt)
inlinestatic
Parameters
[in]ctx_optA 6LoWPAN context option.
Returns
The CID in the 6LoWPAN context option ctx_opt.

Definition at line 208 of file sixlowpan/nd.h.

static bool sixlowpan_nd_opt_6ctx_is_comp ( const sixlowpan_nd_opt_6ctx_t ctx_opt)
inlinestatic
Parameters
[in]ctx_optA 6LoWPAN context option.
Returns
true, if C bit is set in ctx_opt.
false, if C bit is unset in ctx_opt.

Definition at line 196 of file sixlowpan/nd.h.

static void sixlowpan_nd_opt_6ctx_set_cid ( sixlowpan_nd_opt_6ctx_t ctx_opt,
uint8_t  cid 
)
inlinestatic
Parameters
[out]ctx_optA 6LoWPAN context option.
[in]cidThe CID for the 6LoWPAN context option.

Definition at line 219 of file sixlowpan/nd.h.