diff options
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/xdp_attach.c')
-rw-r--r-- | tools/testing/selftests/bpf/prog_tests/xdp_attach.c | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/xdp_attach.c b/tools/testing/selftests/bpf/prog_tests/xdp_attach.c index 62aa3edda5e6..c6fa390e3aa1 100644 --- a/tools/testing/selftests/bpf/prog_tests/xdp_attach.c +++ b/tools/testing/selftests/bpf/prog_tests/xdp_attach.c @@ -11,7 +11,8 @@ void serial_test_xdp_attach(void) const char *file = "./test_xdp.o"; struct bpf_prog_info info = {}; int err, fd1, fd2, fd3; - LIBBPF_OPTS(bpf_xdp_attach_opts, opts); + DECLARE_LIBBPF_OPTS(bpf_xdp_set_link_opts, opts, + .old_fd = -1); len = sizeof(info); @@ -37,47 +38,49 @@ void serial_test_xdp_attach(void) if (CHECK_FAIL(err)) goto out_2; - err = bpf_xdp_attach(IFINDEX_LO, fd1, XDP_FLAGS_REPLACE, &opts); + err = bpf_set_link_xdp_fd_opts(IFINDEX_LO, fd1, XDP_FLAGS_REPLACE, + &opts); if (CHECK(err, "load_ok", "initial load failed")) goto out_close; - err = bpf_xdp_query_id(IFINDEX_LO, 0, &id0); + err = bpf_get_link_xdp_id(IFINDEX_LO, &id0, 0); if (CHECK(err || id0 != id1, "id1_check", "loaded prog id %u != id1 %u, err %d", id0, id1, err)) goto out_close; - err = bpf_xdp_attach(IFINDEX_LO, fd2, XDP_FLAGS_REPLACE, &opts); + err = bpf_set_link_xdp_fd_opts(IFINDEX_LO, fd2, XDP_FLAGS_REPLACE, + &opts); if (CHECK(!err, "load_fail", "load with expected id didn't fail")) goto out; - opts.old_prog_fd = fd1; - err = bpf_xdp_attach(IFINDEX_LO, fd2, 0, &opts); + opts.old_fd = fd1; + err = bpf_set_link_xdp_fd_opts(IFINDEX_LO, fd2, 0, &opts); if (CHECK(err, "replace_ok", "replace valid old_fd failed")) goto out; - err = bpf_xdp_query_id(IFINDEX_LO, 0, &id0); + err = bpf_get_link_xdp_id(IFINDEX_LO, &id0, 0); if (CHECK(err || id0 != id2, "id2_check", "loaded prog id %u != id2 %u, err %d", id0, id2, err)) goto out_close; - err = bpf_xdp_attach(IFINDEX_LO, fd3, 0, &opts); + err = bpf_set_link_xdp_fd_opts(IFINDEX_LO, fd3, 0, &opts); if (CHECK(!err, "replace_fail", "replace invalid old_fd didn't fail")) goto out; - err = bpf_xdp_detach(IFINDEX_LO, 0, &opts); + err = bpf_set_link_xdp_fd_opts(IFINDEX_LO, -1, 0, &opts); if (CHECK(!err, "remove_fail", "remove invalid old_fd didn't fail")) goto out; - opts.old_prog_fd = fd2; - err = bpf_xdp_detach(IFINDEX_LO, 0, &opts); + opts.old_fd = fd2; + err = bpf_set_link_xdp_fd_opts(IFINDEX_LO, -1, 0, &opts); if (CHECK(err, "remove_ok", "remove valid old_fd failed")) goto out; - err = bpf_xdp_query_id(IFINDEX_LO, 0, &id0); + err = bpf_get_link_xdp_id(IFINDEX_LO, &id0, 0); if (CHECK(err || id0 != 0, "unload_check", "loaded prog id %u != 0, err %d", id0, err)) goto out_close; out: - bpf_xdp_detach(IFINDEX_LO, 0, NULL); + bpf_set_link_xdp_fd(IFINDEX_LO, -1, 0); out_close: bpf_object__close(obj3); out_2: |