projects
/
invirt/packages/invirt-xen-config.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix PVHVM networking
[invirt/packages/invirt-xen-config.git]
/
vif-invirtroute
diff --git
a/vif-invirtroute
b/vif-invirtroute
index
4663664
..
49a7e4c
100755
(executable)
--- a/
vif-invirtroute
+++ b/
vif-invirtroute
@@
-23,7
+23,6
@@
# type read to determine if the device is ioemu
#============================================================================
# type read to determine if the device is ioemu
#============================================================================
-
dir=$(dirname "$0")
. "$dir/vif-common.sh"
dir=$(dirname "$0")
. "$dir/vif-common.sh"
@@
-31,7
+30,7
@@
main_ip=$(dom0_ip)
dev=${dev:-${vif}}
case "$command" in
dev=${dev:-${vif}}
case "$command" in
- online)
+ online|add)
ifconfig ${dev} ${main_ip} netmask 255.255.255.255 up
echo 1 >/proc/sys/net/ipv4/conf/${dev}/proxy_arp
echo 1 >/proc/sys/net/ipv4/conf/${dev}/rp_filter
ifconfig ${dev} ${main_ip} netmask 255.255.255.255 up
echo 1 >/proc/sys/net/ipv4/conf/${dev}/proxy_arp
echo 1 >/proc/sys/net/ipv4/conf/${dev}/rp_filter
@@
-42,7
+41,7
@@
case "$command" in
ipcmd='add'
cmdprefix=''
;;
ipcmd='add'
cmdprefix=''
;;
- offline)
+ offline|remove)
do_without_error ifdown ${vif}
ipcmd='del'
cmdprefix='do_without_error'
do_without_error ifdown ${vif}
ipcmd='del'
cmdprefix='do_without_error'
@@
-55,18
+54,31
@@
if [ ${vif_type} != "ioemu" -o x${qemu_online} = xyes ] ; 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
# 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}
- if [ "$command" == "online" ]; then
- arpspoof -i $(invirt-getconf xen.iface) -t 18.181.0.1 ${addr}&
- sleep 5
- kill %arpspoof
+ if [ $ipcmd == "add" ]; then
+ case $dev in
+ vif*)
+ metric="metric 2"
+ ;;
+ tap*)
+ metric="metric 1"
+ ;;
+ esac
fi
fi
+ ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip} $metric
+ case "$command" in
+ online|add)
+ arpspoof -i $(invirt-getconf xen.iface) -t 18.181.0.1 ${addr}&
+ sleep 5
+ kill %arpspoof
+ ;;
+ esac
done
fi
fi
log debug "Successful vif-route $command for $vif."
done
fi
fi
log debug "Successful vif-route $command for $vif."
-if [ "$command" == "online" ]
-then
- success
-fi
+case "$command" in
+ online|add)
+ success
+ ;;
+esac