Subject: Re: [PATCH net] enic: fix rx skb checksum

From: Jiri Benc <[email-masked]>
Date: Fri, 19 Dec 2014 11:07:32 +0100

On Thu, 18 Dec 2014 09:39:27 -0800, Jay Vosburgh wrote:
> 	I've actually been looking into this "hw csum failure" (as it
> appears with OVS and VXLAN) the last couple of days, and, at least on
> the sky2 hardware I have, the problem doesn't appear to be the
> hardware's CHECKSUM_COMPLETE checksumming.

With the enic driver, the problem _is_ the hardware checksumming.

While debugging the "hw csum failure" messages, I verified the checksum
returned by the hardware directly in the driver (in
enic_rq_indicate_buf). It appears that for some packets (most notably
ICMP ones), the hardware returns 0xffff. I did not see any other wrong
value, in other words, the returned checksum was either correct, or
0xffff.

I have no idea whether the hardware verified the checksum for the
0xffff case and is just not returning the checksum or whether such
packets come completely unverified.

As for Govindarajulu's patch, I believe we can do better. First, its
description does not match what I'm seeing (I see correct checksum
provided in most cases) and second, the driver should provide
CHECKSUM_COMPLETE whenever possible; and it seems to be possible.

> 	I've also not tested it on enic hardware.  Govindarajulu, would
> you be able to test this against the unmodified enic driver and see if
> it resolves the problem for you?

I'm quite sure it does not, the skb->csum field is incorrect even
before the skb enters the stack.

 Jiri

-- 
Jiri Benc