netdev
[Top] [All Lists]

PATCH: IPv6: 2.4.2/3 autoconfiguration sometimes didn't work

To: <netdev@xxxxxxxxxxx>
Subject: PATCH: IPv6: 2.4.2/3 autoconfiguration sometimes didn't work
From: Pekka Savola <pekkas@xxxxxxxxxx>
Date: Tue, 24 Apr 2001 11:32:19 +0300 (EEST)
Sender: owner-netdev@xxxxxxxxxxx
Hello all,

Autoconfiguration seems to work after 'ifdown eth0 ; ifup eth0', if you
apply USAGI patch:

http://www.linux-ipv6.org/cvsweb/usagi/kernel/linux24/net/ipv6/addrconf.c.diff?r1=1.1&r2=1.2

( I applied this on top of RHL71 kernel, with core/neighbour.c changes,
but the latter shouldn't affect this )

That is:

---
===================================================================
RCS file: /cvsroot/usagi/usagi/kernel/linux24/net/ipv6/addrconf.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- usagi/kernel/linux24/net/ipv6/addrconf.c    2000/08/25 02:29:26     1.1
+++ usagi/kernel/linux24/net/ipv6/addrconf.c    2000/09/01 08:56:22     1.2
@@ -6,7 +6,7 @@
  *     Pedro Roque             <roque@xxxxxxxxxxx>
  *     Alexey Kuznetsov        <kuznet@xxxxxxxxxxxxx>
  *
- *     $Id: addrconf.c,v 1.1 2000/08/25 02:29:26 yoshfuji Exp $
+ *     $Id: addrconf.c,v 1.2 2000/09/01 08:56:22 sekiya Exp $
  *
  *     This program is free software; you can redistribute it and/or
  *      modify it under the terms of the GNU General Public License
@@ -282,8 +282,6 @@
        if ((idev = __in6_dev_get(dev)) == NULL) {
                if ((idev = ipv6_add_dev(dev)) == NULL)
                        return NULL;
-               if (dev->flags&IFF_UP)
-                       ipv6_mc_up(idev);
        }
        return idev;
 }
@@ -1179,6 +1177,8 @@
                return;
        }

+       ipv6_mc_up(idev);
+
        ifp = ipv6_add_addr(idev, &addr, 128, IFA_HOST, IFA_F_PERMANENT);
        if (ifp) {
                spin_lock_bh(&ifp->lock);
@@ -1217,6 +1217,8 @@
        if (idev == NULL)
                return;

+       ipv6_mc_up(idev);
+
 #ifdef CONFIG_IPV6_EUI64
        memset(&addr, 0, sizeof(struct in6_addr));

@@ -1255,6 +1257,7 @@
                printk(KERN_DEBUG "init sit: add_dev failed\n");
                return;
        }
+       ipv6_mc_up(idev);

        sit_add_v4_addrs(idev);
---

Please verify if this helps for others?

If so, can the modification be checked if it's good, and if so,
integrated?

HTH,
-- 
Pekka Savola                  "Tell me of difficulties surmounted,
Netcore Oy                    not those you stumble over and fall"
Systems. Networks. Security.   -- Robert Jordan: A Crown of Swords


<Prev in Thread] Current Thread [Next in Thread>
  • PATCH: IPv6: 2.4.2/3 autoconfiguration sometimes didn't work, Pekka Savola <=