On Thu, Dec 10, 2015 at 7:49 AM, Edward Cree <ec...@solarflare.com> wrote: > On 09/12/15 18:00, Tom Herbert wrote: >> That is not at all true. If the stack has set up VXLAN RCO and the > device >> decides to set the inner checksum itself then the checksum > will be bad. >> The checksum interface is very specific please read it > carefully >> (sk_buff.h), if the driver/device thinks it is smarter > than the stack and >> tries to do set its own rules on how checksum > offload works then things >> will eventually break miserably. > > Ok, I've passed that on to the guy working on this bit of the driver. > > It looks like the best way to support the capabilities of NICs like the > sfc 8000 series (which can fill in two checksums but uses packet parsing > to figure out what to do, rather than using csum start/offset) is: > > (core / stack) > * add NETIF_F_HW_2CSUMS (or whatever name) > * squeeze a second csum start/offset pair into the skb (as you mention, > we can do this without size increase) > * Modify (Tx) CHECKSUM_PARTIAL generation to use both csum pairs. > Presumably by creating CHECKSUM_PARTIAL_2CSUMS to indicate that the > second csum pair has been filled in as well. > > (sfc driver) > * declare 2CSUMS support > * on getting an skb for xmit, check whether the csum pairs match what our > eeevil packet parsing hardware will do. If so, send it with appropriate > csum offload settings (we can enable/disable inner & outer offload > independently, with TX Option descriptors). Any csum pair that doesn't > match, we call skb_checksum_help to do it in software, and tell the > hardware not to do that one. >
> Does that seem reasonable? It sounds like potentially interesting work. You'll probably want my patches that provider helper functions that allow a driver to verify that it can offload a checksum. We'll have to update those also to allow two checksums. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html