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