Symmetric OR-XOR RSS hash
From: | Gal Pressman <gal-AT-nvidia.com> | |
To: | "David S. Miller" <davem-AT-davemloft.net>, Jakub Kicinski <kuba-AT-kernel.org> | |
Subject: | [PATCH net-next v4 0/5] Symmetric OR-XOR RSS hash | |
Date: | Thu, 20 Feb 2025 13:34:30 +0200 | |
Message-ID: | <20250220113435.417487-1-gal@nvidia.com> | |
Cc: | <netdev-AT-vger.kernel.org>, Eric Dumazet <edumazet-AT-google.com>, Paolo Abeni <pabeni-AT-redhat.com>, Simon Horman <horms-AT-kernel.org>, Jonathan Corbet <corbet-AT-lwn.net>, Tony Nguyen <anthony.l.nguyen-AT-intel.com>, Przemek Kitszel <przemyslaw.kitszel-AT-intel.com>, Andrew Lunn <andrew+netdev-AT-lunn.ch>, "Tariq Toukan" <tariqt-AT-nvidia.com>, Edward Cree <ecree.xilinx-AT-gmail.com>, Ahmed Zaki <ahmed.zaki-AT-intel.com>, <linux-doc-AT-vger.kernel.org>, Gal Pressman <gal-AT-nvidia.com> | |
Archive-link: | Article |
Add support for a new type of input_xfrm: Symmetric OR-XOR. Symmetric OR-XOR performs hash as follows: (SRC_IP | DST_IP, SRC_IP ^ DST_IP, SRC_PORT | DST_PORT, SRC_PORT ^ DST_PORT) Configuration is done through ethtool -x/X command. For mlx5, the default is already symmetric hash, this patch now exposes this to userspace and allows enabling/disabling of the feature. Changelog - v3->v4: https://lore.kernel.org/netdev/20250216182453.226325-1-ga... * Test adjustments (Jakub) v2->v3: https://lore.kernel.org/netdev/20250205135341.542720-1-ga... * Reorder fields in ethtool_ops (Jakub) * Add a selftest (Jakub) v1->v2: https://lore.kernel.org/all/20250203150039.519301-1-gal@n... * Fix wording in comments (Edward) Thanks, Gal Gal Pressman (5): ethtool: Symmetric OR-XOR RSS hash net/mlx5e: Symmetric OR-XOR RSS hash control selftests: drv-net: Make rand_port() get a port more reliably selftests: drv-net: Introduce a function that checks whether a port is available on remote host selftests: drv-net-hw: Add a test for symmetric RSS hash Documentation/networking/ethtool-netlink.rst | 2 +- Documentation/networking/scaling.rst | 14 ++- .../net/ethernet/intel/iavf/iavf_ethtool.c | 2 +- drivers/net/ethernet/intel/ice/ice_ethtool.c | 2 +- .../net/ethernet/mellanox/mlx5/core/en/rss.c | 13 ++- .../net/ethernet/mellanox/mlx5/core/en/rss.h | 4 +- .../ethernet/mellanox/mlx5/core/en/rx_res.c | 11 +-- .../ethernet/mellanox/mlx5/core/en/rx_res.h | 5 +- .../net/ethernet/mellanox/mlx5/core/en/tir.c | 2 +- .../net/ethernet/mellanox/mlx5/core/en/tir.h | 1 + .../ethernet/mellanox/mlx5/core/en_ethtool.c | 17 +++- include/linux/ethtool.h | 5 +- include/uapi/linux/ethtool.h | 4 + net/ethtool/ioctl.c | 8 +- .../testing/selftests/drivers/net/hw/Makefile | 1 + .../drivers/net/hw/rss_input_xfrm.py | 85 +++++++++++++++++++ tools/testing/selftests/net/lib/py/utils.py | 22 ++--- 17 files changed, 158 insertions(+), 40 deletions(-) create mode 100755 tools/testing/selftests/drivers/net/hw/rss_input_xfrm.py -- 2.40.1