Provides 6LoWPAN dispatch types and helper functions. More...
Provides 6LoWPAN dispatch types and helper functions.
Modules | |
6LoWPAN Neighbor Discovery | |
Message types and helper functions for Neighbor Discovery Optimization for 6LoWPAN (6LoWPAN-ND) | |
6LoWPAN selective fragment recovery | |
Provides dispatches for 6LoWPAN selective fragment recovery and helper functions. | |
Files | |
file | sixlowpan.h |
6LoWPAN dispatch type and helper function definitions. | |
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 | |
| |
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. | |
#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 . | |
#define | SIXLOWPAN_IPHC1_DISP_MASK (0xe0) |
Dispatch mask for LOWPAN_IPHC. More... | |
#define | SIXLOWPAN_IPHC1_DISP (0x60) |
Dispatch for LOWPAN_IPHC. More... | |
#define | SIXLOWPAN_SFR_DISP_MASK (0xfe) |
Dispatch mask for 6LoWPAN selective fragment recovery. More... | |
#define | SIXLOWPAN_SFR_RFRAG_DISP (0xe8) |
Dispatch for 6LoWPAN recoverable fragment. More... | |
#define | SIXLOWPAN_SFR_ACK_DISP (0xea) |
Dispatch for 6LoWPAN recoverable fragment acknowledgment. More... | |
6LoWPAN fragmentation header definitions | |
static bool | sixlowpan_frag_1_is (sixlowpan_frag_t *hdr) |
Checks if a given header is a 1st 6LoWPAN fragment header. More... | |
static bool | sixlowpan_frag_n_is (sixlowpan_frag_t *hdr) |
Checks if a given header is a subsequent 6LoWPAN fragment header. More... | |
static bool | sixlowpan_frag_is (sixlowpan_frag_t *hdr) |
Checks if a given header is a 6LoWPAN fragment header. More... | |
static uint16_t | sixlowpan_frag_datagram_size (sixlowpan_frag_t *hdr) |
Get datagram size from general 6LoWPAN fragment header. More... | |
static uint16_t | sixlowpan_frag_datagram_tag (sixlowpan_frag_t *hdr) |
Get datagram tag from general 6LoWPAN fragment header. More... | |
static uint16_t | sixlowpan_frag_offset (sixlowpan_frag_n_t *hdr) |
Get fragment offset from a subsequent 6LoWPAN fragment header. 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 Extension (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 identifier extension header length | |
#define SIXLOWPAN_IPHC1_DISP (0x60) |
#define SIXLOWPAN_IPHC1_DISP_MASK (0xe0) |
Dispatch mask for LOWPAN_IPHC.
Definition at line 54 of file sixlowpan.h.
#define SIXLOWPAN_IPHC1_HL (0x03) |
Flag for Hop Limit elision (part of first byte of LOWPAN_IPHC).
Definition at line 257 of file sixlowpan.h.
#define SIXLOWPAN_IPHC1_NH (0x04) |
Flag for Next Header Compression (part of first byte of LOWPAN_IPHC).
Definition at line 249 of file sixlowpan.h.
#define SIXLOWPAN_IPHC1_TF (0x18) |
Flag for Traffic Class & Flow Label elision (part of first byte of LOWPAN_IPHC).
Definition at line 240 of file sixlowpan.h.
#define SIXLOWPAN_IPHC2_CID_EXT (0x80) |
Flag for Context Identifier Extension (part of second byte of LOWPAN_IPHC).
Definition at line 266 of file sixlowpan.h.
#define SIXLOWPAN_IPHC2_DAC (0x04) |
Flag for Destination Address Compression (part of second byte of LOWPAN_IPHC).
Definition at line 293 of file sixlowpan.h.
#define SIXLOWPAN_IPHC2_DAM (0x03) |
Bits for Destination Address Mode (part of second byte of LOWPAN_IPHC).
Definition at line 302 of file sixlowpan.h.
#define SIXLOWPAN_IPHC2_M (0x08) |
Flag for Multicast Compression (part of second byte of LOWPAN_IPHC).
Definition at line 311 of file sixlowpan.h.
#define SIXLOWPAN_IPHC2_SAC (0x40) |
Flag for Source Address Compression (part of second byte of LOWPAN_IPHC).
Definition at line 275 of file sixlowpan.h.
#define SIXLOWPAN_IPHC2_SAM (0x30) |
Bits for Source Address Mode (part of second byte of LOWPAN_IPHC).
Definition at line 284 of file sixlowpan.h.
#define SIXLOWPAN_SFR_ACK_DISP (0xea) |
Dispatch for 6LoWPAN recoverable fragment acknowledgment.
Definition at line 83 of file sixlowpan.h.
#define SIXLOWPAN_SFR_DISP_MASK (0xfe) |
Dispatch mask for 6LoWPAN selective fragment recovery.
Definition at line 69 of file sixlowpan.h.
#define SIXLOWPAN_SFR_RFRAG_DISP (0xe8) |
Dispatch for 6LoWPAN recoverable fragment.
Definition at line 76 of file sixlowpan.h.
|
inlinestatic |
Checks if a given header is a 1st 6LoWPAN fragment header.
[in] | hdr | A 6LoWPAN fragmentation header. |
Definition at line 156 of file sixlowpan.h.
|
inlinestatic |
Get datagram size from general 6LoWPAN fragment header.
[in] | hdr | A general 6LoWPAN fragment header. |
Definition at line 194 of file sixlowpan.h.
|
inlinestatic |
Get datagram tag from general 6LoWPAN fragment header.
[in] | hdr | A general 6LoWPAN fragment header. |
Definition at line 206 of file sixlowpan.h.
|
inlinestatic |
Checks if a given header is a 6LoWPAN fragment header.
[in] | hdr | A 6LoWPAN fragmentation header. |
Definition at line 182 of file sixlowpan.h.
|
inlinestatic |
Checks if a given header is a subsequent 6LoWPAN fragment header.
[in] | hdr | A 6LoWPAN fragmentation header. |
Definition at line 169 of file sixlowpan.h.
|
inlinestatic |
Get fragment offset from a subsequent 6LoWPAN fragment header.
[in] | hdr | A subsequent 6LoWPAN fragment header. |
Definition at line 218 of file sixlowpan.h.
|
inlinestatic |
Checks if datagram is an IPHC datagram.
[in] | data | Data of a datagram. Must not be NULL. |
Definition at line 331 of file sixlowpan.h.
|
inlinestatic |
Checks if dispatch indicates that frame is not a 6LoWPAN (NALP) frame.
[in] | disp | The first byte of a frame. |
Definition at line 93 of file sixlowpan.h.
void sixlowpan_print | ( | uint8_t * | data, |
size_t | size | ||
) |
Prints 6LoWPAN dispatch to stdout.
[in] | data | A 6LoWPAN frame. |
[in] | size | Size of data . |