[net 0/2] rxfh with custom RSS fixes

From: Joe Damato
Date: Sun Jul 23 2023 - 11:07:31 EST


Greetings:

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.

The patches include the relevant fixes tags, as I think both commits are
fixing previous code, but if this change is preferred for net-next I can
resend.

Thanks.

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 | 23 +++++-
.../ethernet/mellanox/mlx5/core/en/rx_res.h | 5 +-
.../mellanox/mlx5/core/en_fs_ethtool.c | 33 +++++---
net/ethtool/ioctl.c | 75 ++++++++++---------
4 files changed, 84 insertions(+), 52 deletions(-)

--
2.25.1