sixlowpan/nd.h File Reference

Message type and helper function definitions for 6LoWPAN-ND. More...

Detailed Description

Message type and helper function definitions for 6LoWPAN-ND.

Author
Martine Lenders mlend.nosp@m.ers@.nosp@m.inf.f.nosp@m.u-be.nosp@m.rlin..nosp@m.de

Definition in file sixlowpan/nd.h.

#include <stdint.h>
#include "byteorder.h"
#include "net/eui64.h"
#include "net/ipv6/addr.h"
+ Include dependency graph for sixlowpan/nd.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

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...
 

Macros

Lengths for fixed length options
Note
Options don't use bytes as their length unit, but 8 bytes.
#define SIXLOWPAN_ND_OPT_6CTX_LEN_MIN   (2U)
 
#define SIXLOWPAN_ND_OPT_6CTX_LEN_MAX   (3U)
 
#define SIXLOWPAN_ND_OPT_AR_LEN   (2U)
 
#define SIXLOWPAN_ND_OPT_ABR_LEN   (3U)
 
Authoritative border router option constants
#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
#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
#define SIXLOWPAN_ND_MIN_CTX_CHANGE_SEC_DELAY   (300U)
 MIN_CONTEXT_CHANGE_DELAY (in sec)
 
6LoWPAN router constants
#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
#define SIXLOWPAN_ND_MULTIHOP_HL   (64U)
 MULTIHOP_HOPLIMIT.
 
Host constants
#define SIXLOWPAN_ND_REG_TRANSMIT_NUMOF   (3U)
 Number of address registration retries. More...
 
#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)
 

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...
 
static uint32_t sixlowpan_nd_opt_abr_get_version (const sixlowpan_nd_opt_abr_t *abr_opt)
 Gets the version in correct order from an Authoritative Border Router option. More...
 
static void sixlowpan_nd_opt_abr_set_version (sixlowpan_nd_opt_abr_t *abr_opt, uint32_t version)
 Sets the version of an Authoritative Border Router option. More...