Skip to content

Commit f7bf624

Browse files
tohojokuba-moo
authored andcommitted
selftests/net: Add test for loading devbound XDP program in generic mode
Add a test to bpf_offload.py for loading a devbound XDP program in generic mode, checking that it fails correctly. Signed-off-by: Toke Høiland-Jørgensen <[email protected]> Acked-by: Stanislav Fomichev <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 3595599 commit f7bf624

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

tools/testing/selftests/net/bpf_offload.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,12 +215,14 @@ def bpftool_map_list_wait(expected=0, n_retry=20, ns=""):
215215
raise Exception("Time out waiting for map counts to stabilize want %d, have %d" % (expected, nmaps))
216216

217217
def bpftool_prog_load(sample, file_name, maps=[], prog_type="xdp", dev=None,
218-
fail=True, include_stderr=False):
218+
fail=True, include_stderr=False, dev_bind=None):
219219
args = "prog load %s %s" % (os.path.join(bpf_test_dir, sample), file_name)
220220
if prog_type is not None:
221221
args += " type " + prog_type
222222
if dev is not None:
223223
args += " dev " + dev
224+
elif dev_bind is not None:
225+
args += " xdpmeta_dev " + dev_bind
224226
if len(maps):
225227
args += " map " + " map ".join(maps)
226228

@@ -980,6 +982,16 @@ def test_multi_prog(simdev, sim, obj, modename, modeid):
980982
rm("/sys/fs/bpf/offload")
981983
sim.wait_for_flush()
982984

985+
bpftool_prog_load("sample_ret0.bpf.o", "/sys/fs/bpf/devbound",
986+
dev_bind=sim['ifname'])
987+
devbound = bpf_pinned("/sys/fs/bpf/devbound")
988+
start_test("Test dev-bound program in generic mode...")
989+
ret, _, err = sim.set_xdp(devbound, "generic", fail=False, include_stderr=True)
990+
fail(ret == 0, "devbound program in generic mode allowed")
991+
check_extack(err, "Can't attach device-bound programs in generic mode.", args)
992+
rm("/sys/fs/bpf/devbound")
993+
sim.wait_for_flush()
994+
983995
start_test("Test XDP load failure...")
984996
sim.dfs["dev/bpf_bind_verifier_accept"] = 0
985997
ret, _, err = bpftool_prog_load("sample_ret0.bpf.o", "/sys/fs/bpf/offload",

0 commit comments

Comments
 (0)