version 1.22, 2000/06/13 14:43:44 |
version 1.22.2.1, 2000/07/03 22:48:19 |
|
|
/* $NetBSD$ */ |
/* $NetBSD$ */ |
/* $KAME: ip6_input.c,v 1.94 2000/06/13 10:06:19 jinmei Exp $ */ |
/* $KAME: ip6_input.c,v 1.95 2000/07/02 07:49:37 jinmei Exp $ */ |
|
|
/* |
/* |
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. |
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. |
|
|
ip6_forward_rt.ro_rt->rt_ifp->if_type == IFT_LOOP) { |
ip6_forward_rt.ro_rt->rt_ifp->if_type == IFT_LOOP) { |
struct in6_ifaddr *ia6 = |
struct in6_ifaddr *ia6 = |
(struct in6_ifaddr *)ip6_forward_rt.ro_rt->rt_ifa; |
(struct in6_ifaddr *)ip6_forward_rt.ro_rt->rt_ifa; |
/* packet to tentative address must not be received */ |
|
if (ia6->ia6_flags & IN6_IFF_ANYCAST) |
if (ia6->ia6_flags & IN6_IFF_ANYCAST) |
m->m_flags |= M_ANYCAST6; |
m->m_flags |= M_ANYCAST6; |
|
/* |
|
* packets to a tentative, duplicated, or somehow invalid |
|
* address must not be accepted. |
|
*/ |
if (!(ia6->ia6_flags & IN6_IFF_NOTREADY)) { |
if (!(ia6->ia6_flags & IN6_IFF_NOTREADY)) { |
/* this interface is ready */ |
/* this address is ready */ |
ours = 1; |
ours = 1; |
deliverifp = ia6->ia_ifp; /* correct? */ |
deliverifp = ia6->ia_ifp; /* correct? */ |
goto hbhcheck; |
goto hbhcheck; |
} else { |
} else { |
/* this interface is not ready, fall through */ |
/* address is not ready, so discard the packet. */ |
|
log(LOG_INFO, |
|
"ip6_input: packet to an unready address %s->%s", |
|
ip6_sprintf(&ip6->ip6_src), |
|
ip6_sprintf(&ip6->ip6_dst)); |
|
|
|
goto bad; |
} |
} |
} |
} |
|
|