On Wed, Oct 7, 2015 at 9:07 PM, Tom Herbert <t...@herbertland.com> wrote: > On Wed, Oct 7, 2015 at 8:41 AM, Or Gerlitz <ogerl...@mellanox.com> wrote: >> On 10/6/2015 2:39 AM, Tom Herbert wrote:
>>> +static const struct skb_csum_offl_spec csum_offl_spec = { >>> + .ipv4_okay = 1, >>> + .ipv6_okay = 1, >>> + .encap_okay = 1, >>> + .tcp_okay = 1, >>> + .udp_okay = 1, >>> +}; >>> + [...] > Or, I would only give the mlnx support as an example. I think driver > owners would need to implement the specification for the their devices. sure, sorry to bother on that. >> Another constraint, is that when the device does support (say) TCP TX >> checksum offload for the inner packet they don't support UDP >> checksum offload for the outer packet. > We can add such things to the specification. One value I see in having > a common structure to describe the checksum capabilities is that > becomes a way to clearly document what is (and is not) supported by > devices. > btw, I don't quite understand your example. If a device does not > support UDP checksum there is a flag for that in the specification. But we do support UDP checksum generation for not-tunneled packets, so the specification should somehow capture this combination. > If the stack sends a TCP packet encapsulated in a UDP packet with UDP > checksum enabled, it will try to offload the UDP checksum and not the > TCP one. Not following... who is "it" in this sentence, the stack or the device? We don't advertise NETIF_F_GSO_UDP_TUNNEL_CSUM so for UDP tunning GSO-ed packets we should be fine. For non GSO... you say this works only b/c the default for the vxlan driver is to use zero udp checksum? > There is currently no interface to offload two checksums in > the same packet (in non-GRO at least) GRO? aren't we talking on xmit? > and with things like RCO we probably will never need that anyway. -- 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