Skip to content
  • Thomas Haller's avatar
    device: fix IPv6 DAD to re-check whether address really failed DAD · 6d8a6365
    Thomas Haller authored
    In device_ipx_changed() we remember the addresses for which it appears
    that DAD failed. Later, on an idle handler, we process them during
    queued_ip6_config_change().
    
    Note that nm_plaform_ip6_address_sync() might very well decide to remove
    some or all addresses and re-add them immidiately later. It might do so,
    to get the address priority/ordering right. At that point, we already
    emit platform signals that the device disappeared, and track them in
    dad6_failed_addrs.
    
    Hence, later during queued_ip6_config_change() we must check again
    whether the address is really not there and not still doing DAD.
    Otherwise, we wrongly claim that DAD failed and remove the address,
    generate a new one, and the same issue might happen again.
    6d8a6365