From: Mike Manning <mmann...@brocade.com>
Date: Thu, 18 Aug 2016 14:39:40 +0100

> If DAD fails with accept_dad set to 2, global addresses and host routes
> are incorrectly left in place. Even though disable_ipv6 is set,
> contrary to documentation, the addresses are not dynamically deleted
> from the interface. It is only on a subsequent link down/up that these
> are removed. The fix is not only to set the disable_ipv6 flag, but
> also to call addrconf_ifdown(), which is the action to carry out when
> disabling IPv6. This results in the addresses and routes being deleted
> immediately. The DAD failure for the LL addr is determined as before
> via netlink, or by the absence of the LL addr (which also previously
> would have had to be checked for in case of an intervening link down
> and up). As the call to addrconf_ifdown() requires an rtnl lock, the
> logic to disable IPv6 when DAD fails is moved to addrconf_dad_work().
 ...
> Signed-off-by: Mike Manning <mmann...@brocade.com>

Applied, thanks.

Reply via email to