netinet6/in6.c r201282

From: David Horn <dhorn2000_at_gmail.com>
Date: Sun, 3 Jan 2010 00:18:32 -0500
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) like so:

Index: in6.c
===================================================================
--- in6.c	(revision 201413)
+++ in6.c	(working copy)
_at__at_ -1766,8 +1766,6 _at__at_
 		|| (ifp->if_flags & IFF_LOOPBACK))) {
 		error = ifa_add_loopback_route((struct ifaddr *)ia,
 				       (struct sockaddr *)&ia->ia_addr);
-		if (error == 0)
-			ia->ia_flags |= IFA_RTSELF;
 	}

 	/* Add ownaddr as loopback rtentry, if necessary (ex. on p2p link). */


uname -a
FreeBSD la 9.0-CURRENT FreeBSD 9.0-CURRENT #15 r201407:201413: Sat Jan
 2 22:36:31 EST 2010     dhorn_at_la:/usr/obj/usr/src/sys/DHORN  amd64


--Thanks!

---Dave Horn

Received on Sun Jan 03 2010 - 04:18:48 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:59 UTC