Index: trunk/packages/sipb-xen-dom0/sipb-xen-dom0/debian/changelog
===================================================================
--- trunk/packages/sipb-xen-dom0/sipb-xen-dom0/debian/changelog	(revision 94)
+++ trunk/packages/sipb-xen-dom0/sipb-xen-dom0/debian/changelog	(revision 95)
@@ -1,2 +1,16 @@
+sipb-xen-dom0 (2.2) unstable; urgency=low
+
+  * Add qemu-ifup script that depends on the device model script and
+    invokes vif-sipbroute.    As a consequence, we don't really support
+    bridged hvms any more.  It's not clear how to get enough information
+    out of qemu to do this.
+  * Call arpspoof with 18.181.0.1's address.  This is unfortunate in two
+    ways.  First, if we renumber we'll need to update the script.  Second,
+    it is possible that someone on 18.181 besides the router may have an
+    address cached.  Unfortunately, it doesn't work right if we don't
+    send the spoofed arp directly to the router.
+
+ -- Sam Hartman <hartmans@debian.org>  Sun, 26 Aug 2007 18:57:17 -0400
+
 sipb-xen-dom0 (2.1) unstable; urgency=low
 
Index: trunk/packages/sipb-xen-dom0/sipb-xen-dom0/files/etc/xen/scripts/qemu-ifup
===================================================================
--- trunk/packages/sipb-xen-dom0/sipb-xen-dom0/files/etc/xen/scripts/qemu-ifup	(revision 95)
+++ trunk/packages/sipb-xen-dom0/sipb-xen-dom0/files/etc/xen/scripts/qemu-ifup	(revision 95)
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+
+echo -c 'config qemu network with xen bridge for '
+echo $*
+
+dev=$1
+qemu_online=yes
+XENBUS_PATH=/local/domain/0/backend/vif/${domid}/0
+vif=vif${domid}.0
+export vif qemu_online XENBUS_PATH dev 
+
+exec /etc/xen/scripts/vif-sipbroute online
Index: trunk/packages/sipb-xen-dom0/sipb-xen-dom0/files/etc/xen/scripts/vif-sipbroute
===================================================================
--- trunk/packages/sipb-xen-dom0/sipb-xen-dom0/files/etc/xen/scripts/vif-sipbroute	(revision 94)
+++ trunk/packages/sipb-xen-dom0/sipb-xen-dom0/files/etc/xen/scripts/vif-sipbroute	(revision 95)
@@ -1,3 +1,4 @@
 #!/bin/bash
+
 
 
@@ -25,4 +26,5 @@
 # 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
 
 #============================================================================
@@ -32,10 +34,11 @@
 
 main_ip=$(dom0_ip)
+dev=${dev:-${vif}}
 
 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=''
@@ -53,24 +56,26 @@
 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.
-    for addr in ${ip} ; do
-      ${cmdprefix} ip route ${ipcmd} ${addr} dev ${vif} src ${main_ip}
-      arpspoof -i eth0 ${addr}&
-      sleep 5
-      kill %arpspoof
-    done 
+	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
+
+    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
-
-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}
-    fi
-    ${cmdprefix} ip -6 route ${ipcmd} ${v6prefix} dev ${vif} 
-    fi
 
 handle_iptable
