Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/ip6_input.c
Show First 20 Lines • Show All 530 Lines • ▼ Show 20 Lines | |||||
void | void | ||||
ip6_input(struct mbuf *m) | ip6_input(struct mbuf *m) | ||||
{ | { | ||||
struct in6_addr odst; | struct in6_addr odst; | ||||
struct ip6_hdr *ip6; | struct ip6_hdr *ip6; | ||||
struct in6_ifaddr *ia; | struct in6_ifaddr *ia; | ||||
struct ifnet *rcvif; | struct ifnet *rcvif; | ||||
struct nd_ifinfo *ndi; | |||||
u_int32_t plen; | u_int32_t plen; | ||||
u_int32_t rtalert = ~0; | u_int32_t rtalert = ~0; | ||||
int off = sizeof(struct ip6_hdr), nest; | int off = sizeof(struct ip6_hdr), nest; | ||||
int nxt, ours = 0; | int nxt, ours = 0; | ||||
int srcrt = 0; | int srcrt = 0; | ||||
/* | /* | ||||
* Drop the packet if IPv6 operation is disabled on the interface. | * Drop the packet if IPv6 operation is disabled on the interface. | ||||
*/ | */ | ||||
rcvif = m->m_pkthdr.rcvif; | rcvif = m->m_pkthdr.rcvif; | ||||
if ((ND_IFINFO(rcvif)->flags & ND6_IFF_IFDISABLED)) | if ((ndi = nd6_ifinfo(rcvif)) == NULL || | ||||
(ndi->flags & ND6_IFF_IFDISABLED) != 0) | |||||
goto bad; | goto bad; | ||||
#if defined(IPSEC) || defined(IPSEC_SUPPORT) | #if defined(IPSEC) || defined(IPSEC_SUPPORT) | ||||
/* | /* | ||||
* should the inner packet be considered authentic? | * should the inner packet be considered authentic? | ||||
* see comment in ah4_input(). | * see comment in ah4_input(). | ||||
* NB: m cannot be NULL when passed to the input routine | * NB: m cannot be NULL when passed to the input routine | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 1,179 Lines • Show Last 20 Lines |