From a232176c5a0e6fb54e993eb8d457f9e007f52ac8 Mon Sep 17 00:00:00 2001 From: Quentin Smith Date: Mon, 27 Dec 2010 01:21:26 -0500 Subject: [PATCH] Fix the fucking TSO bug! Also, fix our ARP replies while we are at it. --- debian/changelog | 11 +++++++++++ vif-invirtroute | 9 ++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 5d8decf..693f2de 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +invirt-xen-config (0.0.31) unstable; urgency=low + + * Only run arpspoof when NICs are brought online (this potentially fixes + a race condition that occurs when migrating VMs) + * Remove the advertised gso-tcpv4 feature from VIFs which causes the + guest to incorrectly believe that Xen supports TCP segmentation + offload. This supercedes our previous fix of disabling TSO in guest + kernels. + + -- Quentin Smith Mon, 27 Dec 2010 01:19:58 -0500 + invirt-xen-config (0.0.30) unstable; urgency=low * Support debian-installer based autoinstallation. diff --git a/vif-invirtroute b/vif-invirtroute index c76a95e..4663664 100755 --- a/vif-invirtroute +++ b/vif-invirtroute @@ -35,6 +35,7 @@ case "$command" in 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 + xenstore-write "$XENBUS_PATH/feature-gso-tcpv4" 0 if [ x${qemu_online} != xyes ]; then ethtool -K ${dev} tx off fi @@ -55,9 +56,11 @@ if [ ${vif_type} != "ioemu" -o x${qemu_online} = xyes ] ; then # the guest using those addresses. for addr in ${ip} ; do ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip} - arpspoof -i $(invirt-getconf xen.iface) -t 18.181.0.1 ${addr}& - sleep 5 - kill %arpspoof + if [ "$command" == "online" ]; then + arpspoof -i $(invirt-getconf xen.iface) -t 18.181.0.1 ${addr}& + sleep 5 + kill %arpspoof + fi done fi fi -- 1.7.9.5