[PATCH bpf-next 2/2] selftests/bpf: add tracing netns cookie tests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Add netns cookie test that verifies the helper is now supported and work
in the context of tracing programs.

Signed-off-by: Mahe Tardy <mahe.tardy@xxxxxxxxx>
---
 .../testing/selftests/bpf/prog_tests/netns_cookie.c |  7 +++++++
 .../testing/selftests/bpf/progs/netns_cookie_prog.c | 13 +++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/tools/testing/selftests/bpf/prog_tests/netns_cookie.c b/tools/testing/selftests/bpf/prog_tests/netns_cookie.c
index e00cd34586dd..53a3272f3e32 100644
--- a/tools/testing/selftests/bpf/prog_tests/netns_cookie.c
+++ b/tools/testing/selftests/bpf/prog_tests/netns_cookie.c
@@ -52,6 +52,11 @@ void test_netns_cookie(void)
 	if (!ASSERT_OK_PTR(skel->links.get_netns_cookie_cgroup_skb, "prog_attach_cgroup_skb"))
 		goto cleanup_tc;

+	skel->links.get_netns_cookie_tracing = bpf_program__attach(
+			skel->progs.get_netns_cookie_tracing);
+	if (!ASSERT_OK_PTR(skel->links.get_netns_cookie_tracing, "prog_attach_tracing"))
+		goto cleanup_tc;
+
 	server_fd = start_server(AF_INET6, SOCK_STREAM, "::1", 0, 0);
 	if (CHECK(server_fd < 0, "start_server", "errno %d\n", errno))
 		goto cleanup_tc;
@@ -86,6 +91,8 @@ void test_netns_cookie(void)
 	ASSERT_EQ(skel->bss->tcx_netns_cookie, cookie_expected_value, "cookie_value_tcx");
 	ASSERT_EQ(skel->bss->cgroup_skb_init_netns_cookie, cookie_expected_value, "cookie_value_init_cgroup_skb");
 	ASSERT_EQ(skel->bss->cgroup_skb_netns_cookie, cookie_expected_value, "cookie_value_cgroup_skb");
+	ASSERT_EQ(skel->bss->tracing_init_netns_cookie, cookie_expected_value, "cookie_value_init_tracing");
+	ASSERT_EQ(skel->bss->tracing_netns_cookie, cookie_expected_value, "cookie_value_tracing");

 cleanup_tc:
 	err = bpf_prog_detach_opts(tc_fd, loopback, BPF_TCX_INGRESS, &optd);
diff --git a/tools/testing/selftests/bpf/progs/netns_cookie_prog.c b/tools/testing/selftests/bpf/progs/netns_cookie_prog.c
index 94040714af18..5de573571640 100644
--- a/tools/testing/selftests/bpf/progs/netns_cookie_prog.c
+++ b/tools/testing/selftests/bpf/progs/netns_cookie_prog.c
@@ -3,6 +3,7 @@
 #include "vmlinux.h"

 #include <bpf/bpf_helpers.h>
+#include <bpf/bpf_tracing.h>

 #define AF_INET6 10

@@ -29,6 +30,7 @@ struct {

 int tcx_init_netns_cookie, tcx_netns_cookie;
 int cgroup_skb_init_netns_cookie, cgroup_skb_netns_cookie;
+int tracing_init_netns_cookie, tracing_netns_cookie;

 SEC("sockops")
 int get_netns_cookie_sockops(struct bpf_sock_ops *ctx)
@@ -100,4 +102,15 @@ int get_netns_cookie_cgroup_skb(struct __sk_buff *skb)
 	return SK_PASS;
 }

+SEC("fexit/inet_stream_connect")
+int BPF_PROG(get_netns_cookie_tracing, struct socket *sock,
+	struct sockaddr *uaddr, int addr_len, int flags)
+{
+	if (uaddr->sa_family != AF_INET6)
+		return 0;
+	tracing_init_netns_cookie = bpf_get_netns_cookie(NULL);
+	tracing_netns_cookie = bpf_get_netns_cookie(sock->sk);
+	return 0;
+}
+
 char _license[] SEC("license") = "GPL";
--
2.34.1





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux