* Add qemu-ifup script that depends on the device model script and
[invirt/packages/invirt-xen-config.git] / files / etc / xen / scripts / vif-sipbroute
index be2b93e..5cd0a88 100755 (executable)
@@ -3,6 +3,7 @@
 
 
 
 
 
 
+
 #============================================================================
 # /etc/xen/vif-route
 #
 #============================================================================
 # /etc/xen/vif-route
 #
@@ -24,6 +25,7 @@
 # V6PREFIX  prefix of v6 address to use
 # Note that the v6 support is kind of broken because there's not really a way to populate the v6 prefix
 # This script will set up proxy arp  for any ip addresses that are being routed
 # V6PREFIX  prefix of v6 address to use
 # Note that the v6 support is kind of broken because there's not really a way to populate the v6 prefix
 # This script will set up proxy arp  for any ip addresses that are being routed
+# type read to determine if the device is ioemu
 
 #============================================================================
 
 
 #============================================================================
 
@@ -31,12 +33,13 @@ dir=$(dirname "$0")
 . "$dir/vif-common.sh"
 
 main_ip=$(dom0_ip)
 . "$dir/vif-common.sh"
 
 main_ip=$(dom0_ip)
+dev=${dev:-${vif}}
 
 case "$command" in
     online)
 
 case "$command" in
     online)
-        ifconfig ${vif} ${main_ip} netmask 255.255.255.255 up
-        echo 1 >/proc/sys/net/ipv4/conf/${vif}/proxy_arp
-       echo 1 >/proc/sys/net/ipv4/conf/${vif}/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 
         ipcmd='add'
         cmdprefix=''
         ;;
         ipcmd='add'
         cmdprefix=''
         ;;
@@ -52,26 +55,28 @@ esac
 
 v6prefix=${v6prefix:-}
 v6prefix=$(xenstore_read_default "$XENBUS_PATH/v6prefix" "$v6prefix")
 
 v6prefix=${v6prefix:-}
 v6prefix=$(xenstore_read_default "$XENBUS_PATH/v6prefix" "$v6prefix")
-
-if [ "${ip}" ] ; then
+vif_type=$(xenstore_read_default "$XENBUS_PATH/type" "viffront")
+if [  ${vif_type} != "ioemu"  -o  x${qemu_online} = xyes ] ; then
+    if [ "${ip}" ] ; then
     # If we've been given a list of IP addresses, then add routes from dom0 to
     # the guest using those addresses.
     # 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 ${vif} src ${main_ip}
-      arpspoof -i eth0 ${addr}&
-      sleep 5
-      kill %arpspoof
-    done 
-fi
-
-if [ x${v6prefix} != x ] ; then
-    sed -e "s/@interface@/${vif}/" -e "s+@prefix@+${v6prefix}+" /etc/xen/radvd.conf.template >/var/run/radvd.conf.${vif}
-    ${cmdprefix} ip -6 addr  ${ipcmd}  fe80::/64 scope link  dev ${vif} 
-    if [ $1 = online ] ; then
-       radvd  -u radvd -C /var/run/radvd.conf.${vif} -p /var/run/radvd/radvd.pid.${vif}
+       for addr in ${ip} ; do
+           ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip}
+           arpspoof -i eth0 -t 18.181.0.1 ${addr}&
+           sleep 5
+           kill %arpspoof
+       done 
     fi
     fi
-    ${cmdprefix} ip -6 route ${ipcmd} ${v6prefix} dev ${vif} 
+
+    if [ x${v6prefix} != x ] ; then
+       sed -e "s/@interface@/${dev}/" -e "s+@prefix@+${v6prefix}+" /etc/xen/radvd.conf.template >/var/run/radvd.conf.${vif}
+       ${cmdprefix} ip -6 addr  ${ipcmd}  fe80::/64 scope link  dev ${dev} 
+       if [ $1 = online ] ; then
+           radvd  -u radvd -C /var/run/radvd.conf.${vif} -p /var/run/radvd/radvd.pid.${vif}
+       fi
+       ${cmdprefix} ip -6 route ${ipcmd} ${v6prefix} dev ${dev} 
     fi
     fi
+fi
 
 handle_iptable
 
 
 handle_iptable