diff options
author | Jakub Kicinski <jakub.kicinski@netronome.com> | 2019-02-06 07:03:24 +0300 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2019-02-06 17:35:42 +0300 |
commit | 42a40e840d4499d06371096ec96fdb7b7018fabf (patch) | |
tree | 27f1e97517d4c9a9de9797a07dc691b52584b703 /tools/testing | |
parent | 06ea9e63cd2307213652496df089cc950f9aacc6 (diff) | |
download | linux-42a40e840d4499d06371096ec96fdb7b7018fabf.tar.xz |
selftests/bpf: test reading the offloaded program
Test adding the offloaded program after the other program
is already installed.
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'tools/testing')
-rwxr-xr-x | tools/testing/selftests/bpf/test_offload.py | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/tools/testing/selftests/bpf/test_offload.py b/tools/testing/selftests/bpf/test_offload.py index 13fe12d09704..84bea3985d64 100755 --- a/tools/testing/selftests/bpf/test_offload.py +++ b/tools/testing/selftests/bpf/test_offload.py @@ -592,6 +592,15 @@ def check_verifier_log(output, reference): return fail(True, "Missing or incorrect message from netdevsim in verifier log") +def check_multi_basic(two_xdps): + fail(two_xdps["mode"] != 4, "Bad mode reported with multiple programs") + fail("prog" in two_xdps, "Base program reported in multi program mode") + fail(len(two_xdps["attached"]) != 2, + "Wrong attached program count with two programs") + fail(two_xdps["attached"][0]["prog"]["id"] == + two_xdps["attached"][1]["prog"]["id"], + "Offloaded and other programs have the same id") + def test_spurios_extack(sim, obj, skip_hw, needle): res = sim.cls_bpf_add_filter(obj, prio=1, handle=1, skip_hw=skip_hw, include_stderr=True) @@ -615,17 +624,12 @@ def test_multi_prog(sim, obj, modename, modeid): sim.set_xdp(obj, modename) two_xdps = sim.ip_link_show(xdp=True)["xdp"] - offloaded2 = sim.dfs_read("bpf_offloaded_id") - fail(two_xdps["mode"] != 4, "Bad mode reported with multiple programs") - fail("prog" in two_xdps, "Base program reported in multi program mode") fail(xdp["attached"][0] not in two_xdps["attached"], "Offload program not reported after other activated") - fail(len(two_xdps["attached"]) != 2, - "Wrong attached program count with two programs") - fail(two_xdps["attached"][0]["prog"]["id"] == - two_xdps["attached"][1]["prog"]["id"], - "Offloaded and other programs have the same id") + check_multi_basic(two_xdps) + + offloaded2 = sim.dfs_read("bpf_offloaded_id") fail(offloaded != offloaded2, "Offload ID changed after loading other program") @@ -655,8 +659,15 @@ def test_multi_prog(sim, obj, modename, modeid): "Wrong attached program count with remaining programs") fail(offloaded != "0", "Offload ID reported with only other program left") - start_test("Test multi-attachment XDP - device remove...") + start_test("Test multi-attachment XDP - reattach...") sim.set_xdp(obj, "offload") + two_xdps = sim.ip_link_show(xdp=True)["xdp"] + + fail(xdp["attached"][0] not in two_xdps["attached"], + "Other program not reported after offload activated") + check_multi_basic(two_xdps) + + start_test("Test multi-attachment XDP - device remove...") sim.remove() sim = NetdevSim() |