6LoWPAN

Provides 6LoWPAN dispatch types and helper functions. More...

Detailed Description

Modules

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

Files

file  sixlowpan.h
 6LoWPAN dispatch type and helper function definitons.
 

Data Structures

struct  sixlowpan_frag_t
 General and 1st 6LoWPAN fragmentation header. More...
 
struct  sixlowpan_frag_n_t
 Subsequent 6LoWPAN fragmentation header. More...
 

Functions

void sixlowpan_print (uint8_t *data, size_t size)
 Prints 6LoWPAN dispatch to stdout. More...
 

6LoWPAN dispatch definition

See also
RFC 4944, section 5.1
static bool sixlowpan_nalp (uint8_t disp)
 Checks if dispatch indicates that frame is not a 6LoWPAN (NALP) frame. More...
 
#define SIXLOWPAN_UNCOMP   (0x41)
 uncompressed 6LoWPAN frame dispatch. More...
 
#define SIXLOWPAN_FRAG_DISP_MASK   (0xf8)
 mask for fragmentation dispatch
 
#define SIXLOWPAN_FRAG_1_DISP   (0xc0)
 dispatch for 1st fragment
 
#define SIXLOWPAN_FRAG_N_DISP   (0xe0)
 dispatch for subsequent fragments
 
#define SIXLOWPAN_FRAG_MAX_LEN   (2047)
 Maximum datagram size $ (2^{11} - 1) $.
 
#define SIXLOWPAN_IPHC1_DISP_MASK   (0xe0)
 Dispatch mask for LOWPAN_IPHC. More...
 
#define SIXLOWPAN_IPHC1_DISP   (0x60)
 Dispatch for LOWPAN_IPHC. More...
 

6LoWPAN fragmentation header definitions

static bool sixlowpan_frag_is (sixlowpan_frag_t *hdr)
 Checks if a given fragment is a 6LoWPAN fragment. More...
 
#define SIXLOWPAN_FRAG_SIZE_MASK   (0x07ff)
 mask for datagram size
 

6LoWPAN IPHC dispatch definitions

static bool sixlowpan_iphc_is (uint8_t *data)
 Checks if datagram is an IPHC datagram. More...
 
#define SIXLOWPAN_IPHC1_TF   (0x18)
 Flag for Traffic Class & Flow Label elision (part of first byte of LOWPAN_IPHC). More...
 
#define SIXLOWPAN_IPHC1_NH   (0x04)
 Flag for Next Header Compression (part of first byte of LOWPAN_IPHC). More...
 
#define SIXLOWPAN_IPHC1_HL   (0x03)
 Flag for Hop Limit elision (part of first byte of LOWPAN_IPHC). More...
 
#define SIXLOWPAN_IPHC2_CID_EXT   (0x80)
 Flag for Context Identifier Extention (part of second byte of LOWPAN_IPHC). More...
 
#define SIXLOWPAN_IPHC2_SAC   (0x40)
 Flag for Source Address Compression (part of second byte of LOWPAN_IPHC). More...
 
#define SIXLOWPAN_IPHC2_SAM   (0x30)
 Bits for Source Address Mode (part of second byte of LOWPAN_IPHC). More...
 
#define SIXLOWPAN_IPHC2_DAC   (0x04)
 Flag for Destination Address Compression (part of second byte of LOWPAN_IPHC). More...
 
#define SIXLOWPAN_IPHC2_DAM   (0x03)
 Bits for Destination Address Mode (part of second byte of LOWPAN_IPHC). More...
 
#define SIXLOWPAN_IPHC2_M   (0x08)
 Flag for Multicast Compression (part of second byte of LOWPAN_IPHC). More...
 
#define SIXLOWPAN_IPHC_HDR_LEN   (2)
 6LoWPAN IPHC header length
 
#define SIXLOWPAN_IPHC_CID_EXT_LEN   (1)
 6LoWPAN context idendifier extension header length
 

Macro Definition Documentation

◆ SIXLOWPAN_IPHC1_DISP

#define SIXLOWPAN_IPHC1_DISP   (0x60)
See also
RFC 6282, section 3.1

Definition at line 64 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC1_DISP_MASK

#define SIXLOWPAN_IPHC1_DISP_MASK   (0xe0)
See also
RFC 6282, section 3.1

Definition at line 56 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC1_HL

#define SIXLOWPAN_IPHC1_HL   (0x03)
See also
RFC 6282, section 3.1.1

Definition at line 174 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC1_NH

#define SIXLOWPAN_IPHC1_NH   (0x04)
See also
RFC 6282, section 3.1.1

Definition at line 166 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC1_TF

#define SIXLOWPAN_IPHC1_TF   (0x18)
See also
RFC 6282, section 3.1.1

Definition at line 157 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC2_CID_EXT

#define SIXLOWPAN_IPHC2_CID_EXT   (0x80)
See also
RFC 6282, section 3.1.1

Definition at line 183 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC2_DAC

#define SIXLOWPAN_IPHC2_DAC   (0x04)
See also
RFC 6282, section 3.1.1

Definition at line 210 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC2_DAM

#define SIXLOWPAN_IPHC2_DAM   (0x03)
See also
RFC 6282, section 3.1.1

Definition at line 219 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC2_M

#define SIXLOWPAN_IPHC2_M   (0x08)
See also
RFC 6282, section 3.1.1

Definition at line 228 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC2_SAC

#define SIXLOWPAN_IPHC2_SAC   (0x40)
See also
RFC 6282, section 3.1.1

Definition at line 192 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC2_SAM

#define SIXLOWPAN_IPHC2_SAM   (0x30)
See also
RFC 6282, section 3.1.1

Definition at line 201 of file sixlowpan.h.

◆ SIXLOWPAN_UNCOMP

#define SIXLOWPAN_UNCOMP   (0x41)

Definition at line 40 of file sixlowpan.h.

Function Documentation

◆ sixlowpan_frag_is()

static bool sixlowpan_frag_is ( sixlowpan_frag_t hdr)
inlinestatic
Parameters
[in]hdrA 6LoWPAN fragmentation header.
Returns
true, if given fragment is a 6LoWPAN fragment.
false, if given fragment is not a 6LoWPAN fragment.

Definition at line 137 of file sixlowpan.h.

◆ sixlowpan_iphc_is()

static bool sixlowpan_iphc_is ( uint8_t *  data)
inlinestatic
Parameters
[in]dataData of a datagram, may not be NULL.
Returns
true, if datagram is an IPHC datagram.
false, if datagram is not an IPHC datagram.

Definition at line 248 of file sixlowpan.h.

◆ sixlowpan_nalp()

static bool sixlowpan_nalp ( uint8_t  disp)
inlinestatic
Parameters
[in]dispThe first byte of a frame.
Returns
true, if frame is a NALP.
false, if frame is not a NALP.

Definition at line 74 of file sixlowpan.h.

◆ sixlowpan_print()

void sixlowpan_print ( uint8_t *  data,
size_t  size 
)
Parameters
[in]dataA 6LoWPAN frame.
[in]sizeSize of data.