net: ipv6: allow explicitly choosing optimistic addresses
authorErik Kline <ek@google.com>
Wed, 4 Feb 2015 11:01:23 +0000 (20:01 +0900)
committerDavid S. Miller <davem@davemloft.net>
Thu, 5 Feb 2015 23:37:41 +0000 (15:37 -0800)
commitc58da4c659803ac12eca5275c8a7064222adb4c7
tree2be9074469ec18c9b99ba52065fe0b69d2bf3789
parent233c96fc077d310772375d47522fb444ff546905
net: ipv6: allow explicitly choosing optimistic addresses

RFC 4429 ("Optimistic DAD") states that optimistic addresses
should be treated as deprecated addresses.  From section 2.1:

   Unless noted otherwise, components of the IPv6 protocol stack
   should treat addresses in the Optimistic state equivalently to
   those in the Deprecated state, indicating that the address is
   available for use but should not be used if another suitable
   address is available.

Optimistic addresses are indeed avoided when other addresses are
available (i.e. at source address selection time), but they have
not heretofore been available for things like explicit bind() and
sendmsg() with struct in6_pktinfo, etc.

This change makes optimistic addresses treated more like
deprecated addresses than tentative ones.

Signed-off-by: Erik Kline <ek@google.com>
Acked-by: Lorenzo Colitti <lorenzo@google.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/addrconf.h
net/ipv6/addrconf.c
net/ipv6/ndisc.c