The flag NETIF_F_HW_SUM is being misused. The definition says that the device
is capable of checksumming any packet. When in fact from usage it seems to
imply that the device is capable of doing IPV6 as well as IPV4.

Some devices like 8139too do "fake checksum offloading" because they always 
have to copy
the packet.

Some devices like via-rhine, don't really checksum but if they see 
CHECKSUM_PARTIAL then they
copy. This is bogus, they should just let higher layer do checksum/copy.

Devices like e1000, and bnx2 are broken because they assume only TCP/UDP and 
IPV4/IPV6. 
The definition of the flag says other protocols should work, but they probably 
send the
hardware into a state of confusion.

A few devices take a offset, starting point, and insertion point. This looks 
like
the correct model. But no upper layer protocols other than IPV4/IPV6 can do 
checksum
offload at present, so it seems moot.

IMHO the correct solution would be to get rid if NETIF_F_HW_SUM and make a new 
flag
NETIF_F_IPV6_SUM. Devices that can checksum both could do 
NETIF_F_IPV4_SUM|NETI_F_IPV6_SUM.


-- 
Stephen Hemminger <[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to