Date: Mon, 4 Jan 2010 19:51:43 -0500 From: David Horn <dhorn2000@gmail.com> To: Qing Li <qing.li@bluecoat.com>, freebsd-current@freebsd.org Subject: Re: netinet6/in6.c r201282 Message-ID: <25ff90d61001041651gf4509ads4d023320471ab74d@mail.gmail.com> In-Reply-To: <25ff90d61001022118y3c2a4ddcr30fd5283af065346@mail.gmail.com> References: <25ff90d61001022118y3c2a4ddcr30fd5283af065346@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jan 3, 2010 at 12:18 AM, David Horn <dhorn2000@gmail.com> wrote: > Qing -- > > I have been having some issues with local ipv6 routes to machines that > are supposed to be on-link (attached to the same ethernet switch as my > test FreeBSD 9.0 box, and in the same /64) not being able to be > accessed properly after r201282. > > Simple ping6 to the host does not result in a echo response once the > ndp entries go stale. (from looking at ndp -a) > > I noticed that there seems to be a missing /64 on the routing table > entry, and doing a "route get -inet6 $hostname" for a host that is > supposed to be on-link and in the same /64 results in a routing entry > that points to the default router instead of the appropriate route for > the /64. > > I have attached both a working (route.good.txt) and broken > (route.bad.txt) routing table (from netstat -rWnfinet6) > > Let me know if you want a tcpdump, or other configuration data. > > I can get it to work again if I hack up in6.c (not a valid fix TTBOMK) li= ke so: > > Index: in6.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- in6.c =A0 =A0 =A0 (revision 201413) > +++ in6.c =A0 =A0 =A0 (working copy) > @@ -1766,8 +1766,6 @@ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0|| (ifp->if_flags & IFF_LOOPBACK))) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0error =3D ifa_add_loopback_route((struct i= faddr *)ia, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 (struct sockaddr *)&ia->ia_addr); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (error =3D=3D 0) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ia->ia_flags |=3D IFA_RTSEL= F; > =A0 =A0 =A0 =A0} > > =A0 =A0 =A0 =A0/* Add ownaddr as loopback rtentry, if necessary (ex. on p= 2p link). */ > > > uname -a > FreeBSD la 9.0-CURRENT FreeBSD 9.0-CURRENT #15 r201407:201413: Sat Jan > =A02 22:36:31 EST 2010 =A0 =A0 dhorn@la:/usr/obj/usr/src/sys/DHORN =A0amd= 64 > > > --Thanks! > > ---Dave Horn > Qing -- Thanks for the fix. r201543 seems to work well for me so far. --Dave Horn
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?25ff90d61001041651gf4509ads4d023320471ab74d>