OpenWSN Firmware

Implementation of IPHC. More...

Data Structures

struct  ipv6_header_iht
 
struct  ipv6_hopbyhop_iht
 IPv6 hop-by-hop option. More...
 
struct  rpl_option_ht
 RPL Option header type. More...
 

Macros

#define IPHC_DEFAULT_HOP_LIMIT   65
 
#define IPv6HOP_HDR_LEN   3
 

Enumerations

enum  IPHC_enums {
  IPHC_DISPATCH = 5, IPHC_TF = 3, IPHC_NH = 2, IPHC_HLIM = 0,
  IPHC_CID = 7, IPHC_SAC = 6, IPHC_SAM = 4, IPHC_M = 3,
  IPHC_DAC = 2, IPHC_DAM = 0
}
 
enum  IPHC_DISPATCH_enums { IPHC_DISPATCH_IPHC = 3 }
 
enum  IPHC_TF_enums { IPHC_TF_4B = 0, IPHC_TF_3B = 1, IPHC_TF_1B = 2, IPHC_TF_ELIDED = 3 }
 
enum  IPHC_NH_enums { IPHC_NH_INLINE = 0, IPHC_NH_COMPRESSED = 1 }
 
enum  NHC_enums { NHC_IPv6EXT_MASK = 0xf0, NHC_IPv6EXT_ID = 0xe0, NHC_UDP_MASK = 0xf8, NHC_UDP_ID = 0xf0 }
 
enum  NHC_IPv6HOP_enums { NHC_IPv6HOP_MASK = 0x0e, NHC_IPv6HOP_VAL = 0x0e, NHC_HOP_NH_MASK = 0x01 }
 
enum  NHC_UDP_enums { NHC_UDP_C_MASK = 0x40, NHC_UDP_PORTS_MASK = 0x03 }
 
enum  NHC_UDP_PORTS_enums { NHC_UDP_PORTS_INLINE = 0, NHC_UDP_PORTS_16S_8D = 1, NHC_UDP_PORTS_8S_8D = 2, NHC_UDP_PORTS_4S_4D = 3 }
 
enum  IPHC_HLIM_enums { IPHC_HLIM_INLINE = 0, IPHC_HLIM_1 = 1, IPHC_HLIM_64 = 2, IPHC_HLIM_255 = 3 }
 
enum  IPHC_CID_enums { IPHC_CID_NO = 0, IPHC_CID_YES = 1 }
 
enum  IPHC_SAC_enums { IPHC_SAC_STATELESS = 0, IPHC_SAC_STATEFUL = 1 }
 
enum  IPHC_SAM_enums { IPHC_SAM_128B = 0, IPHC_SAM_64B = 1, IPHC_SAM_16B = 2, IPHC_SAM_ELIDED = 3 }
 
enum  IPHC_M_enums { IPHC_M_NO = 0, IPHC_M_YES = 1 }
 
enum  IPHC_DAC_enums { IPHC_DAC_STATELESS = 0, IPHC_DAC_STATEFUL = 1 }
 
enum  IPHC_DAM_enums { IPHC_DAM_128B = 0, IPHC_DAM_64B = 1, IPHC_DAM_16B = 2, IPHC_DAM_ELIDED = 3 }
 

Functions

END_PACK void iphc_init (void)
 
owerror_t iphc_sendFromForwarding (OpenQueueEntry_t *msg, ipv6_header_iht *ipv6_header, rpl_option_ht *rpl_option, uint32_t *flow_label, uint8_t fw_SendOrfw_Rcv)
 
owerror_t iphc_sendFromBridge (OpenQueueEntry_t *msg)
 
void iphc_sendDone (OpenQueueEntry_t *msg, owerror_t error)
 
void iphc_receive (OpenQueueEntry_t *msg)
 

Detailed Description

Implementation of IPHC.

Author
Thomas Watteyne watte.nosp@m.yne@.nosp@m.eecs..nosp@m.berk.nosp@m.eley..nosp@m.edu, August 2010

Macro Definition Documentation

#define IPHC_DEFAULT_HOP_LIMIT   65
#define IPv6HOP_HDR_LEN   3

Enumeration Type Documentation

Enumerator
IPHC_CID_NO 
IPHC_CID_YES 
Enumerator
IPHC_DAC_STATELESS 
IPHC_DAC_STATEFUL 
Enumerator
IPHC_DAM_128B 
IPHC_DAM_64B 
IPHC_DAM_16B 
IPHC_DAM_ELIDED 
Enumerator
IPHC_DISPATCH_IPHC 
enum IPHC_enums
Enumerator
IPHC_DISPATCH 
IPHC_TF 
IPHC_NH 
IPHC_HLIM 
IPHC_CID 
IPHC_SAC 
IPHC_SAM 
IPHC_M 
IPHC_DAC 
IPHC_DAM 
Enumerator
IPHC_HLIM_INLINE 
IPHC_HLIM_1 
IPHC_HLIM_64 
IPHC_HLIM_255 
Enumerator
IPHC_M_NO 
IPHC_M_YES 
Enumerator
IPHC_NH_INLINE 
IPHC_NH_COMPRESSED 
Enumerator
IPHC_SAC_STATELESS 
IPHC_SAC_STATEFUL 
Enumerator
IPHC_SAM_128B 
IPHC_SAM_64B 
IPHC_SAM_16B 
IPHC_SAM_ELIDED 
Enumerator
IPHC_TF_4B 
IPHC_TF_3B 
IPHC_TF_1B 
IPHC_TF_ELIDED 
enum NHC_enums
Enumerator
NHC_IPv6EXT_MASK 
NHC_IPv6EXT_ID 
NHC_UDP_MASK 
NHC_UDP_ID 
Enumerator
NHC_IPv6HOP_MASK 
NHC_IPv6HOP_VAL 
NHC_HOP_NH_MASK 
Enumerator
NHC_UDP_C_MASK 
NHC_UDP_PORTS_MASK 
Enumerator
NHC_UDP_PORTS_INLINE 
NHC_UDP_PORTS_16S_8D 
NHC_UDP_PORTS_8S_8D 
NHC_UDP_PORTS_4S_4D 

Function Documentation

END_PACK void iphc_init ( void  )
void iphc_receive ( OpenQueueEntry_t msg)
void iphc_sendDone ( OpenQueueEntry_t msg,
owerror_t  error 
)
owerror_t iphc_sendFromBridge ( OpenQueueEntry_t msg)
owerror_t iphc_sendFromForwarding ( OpenQueueEntry_t msg,
ipv6_header_iht ipv6_header,
rpl_option_ht rpl_option,
uint32_t *  flow_label,
uint8_t  fw_SendOrfw_Rcv 
)