On 1/23/25 11:18 AM, Stanislav Fomichev wrote:
On 01/22, Shigeru Yoshida wrote:
The function bpf_test_init() now returns an error if user_size
(.data_size_in) is less than ETH_HLEN, causing the tests to
fail. Adjust the data size to ensure it meets the requirement of
ETH_HLEN.
Signed-off-by: Shigeru Yoshida <syoshida@xxxxxxxxxx>
---
.../testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c | 4 ++--
.../testing/selftests/bpf/prog_tests/xdp_devmap_attach.c | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c b/tools/testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c
index c7f74f068e78..df27535995af 100644
--- a/tools/testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c
+++ b/tools/testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c
@@ -52,10 +52,10 @@ static void test_xdp_with_cpumap_helpers(void)
ASSERT_EQ(info.id, val.bpf_prog.id, "Match program id to cpumap entry prog_id");
/* send a packet to trigger any potential bugs in there */
- char data[10] = {};
+ char data[ETH_HLEN] = {};
DECLARE_LIBBPF_OPTS(bpf_test_run_opts, opts,
.data_in = &data,
- .data_size_in = 10,
+ .data_size_in = sizeof(data),
.flags = BPF_F_TEST_XDP_LIVE_FRAMES,
.repeat = 1,
);
We should still keep 10, but change the ASSERT_OK below to expect the
error instead. Looking at the comment above, the purpose of the test
is to exercise that error case.
I think the bpf_prog_test_run_opts in this dev/cpumap test is to check the
bpf_redirect_map() helper, so it expects the bpf_prog_test_run_opts to succeed.
It just happens the current data[10] cannot trigger the fixed bug because the
bpf prog returns a XDP_REDIRECT instead of XDP_PASS, so xdp_recv_frames is not
called.
To test patch 1, a separate test is probably needed to trigger the bug in
xdp_recv_frames() with a bpf prog returning XDP_PASS.