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 <[email protected]>
  • Loading branch information
liujian56 authored and d-e-s-o committed Nov 9, 2023
1 parent b6d86cf commit 19b75f1
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 @@ -525,7 +525,7 @@ static void test_sockmap_skb_verdict_peek(void)
test_sockmap_pass_prog__destroy(pass);
}

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 @@ -568,13 +568,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 @@ -641,11 +651,15 @@ void test_sockmap_basic(void)
if (test__start_subtest("sockmap skb_verdict msg_f_peek"))
test_sockmap_skb_verdict_peek();
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 19b75f1

Please sign in to comment.