Author: Samuel Jero <sj323707@ohio.edu>
Date: 11/2012
-
-Notes:
- 1)CCID2 ONLY
- 2)DCCP MUST use 48 bit sequence numbers
- 3)Checksums are not computed (they are zeroed)
- 4)DCCP DATA packets are not implemented (Linux doesn't use them)
- 5)DCCP Ack packets show up as TCP packets containing one byte
******************************************************************************/
#include "dccp2tcp.h"
#include "encap.h"
+#include "checksums.h"
#include <pcap/sll.h>
#include <netinet/ip6.h>
}
/*Adjust IPv6 header to account for packet's total length*/
- iph->ip6_ctlun.ip6_un1.ip6_un1_plen=htons(new->length);
+ iph->ip6_ctlun.ip6_un1.ip6_un1_plen=htons(nnew.length);
/*Adjust length*/
new->length=nnew.length + sizeof(struct ip6_hdr);
/*Adjust IPv4 header to account for packet's total length*/
iph->tot_len=htons(new->length);
+ /*Compute IPv4 Checksum*/
+ iph->check=0;
+ iph->check=ipv4_chksum(new->data,iph->ihl*4);
+
/*Cleanup*/
free(nnew.src_id);
free(nnew.dest_id);