Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netinet6/nd6_rtr.c
Show First 20 Lines • Show All 171 Lines • ▼ Show 20 Lines | if (!V_ip6_forwarding || ND_IFINFO(ifp)->flags & ND6_IFF_ACCEPT_RTADV) | ||||
goto freeit; | goto freeit; | ||||
/* 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; | ||||
/* Sanity checks */ | /* Sanity checks */ | ||||
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, | ||||
"%s: invalid hlim (%d) from %s to %s on %s\n", __func__, | "%s: invalid hlim (%d) from %s to %s on %s\n", __func__, | ||||
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; | ||||
} | } | ||||
/* | /* | ||||
▲ Show 20 Lines • Show All 182 Lines • ▼ Show 20 Lines | nd6_ra_input(struct mbuf *m, int off, int icmp6len) | ||||
if (!(ndi->flags & ND6_IFF_ACCEPT_RTADV)) | if (!(ndi->flags & ND6_IFF_ACCEPT_RTADV)) | ||||
goto freeit; | goto freeit; | ||||
/* 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; | ||||
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, | ||||
"%s: invalid hlim (%d) from %s to %s on %s\n", __func__, | "%s: invalid hlim (%d) from %s to %s on %s\n", __func__, | ||||
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; | ||||
} | } | ||||
saddr6 = ip6->ip6_src; | saddr6 = ip6->ip6_src; | ||||
▲ Show 20 Lines • Show All 2,231 Lines • Show Last 20 Lines |