Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netinet6/nd6_nbr.c
Show First 20 Lines • Show All 130 Lines • ▼ Show 20 Lines | nd6_ns_input(struct mbuf *m, int off, int icmp6len) | ||||
ifa = NULL; | ifa = NULL; | ||||
/* RFC 6980: Nodes MUST silently ignore fragments */ | /* RFC 6980: Nodes MUST silently ignore fragments */ | ||||
if(m->m_flags & M_FRAGMENTED) | if(m->m_flags & M_FRAGMENTED) | ||||
goto freeit; | goto freeit; | ||||
ifp = m->m_pkthdr.rcvif; | ifp = m->m_pkthdr.rcvif; | ||||
ip6 = mtod(m, struct ip6_hdr *); | ip6 = mtod(m, struct ip6_hdr *); | ||||
if (ip6->ip6_hlim != 255) { | if (__predict_false(ip6->ip6_hlim != 255)) { | ||||
ICMP6STAT_INC(icp6s_invlhlim); | |||||
nd6log((LOG_ERR, | nd6log((LOG_ERR, | ||||
"nd6_ns_input: invalid hlim (%d) from %s to %s on %s\n", | "nd6_ns_input: invalid hlim (%d) from %s to %s on %s\n", | ||||
ip6->ip6_hlim, ip6_sprintf(ip6bufs, &ip6->ip6_src), | ip6->ip6_hlim, ip6_sprintf(ip6bufs, &ip6->ip6_src), | ||||
ip6_sprintf(ip6bufd, &ip6->ip6_dst), if_name(ifp))); | ip6_sprintf(ip6bufd, &ip6->ip6_dst), if_name(ifp))); | ||||
goto bads; | goto bads; | ||||
} | } | ||||
if (m->m_len < off + icmp6len) { | if (m->m_len < off + icmp6len) { | ||||
▲ Show 20 Lines • Show All 488 Lines • ▼ Show 20 Lines | nd6_na_input(struct mbuf *m, int off, int icmp6len) | ||||
checklink = 0; | checklink = 0; | ||||
/* RFC 6980: Nodes MUST silently ignore fragments */ | /* RFC 6980: Nodes MUST silently ignore fragments */ | ||||
if(m->m_flags & M_FRAGMENTED) | if(m->m_flags & M_FRAGMENTED) | ||||
goto freeit; | goto freeit; | ||||
ifp = m->m_pkthdr.rcvif; | ifp = m->m_pkthdr.rcvif; | ||||
ip6 = mtod(m, struct ip6_hdr *); | ip6 = mtod(m, struct ip6_hdr *); | ||||
if (ip6->ip6_hlim != 255) { | if (__predict_false(ip6->ip6_hlim != 255)) { | ||||
ICMP6STAT_INC(icp6s_invlhlim); | |||||
nd6log((LOG_ERR, | nd6log((LOG_ERR, | ||||
"nd6_na_input: invalid hlim (%d) from %s to %s on %s\n", | "nd6_na_input: invalid hlim (%d) from %s to %s on %s\n", | ||||
ip6->ip6_hlim, ip6_sprintf(ip6bufs, &ip6->ip6_src), | ip6->ip6_hlim, ip6_sprintf(ip6bufs, &ip6->ip6_src), | ||||
ip6_sprintf(ip6bufd, &ip6->ip6_dst), if_name(ifp))); | ip6_sprintf(ip6bufd, &ip6->ip6_dst), if_name(ifp))); | ||||
goto bad; | goto bad; | ||||
} | } | ||||
if (m->m_len < off + icmp6len) { | if (m->m_len < off + icmp6len) { | ||||
▲ Show 20 Lines • Show All 913 Lines • Show Last 20 Lines |