On 2016-09-17 03:31, Robert Elz wrote:
Date: Fri, 16 Sep 2016 23:37:40 +0100
From: Roy Marples <r...@marples.name>
Message-ID: <03a78e8605c842d9d032ee3ed3a59...@mail.marples.name>
| > The IN_IFF_TENTATIVE handling just breaks lots of old code.
|
| You can disable it by setting the appropriate sysctl to zero.
|
| $ sysctl -a | grep dad
| net.inet.ip.dad_count = 3
| net.inet6.ip6.dad_count = 1
That isn't disabling the IFF_TENTATIVE handling, it is dosabling DAD,
which
is a different thing entirely.
The end result should be the same.
As I understand it, the reason for the change in 1.261 was to prevent
sending
from invalid addresses (which is a good thing) - but tentative
addresses are
not invalid, they just have not been proved valid yet, which is a
different
thing entirely. 99.9% (or more) of all tentative addresses are valid,
and
will remain valid, and there's no good reason not to send from them
(what's
more, it is require that we do so in the case that the same address is
being
claimed by 2 nodes at the same time - both are performing DAD together,
in
order for DAD to work properly - the ARP/ND requests must be answered.)
I think I would drop the assumption that tentative addresses are
invalid,
and just allow sending from them. But if that isn't done, then UDP
should
be treated the same as TCP, and packets just "lost" rather than
returning
a transmit error.
When I first proposed it offlist, we thought the current implementation
was the correct thing.
Here is a patch to just do as you suggest.
http://www.netbsd.org/~roy/ip_output_tentative.patch
Can the OP test it and see if NFS booting then works?
Roy