version 1.225, 2016/04/26 08:44:45 |
version 1.226, 2016/06/10 13:31:44 |
Line 276 udp4_input_checksum(struct mbuf *m, cons |
|
Line 276 udp4_input_checksum(struct mbuf *m, cons |
|
return 0; |
return 0; |
|
|
switch (m->m_pkthdr.csum_flags & |
switch (m->m_pkthdr.csum_flags & |
((m->m_pkthdr.rcvif->if_csum_flags_rx & M_CSUM_UDPv4) | |
((m_get_rcvif_NOMPSAFE(m)->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); |
Line 309 udp4_input_checksum(struct mbuf *m, cons |
|
Line 309 udp4_input_checksum(struct mbuf *m, cons |
|
* Need to compute it ourselves. Maybe skip checksum |
* Need to compute it ourselves. Maybe skip checksum |
* on loopback interfaces. |
* on loopback interfaces. |
*/ |
*/ |
if (__predict_true(!(m->m_pkthdr.rcvif->if_flags & |
if (__predict_true(!(m_get_rcvif_NOMPSAFE(m)->if_flags & |
IFF_LOOPBACK) || |
IFF_LOOPBACK) || |
udp_do_loopback_cksum)) { |
udp_do_loopback_cksum)) { |
UDP_CSUM_COUNTER_INCR(&udp_swcsum); |
UDP_CSUM_COUNTER_INCR(&udp_swcsum); |
Line 529 udp4_realinput(struct sockaddr_in *src, |
|
Line 529 udp4_realinput(struct sockaddr_in *src, |
|
dport = &dst->sin_port; |
dport = &dst->sin_port; |
|
|
if (IN_MULTICAST(dst4->s_addr) || |
if (IN_MULTICAST(dst4->s_addr) || |
in_broadcast(*dst4, m->m_pkthdr.rcvif)) { |
in_broadcast(*dst4, m_get_rcvif_NOMPSAFE(m))) { |
/* |
/* |
* Deliver a multicast or broadcast datagram to *all* sockets |
* Deliver a multicast or broadcast datagram to *all* sockets |
* for which the local and remote addresses and ports match |
* for which the local and remote addresses and ports match |