[ipv6] Perform SLAAC only during autoconfiguration
authorMichael Brown <mcb30@ipxe.org>
Fri, 15 Jul 2016 14:49:24 +0000 (15:49 +0100)
committerMichael Brown <mcb30@ipxe.org>
Fri, 15 Jul 2016 14:58:47 +0000 (15:58 +0100)
commitc53a209a4253a99a18fe3a9330fd85c9ce2b91a6
tree1ffb519a20c7ce61b164579513a3ec50fc2528b2
parent517d2340317245d88d8261d9d28e38c32abab63b
[ipv6] Perform SLAAC only during autoconfiguration

We currently perform IPv6 stateless address autoconfiguration (SLAAC)
in response to any router advertisement with the relevant flags set.
This can result in the local IPv6 source address changing midway
through a TCP connection, since our connections bind only to a local
port number and do not store a local network address.

In addition, this behaviour for SLAAC is inconsistent with that for
DHCPv4 and stateful DHCPv6, both of which will be performed only as a
result of an explicit autoconfiguration action (e.g. via the default
autoboot sequence, or the "ifconf" command).

Fix by ignoring router advertisements arriving outside the context of
an ongoing autoconfiguration attempt.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/net/ndp.c