Thread (13 messages) flat view 13 messages, 5 authors, 2012-03-14

RE: [net 2/2] net: fix a bug of dropping FCoE frames when disabling tx ip checksum

From: Zou, Yi <hidden>
Date: 2012-03-14 20:48:04

On Wed, 2012-03-14 at 00:01 -0700, Jeff Kirsher wrote:
quoted
From: Yi Zou <redacted>

Fix a bug when using 'ethtool -K ethx tx off' to turn off tx ip
checksum,
quoted
FCoE CRC offload should not be impacte. The skb_checksum_help() is
needed
quoted
only if it's not FCoE traffic for ip checksum, regardless of ethtool
toggling
quoted
the tx ip checksum on or off.
[...]

I think the bug is more fundamental, and it's not just a problem for
FCoE.  For the transmit path, the ip_summed values are specified as:

[forwarding]
 *	COMPLETE: the most generic way. Device supplied checksum of _all_
 *	    the packet as seen by netif_rx in skb->csum.
 *	    NOTE: Even if device supports only some protocols, but
 *	    is able to produce some skb->csum, it MUST use COMPLETE,
 *	    not UNNECESSARY.

[locally-generated]
 *	NONE: skb is checksummed by protocol or csum is not required.
 *
 *	PARTIAL: device is required to csum packet as seen by
hard_start_xmit
 *	from skb->csum_start to the end and to record the checksum
 *	at skb->csum_start + skb->csum_offset.

It's implicit that the checksum algorithm for CHECKSUM_PARTIAL is as
specified for TCP/IP.  So none of those is correct when a different
algorithm is to be used.

It seems like we may need another ip_summed value for FCoE, SCTP or any
other protocol with a different checksum algorithm that will be
offloaded.  Maybe allow CHECKSUM_UNNECESSARY to be used on output in
that case?

Ben.
CHECKSUM_UNNECESSARY sounds good to me, if it's ok to be used on the tx path
as well, I think so but I am not 100% sure, it'd resolve this for fcoe and sctp
like, downside is it's a bigger change that requires corresponding changes in
these protocol driver stacks as well.

yi
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help