On 28/08/2024 16:29, Sven Wiltink wrote:
Thanks for the quick response. I think it can be well defined when ipv6 conf
has been completed, but I'm lacking the C programming skills to implement it.

We should be able to define ipv6conf as finished when the following statements 
are true:
1) an RA has been received that pushed a prefix with slaac enabled
2) an RA has been received that advertises itself as default router (lifetime > 
0)

Once both are true, which can be achieved by the same packet, within the 
autoconf timeout we are done.
There is a problem however, the RA packet could trigger dhcpv6 if the O flag is 
set. In that case
autoconf is currently terminated when dhcp6 finished. In the new situation that 
isn't always true as dhcp6
could still be running before the other RA packet arrives. To prevent this both 
the processing of the RA
packets and the ending of dhcp6 should check if all the other parts of autoconf 
have been completed.
This means we could define it as finished when:

1) an RA has been received that pushed a prefix with slaac enabled
2) an RA has been received that advertises itself as default router (lifetime > 
0)
3) dhcpv6 was triggered and completed successfully

I'm not sure how this would work in the code or where to add the state, would 
like to hear
your thoughts.

It looks as though you are conceptualising those as AND conditions. Unfortunately, it's entirely possible that the network is configured without any SLAAC-enabled prefixes, so your suggested conditions would cause ipv6conf to never terminate on those networks.

Looking forward to your v2 idea.  :)

Thanks,

Michael

_______________________________________________
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo/ipxe-devel

Reply via email to