6LoWPAN

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

Detailed Description

Provides 6LoWPAN dispatch types and helper functions.

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)

Dispatch for LOWPAN_IPHC.

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)

Dispatch mask for LOWPAN_IPHC.

See also
RFC 6282, section 3.1

Definition at line 56 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC1_HL

#define SIXLOWPAN_IPHC1_HL   (0x03)

Flag for Hop Limit elision (part of first byte of LOWPAN_IPHC).

See also
RFC 6282, section 3.1.1

Definition at line 174 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC1_NH

#define SIXLOWPAN_IPHC1_NH   (0x04)

Flag for Next Header Compression (part of first byte of LOWPAN_IPHC).

See also
RFC 6282, section 3.1.1

Definition at line 166 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC1_TF

#define SIXLOWPAN_IPHC1_TF   (0x18)

Flag for Traffic Class & Flow Label elision (part of first byte of LOWPAN_IPHC).

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)

Flag for Context Identifier Extention (part of second byte of LOWPAN_IPHC).

See also
RFC 6282, section 3.1.1

Definition at line 183 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC2_DAC

#define SIXLOWPAN_IPHC2_DAC   (0x04)

Flag for Destination Address Compression (part of second byte of LOWPAN_IPHC).

See also
RFC 6282, section 3.1.1

Definition at line 210 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC2_DAM

#define SIXLOWPAN_IPHC2_DAM   (0x03)

Bits for Destination Address Mode (part of second byte of LOWPAN_IPHC).

See also
RFC 6282, section 3.1.1

Definition at line 219 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC2_M

#define SIXLOWPAN_IPHC2_M   (0x08)

Flag for Multicast Compression (part of second byte of LOWPAN_IPHC).

See also
RFC 6282, section 3.1.1

Definition at line 228 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC2_SAC

#define SIXLOWPAN_IPHC2_SAC   (0x40)

Flag for Source Address Compression (part of second byte of LOWPAN_IPHC).

See also
RFC 6282, section 3.1.1

Definition at line 192 of file sixlowpan.h.

◆ SIXLOWPAN_IPHC2_SAM

#define SIXLOWPAN_IPHC2_SAM   (0x30)

Bits for Source Address Mode (part of second byte of LOWPAN_IPHC).

See also
RFC 6282, section 3.1.1

Definition at line 201 of file sixlowpan.h.

◆ SIXLOWPAN_UNCOMP

#define SIXLOWPAN_UNCOMP   (0x41)

uncompressed 6LoWPAN frame dispatch.

Definition at line 40 of file sixlowpan.h.

Function Documentation

◆ sixlowpan_frag_is()

static bool sixlowpan_frag_is ( sixlowpan_frag_t hdr)
inlinestatic

Checks if a given fragment is a 6LoWPAN fragment.

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

Checks if datagram is an IPHC datagram.

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

Checks if dispatch indicates that frame is not a 6LoWPAN (NALP) frame.

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 
)

Prints 6LoWPAN dispatch to stdout.

Parameters
[in]dataA 6LoWPAN frame.
[in]sizeSize of data.