>>>>> On Sat, 16 Feb 2002 13:16:40 -0800, 
>>>>> Ross Finlayson <[EMAIL PROTECTED]> 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.
                                        [EMAIL PROTECTED]

*** 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 [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to