Peter Memishian wrote:
> > As far as address up/down goes, my take is that (a) the operating system
> > will need to have this concept internally to support DAD
>
> Why is that?
> I see no problem having IFF_DUPLICATE (which maps to the duplicate value
> in IpAddressStatusTC) to mean that the address isn't usable.
My point is that as far as an application is concerned, an address may not
be usable. The significant cost is in managing the notion of such a
state, and not in whether IFF_UP or IFF_DUPLICATE has to be checked to
determine it (though IFF_DUPLICATE is even more peculiar to Solaris).
freebsd has a SIOCGIFAFLAG_IN6 ioctl which ifconfig uses for status and
it reports the "duplicated" string if IN6_IFF_DUPLICATED is set. There
is also a IN6_IFF_NOTREADY which includes duplicated and tentative.
There isn't an equivalent for it for IPv4 in freebsd.
And I don't see applications checking those flags other than check for
IN6_IFF_ANYCAST in sendmail source.
But I'm not sure how much the applications need to check. The kernel can
refuse to bind() a socket to a duplicated address and not respond to ARP
for it.
That can be done without messing with IFF_UP, and I guess it solves the
problem for most applications.
> Let last sentence made made me laugh. I hope you don't consider the
> current behavior of the stack in this respect the gold standard.
Of course not -- but we also must not have a mismatch between our core
APIs and the way the system actually operates. That is, if we're going to
make fundamental changes to the way the system behaves, that needs to be
reflected in the inner workings of the stack too. If making those stack
changes are out-of-scope for Brussels II, then I think we'll make things
worse.
I'm merely arguing that we shouldn't expose the strange inner workings
of the stack that we want to fix. That allows us to fix them later. If
we expose them then they are a lot harder to fix down the road.
How does the MIB represent an address that's failed DAD -- and why
wouldn't the same representation suffice here?
See the string "duplicated" in RFC 4293. That matches relatively closely
what is in freebsd, but the MIB has that status for IPv4 and IPv6.
But the MIB doesn't have a notion of up/down for an address, hence the
mismatch with current Solaris behavior.
Also, the MIB doesn't specify what the local API is for applications
which want to find out the status of an address.
Erik
_______________________________________________
networking-discuss mailing list
[email protected]