[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [DNA] when to rerun DAD



Thomas Narten wrote:

> IMO, we may want to think about having a separate discussion about
> "when to run DAD". The blanket "rerun DAD at all times there is some
> doubt" strikes me as overkill. For example, why rerun DAD if one has
> been disconnected only 10 seconds? or 30? Maybe we should if we've
> been disconnected for an hour (but then, do we need to bother with
> DNA?).  Also, why rerun DAD if one has generated an address using the
> IEEE Identifier (and one has run DAD on it before)? That is, different
> types of addresses have different "probability of possible collision"
> risks in terms of other hosts attempting to use such addresses.

There are two things related things in this space, and I think you touch 
on the one that needs discussion.
But for completeness...

When DNA receives a link up event, then it doesn't know whether it is 
re-attaching to the same link or attaching to a different link.
Thus it makes sense to be conservative and mark the addresses as 
optimistic, and send any RS with the TSLLAO option.
Should the host determine from the RA that it has moved, then it should 
proceed with the optimistic DAD logic to send the DAD NS and wait for 1 
second.

The reason for the above is that if we require that a host do DAD when 
it powers up the first time due to some feel for the probability of 
collisions, then moving to a different link has the same probability of 
collisions. Thus we can revise this part of DNA/DAD interaction *if* we 
find that the probability of collisions is different in the non-DNA case 
of powering up the device.

The case (which I think is what you have above) of reconnecting to the 
same link is actually tricker, and is part of the (wireless) continuing 
from low packet loss to high packet loss and then loosing the attachment 
to the link.
But independently of how long such an outage is, and whether we take 
packet loss percentage into account or not, we can do a first order 
approximation that other hosts (with potentially conflicting addresses) 
are unlikely to arrive at the link and do their DAD while the host 
doesn't receive the DAD probes. (This is different than in the movement 
case, when there might be a very large population of hosts on the new 
link, any one of which could have a duplicate.)

Thus I think the time, when re-attaching to a different link, that needs 
to pass before the host should send a new DAD probe can be longer than 1 
second.

I wonder if we could benefit from some practical experiments (e.g., on 
802.11) for how long it takes from the host seeing 100% packet loss 
until it declares the link down. If this time is commonly 10-30 seconds 
with current implementations we presumably need to take this into account.


    Erik