There's a difference in behavior between IPv4 and IPv6 addresses assigned to a network interface: when the link is dropped, as with "ip link set down dev eth0", IPv4 addresses are retained, but IPv6 addresses are flushed. If the link is brought up again, IPv4 addresses can immediately be used to pass traffic, but IPv6 addresses must be assigned.
Is this a bug, or by design? If by design, where can I find this explicitly documented?
One co-worker has argued that it's a bug, to be fixed in an upcoming kernel; another has argued that it is by design, as IPv6 assumes dynamic addressing. I've found identical behavior in several different Linux distributions and different kernel versions, so I'm nearly certain that this is by design, but I want to find documentation, as in a citation from an RFC, to settle the matter.
If there's a workaround that forces the retention of manually-assigned IPv6 addresses, that'd be useful to know as well.