cargo test seems flaky locally when there are many (e.g. 10) IPv6 interfaces on the same subnet. Sometimes IPv4 addr is not resolved in time, or the IPv4 packet seems to be lost.
One reason this could happen is that currently we always send out query packets and announcement packets on every address if they are all on the same subnet. This can cause a small "packet storm" if there are many addrs on the same subnet, especially link-local addrs.
In reality, we only need to send these packets once for one subnet, except the retransmissions per the RFC. This diff is to avoid such redundant packets on the same subnet.
cargo test
seems flaky locally when there are many (e.g. 10) IPv6 interfaces on the same subnet. Sometimes IPv4 addr is not resolved in time, or the IPv4 packet seems to be lost.One reason this could happen is that currently we always send out query packets and announcement packets on every address if they are all on the same subnet. This can cause a small "packet storm" if there are many addrs on the same subnet, especially link-local addrs.
In reality, we only need to send these packets once for one subnet, except the retransmissions per the RFC. This diff is to avoid such redundant packets on the same subnet.