Print this page
%B
@@ -50,15 +50,17 @@
#ifdef _BIG_ENDIAN
#define IP_HDR_CSUM_TTL_ADJUST 256
#define IP_TCP_CSUM_COMP IPPROTO_TCP
#define IP_UDP_CSUM_COMP IPPROTO_UDP
#define IP_ICMPV6_CSUM_COMP IPPROTO_ICMPV6
+#define IP_DCCP_CSUM_COMP IPPROTO_DCCP
#else
#define IP_HDR_CSUM_TTL_ADJUST 1
#define IP_TCP_CSUM_COMP (IPPROTO_TCP << 8)
#define IP_UDP_CSUM_COMP (IPPROTO_UDP << 8)
#define IP_ICMPV6_CSUM_COMP (IPPROTO_ICMPV6 << 8)
+#define IP_DCCP_CSUM_COMP (IPPROTO_DCCP << 8)
#endif
#define TCP_CHECKSUM_OFFSET 16
#define TCP_CHECKSUM_SIZE 2
@@ -66,19 +68,25 @@
#define UDP_CHECKSUM_SIZE 2
#define ICMPV6_CHECKSUM_OFFSET 2
#define ICMPV6_CHECKSUM_SIZE 2
+#define DCCP_CHECKSUM_OFFSET 6
+#define DCCP_CHECKSUM_SIZE 2
+
#define IPH_TCPH_CHECKSUMP(ipha, hlen) \
((uint16_t *)(((uchar_t *)(ipha)) + ((hlen) + TCP_CHECKSUM_OFFSET)))
#define IPH_UDPH_CHECKSUMP(ipha, hlen) \
((uint16_t *)(((uchar_t *)(ipha)) + ((hlen) + UDP_CHECKSUM_OFFSET)))
#define IPH_ICMPV6_CHECKSUMP(ipha, hlen) \
((uint16_t *)(((uchar_t *)(ipha)) + ((hlen) + ICMPV6_CHECKSUM_OFFSET)))
+#define IPH_DCCPH_CHECKSUMP(ipha, hlen) \
+ ((uint16_t *)(((uchar_t *)(ipha)) + ((hlen) + DCCP_CHECKSUM_OFFSET)))
+
#define ILL_HCKSUM_CAPABLE(ill) \
(((ill)->ill_capabilities & ILL_CAPAB_HCKSUM) != 0)
/*
* Macro to adjust a given checksum value depending on any prepended