On Wed, Apr 21, 2021 at 12:54:36AM +0700, Robert Elz wrote: > It seems as if what is happening, is that the router is sending RA's with > the source-link addr option, which isn't being added to the neighbour > cache. > > Then NetBSD is doing a NS to discover the address it ignored from the RA, > but instead of replying with a ND as would perhaps be expected, the router > is simply sending another RA (containing the relevant addr info, which would > answer the NS if processed).
I'm not entirely sure that the behavior of sending a RA as "answer" to a NS is valid under RFC 4861, but I also don't understand why the existing code (nd6_rtr_cache) doesn't cover this. That would be a good place to debugging this. > I'd suggest putting RA processing back into the kernel to avoid this kind > of issue. Except of course that it introduces back all the reasons for why it was removed in first place and ignores that it shouldn't happen. > > I have another reason for wanting that ... I run a reasonably current HEAD > kernel (9.99.80 from mid Feb at the minute, though I can upgrade that as > soon as there's a reason) but a fairly old userland (8.99.12 from late Jan, > 2018) > > Upgrading the kernel without upgrading userland is supposed to be supported. Are you really arguing that non-essential functionality should be kept in the kernel just because it was once present? That doesn't strike me as very useful at all... Joerg