Date: Sat, 23 Feb 2002 01:32:22 +0900 From: JINMEI Tatuya / =?ISO-2022-JP?B?GyRCP0BMQEMjOkgbKEI=?= <jinmei@isl.rdc.toshiba.co.jp> To: Ross Finlayson <finlayson@live.com> Cc: freebsd-net@FreeBSD.ORG Subject: Re: nd6_rtrequest: bad gateway value: stf0 Message-ID: <y7veljdbhpl.wl@condor.jinmei.org> In-Reply-To: <4.3.1.1.20020216130038.00babc30@localhost> References: <4.3.1.1.20020216130038.00babc30@localhost>
next in thread | previous in thread | raw e-mail | index | archive | help
>>>>> On Sat, 16 Feb 2002 13:16:40 -0800,
>>>>> Ross Finlayson <finlayson@live.com> said:
> I have tried to configure my system (FreeBSD 4.5-STABLE) for 6to4, using
> the "stf" interface, but am getting the error message "nd6_rtrequest: bad
> gateway value: stf0" in my log, whenever I try to 'ping6' a remote IPv6
> address.
This seems to be a bug in the kernel. Could you try the attached
patch (which is for FreeBSD 4.5 RELEASE)?
JINMEI, Tatuya
Communication Platform Lab.
Corporate R&D Center, Toshiba Corp.
jinmei@isl.rdc.toshiba.co.jp
*** nd6.c.orig Sat Feb 23 01:29:42 2002
--- nd6.c Sat Feb 23 01:29:58 2002
***************
*** 1112,1117 ****
--- 1112,1138 ----
return;
}
+ if (req == RTM_RESOLVE &&
+ (nd6_need_cache(ifp) == 0 || /* stf case */
+ !nd6_is_addr_neighbor((struct sockaddr_in6 *)rt_key(rt), ifp))) {
+ /*
+ * FreeBSD and BSD/OS often make a cloned host route based
+ * on a less-specific route (e.g. the default route).
+ * If the less specific route does not have a "gateway"
+ * (this is the case when the route just goes to a p2p or an
+ * stf interface), we'll mistakenly make a neighbor cache for
+ * the host route, and will see strange neighbor solicitation
+ * for the corresponding destination. In order to avoid the
+ * confusion, we check if the destination of the route is
+ * a neighbor in terms of neighbor discovery, and stop the
+ * process if not. Additionally, we remove the LLINFO flag
+ * so that ndp(8) will not try to get the neighbor information
+ * of the destination.
+ */
+ rt->rt_flags &= ~RTF_LLINFO;
+ return;
+ }
+
switch (req) {
case RTM_ADD:
/*
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?y7veljdbhpl.wl>
