Hi,

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).

The following patch seems to get the work done. Patch is against 2.6.15.3.

BR,
--
Krisu
diff -Naur orig/net/ipv6/addrconf.c new/net/ipv6/addrconf.c
--- orig/net/ipv6/addrconf.c    2006-02-08 17:05:20.000000000 +0200
+++ new/net/ipv6/addrconf.c     2006-02-08 17:07:15.000000000 +0200
@@ -2164,6 +2164,10 @@
                                        dev->name);
                                break;
                        }
+
+                       if (idev) {
+                               idev->if_flags |= IF_READY;
+                       }
                } else {
                        if (!netif_carrier_ok(dev)) {
                                /* device is still not ready. */

Reply via email to