aboutsummaryrefslogtreecommitdiffstats
path: root/tools/hotplug
diff options
context:
space:
mode:
Diffstat (limited to 'tools/hotplug')
-rw-r--r--tools/hotplug/Linux/vif-common.sh15
-rw-r--r--tools/hotplug/Linux/xen-backend.rules2
2 files changed, 14 insertions, 3 deletions
diff --git a/tools/hotplug/Linux/vif-common.sh b/tools/hotplug/Linux/vif-common.sh
index c9c5d41da0..fff22bbf9d 100644
--- a/tools/hotplug/Linux/vif-common.sh
+++ b/tools/hotplug/Linux/vif-common.sh
@@ -85,12 +85,23 @@ elif [ "$type_if" = tap ]; then
: ${INTERFACE:?}
# Get xenbus_path from device name.
- # The name is built like that: "tap${domid}.${devid}".
- dev_=${dev#tap}
+ # The name is built like that: "vif${domid}.${devid}-emu".
+ dev_=${dev#vif}
+ dev_=${dev_%-emu}
domid=${dev_%.*}
devid=${dev_#*.}
XENBUS_PATH="/local/domain/0/backend/vif/$domid/$devid"
+ vifname=$(xenstore_read_default "$XENBUS_PATH/vifname" "")
+ if [ "$vifname" ]
+ then
+ vifname="${vifname}-emu"
+ if [ "$command" == "add" ] && ! ip link show "$vifname" >&/dev/null
+ then
+ do_or_die ip link set "$dev" name "$vifname"
+ fi
+ dev="$vifname"
+ fi
fi
ip=${ip:-}
diff --git a/tools/hotplug/Linux/xen-backend.rules b/tools/hotplug/Linux/xen-backend.rules
index 40f2658eb2..405387f1a9 100644
--- a/tools/hotplug/Linux/xen-backend.rules
+++ b/tools/hotplug/Linux/xen-backend.rules
@@ -13,4 +13,4 @@ KERNEL=="blktap-control", NAME="xen/blktap-2/control", MODE="0600"
KERNEL=="gntdev", NAME="xen/%k", MODE="0600"
KERNEL=="pci_iomul", NAME="xen/%k", MODE="0600"
KERNEL=="tapdev[a-z]*", NAME="xen/blktap-2/tapdev%m", MODE="0600"
-SUBSYSTEM=="net", KERNEL=="tap*", ACTION=="add", RUN+="/etc/xen/scripts/vif-setup $env{ACTION} type_if=tap"
+SUBSYSTEM=="net", KERNEL=="vif*-emu", ACTION=="add", RUN+="/etc/xen/scripts/vif-setup $env{ACTION} type_if=tap"