mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 12:35:52 +02:00
Merge branch 'bnxt-fix-failure-to-report-rss-context-in-ntuple-rule'
Daniel Xu says: ==================== bnxt: Fix failure to report RSS context in ntuple rule 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. ==================== Link: https://patch.msgid.link/cover.1732748253.git.dxu@dxuuu.xyz Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
84812c846a
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user