aboutsummaryrefslogtreecommitdiffstats
path: root/tools/hotplug/Linux/vif-common.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/hotplug/Linux/vif-common.sh')
-rw-r--r--tools/hotplug/Linux/vif-common.sh15
1 files changed, 13 insertions, 2 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:-}