Skip to content

Commit

Permalink
selftests/bpf: add tests for verdict skmsg to itself
Browse files Browse the repository at this point in the history
Add tests for verdict skmsg to itself in sockmap_basic.c

Signed-off-by: Liu Jian <liujian56@huawei.com>
  • Loading branch information
liujian56 authored and d-e-s-o committed Oct 16, 2023
1 parent 206714b commit 8473ae0
Showing 1 changed file with 23 additions and 9 deletions.
32 changes: 23 additions & 9 deletions tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@ static void test_sockmap_skb_verdict_fionread(bool pass_prog)
test_sockmap_drop_prog__destroy(drop);
}

static void test_sockmap_msg_verdict(bool is_ingress, bool is_permanent)
static void test_sockmap_msg_verdict(bool is_ingress, bool is_permanent, bool is_self)
{
int key, sent, recvd, recv_fd;
int err, map, verdict, s, c0, c1, p0, p1;
Expand Down Expand Up @@ -519,13 +519,23 @@ static void test_sockmap_msg_verdict(bool is_ingress, bool is_permanent)
goto out_close;

if (is_ingress) {
recv_fd = c1;
skel->bss->skmsg_redir_flags = BPF_F_INGRESS;
skel->bss->skmsg_redir_key = 1;
if (is_self) {
skel->bss->skmsg_redir_key = 0;
recv_fd = p1;
} else {
skel->bss->skmsg_redir_key = 1;
recv_fd = c1;
}
} else {
recv_fd = c0;
skel->bss->skmsg_redir_flags = 0;
skel->bss->skmsg_redir_key = 2;
if (is_self) {
skel->bss->skmsg_redir_key = 0;
recv_fd = c1;
} else {
skel->bss->skmsg_redir_key = 2;
recv_fd = c0;
}
}

if (is_permanent)
Expand Down Expand Up @@ -590,11 +600,15 @@ void test_sockmap_basic(void)
if (test__start_subtest("sockmap skb_verdict fionread on drop"))
test_sockmap_skb_verdict_fionread(false);
if (test__start_subtest("sockmap msg_verdict"))
test_sockmap_msg_verdict(false, false);
test_sockmap_msg_verdict(false, false, false);
if (test__start_subtest("sockmap msg_verdict ingress"))
test_sockmap_msg_verdict(true, false);
test_sockmap_msg_verdict(true, false, false);
if (test__start_subtest("sockmap msg_verdict permanent"))
test_sockmap_msg_verdict(false, true);
test_sockmap_msg_verdict(false, true, false);
if (test__start_subtest("sockmap msg_verdict ingress permanent"))
test_sockmap_msg_verdict(true, true);
test_sockmap_msg_verdict(true, true, false);
if (test__start_subtest("sockmap msg_verdict permanent self"))
test_sockmap_msg_verdict(false, true, true);
if (test__start_subtest("sockmap msg_verdict ingress permanent self"))
test_sockmap_msg_verdict(true, true, true);
}

0 comments on commit 8473ae0

Please sign in to comment.