Print this page
%B
@@ -1646,10 +1646,13 @@
#ifdef DEBUG
if (!skip_sctp_cksum)
#endif
sctph->sh_chksum = sctp_cksum(mp, ip_hdr_length);
goto ip_hdr_cksum;
+ } else if (protocol == IPPROTO_DCCP) {
+ cksump = IPH_DCCPH_CHECKSUMP(ipha, ip_hdr_length);
+ cksum = IP_DCCP_CSUM_COMP;
} else {
goto ip_hdr_cksum;
}
/* ULP puts the checksum field is in the first mblk */
@@ -1735,10 +1738,13 @@
#ifdef DEBUG
if (!skip_sctp_cksum)
#endif
sctph->sh_chksum = sctp_cksum(mp, ip_hdr_length);
goto ip_hdr_cksum;
+ } else if (protocol == IPPROTO_DCCP) {
+ cksump = IPH_DCCPH_CHECKSUMP(ipha, ip_hdr_length);
+ cksum = IP_DCCP_CSUM_COMP;
} else {
ip_hdr_cksum:
/* Calculate IPv4 header checksum */
ipha->ipha_hdr_checksum = 0;
ipha->ipha_hdr_checksum = ip_csum_hdr(ipha);