# type read to determine if the device is ioemu
#============================================================================
-
dir=$(dirname "$0")
. "$dir/vif-common.sh"
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
ipcmd='add'
cmdprefix=''
;;
- offline)
+ offline|remove)
do_without_error ifdown ${vif}
ipcmd='del'
cmdprefix='do_without_error'
# 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
+ ${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."
-if [ "$command" == "online" ]
-then
- success
-fi
+case "$command" in
+ online|add)
+ success
+ ;;
+esac