[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTi=PiB_oCvaFzQpUNhgV8qsn9d-jy_ejGdbOTzQe@mail.gmail.com>
Date: Mon, 25 Oct 2010 17:21:08 -0700
From: Jesse Gross <jesse@...ira.com>
To: Ben Hutchings <bhutchings@...arflare.com>
Cc: David Miller <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [PATCH net-next-2.6] net: Fix some corner cases in dev_can_checksum()
On Fri, Oct 22, 2010 at 7:12 AM, Ben Hutchings
<bhutchings@...arflare.com> wrote:
> dev_can_checksum() incorrectly returns true in these cases:
>
> 1. The skb has both out-of-band and in-band VLAN tags and the device
> supports checksum offload for the encapsulated protocol but only with
> one layer of encapsulation.
> 2. The skb has a VLAN tag and the device supports generic checksumming
> but not in conjunction with VLAN encapsulation.
>
> Rearrange the VLAN tag checks to avoid these.
>
> Signed-off-by: Ben Hutchings <bhutchings@...arflare.com>
If we assume that cards cannot handle offloading for double tagged
packets, which is obviously the most conservative approach, we
probably also need to change the checks for TSO/SG. There's no issue
with extracting the protocol from the right header but we might assume
that the card can handle double tag offloading when it can't. For
both TSO/SG we check if there is either an in-band tag or out-of-band
tag and use dev->vlan_features if that is the case. Maybe we need to
handle it in software if it is double tagged.
On the other hand, I don't know whether it's true that cards can't
handle offloading for packets tagged in both manners. I suppose that
it depends on where the offloading and tagging are in the pipeline.
For example, when it comes to SG I doubt that the cards care about
vlan tags much at all.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists