On 2021-12-26 19:43 UTC, [email protected] wrote:
> So my question is, is this expected behavior?  When the router advertisement 
> does not have a router and
> thus sets the router lifetime to 0 (as it should), should slaacd ignore 
> advertisement?  Or should
> it still configure an IP address?

It should still form an autoconf address, this is a bug in slaacd.

This should fix it. The diff only removes if (ra->router_lifetime != 0)

diff --git engine.c engine.c
index 81a06cc5528..7a2c11e1bc2 100644
--- engine.c
+++ engine.c
@@ -1749,14 +1749,13 @@ void update_iface_ra(struct slaacd_iface *iface, struct 
radv *ra)
 
        update_iface_ra_dfr(iface, ra);
 
-       if (ra->router_lifetime != 0)
-               LIST_FOREACH(prefix, &ra->prefixes, entries) {
-                       if (!prefix->autonomous || prefix->vltime == 0 ||
-                           prefix->pltime > prefix->vltime ||
-                           IN6_IS_ADDR_LINKLOCAL(&prefix->prefix))
-                               continue;
-                       update_iface_ra_prefix(iface, ra, prefix);
-               }
+       LIST_FOREACH(prefix, &ra->prefixes, entries) {
+               if (!prefix->autonomous || prefix->vltime == 0 ||
+                   prefix->pltime > prefix->vltime ||
+                   IN6_IS_ADDR_LINKLOCAL(&prefix->prefix))
+                       continue;
+               update_iface_ra_prefix(iface, ra, prefix);
+       }
 
        update_iface_ra_rdns(iface, ra);
 }


-- 
I'm not entirely sure you are real.

Reply via email to