I just commited this diff:

diff --git engine.c engine.c
index 147ba75d66f..986ee0a250e 100644
--- engine.c
+++ engine.c
@@ -1554,6 +1554,11 @@ void update_iface_ra(struct slaacd_iface *iface, struct 
radv *ra)
                        gen_dfr_proposal(iface, ra);
 
                LIST_FOREACH(prefix, &ra->prefixes, entries) {
+                       if (!prefix->autonomous || prefix->pltime == 0 ||
+                           prefix->vltime == 0 || prefix->pltime >
+                           prefix->vltime || prefix->prefix_len != 64 ||
+                           IN6_IS_ADDR_LINKLOCAL(&prefix->prefix))
+                               continue;
                        found = 0;
                        found_privacy = 0;
                        LIST_FOREACH(addr_proposal, &iface->addr_proposals,


in the pcap I could see router advertisements with a pltime of 0.
slaacd would generate a privacy address that immediately expired and
then generate a new one. and so on and on....

This is not yet the final fix, since we have the same problem
with pltime 1. Need to read a bit more what to do about this.

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

Reply via email to