Mailing List Archive

[xen-unstable] tools/hotplug/Linux: only apply dummy MAC address to virtual devices.
# HG changeset patch
# User Ian Campbell <ian.campbell@citrix.com>
# Date 1294154762 0
# Node ID 959e87a1117f9dd172aff70d80adf7f6982877b1
# Parent a8d69de8eb315b3b18c8a86c4d1505f53b84a443
tools/hotplug/Linux: only apply dummy MAC address to virtual devices.

Avoid applying to the bridge and physical network device.

This should un-break dom0 networking in the old xend-creates-bridge
setup (problem introduced in 22493:937488219719).

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
tools/hotplug/Linux/network-bridge | 2 +-
tools/hotplug/Linux/vif-bridge | 4 ++--
tools/hotplug/Linux/vif2 | 2 +-
tools/hotplug/Linux/xen-network-common.sh | 22 ++++++++++++++++------
4 files changed, 20 insertions(+), 10 deletions(-)

diff -r a8d69de8eb31 -r 959e87a1117f tools/hotplug/Linux/network-bridge
--- a/tools/hotplug/Linux/network-bridge Tue Jan 04 11:32:20 2011 +0000
+++ b/tools/hotplug/Linux/network-bridge Tue Jan 04 15:26:02 2011 +0000
@@ -244,7 +244,7 @@ op_start () {
ip link set ${netdev} name ${pdev}
ip link set ${tdev} name ${bridge}

- setup_bridge_port ${pdev}
+ setup_physical_bridge_port ${pdev}

# Restore slaves
if [ -n "${slaves}" ]; then
diff -r a8d69de8eb31 -r 959e87a1117f tools/hotplug/Linux/vif-bridge
--- a/tools/hotplug/Linux/vif-bridge Tue Jan 04 11:32:20 2011 +0000
+++ b/tools/hotplug/Linux/vif-bridge Tue Jan 04 15:26:02 2011 +0000
@@ -81,7 +81,7 @@ fi

case "$command" in
online)
- setup_bridge_port "$dev"
+ setup_virtual_bridge_port "$dev"
add_to_bridge "$bridge" "$dev"
;;

@@ -91,7 +91,7 @@ case "$command" in
;;

add)
- setup_bridge_port "$dev"
+ setup_virtual_bridge_port "$dev"
add_to_bridge "$bridge" "$dev"
;;
esac
diff -r a8d69de8eb31 -r 959e87a1117f tools/hotplug/Linux/vif2
--- a/tools/hotplug/Linux/vif2 Tue Jan 04 11:32:20 2011 +0000
+++ b/tools/hotplug/Linux/vif2 Tue Jan 04 15:26:02 2011 +0000
@@ -23,7 +23,7 @@ case "$command" in
"online")
if [ "$bridge" != "-" ]
then
- setup_bridge_port "$vif"
+ setup_virtual_bridge_port "$vif"
add_to_bridge "$bridge" "$vif"
else
# Just let the normal udev rules for interfaces handle it.
diff -r a8d69de8eb31 -r 959e87a1117f tools/hotplug/Linux/xen-network-common.sh
--- a/tools/hotplug/Linux/xen-network-common.sh Tue Jan 04 11:32:20 2011 +0000
+++ b/tools/hotplug/Linux/xen-network-common.sh Tue Jan 04 15:26:02 2011 +0000
@@ -80,20 +80,30 @@ find_dhcpd_arg_file()
}

# configure interfaces which act as pure bridge ports:
-setup_bridge_port() {
+_setup_bridge_port() {
local dev="$1"
+ local virtual="$2"

# 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 || true
+ if [ $virtual -ne 0 ] ; then
+ # 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 || true
+ fi

# ... and configure it
ip addr flush ${dev}
+}
+
+setup_physical_bridge_port() {
+ _setup_bridge_port $1 0
+}
+setup_virtual_bridge_port() {
+ _setup_bridge_port $1 1
}

# Usage: create_bridge bridge

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog