60 #define SICSLOWPAN_UDP_4_BIT_PORT_MIN                     0xF0B0 
   61 #define SICSLOWPAN_UDP_4_BIT_PORT_MAX                     0xF0BF    
   62 #define SICSLOWPAN_UDP_8_BIT_PORT_MIN                     0xF000 
   63 #define SICSLOWPAN_UDP_8_BIT_PORT_MAX                     0xF0FF    
   71 #define SICSLOWPAN_COMPRESSION_IPV6        0 
   72 #define SICSLOWPAN_COMPRESSION_HC1         1 
   73 #define SICSLOWPAN_COMPRESSION_HC06        2 
   80 #define SICSLOWPAN_DISPATCH_IPV6                    0x41  
   81 #define SICSLOWPAN_DISPATCH_HC1                     0x42  
   82 #define SICSLOWPAN_DISPATCH_IPHC                    0x60  
   83 #define SICSLOWPAN_DISPATCH_FRAG1                   0xc0  
   84 #define SICSLOWPAN_DISPATCH_FRAGN                   0xe0  
   90 #define SICSLOWPAN_HC1_NH_UDP                       0x02 
   91 #define SICSLOWPAN_HC1_NH_TCP                       0x06 
   92 #define SICSLOWPAN_HC1_NH_ICMP6                     0x04 
   98 #define SICSLOWPAN_HC_UDP_ALL_C                     0xE0 
  109 #define SICSLOWPAN_IPHC_FL_C                        0x10 
  110 #define SICSLOWPAN_IPHC_TC_C                        0x08 
  111 #define SICSLOWPAN_IPHC_NH_C                        0x04 
  112 #define SICSLOWPAN_IPHC_TTL_1                       0x01 
  113 #define SICSLOWPAN_IPHC_TTL_64                      0x02 
  114 #define SICSLOWPAN_IPHC_TTL_255                     0x03 
  115 #define SICSLOWPAN_IPHC_TTL_I                       0x00 
  119 #define SICSLOWPAN_IPHC_CID                         0x80 
  121 #define SICSLOWPAN_IPHC_SAC                         0x40 
  122 #define SICSLOWPAN_IPHC_SAM_00                      0x00 
  123 #define SICSLOWPAN_IPHC_SAM_01                      0x10 
  124 #define SICSLOWPAN_IPHC_SAM_10                      0x20 
  125 #define SICSLOWPAN_IPHC_SAM_11                      0x30 
  127 #define SICSLOWPAN_IPHC_SAM_BIT                     4 
  129 #define SICSLOWPAN_IPHC_M                           0x08 
  130 #define SICSLOWPAN_IPHC_DAC                         0x04 
  131 #define SICSLOWPAN_IPHC_DAM_00                      0x00 
  132 #define SICSLOWPAN_IPHC_DAM_01                      0x01 
  133 #define SICSLOWPAN_IPHC_DAM_10                      0x02 
  134 #define SICSLOWPAN_IPHC_DAM_11                      0x03 
  136 #define SICSLOWPAN_IPHC_DAM_BIT                     0 
  139 #define SICSLOWPAN_IPHC_ADDR_CONTEXT_LL             0 
  141 #define SICSLOWPAN_IPHC_MCAST_RANGE                 0xA0 
  145 #define SICSLOWPAN_NHC_MASK                         0xF0 
  146 #define SICSLOWPAN_NHC_EXT_HDR                      0xE0 
  156 #define SICSLOWPAN_NHC_UDP_MASK                     0xF8 
  157 #define SICSLOWPAN_NHC_UDP_ID                       0xF0 
  158 #define SICSLOWPAN_NHC_UDP_CHECKSUMC                0x04 
  159 #define SICSLOWPAN_NHC_UDP_CHECKSUMI                0x00 
  161 #define SICSLOWPAN_NHC_UDP_CS_P_00  0xF0  
  162 #define SICSLOWPAN_NHC_UDP_CS_P_01  0xF1  
  163 #define SICSLOWPAN_NHC_UDP_CS_P_10  0xF2  
  164 #define SICSLOWPAN_NHC_UDP_CS_P_11  0xF3  
  173 #define SICSLOWPAN_IPV6_HDR_LEN                     1     
  174 #define SICSLOWPAN_HC1_HDR_LEN                      3 
  175 #define SICSLOWPAN_HC1_HC_UDP_HDR_LEN               7 
  176 #define SICSLOWPAN_FRAG1_HDR_LEN                    4 
  177 #define SICSLOWPAN_FRAGN_HDR_LEN                    5 
  240 #define sicslowpan_is_iid_16_bit_compressable(a) \ 
  241   ((((a)->u16[4]) == 0) &&                       \ 
  242    (((a)->u8[10]) == 0)&&                           \ 
  243    (((a)->u8[11]) == 0xff)&&                        \ 
  244    (((a)->u8[12]) == 0xfe)&&                        \ 
  245    (((a)->u8[13]) == 0)) 
  254 #define sicslowpan_is_mcast_addr_decompressable(a) \ 
  255    (((*a & 0x01) == 0) &&                           \ 
  256     ((*(a + 1) == 0x01) || (*(a + 1) == 0x02))) 
  264 #define sicslowpan_is_mcast_addr_compressable(a) \ 
  265   ((((a)->u16[1]) == 0) &&                       \ 
  266    (((a)->u16[2]) == 0) &&                       \ 
  267    (((a)->u16[3]) == 0) &&                       \ 
  268    (((a)->u16[4]) == 0) &&                       \ 
  269    (((a)->u16[5]) == 0) &&                       \ 
  270    (((a)->u16[6]) == 0) &&                       \ 
  271    (((a)->u8[14]) == 0) &&                       \ 
  272    ((((a)->u8[15]) == 1) || (((a)->u8[15]) == 2))) 
  275 #define sicslowpan_is_mcast_addr_compressable48(a) \ 
  276   ((((a)->u16[1]) == 0) &&                       \ 
  277    (((a)->u16[2]) == 0) &&                       \ 
  278    (((a)->u16[3]) == 0) &&                       \ 
  279    (((a)->u16[4]) == 0) &&                       \ 
  280    (((a)->u8[10]) == 0)) 
  283 #define sicslowpan_is_mcast_addr_compressable32(a) \ 
  284   ((((a)->u16[1]) == 0) &&                       \ 
  285    (((a)->u16[2]) == 0) &&                       \ 
  286    (((a)->u16[3]) == 0) &&                       \ 
  287    (((a)->u16[4]) == 0) &&                       \ 
  288    (((a)->u16[5]) == 0) &&                       \ 
  289    (((a)->u8[12]) == 0)) 
  292 #define sicslowpan_is_mcast_addr_compressable8(a) \ 
  293   ((((a)->u8[1]) == 2) &&                        \ 
  294    (((a)->u16[1]) == 0) &&                       \ 
  295    (((a)->u16[2]) == 0) &&                       \ 
  296    (((a)->u16[3]) == 0) &&                       \ 
  297    (((a)->u16[4]) == 0) &&                       \ 
  298    (((a)->u16[5]) == 0) &&                       \ 
  299    (((a)->u16[6]) == 0) &&                       \ 
  300    (((a)->u8[14]) == 0)) 
  310   int (* is_compressable)(uint8_t next_header);
 
  314   int (* 
compress)(uint8_t *compressed, uint8_t *uncompressed_len);
 
  318   int (* 
uncompress)(uint8_t *compressed, uint8_t *lowpanbuf, uint8_t *uncompressed_len);
 
  322 int sicslowpan_get_last_rssi(
void);
 
Header file for the uIP TCP/IP stack. 
The header for fragments. 
int(* compress)(uint8_t *compressed, uint8_t *uncompressed_len)
compress next header (TCP/UDP, etc) - ptr points to next header to compress 
The structure of a network driver in Contiki. 
int(* uncompress)(uint8_t *compressed, uint8_t *lowpanbuf, uint8_t *uncompressed_len)
uncompress next header (TCP/UDP, etc) - ptr points to next header to uncompress 
The structure of a next header compressor.