• M
    network: wait for DAD to finish for bridge IPv6 addresses · 0f7436ca
    Maxim Perevedentsev 提交于
    commit db488c79 assumed that dnsmasq would complete IPv6 DAD before
    daemonizing, but in reality it doesn't wait, which creates problems
    when libvirt's bridge driver sets the matching "dummy tap device" to
    IFF_DOWN prior to DAD completing.
    
    This patch waits for DAD completion by periodically polling the kernel
    using netlink to check whether there are any IPv6 addresses assigned
    to bridge which have a 'tentative' state (if there are any in this
    state, then DAD hasn't yet finished). After DAD is finished, execution
    continues. To avoid an endless hang in case something was wrong with
    the kernel's DAD, we wait a maximum of 5 seconds.
    0f7436ca
bridge_driver.c 170.1 KB