[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] Network Checksum Removal

On Wednesday 25 May 2005 04:40 pm, Keir Fraser wrote:
> On 25 May 2005, at 22:35, Jon Mason wrote:
> > The problem with the bridge device is that all traffic generated in
> > dom0 will
> > be software checksummed, regardless of whether it needs to be or not.
> > In
> > Xen's case, it will software checksum all traffic to domU, even though
> > the
> > vif device is advertising NETIF_F_NO_CSUM.
> >
> > This is because the stack doesn't see the features of the children
> > devices of
> > the bridge, only the features of the bridge device itself.  I created
> > a quick
> > hack to work around this, and started the discussion on the Linux
> > netdev
> > mailing list about how to fix the problem.  From this discussion, a
> > patch was
> > created which does most of what we want, but needs to be slightly
> > modified to
> > be optimal for Xen.  I will post the Xen optimized patch as soon as I
> > have it
> > done.
> But we no longer bring up an IP interface on the bridge device -- we
> use veth0 instead, which advertises NETIF_F_IP_CSUM.

The bridge device still is the device that the stack sees, and uses its 
features to determine what to do during transmission.  If you monitor the 
skb->ip_summed flag going into netif_be_start_xmit(), you will see that it is 
0 (meaning that the stack did the checksum in software).  Now if you add the 
following patch to the bridging device, you will notice that ip_summed is now 
being used.

--- net/bridge/br_device.c.orig 2005-05-13 11:23:02.552751024 -0500
+++ net/bridge/br_device.c      2005-05-13 11:25:39.155943720 -0500
@@ -101,4 +101,5 @@ void br_dev_setup(struct net_device *dev
        dev->tx_queue_len = 0;
        dev->set_mac_address = NULL;
        dev->priv_flags = IFF_EBRIDGE;
+       dev->features = NETIF_F_HW_CSUM | NETIF_F_SG;

This patch oversimplifies what needs to be done, but it provides the general 
idea and speedup that we are looking for.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.