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 - v2->v3: https://lore.kernel.org/netdev/20250205135341.542720-1-gal@xxxxxxxxxx/ * Reorder fields in ethtool_ops (Jakub) * Add a selftest (Jakub) v1->v2: https://lore.kernel.org/all/20250203150039.519301-1-gal@xxxxxxxxxx/ * 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 | 77 +++++++++++++++++++ .../selftests/drivers/net/lib/py/load.py | 7 +- tools/testing/selftests/net/lib/py/utils.py | 22 +++--- 18 files changed, 155 insertions(+), 42 deletions(-) create mode 100755 tools/testing/selftests/drivers/net/hw/rss_input_xfrm.py -- 2.40.1