|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2] tools/hotpug: only attempt to call 'ip route' if there is valid command
From: Paul Durrant <pdurrant@xxxxxxxxxx>
The vif-route script should only call 'ip route' when 'ipcmd' has been
set, otherwise it will fail due to an incorrect command string.
This patch also adds routes for 'tap' (i.e. emulated) devices as well as
'vif' (i.e. PV) devices by making use of the route metric. Emulated
devices are used by HVM guests until they are unplugged, at which point the
PV device becomes active. Thus 'tap' devices should get a higher priority
(i.e. lower numbered) metric than 'vif' devices.
There is also one small whitespace fix.
NOTE: Empirically offline/online commands relate to 'vif' devices, and
add/remove commands relate to 'tap' devices. However, this patch
treats them equally and uses ${type_if} to distinguish.
Signed-off-by: Paul Durrant <pdurrant@xxxxxxxxxx>
---
Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Cc: Wei Liu <wei.liu2@xxxxxxxxxx>
---
tools/hotplug/Linux/vif-route | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
mode change 100644 => 100755 tools/hotplug/Linux/vif-route
diff --git a/tools/hotplug/Linux/vif-route b/tools/hotplug/Linux/vif-route
old mode 100644
new mode 100755
index c149ffc..e71acae
--- a/tools/hotplug/Linux/vif-route
+++ b/tools/hotplug/Linux/vif-route
@@ -22,12 +22,16 @@ dir=$(dirname "$0")
main_ip=$(dom0_ip)
case "${command}" in
+ add)
+ ;&
online)
ifconfig ${dev} ${main_ip} netmask 255.255.255.255 up
echo 1 >/proc/sys/net/ipv4/conf/${dev}/proxy_arp
ipcmd='add'
cmdprefix=''
;;
+ remove)
+ ;&
offline)
do_without_error ifdown ${dev}
ipcmd='del'
@@ -35,11 +39,23 @@ case "${command}" in
;;
esac
-if [ "${ip}" ] ; then
+case "${type_if}" in
+ tap)
+ metric=1
+ ;;
+ vif)
+ metric=2
+ ;;
+ *)
+ fatal "Unrecognised interface type ${type_if}"
+ ;;
+esac
+
+if [ "${ipcmd}" ] ; then
# If we've been given a list of IP addresses, then add routes from dom0 to
# the guest using those addresses.
for addr in ${ip} ; do
- ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip}
+ ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip} metric
${metric}
done
fi
@@ -50,5 +66,5 @@ call_hooks vif post
log debug "Successful vif-route ${command} for ${dev}."
if [ "${command}" = "online" ]
then
- success
+ success
fi
--
2.7.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |