[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [LINUX] ipv6: Disable addrconf on Xen bridge device
Hi: Back in June 2006 an attempt was made to disable IPv6 addrconf so that the Xen bridge device does not compete with eth0 in performing IPv6 address configuration. Unfortunately it was incomplete which meant that IPv6 autoconfiguration was still a hit and miss. For now the easiest way to disable IPv6 addrconf is to lower the MTU as follows. [LINUX] ipv6: Disable addrconf on Xen bridge device The ipv6-no-autoconf patch didn't disable IPv6 addrconf completely. This means that the Xen bridge device still interfered with normal IPv6 operation by engaging the IPv6 network with a bogus MAC address. For details please refer to https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=200360 The following patch completely disables IPv6 on the Xen bridge device by temporarily setting the MTU to a value less than the minimum allowed for IPv6. Upstream will provide a cleaner way to disable IPv6 addrconf in future, possibly in the form of a proc sysctl. Of course if the Xen loopback device is removed it would render this change unnecessary. Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- diff -r 4fc6ffff2ac5 -r 65fe67290bbc patches/linux-2.6.16.33/series --- a/patches/linux-2.6.16.33/series Sun Dec 31 12:26:42 2006 +0000 +++ b/patches/linux-2.6.16.33/series Tue Jan 02 13:30:59 2007 +1100 @@ -9,7 +9,6 @@ fix-hz-suspend.patch fix-hz-suspend.patch fix-ide-cd-pio-mode.patch i386-mach-io-check-nmi.patch -ipv6-no-autoconf.patch net-csum.patch net-gso-0-base.patch net-gso-1-check-dodgy.patch diff -r 4fc6ffff2ac5 -r 65fe67290bbc tools/examples/xen-network-common.sh --- a/tools/examples/xen-network-common.sh Sun Dec 31 12:26:42 2006 +0000 +++ b/tools/examples/xen-network-common.sh Tue Jan 02 13:30:59 2007 +1100 @@ -117,7 +117,12 @@ create_bridge () { ip link set ${bridge} arp off ip link set ${bridge} multicast off fi + + # A small MTU disables IPv6 (and therefore IPv6 addrconf). + mtu=$(ip link show ${bridge} | sed -n 's/.* mtu \([0-9]\+\).*/\1/p') + ip link set ${bridge} mtu 68 ip link set ${bridge} up + ip link set ${bridge} mtu ${mtu:-1500} } # Usage: add_to_bridge bridge dev diff -r 4fc6ffff2ac5 -r 65fe67290bbc patches/linux-2.6.16.33/ipv6-no-autoconf.patch --- a/patches/linux-2.6.16.33/ipv6-no-autoconf.patch Sun Dec 31 12:26:42 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -diff -pruN ../orig-linux-2.6.16.29/net/ipv6/addrconf.c ./net/ipv6/addrconf.c ---- ../orig-linux-2.6.16.29/net/ipv6/addrconf.c 2006-09-12 19:02:10.000000000 +0100 -+++ ./net/ipv6/addrconf.c 2006-09-19 13:59:11.000000000 +0100 -@@ -2471,6 +2471,7 @@ static void addrconf_dad_start(struct in - spin_lock_bh(&ifp->lock); - - if (dev->flags&(IFF_NOARP|IFF_LOOPBACK) || -+ !(dev->flags&IFF_MULTICAST) || - !(ifp->flags&IFA_F_TENTATIVE)) { - ifp->flags &= ~IFA_F_TENTATIVE; - spin_unlock_bh(&ifp->lock); -@@ -2555,6 +2556,7 @@ static void addrconf_dad_completed(struc - if (ifp->idev->cnf.forwarding == 0 && - ifp->idev->cnf.rtr_solicits > 0 && - (dev->flags&IFF_LOOPBACK) == 0 && -+ (dev->flags & IFF_MULTICAST) && - (ipv6_addr_type(&ifp->addr) & IPV6_ADDR_LINKLOCAL)) { - struct in6_addr all_routers; - _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |