version 1.114, 2003/12/04 19:38:24 |
version 1.116.2.2, 2004/03/31 19:59:41 |
Line 282 udp_input(m, va_alist) |
|
Line 282 udp_input(m, va_alist) |
|
if (m->m_pkthdr.csum_flags & M_CSUM_NO_PSEUDOHDR) |
if (m->m_pkthdr.csum_flags & M_CSUM_NO_PSEUDOHDR) |
hw_csum = in_cksum_phdr(ip->ip_src.s_addr, |
hw_csum = in_cksum_phdr(ip->ip_src.s_addr, |
ip->ip_dst.s_addr, |
ip->ip_dst.s_addr, |
htonl(hw_csum + ntohs(ip->ip_len) + |
htons(hw_csum + len + IPPROTO_UDP)); |
IPPROTO_UDP)); |
|
if ((hw_csum ^ 0xffff) != 0) |
if ((hw_csum ^ 0xffff) != 0) |
goto badcsum; |
goto badcsum; |
break; |
break; |
Line 431 udp6_input(mp, offp, proto) |
|
Line 430 udp6_input(mp, offp, proto) |
|
/* |
/* |
* Checksum extended UDP header and data. |
* Checksum extended UDP header and data. |
*/ |
*/ |
if (uh->uh_sum == 0) |
if (uh->uh_sum == 0) { |
udp6stat.udp6s_nosum++; |
udp6stat.udp6s_nosum++; |
else if (in6_cksum(m, IPPROTO_UDP, off, ulen) != 0) { |
goto bad; |
|
} |
|
if (in6_cksum(m, IPPROTO_UDP, off, ulen) != 0) { |
udp6stat.udp6s_badsum++; |
udp6stat.udp6s_badsum++; |
goto bad; |
goto bad; |
} |
} |
|
|
SYSCTL_SETUP(sysctl_net_inet_udp_setup, "sysctl net.inet.udp subtree setup") |
SYSCTL_SETUP(sysctl_net_inet_udp_setup, "sysctl net.inet.udp subtree setup") |
{ |
{ |
|
|
sysctl_createv(SYSCTL_PERMANENT, |
sysctl_createv(clog, 0, NULL, NULL, |
|
CTLFLAG_PERMANENT, |
CTLTYPE_NODE, "net", NULL, |
CTLTYPE_NODE, "net", NULL, |
NULL, 0, NULL, 0, |
NULL, 0, NULL, 0, |
CTL_NET, CTL_EOL); |
CTL_NET, CTL_EOL); |
sysctl_createv(SYSCTL_PERMANENT, |
sysctl_createv(clog, 0, NULL, NULL, |
|
CTLFLAG_PERMANENT, |
CTLTYPE_NODE, "inet", NULL, |
CTLTYPE_NODE, "inet", NULL, |
NULL, 0, NULL, 0, |
NULL, 0, NULL, 0, |
CTL_NET, PF_INET, CTL_EOL); |
CTL_NET, PF_INET, CTL_EOL); |
sysctl_createv(SYSCTL_PERMANENT, |
sysctl_createv(clog, 0, NULL, NULL, |
|
CTLFLAG_PERMANENT, |
CTLTYPE_NODE, "udp", NULL, |
CTLTYPE_NODE, "udp", NULL, |
NULL, 0, NULL, 0, |
NULL, 0, NULL, 0, |
CTL_NET, PF_INET, IPPROTO_UDP, CTL_EOL); |
CTL_NET, PF_INET, IPPROTO_UDP, CTL_EOL); |
|
|
sysctl_createv(SYSCTL_PERMANENT|SYSCTL_READWRITE, |
sysctl_createv(clog, 0, NULL, NULL, |
|
CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
CTLTYPE_INT, "checksum", NULL, |
CTLTYPE_INT, "checksum", NULL, |
NULL, 0, &udpcksum, 0, |
NULL, 0, &udpcksum, 0, |
CTL_NET, PF_INET, IPPROTO_UDP, UDPCTL_CHECKSUM, |
CTL_NET, PF_INET, IPPROTO_UDP, UDPCTL_CHECKSUM, |
CTL_EOL); |
CTL_EOL); |
sysctl_createv(SYSCTL_PERMANENT|SYSCTL_READWRITE, |
sysctl_createv(clog, 0, NULL, NULL, |
|
CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
CTLTYPE_INT, "sendspace", NULL, |
CTLTYPE_INT, "sendspace", NULL, |
NULL, 0, &udp_sendspace, 0, |
NULL, 0, &udp_sendspace, 0, |
CTL_NET, PF_INET, IPPROTO_UDP, UDPCTL_SENDSPACE, |
CTL_NET, PF_INET, IPPROTO_UDP, UDPCTL_SENDSPACE, |
CTL_EOL); |
CTL_EOL); |
sysctl_createv(SYSCTL_PERMANENT|SYSCTL_READWRITE, |
sysctl_createv(clog, 0, NULL, NULL, |
|
CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
CTLTYPE_INT, "recvspace", NULL, |
CTLTYPE_INT, "recvspace", NULL, |
NULL, 0, &udp_recvspace, 0, |
NULL, 0, &udp_recvspace, 0, |
CTL_NET, PF_INET, IPPROTO_UDP, UDPCTL_RECVSPACE, |
CTL_NET, PF_INET, IPPROTO_UDP, UDPCTL_RECVSPACE, |