On Fri, Mar 24, 2017 at 03:29:28PM +0100, Martin Pieuchot wrote:
| I believe this is a regression introduced in r1.206 of netinet6/nd6.c.
That was a change made for a problem I reported, so I checked this new
diff too. Works for me (but I wasn't experiencing Sebastien's
problem).
Thanks Martin!
Paul
| It's wrong to call nd6_invalidate() at the beginning of nd6_free() since
| the default router selection logic check for the ND state of the entry.
|
| > [...]
| > On other amd64 host (which has same problem), it has followed the snapshot
| > upgrades:
| >
| > - OpenBSD 6.0-current (GENERIC.MP) #198: Mon Feb 27 09:18:18 MST 2017
| > - OpenBSD 6.0-current (GENERIC.MP) #204: Thu Mar 2 11:20:38 MST 2017
| > should have worked (#198 at least - not sure anymore for #204)
| >
| > - OpenBSD 6.1-beta (GENERIC.MP) #224: Thu Mar 9 18:50:15 MST 2017
| > - OpenBSD 6.1-beta (GENERIC.MP) #49: Wed Mar 22 04:40:48 MDT 2017
| > doesn't work some time
|
| The change I'm talking about has been committed the 8 of March, so it
| fits in your time frame.
|
| Could you tell me if the diff below solve the issue?
|
| Index: netinet6//nd6.c
| ===================================================================
| RCS file: /cvs/src/sys/netinet6/nd6.c,v
| retrieving revision 1.206
| diff -u -p -r1.206 nd6.c
| --- netinet6//nd6.c 8 Mar 2017 09:34:43 -0000 1.206
| +++ netinet6//nd6.c 24 Mar 2017 14:24:51 -0000
| @@ -748,8 +748,6 @@ 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.
| @@ -830,6 +828,8 @@ nd6_free(struct rtentry *rt, int gc)
| * a side effect (XXX).
| */
| next = TAILQ_NEXT(ln, ln_list);
| +
| + nd6_invalidate(rt);
|
| /*
| * Detach the route from the routing tree and the list of neighbor
|
--
>++++++++[<++++++++++>-]<+++++++.>+++[<------>-]<.>+++[<+
+++++++++++>-]<.>++[<------------>-]<+.--------------.[-]
http://www.weirdnet.nl/