[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160429222735.12418.61229.stgit@ahduyck-xeon-server>
Date: Fri, 29 Apr 2016 15:43:02 -0700
From: Alexander Duyck <aduyck@...antis.com>
To: talal@...lanox.com, netdev@...r.kernel.org,
michael.chan@...adcom.com, davem@...emloft.net, galp@...lanox.com,
ogerlitz@...lanox.com, eranbe@...lanox.com
Subject: [net-next PATCH v2 0/9] Fix Tunnel features and enable GSO partial
for several drivers
This patch series is meant to allow us to get the best performance possible
for Mellanox ConnectX-3/4 and Broadcom NetXtreme-C/E adapters in terms of
VXLAN and GRE tunnels.
The first few patches address issues I found when just trying to collect
performance numbers. Specifically I was unable to get rates of any more
than 1 or 2 Mb/s if I was using a tunnel that ran over IPv6. In addition I
found a few other items related to GSO_PARTIAL and the TSO_MANGLEID that
needed to be addressed.
The next 4 patches go through and enable GSO_PARTIAL for VXLAN tunnels that
have an outer checksum enabled, and then enable IPv6 support where I can.
One outstanding issue is that I wasn't able to get offloads working with
outer IPv6 headers on mlx4. However that wasn't a feature that was enabled
before so it isn't technically a regression, however I believe Engineers
from Mellanox said they would look into it since they thought it should be
supported.
The last patch enables GSO_PARTIAL for VXLAN and GRE tunnels on the bnxt
driver. One piece of feedback I received on the patch was that the
hardware has globally set IPv6 UDP tunnels to always have the checksum
field computed. I plan to work with Broadcom to get that addressed so that
we only populate the checksum field if it was requested by the network
stack.
v2: Rebased patches off of latest changes to the mlx4/mlx5 drivers.
Added bnxt driver patch as I received feedback on the RFC.
There are outstanding issues that need to be addressed, however they
were present before these patches so it isn't as if they introduce a
regression. In addition gains can be easily seen so there should be no
issue with applying the driver patches while the IPv6 mlx4 and bnxt
issues are being researched.
---
Alexander Duyck (9):
net: Disable segmentation if checksumming is not supported
gso: Only allow GSO_PARTIAL if we can checksum the inner protocol
net: Fix netdev_fix_features so that TSO_MANGLEID is only available with TSO
vxlan: Add checksum check to the features check function
mlx4: Add support for UDP tunnel segmentation with outer checksum offload
mlx4: Add support for inner IPv6 checksum offloads and TSO
mlx5e: Add support for UDP tunnel segmentation with outer checksum offload
mlx5e: Fix IPv6 tunnel checksum offload
bnxt: Add support for segmentation of tunnels with outer checksums
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 9 ++++-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 38 +++++++++++++++++----
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 15 +++++++-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 10 ++++--
include/linux/if_ether.h | 5 +++
include/net/vxlan.h | 4 ++
net/core/dev.c | 6 +++
net/core/skbuff.c | 6 ++-
8 files changed, 74 insertions(+), 19 deletions(-)
--
Powered by blists - more mailing lists