* [PATCH net v3 0/2] bnxt: Fix failure to report RSS context in ntuple rule
@ 2024-11-27 22:58 Daniel Xu
2024-11-27 22:58 ` [PATCH net v3 1/2] bnxt_en: ethtool: Supply ntuple rss context action Daniel Xu
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Daniel Xu @ 2024-11-27 22:58 UTC (permalink / raw)
To: pavan.chebbi, netdev, kalesh-anakkur.purayil, linux-kselftest,
michael.chan, linux-kernel, kuba, martin.lau, ecree.xilinx
Cc: kernel-team
This patchset fixes a bug where bnxt driver was failing to report that
an ntuple rule is redirecting to an RSS context. First commit is the
fix, then second commit extends selftests to detect if other/new drivers
are compliant with ntuple/rss_ctx API.
=== Changelog ===
Changes from v2:
* Rebase to net instead of net-next
* Make regex work with ethtool output changes
Changes from v1:
* Add selftest in patch 2
Daniel Xu (2):
bnxt_en: ethtool: Supply ntuple rss context action
selftests: drv-net: rss_ctx: Add test for ntuple rule
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 8 ++++++--
tools/testing/selftests/drivers/net/hw/rss_ctx.py | 12 +++++++++++-
2 files changed, 17 insertions(+), 3 deletions(-)
--
2.46.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH net v3 1/2] bnxt_en: ethtool: Supply ntuple rss context action
2024-11-27 22:58 [PATCH net v3 0/2] bnxt: Fix failure to report RSS context in ntuple rule Daniel Xu
@ 2024-11-27 22:58 ` Daniel Xu
2024-11-27 22:58 ` [PATCH net v3 2/2] selftests: drv-net: rss_ctx: Add test for ntuple rule Daniel Xu
2024-11-30 22:20 ` [PATCH net v3 0/2] bnxt: Fix failure to report RSS context in " patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Daniel Xu @ 2024-11-27 22:58 UTC (permalink / raw)
To: andrew+netdev, pabeni, pavan.chebbi, kalesh-anakkur.purayil,
davem, michael.chan, edumazet, kuba, martin.lau, ecree.xilinx
Cc: netdev, linux-kernel, kernel-team
Commit 2f4f9fe5bf5f ("bnxt_en: Support adding ntuple rules on RSS
contexts") added support for redirecting to an RSS context as an ntuple
rule action. However, it forgot to update the ETHTOOL_GRXCLSRULE
codepath. This caused `ethtool -n` to always report the action as
"Action: Direct to queue 0" which is wrong.
Fix by teaching bnxt driver to report the RSS context when applicable.
Fixes: 2f4f9fe5bf5f ("bnxt_en: Support adding ntuple rules on RSS contexts")
Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
---
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
index f1f6bb328a55..d87681d71106 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
@@ -1187,10 +1187,14 @@ static int bnxt_grxclsrule(struct bnxt *bp, struct ethtool_rxnfc *cmd)
}
}
- if (fltr->base.flags & BNXT_ACT_DROP)
+ if (fltr->base.flags & BNXT_ACT_DROP) {
fs->ring_cookie = RX_CLS_FLOW_DISC;
- else
+ } else if (fltr->base.flags & BNXT_ACT_RSS_CTX) {
+ fs->flow_type |= FLOW_RSS;
+ cmd->rss_context = fltr->base.fw_vnic_id;
+ } else {
fs->ring_cookie = fltr->base.rxq;
+ }
rc = 0;
fltr_err:
--
2.46.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH net v3 2/2] selftests: drv-net: rss_ctx: Add test for ntuple rule
2024-11-27 22:58 [PATCH net v3 0/2] bnxt: Fix failure to report RSS context in ntuple rule Daniel Xu
2024-11-27 22:58 ` [PATCH net v3 1/2] bnxt_en: ethtool: Supply ntuple rss context action Daniel Xu
@ 2024-11-27 22:58 ` Daniel Xu
2024-11-30 22:20 ` [PATCH net v3 0/2] bnxt: Fix failure to report RSS context in " patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Daniel Xu @ 2024-11-27 22:58 UTC (permalink / raw)
To: andrew+netdev, pabeni, davem, edumazet, shuah, kuba, michael.chan,
martin.lau, pavan.chebbi, ecree.xilinx
Cc: netdev, linux-kselftest, linux-kernel, kernel-team
Extend the rss_ctx test suite to test that an ntuple action that
redirects to an RSS context contains that information in `ethtool -n`.
Otherwise the output from ethtool is highly deceiving. This test helps
ensure drivers are compliant with the API.
Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
---
| 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
--git a/tools/testing/selftests/drivers/net/hw/rss_ctx.py b/tools/testing/selftests/drivers/net/hw/rss_ctx.py
index 0b49ce7ae678..ca8a7edff3dd 100755
--- a/tools/testing/selftests/drivers/net/hw/rss_ctx.py
+++ b/tools/testing/selftests/drivers/net/hw/rss_ctx.py
@@ -3,7 +3,8 @@
import datetime
import random
-from lib.py import ksft_run, ksft_pr, ksft_exit, ksft_eq, ksft_ne, ksft_ge, ksft_lt
+import re
+from lib.py import ksft_run, ksft_pr, ksft_exit, ksft_eq, ksft_ne, ksft_ge, ksft_lt, ksft_true
from lib.py import NetDrvEpEnv
from lib.py import EthtoolFamily, NetdevFamily
from lib.py import KsftSkipEx, KsftFailEx
@@ -96,6 +97,13 @@ def _send_traffic_check(cfg, port, name, params):
f"traffic on inactive queues ({name}): " + str(cnts))
+def _ntuple_rule_check(cfg, rule_id, ctx_id):
+ """Check that ntuple rule references RSS context ID"""
+ text = ethtool(f"-n {cfg.ifname} rule {rule_id}").stdout
+ pattern = f"RSS Context (ID: )?{ctx_id}"
+ ksft_true(re.search(pattern, text), "RSS context not referenced in ntuple rule")
+
+
def test_rss_key_indir(cfg):
"""Test basics like updating the main RSS key and indirection table."""
@@ -459,6 +467,8 @@ def test_rss_context(cfg, ctx_cnt=1, create_with_cfg=None):
ntuple = ethtool_create(cfg, "-N", flow)
defer(ethtool, f"-N {cfg.ifname} delete {ntuple}")
+ _ntuple_rule_check(cfg, ntuple, ctx_id)
+
for i in range(ctx_cnt):
_send_traffic_check(cfg, ports[i], f"context {i}",
{ 'target': (2+i*2, 3+i*2),
--
2.46.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH net v3 0/2] bnxt: Fix failure to report RSS context in ntuple rule
2024-11-27 22:58 [PATCH net v3 0/2] bnxt: Fix failure to report RSS context in ntuple rule Daniel Xu
2024-11-27 22:58 ` [PATCH net v3 1/2] bnxt_en: ethtool: Supply ntuple rss context action Daniel Xu
2024-11-27 22:58 ` [PATCH net v3 2/2] selftests: drv-net: rss_ctx: Add test for ntuple rule Daniel Xu
@ 2024-11-30 22:20 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-11-30 22:20 UTC (permalink / raw)
To: Daniel Xu
Cc: pavan.chebbi, netdev, kalesh-anakkur.purayil, linux-kselftest,
michael.chan, linux-kernel, kuba, martin.lau, ecree.xilinx,
kernel-team
Hello:
This series was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Wed, 27 Nov 2024 15:58:28 -0700 you wrote:
> This patchset fixes a bug where bnxt driver was failing to report that
> an ntuple rule is redirecting to an RSS context. First commit is the
> fix, then second commit extends selftests to detect if other/new drivers
> are compliant with ntuple/rss_ctx API.
>
> === Changelog ===
>
> [...]
Here is the summary with links:
- [net,v3,1/2] bnxt_en: ethtool: Supply ntuple rss context action
https://git.kernel.org/netdev/net/c/be75cda92a65
- [net,v3,2/2] selftests: drv-net: rss_ctx: Add test for ntuple rule
https://git.kernel.org/netdev/net/c/7078d43b2374
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-11-30 22:20 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-27 22:58 [PATCH net v3 0/2] bnxt: Fix failure to report RSS context in ntuple rule Daniel Xu
2024-11-27 22:58 ` [PATCH net v3 1/2] bnxt_en: ethtool: Supply ntuple rss context action Daniel Xu
2024-11-27 22:58 ` [PATCH net v3 2/2] selftests: drv-net: rss_ctx: Add test for ntuple rule Daniel Xu
2024-11-30 22:20 ` [PATCH net v3 0/2] bnxt: Fix failure to report RSS context in " patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox