Skip site navigation (1)Skip section navigation (2)
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>