Re: [RFC PATCH 3/5] bnx2x: Add support for segmentation of tunnels with outer checksums
From: Alexander Duyck <hidden>
Date: 2016-08-24 15:39:39
On Wed, Aug 24, 2016 at 5:33 AM, Yuval Mintz [off-list ref] wrote:
quoted
This patch assumes that the bnx2x hardware will ignore existing IPv4/v6 header fields for length and checksum as well as the length and checksum fields for outer UDP and GRE headers. I have no means of testing this as I do not have any bnx2x hardware but thought I would submit it as an RFC to see if anyone out there wants to test this and see if this does in fact enable this functionality allowing us to to segment tunneled frames that have an outer checksum. Signed-off-by: Alexander Duyck <redacted>So it took me some [well, a lot] time to reach this, but I've finally gave it a try. I saw a performance boost with the partial support - Throughput for vxlan tunnels with and without udpcsum were almost identical after this, whereas without this patch the udpcsum prevented GSO and a TCP/IPv4 connection on top of it got roughly half the throughput. However, I did encounter one oddity I couldn't explain - After I've disabled tx-udp_tnl-segmentation via ethtool on the base interface, got left with: tx-gso-partial: on tx-udp_tnl-segmentation: off tx-udp_tnl-csum-segmentation: on When I ran traffic over both vxlan tunnels the one with the udpcsum was still Passing gso aggregations to base device to transmit [and the throughput was same as before], where's the tunnel without the udpcsum showed only MTU-sized packets reaching the base interface for transmission [which is what I've expected] Any idea why that happened?
So the way they are implemented tx-udp_tnl-segmentation and tx-udp_tnl-csum-segmentation are treated as two separate features. The kernel currently gives them the same treatment as NETIF_F_TSO and NETIF_F_TSO6. You can disable one and the other still functions. Now if you disable tx-gso-partial you should expect to see tx-udp_tnl-csum-segmentation be disabled because it is dependent on the partial GSO offload. - Alex