RE: [PATCH net-next v5] cadence: Add LSO support.

From: Rafal Ozieblo
Date: Mon Nov 14 2016 - 08:03:37 EST


From: David Miller [mailto:davem@xxxxxxxxxxxxx]
Sent: 10 listopada 2016 18:01
To: Rafal Ozieblo
Cc: nicolas.ferre@xxxxxxxxx; netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH net-next v5]] cadence: Add LSO support.

From: Rafal Ozieblo <rafalo@xxxxxxxxxxx>
Date: Wed, 9 Nov 2016 13:41:02 +0000

> First, please remove the spurious closing bracket in your Subject line in future submittions.
>
>> + if (is_udp) /* is_udp is only set when (is_lso) is checked */
>> + /* zero UDP checksum, not calculated by h/w for UFO */
>> + udp_hdr(skb)->check = 0;
>
> This is really not ok.
>
> If UFO is in use it should not silently disable UDP checksums.
>
> If you cannot support UFO with proper checksumming, then you cannot enable support for that feature.

According Cadence Gigabit Ethernet MAC documentation:

"Hardware will not calculate the UDP checksum or modify the UDP checksum field. Therefore software
must set a value of zero in the checksum field in the UDP header (in the first payload buffer)
to indicate to the receiver that the UDP datagram does not include a checksum."

It is hardware requirement.