On 08/06/16 00:00, Stuart Henderson wrote:
> An update on this.
>
> Looking at flags after a hint from phrased - they're not setting the
> on-link flag (intentionally, to prevent flooding multicast NDs over the
> wlan, which makes sense) so it's hitting the XXX case in nd6_rtr.c which
> replaces lifetimes with 0.
But since Nov 2000, IPv6 autoconf address deletion is independent from
prefix lifetimes. So I believe this check can go.
Index: netinet6/nd6_rtr.c
===================================================================
RCS file: /cvs/src/sys/netinet6/nd6_rtr.c,v
retrieving revision 1.140
diff -u -p -r1.140 nd6_rtr.c
--- netinet6/nd6_rtr.c 5 Jul 2016 10:17:14 -0000 1.140
+++ netinet6/nd6_rtr.c 8 Aug 2016 10:33:02 -0000
@@ -1249,19 +1249,6 @@ prelist_update(struct nd_prefix *new, st
goto end; /* we should just give up in this case. */
}
- /*
- * XXX: from the ND point of view, we can ignore a prefix
- * with the on-link bit being zero. However, we need a
- * prefix structure for references from autoconfigured
- * addresses. Thus, we explicitly make sure that the prefix
- * itself expires now.
- */
- if (newpr->ndpr_raf_onlink == 0) {
- newpr->ndpr_vltime = 0;
- newpr->ndpr_pltime = 0;
- in6_init_prefix_ltimes(newpr);
- }
-
pr = newpr;
}