On 13/05/18(Sun) 23:16, Michael-John Turner wrote:
> Hi,
> 
> On Thu, May 10, 2018 at 05:13:17PM +0200, Alexander Bluhm wrote:
> > When an IPv6 neigbor discovery timeout occurs, the kernel tries to
> > remove the NDP entry.  It is stored in the routing table.  The
> > problem is that this NDP route suddenly has a locally configured
> > address.
> 
> Did you perhaps spot anything in the files I made available? The crashes
> have continued daily, I'm guessing when the problematic entry in the NDP
> table expires. I've tried tweaking various settings and have removed some of
> the unusual parts of my setup (moving some of the subnets which shared an
> interface onto their own VLANs, for example), but nothing has helped :(
> Same panic in the same location.
> 
> Happy to provide any further information that you think may help diagnose
> the problem.
> 
> Thanks in advance :)

Could you try the diff below and as soon as you see the message in the
dmesg, get the output of 'route -n show -inet6' and send us both?

Index: nd6.c
===================================================================
RCS file: /cvs/src/sys/netinet6/nd6.c,v
retrieving revision 1.224
diff -u -p -r1.224 nd6.c
--- nd6.c       2 May 2018 07:19:45 -0000       1.224
+++ nd6.c       14 May 2018 13:12:03 -0000
@@ -722,7 +722,16 @@ nd6_free(struct rtentry *rt)
                }
        }
 
-       KASSERT(!ISSET(rt->rt_flags, RTF_LOCAL));
+       if (ISSET(rt->rt_flags, RTF_LOCAL)) {
+               char ip[INET6_ADDRSTRLEN];
+
+               printf("%s: called for %s on %s\n", __func__,
+                   inet_ntop(AF_INET6, &satosin6(rt_key(rt))->sin6_addr, ip,
+                       sizeof(ip)),
+                   ifp->if_xname);
+               if_put(ifp);
+               return;
+       }
        nd6_invalidate(rt);
 
        /*

Reply via email to