Jan Niehusmann
2006-Jan-14 11:58 UTC
[Xen-devel] [PATCH] enable ethtool for xen loopback interface (network in dom0)
Hi, this patch allows disabling the tx checksums on the xen loopback interface, which is used for the virtual interfaces of dom0 instead of netfront/netback. I need to issue ethtool -K eth0 tx off to work around a bad checksum problem, which has been reported for domUs a few months ago. I''m bridging dom0''s eth0 to a domU where I do NAT to a different virtual interface. Without this change, I get lots of packets with bad checksums. Jan Signed-off-by: Jan Niehusmann <jan@gondor.com> --- linux-2.6.12/drivers/xen/netback/loopback.c.orig 2006-01-14 12:46:42.000000000 +0100 +++ linux-2.6.12/drivers/xen/netback/loopback.c 2006-01-14 11:59:49.000000000 +0100 @@ -27,6 +27,7 @@ #include <linux/inetdevice.h> #include <linux/etherdevice.h> #include <linux/skbuff.h> +#include <linux/ethtool.h> #include <net/dst.h> static int nloopbacks = 8; @@ -122,6 +123,12 @@ /*dev->mtu = 16*1024;*/ } +static struct ethtool_ops network_ethtool_ops +{ + .get_tx_csum = ethtool_op_get_tx_csum, + .set_tx_csum = ethtool_op_set_tx_csum, +}; + static int __init make_loopback(int i) { struct net_device *dev1, *dev2; @@ -141,6 +148,8 @@ dev1->features |= NETIF_F_NO_CSUM; dev2->features |= NETIF_F_IP_CSUM; + SET_ETHTOOL_OPS(dev2, &network_ethtool_ops); + /* * Initialise a dummy MAC address for the ''dummy backend'' interface. We * choose the numerically largest non-broadcast address to prevent the _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Greg Brackley
2006-Jan-24 09:11 UTC
Re: [Xen-devel] [PATCH] enable ethtool for xen loopback interface(network in dom0)
----- Original Message ----- From: "Jan Niehusmann" <jan@gondor.com>> this patch allows disabling the tx checksums on the xen loopback > interface, which is used for the virtual interfaces of dom0 instead > of netfront/netback.Great patch thanks. I finally got around to upgrading a box to Xen 3.0 testing (changeset 8269:a91e4dcf629d), applied the patch and it works a dream. I can now bridge the xen0 domain onto a VLAN interface with a pro/1000 MT server NIC (82546EB). I am using Fedora Core 4 (which doesn''t appear to support -K ethtool options in the initscripts), and have added a /sbin/ifup-local script [1] to the system. This in conjunction with adding ''ETHTOOL_KOPTS="tx off"'' [2] to my interface configuration works well (Note: I use the standard initscripts to bring up the networking, and not ''network-bridge''). I''m concerned that there may be some performance hit with software checksumming, but I''m happy with working rather than faster. Getting jumbo frame support in the domU''s would be probably be a better performance boost. Greg :-) -- [1] /sbin/ifup-local #!/bin/sh cd /etc/sysconfig/network-scripts . network-functions [ -f ../network ] && . ../network CONFIG="ifcfg-${1}" source_config if [ -n "$ETHTOOL_KOPTS" ] ; then REALDEVICE=${DEVICE%%:*} /sbin/ethtool -K ${REALDEVICE} $ETHTOOL_KOPTS fi [2] /etc/sysconfig/network-scripts/ifcfg-veth0 DEVICE=veth0 TYPE=Ethernet ONBOOT=yes IPADDR=192.168.133.1 NETMASK=255.255.255.0 MACADDR=00:aa:00:00:85:01 NOZEROCONF=yes GATEWAY=192.168.133.254 ARP=yes ETHTOOL_KOPTS="tx off" _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel