From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Weekes Subject: Re: [PATCH] tools/hotplug/Linux: Ensure tap devices receive a dummy MAC address Date: Fri, 24 Dec 2010 16:17:07 -0800 Message-ID: <4D153803.8030908@nuclearfallout.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Campbell , "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org Ian, This appears to have the side effect on dom0 of also causing both eth0 and peth0 to have MAC fe:ff:ff:ff:ff:ff. I had to revert it to make networking work properly again for me. -John > # HG changeset patch > # User Ian Campbell > # Date 1291741813 0 > # Node ID ca87e5178d11a91092a5c0f8e192e6dcc41d9d45 > # Parent 5e4a8db26d5addf1cb73d6d2310101e67d96c7ba > tools/hotplug/Linux: Ensure tap devices receive a dummy MAC address. > > If a tap device is not given an explicit MAC address it will generate > one randomly. > > The behaviour of the Linux bridge is to pickup the lowest MAC address > of any port for use in for ARP, STP etc. If the tap device's randomly > generated MAC address happens to be the lowest then this can cause all > manner of strange networking glitches in both domain 0 and guests when > the bridge suddenly takes over from the previously used MAC address. > > We choose FE:FF:FF:FF:FF:FF as it the numerically largest > non-broadcast address. This ensures that the physical NIC device's > port will have the lowest MAC address and therefore be the one picked > up by the bridge. > > vif devices already have a MAC address of FE:FF:FF:FF:FF:FF set by > netback already but there is no harm in forcing it a second time in > the hotplug script. > > tap devices are added by the "add" event and therefore we should call > setup_bridge_port then as well as for "online" which is caused by vif > devices. > > Signed-off-by: Ian Campbell > > diff -r 5e4a8db26d5a -r ca87e5178d11 tools/hotplug/Linux/vif-bridge > --- a/tools/hotplug/Linux/vif-bridge Mon Dec 06 15:23:49 2010 +0000 > +++ b/tools/hotplug/Linux/vif-bridge Tue Dec 07 17:10:13 2010 +0000 > @@ -91,6 +91,7 @@ case "$command" in > ;; > > add) > + setup_bridge_port "$dev" > add_to_bridge "$bridge" "$dev" > ;; > esac > diff -r 5e4a8db26d5a -r ca87e5178d11 tools/hotplug/Linux/xen-network-common.sh > --- a/tools/hotplug/Linux/xen-network-common.sh Mon Dec 06 15:23:49 2010 +0000 > +++ b/tools/hotplug/Linux/xen-network-common.sh Tue Dec 07 17:10:13 2010 +0000 > @@ -86,6 +86,12 @@ setup_bridge_port() { > # take interface down ... > ip link set ${dev} down > > + # Initialise a dummy MAC address. We choose the numerically > + # largest non-broadcast address to prevent the address getting > + # stolen by an Ethernet bridge for STP purposes. > + # (FE:FF:FF:FF:FF:FF) > + ip link set ${dev} address fe:ff:ff:ff:ff:ff > + > # ... and configure it > ip addr flush ${dev} > } > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel