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
|