mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
Allow 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. Signed-off-by: Jan Niehusmann <jan@gondor.com>
This commit is contained in:
1 parent
55d921d433
commit
31415c26f9
1 file changed
+9
@@ -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 @@ static void loopback_construct(struct net_device *dev, struct net_device *lo)
|
||||
/*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 @@ static int __init make_loopback(int i)
|
||||
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
|
||||
|
||||