Commit f7c4f6a0 authored by Kristian Slavov's avatar Kristian Slavov Committed by Chris Wright

[PATCH] Address autoconfiguration does not work after device down/up cycle

If you set network interface down and up again, the IPv6 address
autoconfiguration does not work. 'ip addr' shows that the link-local
address is in tentative state. We don't even react to periodical router
advertisements.

During NETDEV_DOWN we clear IF_READY, and we don't set it back in
NETDEV_UP. While starting to perform DAD on the link-local address, we
notice that the device is not in IF_READY, and we abort autoconfiguration
process (which would eventually send router solicitations).
Acked-by: default avatarJuha-Matti Tapio <jmtapio@verkkotelakka.net>
Acked-by: default avatarYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent dcfd28a9
...@@ -2164,6 +2164,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, ...@@ -2164,6 +2164,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
dev->name); dev->name);
break; break;
} }
if (idev)
idev->if_flags |= IF_READY;
} else { } else {
if (!netif_carrier_ok(dev)) { if (!netif_carrier_ok(dev)) {
/* device is still not ready. */ /* device is still not ready. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment