Fix UDP compression to work per hc-06. More commits to come to fix Traffic Class stuff...

This commit is contained in:
c_oflynn 2010-03-09 15:18:03 +00:00
parent bf2e85a57f
commit 1d483a5da4
2 changed files with 19 additions and 7 deletions

View file

@ -32,7 +32,7 @@
* *
* This file is part of the Contiki operating system. * This file is part of the Contiki operating system.
* *
* $Id: sicslowpan.c,v 1.21 2010/02/28 08:29:42 adamdunkels Exp $ * $Id: sicslowpan.c,v 1.22 2010/03/09 15:18:03 c_oflynn Exp $
*/ */
/** /**
* \file * \file
@ -46,6 +46,17 @@
* \author Joakim Eriksson <joakime@sics.se> * \author Joakim Eriksson <joakime@sics.se>
*/ */
/**
* FOR HC-06 COMPLIANCE TODO:
* -Add compression options to UDP, currently only supports
* both ports compressed or both ports elided
*
* -Fix traffic class/flow/ECN/DCSP processing, doesn't work
* per hc-06
*
* -Add stateless multicast option
*/
#include <string.h> #include <string.h>
#include "contiki.h" #include "contiki.h"
@ -882,9 +893,8 @@ uncompress_hdr_hc06(u16_t ip_len) {
/* Next header processing - continued */ /* Next header processing - continued */
if((RIME_IPHC_BUF[0] & SICSLOWPAN_IPHC_NH_C)) { if((RIME_IPHC_BUF[0] & SICSLOWPAN_IPHC_NH_C)) {
/* TODO: check if this is correct in hc-06 */
/* The next header is compressed, NHC is following */ /* The next header is compressed, NHC is following */
if((*hc06_ptr & 0xFC) == SICSLOWPAN_NHC_UDP_ID) { if((*hc06_ptr & SICSLOWPAN_NDC_UDP_MASK) == SICSLOWPAN_NHC_UDP_ID) {
SICSLOWPAN_IP_BUF->proto = UIP_PROTO_UDP; SICSLOWPAN_IP_BUF->proto = UIP_PROTO_UDP;
switch(*hc06_ptr) { switch(*hc06_ptr) {
case SICSLOWPAN_NHC_UDP_C: case SICSLOWPAN_NHC_UDP_C:

View file

@ -33,7 +33,7 @@
* *
* This file is part of the Contiki operating system. * This file is part of the Contiki operating system.
* *
* $Id: sicslowpan.h,v 1.8 2010/02/25 15:50:58 joxe Exp $ * $Id: sicslowpan.h,v 1.9 2010/03/09 15:18:03 c_oflynn Exp $
*/ */
/** /**
* \file * \file
@ -134,13 +134,15 @@
/** @} */ /** @} */
#define SICSLOWPAN_NDC_UDP_MASK 0xF8
/** /**
* \name LOWPAN_UDP encoding (works together with IPHC) * \name LOWPAN_UDP encoding (works together with IPHC)
* @{ * @{
*/ */
#define SICSLOWPAN_NHC_UDP_ID 0xF8 #define SICSLOWPAN_NHC_UDP_ID 0xF0
#define SICSLOWPAN_NHC_UDP_C 0xFB #define SICSLOWPAN_NHC_UDP_C 0xF3
#define SICSLOWPAN_NHC_UDP_I 0xF8 #define SICSLOWPAN_NHC_UDP_I 0xF0
/** @} */ /** @} */