| version 1.111, 2003/09/25 00:59:32 |
version 1.112, 2003/10/18 13:05:45 |
| Line 270 udp_input(m, va_alist) |
|
| Line 270 udp_input(m, va_alist) |
|
| */ |
*/ |
| if (uh->uh_sum) { |
if (uh->uh_sum) { |
| switch (m->m_pkthdr.csum_flags & |
switch (m->m_pkthdr.csum_flags & |
| ((m->m_pkthdr.rcvif->if_csum_flags_rx & M_CSUM_UDPv4) | |
((m->m_pkthdr.rcvif->if_csum_flags_rx & M_CSUM_UDPv4) | |
| M_CSUM_TCP_UDP_BAD | M_CSUM_DATA)) { |
M_CSUM_TCP_UDP_BAD | M_CSUM_DATA)) { |
| case M_CSUM_UDPv4|M_CSUM_TCP_UDP_BAD: |
case M_CSUM_UDPv4|M_CSUM_TCP_UDP_BAD: |
| UDP_CSUM_COUNTER_INCR(&udp_hwcsum_bad); |
UDP_CSUM_COUNTER_INCR(&udp_hwcsum_bad); |
| goto badcsum; |
goto badcsum; |
| Line 280 udp_input(m, va_alist) |
|
| Line 280 udp_input(m, va_alist) |
|
| u_int32_t hw_csum = m->m_pkthdr.csum_data; |
u_int32_t hw_csum = m->m_pkthdr.csum_data; |
| UDP_CSUM_COUNTER_INCR(&udp_hwcsum_data); |
UDP_CSUM_COUNTER_INCR(&udp_hwcsum_data); |
| 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, ip->ip_dst.s_addr, |
hw_csum = in_cksum_phdr(ip->ip_src.s_addr, |
| htonl(hw_csum + ntohs(ip->ip_len) + IPPROTO_UDP)); |
ip->ip_dst.s_addr, |
| |
htonl(hw_csum + ntohs(ip->ip_len) + |
| |
IPPROTO_UDP)); |
| if ((hw_csum ^ 0xffff) != 0) |
if ((hw_csum ^ 0xffff) != 0) |
| goto badcsum; |
goto badcsum; |
| break; |
break; |