Skip to content

Commit baf6a07

Browse files
Jakub Kicinskidavem330
authored andcommitted
selftests/bpf: check for chain-non-0 extack message
Make sure netdevsim doesn't allow offload of chains other than 0, and that it reports the expected extack message. Signed-off-by: Jakub Kicinski <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 2fb89a3 commit baf6a07

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

tools/testing/selftests/bpf/test_offload.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -430,21 +430,23 @@ def tc_show_ingress(self, expected=None):
430430
return filters
431431

432432
def cls_filter_op(self, op, qdisc="ingress", prio=None, handle=None,
433-
cls="", params="",
433+
chain=None, cls="", params="",
434434
fail=True, include_stderr=False):
435435
spec = ""
436436
if prio is not None:
437437
spec += " prio %d" % (prio)
438438
if handle:
439439
spec += " handle %s" % (handle)
440+
if chain is not None:
441+
spec += " chain %d" % (chain)
440442

441443
return tc("filter {op} dev {dev} {qdisc} {spec} {cls} {params}"\
442444
.format(op=op, dev=self['ifname'], qdisc=qdisc, spec=spec,
443445
cls=cls, params=params),
444446
fail=fail, include_stderr=include_stderr)
445447

446448
def cls_bpf_add_filter(self, bpf, op="add", prio=None, handle=None,
447-
da=False, verbose=False,
449+
chain=None, da=False, verbose=False,
448450
skip_sw=False, skip_hw=False,
449451
fail=True, include_stderr=False):
450452
cls = "bpf " + bpf
@@ -460,7 +462,7 @@ def cls_bpf_add_filter(self, bpf, op="add", prio=None, handle=None,
460462
params += " skip_hw"
461463

462464
return self.cls_filter_op(op=op, prio=prio, handle=handle, cls=cls,
463-
params=params,
465+
chain=chain, params=params,
464466
fail=fail, include_stderr=include_stderr)
465467

466468
def set_ethtool_tc_offloads(self, enable, fail=True):
@@ -679,6 +681,14 @@ def test_spurios_extack(sim, obj, skip_hw, needle):
679681
args)
680682
sim.wait_for_flush()
681683

684+
start_test("Test non-0 chain offload...")
685+
ret, _, err = sim.cls_bpf_add_filter(obj, chain=1, prio=1, handle=1,
686+
skip_sw=True,
687+
fail=False, include_stderr=True)
688+
fail(ret == 0, "Offloaded a filter to chain other than 0")
689+
check_extack(err, "Error: Driver supports only offload of chain 0.", args)
690+
sim.tc_flush_filters()
691+
682692
start_test("Test TC replace...")
683693
sim.cls_bpf_add_filter(obj, prio=1, handle=1)
684694
sim.cls_bpf_add_filter(obj, op="replace", prio=1, handle=1)

0 commit comments

Comments
 (0)