Skip to content

Commit 9138048

Browse files
mtardyAlexei Starovoitov
authored andcommitted
selftests/bpf: add cgroup_skb netns cookie tests
Add netns cookie test that verifies the helper is now supported and work in the context of cgroup_skb programs. Signed-off-by: Mahe Tardy <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alexei Starovoitov <[email protected]>
1 parent c221d37 commit 9138048

File tree

2 files changed

+23
-7
lines changed

2 files changed

+23
-7
lines changed

tools/testing/selftests/bpf/prog_tests/netns_cookie.c

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,25 @@ void test_netns_cookie(void)
3333

3434
skel->links.get_netns_cookie_sockops = bpf_program__attach_cgroup(
3535
skel->progs.get_netns_cookie_sockops, cgroup_fd);
36-
if (!ASSERT_OK_PTR(skel->links.get_netns_cookie_sockops, "prog_attach"))
36+
if (!ASSERT_OK_PTR(skel->links.get_netns_cookie_sockops, "prog_attach_sockops"))
3737
goto done;
3838

3939
verdict = bpf_program__fd(skel->progs.get_netns_cookie_sk_msg);
4040
map = bpf_map__fd(skel->maps.sock_map);
4141
err = bpf_prog_attach(verdict, map, BPF_SK_MSG_VERDICT, 0);
42-
if (!ASSERT_OK(err, "prog_attach"))
42+
if (!ASSERT_OK(err, "prog_attach_sk_msg"))
4343
goto done;
4444

4545
tc_fd = bpf_program__fd(skel->progs.get_netns_cookie_tcx);
4646
err = bpf_prog_attach_opts(tc_fd, loopback, BPF_TCX_INGRESS, &opta);
47-
if (!ASSERT_OK(err, "prog_attach"))
47+
if (!ASSERT_OK(err, "prog_attach_tcx"))
4848
goto done;
4949

50+
skel->links.get_netns_cookie_cgroup_skb = bpf_program__attach_cgroup(
51+
skel->progs.get_netns_cookie_cgroup_skb, cgroup_fd);
52+
if (!ASSERT_OK_PTR(skel->links.get_netns_cookie_cgroup_skb, "prog_attach_cgroup_skb"))
53+
goto cleanup_tc;
54+
5055
server_fd = start_server(AF_INET6, SOCK_STREAM, "::1", 0, 0);
5156
if (CHECK(server_fd < 0, "start_server", "errno %d\n", errno))
5257
goto cleanup_tc;
@@ -69,16 +74,18 @@ void test_netns_cookie(void)
6974
if (!ASSERT_OK(err, "getsockopt"))
7075
goto cleanup_tc;
7176

72-
ASSERT_EQ(val, cookie_expected_value, "cookie_value");
77+
ASSERT_EQ(val, cookie_expected_value, "cookie_value_sockops");
7378

7479
err = bpf_map_lookup_elem(bpf_map__fd(skel->maps.sk_msg_netns_cookies),
7580
&client_fd, &val);
7681
if (!ASSERT_OK(err, "map_lookup(sk_msg_netns_cookies)"))
7782
goto cleanup_tc;
7883

79-
ASSERT_EQ(val, cookie_expected_value, "cookie_value");
80-
ASSERT_EQ(skel->bss->tcx_init_netns_cookie, cookie_expected_value, "cookie_value");
81-
ASSERT_EQ(skel->bss->tcx_netns_cookie, cookie_expected_value, "cookie_value");
84+
ASSERT_EQ(val, cookie_expected_value, "cookie_value_sk_msg");
85+
ASSERT_EQ(skel->bss->tcx_init_netns_cookie, cookie_expected_value, "cookie_value_init_tcx");
86+
ASSERT_EQ(skel->bss->tcx_netns_cookie, cookie_expected_value, "cookie_value_tcx");
87+
ASSERT_EQ(skel->bss->cgroup_skb_init_netns_cookie, cookie_expected_value, "cookie_value_init_cgroup_skb");
88+
ASSERT_EQ(skel->bss->cgroup_skb_netns_cookie, cookie_expected_value, "cookie_value_cgroup_skb");
8289

8390
cleanup_tc:
8491
err = bpf_prog_detach_opts(tc_fd, loopback, BPF_TCX_INGRESS, &optd);

tools/testing/selftests/bpf/progs/netns_cookie_prog.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ struct {
2828
} sock_map SEC(".maps");
2929

3030
int tcx_init_netns_cookie, tcx_netns_cookie;
31+
int cgroup_skb_init_netns_cookie, cgroup_skb_netns_cookie;
3132

3233
SEC("sockops")
3334
int get_netns_cookie_sockops(struct bpf_sock_ops *ctx)
@@ -91,4 +92,12 @@ int get_netns_cookie_tcx(struct __sk_buff *skb)
9192
return TCX_PASS;
9293
}
9394

95+
SEC("cgroup_skb/ingress")
96+
int get_netns_cookie_cgroup_skb(struct __sk_buff *skb)
97+
{
98+
cgroup_skb_init_netns_cookie = bpf_get_netns_cookie(NULL);
99+
cgroup_skb_netns_cookie = bpf_get_netns_cookie(skb);
100+
return SK_PASS;
101+
}
102+
94103
char _license[] SEC("license") = "GPL";

0 commit comments

Comments
 (0)