On Mon, Nov 30, 2020 at 05:46:57PM +0100, Florian Obser wrote:
> On Sun, Nov 29, 2020 at 12:20:31PM +0100, Florian Obser wrote:
> > 
> > Let rad(8) handle all rdomains in a single daemon, similar to previous
> > work in slaacd.
> >     
> > Suggested / requested by tb who showed me previous work by reyk which
> > unfortunately predated my work in slaacd and followed a different
> > pattern.
> > 
> > There has already been a fair bit of testing and input from tb on
> > previous iterations.
> > 
> > More tests, OKs?
> > 
> 
> Updated diff after some testing by tb@
> 
> - our AF_ROUTE socket needs a RTABLE_ANY ROUTE_TABLEFILTER otherwise
>   we don't see link-local addresses arriving in rdomains != 0.
> - check if the arriving link-local address is tentative (or a
>   douplicate) and ignore it because we can't use it and sendmsg failes.
>   Monitor RTM_CHGADDRATTR messages to see when the link-local address
>   becomes valid

Thank you so much for this!

I think I have done all the testing I can for my use case and this now
looks all good. I think this covers most, if not all, code paths added
by this diff. I did as thorough a review as I can, being foreign to this
part of the tree.

ok tb

I only have one tiny comment:

> +++ frontend.c

[...]

> @@ -746,15 +743,29 @@ get_link_state(char *if_name)
>       return ls;
>  }
>  
> +int
> +get_ifrdomain(char *if_name)
> +{
> +     struct ifreq             ifr;
> +
> +     (void) strlcpy(ifr.ifr_name, if_name, sizeof(ifr.ifr_name));

I'm not sure why you explicitly indicate that you don't want to check,
while you don't so in interface_has_linklocal_address() (both copy the
same name to an array of length IFNAMSIZ).

Reply via email to