[net-next v2 0/2] rxfh with custom RSS fixes

From: Joe Damato
Date: Tue Jul 25 2023 - 16:57:21 EST


Greetings:

Welcome to v2, now via net-next. No functional changes; only style
changes (see the summary below).

While attempting to get the RX flow hash key for a custom RSS context on
my mlx5 NIC, I got an error:

$ sudo ethtool -u eth1 rx-flow-hash tcp4 context 1
Cannot get RX network flow hashing options: Invalid argument

I dug into this a bit and noticed two things:

1. ETHTOOL_GRXFH supports custom RSS contexts, but ETHTOOL_SRXFH does
not. I moved the copy logic out of ETHTOOL_GRXFH and into a helper so
that both ETHTOOL_{G,S}RXFH now call it, which fixes ETHTOOL_SRXFH. This
is patch 1/2.

2. mlx5 defaulted to RSS context 0 for both ETHTOOL_{G,S}RXFH paths. I
have modified the driver to support custom contexts for both paths. It
is now possible to get and set the flow hash key for custom RSS contexts
with mlx5. This is patch 2/2.

See commit messages for more details.

Thanks.

v2:
- Rebased on net-next
- Adjusted arguments of mlx5e_rx_res_rss_get_hash_fields and
mlx5e_rx_res_rss_set_hash_fields to move rss_idx next to the rss
argument
- Changed return value of both mlx5e_rx_res_rss_get_hash_fields and
mlx5e_rx_res_rss_set_hash_fields to -ENOENT when the rss entry is
NULL
- Changed order of local variables in mlx5e_get_rss_hash_opt and
mlx5e_set_rss_hash_opt

Joe Damato (2):
net: ethtool: Unify ETHTOOL_{G,S}RXFH rxnfc copy
net/mlx5: Fix flowhash key set/get for custom RSS

.../ethernet/mellanox/mlx5/core/en/rx_res.c | 25 +++++--
.../ethernet/mellanox/mlx5/core/en/rx_res.h | 7 +-
.../mellanox/mlx5/core/en_fs_ethtool.c | 33 +++++---
net/ethtool/ioctl.c | 75 ++++++++++---------
4 files changed, 86 insertions(+), 54 deletions(-)

--
2.25.1