From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Niehusmann Subject: [PATCH] enable ethtool for xen loopback interface (network in dom0) Date: Sat, 14 Jan 2006 12:58:03 +0100 Message-ID: <20060114115803.GA5863@gondor.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org 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 --- 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 #include #include +#include #include 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