Some follow-up fixes for IFID collision handling in IPv6CP.
authorstsp <stsp@openbsd.org>
Tue, 7 Jan 2014 16:34:05 +0000 (16:34 +0000)
committerstsp <stsp@openbsd.org>
Tue, 7 Jan 2014 16:34:05 +0000 (16:34 +0000)
commitc93b5f8a98fc0a4acee6dba25c8feea32417056e
tree9ddfb9dfbe2bfc42c99f3a2383cfc9da37f2a429
parent330a54f4ec7f6da604dbc1acec1d8b5d3f34851d
Some follow-up fixes for IFID collision handling in IPv6CP.

Really change the link-local address in the unlikely event of an IFID
collision, instead of going into an infinite conf-nak loop with the peer.

To make the netinet6 code use the IPv6CP IFID in a new link-local address,
in6_ifattach_linklocal() must accept a provided IFID.  Replace the unused
'altifp' parameter with a new 'ifid' parameter for this purpose.

Always use the latest suggested address in IPv6CP replies, even if
the task to update the interface's address hasn't run yet.
Also, clear the ifindex (KAME hack) in addresses sent during IPv6CP.

ok mpi
sys/net/if_spppsubr.c
sys/netinet6/in6.c
sys/netinet6/in6_ifattach.c
sys/netinet6/in6_ifattach.h