Subject: Re: wi0 + wep network problems
To: None <current-users@NetBSD.org>
From: David Young <firstname.lastname@example.org>
Date: 02/26/2006 18:46:41
On Sun, Feb 26, 2006 at 09:00:49PM +0000, Rui Paulo wrote:
> Jeff Ito <email@example.com> writes:
> > P.S. I noticed (and confirmed on another wired host to make sure they
> > were not related) that ipv6 interfaces (or routes, or *something*)
> > do not come up correctly after a /etc/rc.d/network restart. After a
> > restart I cannot communicate at all over ipv6 until a reboot.
> > I have not spent a lot of time tracking this down yet since it is not
> > my most pressing issue.
> I'm aware of this problem but I haven't diagnosed the cause yet..
I just refreshed my memory. The network rc script removes the link-local
address from each interface. The link-local addresses are added again
"on demand" as clones of the fe80::/64 route on every interface. They
are added with flags UHLc (instead of UHL), and the kernel will not
"sink" a packet with the RTF_CLONED flag set. I believe these are the
relevant lines in ip6_input():
* Accept the packet if the forwarding interface to the destination
* according to the routing table is the loopback interface,
* unless the associated route has a gateway.
* Note that this approach causes to accept a packet if there is a
* route to the loopback interface for the destination of the packet.
* But we think it's even useful in some situations, e.g. when using
* a special daemon which wants to intercept the packet.
if (ip6_forward_rt.ro_rt &&
(RTF_HOST|RTF_GATEWAY)) == RTF_HOST &&
!(ip6_forward_rt.ro_rt->rt_flags & RTF_CLONED) &&
David Young OJC Technologies
firstname.lastname@example.org Urbana, IL * (217) 278-3933