Subject: Re: sky2 hw csum failure

From: Stephen Hemminger <[email-masked]>
Date: Tue, 15 Nov 2011 09:45:16 -0800

On Tue, 15 Nov 2011 18:28:55 +0800
"Yan, Zheng" <[email-masked]> wrote:

> I re-tested the checksum code, both CHECKSUM_NONE and CHECKSUM_COMPLETE
> cases are OK. Maybe the bug is related to sky2.
> 
> Regards
> Yan, Zheng

There are three types of receive checksumming:
  1. Hardware does not do checksumming (CHECKSUM_NONE)
  2. Hardware validates checksum (CHECKSUM_UNNECESSARY)
  3. Hardware computes sum of bytes in skb (CHECKSUM_COMPLETE)

Most hardware does #2, but sky2 uses #3.
For the second case, the hardware does not look at headers but only
reports the one's complement value in ip_summed. It is up to the
protocol layers to adjust accordingly.  This means if data is removed
or added the checksum needs to be adjusted.