On 06/03/17(Mon) 23:26, Alexander Bluhm wrote:
> On Mon, Mar 06, 2017 at 01:12:12PM +0100, Martin Pieuchot wrote:
> > Diff below should solve that by resetting the 'asked' counter and allow
> > our NDP code to generate a new NS. Just like the delete command does.
>
> arptfree() calls arpinvalidate() unconditionally. So I think we
> should always call nd6_invalidate() here.
That should work too.
Index: netinet6/nd6.c
===================================================================
RCS file: /cvs/src/sys/netinet6/nd6.c,v
retrieving revision 1.205
diff -u -p -r1.205 nd6.c
--- netinet6/nd6.c 3 Mar 2017 08:01:59 -0000 1.205
+++ netinet6/nd6.c 7 Mar 2017 13:06:13 -0000
@@ -748,6 +748,8 @@ nd6_free(struct rtentry *rt, int gc)
splsoftassert(IPL_SOFTNET);
+ nd6_invalidate(rt);
+
/*
* we used to have pfctlinput(PRC_HOSTDEAD) here.
* even though it is not harmful, it was not really necessary.