[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20231028100552.2444158-4-liujian56@huawei.com>
Date: Sat, 28 Oct 2023 18:05:48 +0800
From: Liu Jian <liujian56@...wei.com>
To: <john.fastabend@...il.com>, <jakub@...udflare.com>, <ast@...nel.org>,
<daniel@...earbox.net>, <andrii@...nel.org>, <martin.lau@...ux.dev>,
<song@...nel.org>, <yonghong.song@...ux.dev>, <kpsingh@...nel.org>,
<sdf@...gle.com>, <haoluo@...gle.com>, <jolsa@...nel.org>,
<davem@...emloft.net>, <edumazet@...gle.com>, <kuba@...nel.org>,
<pabeni@...hat.com>, <dsahern@...nel.org>
CC: <netdev@...r.kernel.org>, <bpf@...r.kernel.org>, <liujian56@...wei.com>
Subject: [PATCH bpf-next v7 3/7] selftests/bpf: Add txmsg redir permanently test for sockmap
Add one test for txmsg redir permanently test for sockmap.
Signed-off-by: Liu Jian <liujian56@...wei.com>
---
.../selftests/bpf/progs/test_sockmap_kern.h | 3 ++-
tools/testing/selftests/bpf/test_sockmap.c | 21 +++++++++++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/bpf/progs/test_sockmap_kern.h b/tools/testing/selftests/bpf/progs/test_sockmap_kern.h
index 99d2ea9fb658..b0a2ddd55b83 100644
--- a/tools/testing/selftests/bpf/progs/test_sockmap_kern.h
+++ b/tools/testing/selftests/bpf/progs/test_sockmap_kern.h
@@ -298,8 +298,9 @@ int bpf_prog6(struct sk_msg_md *msg)
f = bpf_map_lookup_elem(&sock_redir_flags, &zero);
if (f && *f) {
- key = 2;
flags = *f;
+ if (flags & BPF_F_INGRESS)
+ key = 2;
}
#ifdef SOCKMAP
return bpf_msg_redirect_map(msg, &sock_map_redir, key, flags);
diff --git a/tools/testing/selftests/bpf/test_sockmap.c b/tools/testing/selftests/bpf/test_sockmap.c
index bf2cef7ae3ae..c602ac8780a8 100644
--- a/tools/testing/selftests/bpf/test_sockmap.c
+++ b/tools/testing/selftests/bpf/test_sockmap.c
@@ -1166,6 +1166,19 @@ static int run_options(struct sockmap_options *options, int cg_fd, int test)
}
+ if (txmsg_permanent) {
+ int txmsg_flag = BPF_F_PERMANENT;
+
+ i = 0;
+ err = bpf_map_update_elem(map_fd[6], &i, &txmsg_flag, BPF_ANY);
+ if (err) {
+ fprintf(stderr,
+ "ERROR: bpf_map_update_elem (txmsg_permanent): %d (%s)\n",
+ err, strerror(errno));
+ goto out;
+ }
+ }
+
if (txmsg_ingress) {
int txmsg_flag = BPF_F_INGRESS;
@@ -1490,6 +1503,13 @@ static void test_txmsg_redir(int cgrp, struct sockmap_options *opt)
test_send(opt, cgrp);
}
+static void test_txmsg_redir_permanent(int cgrp, struct sockmap_options *opt)
+{
+ txmsg_redir = 1;
+ txmsg_permanent = 1;
+ test_send(opt, cgrp);
+}
+
static void test_txmsg_redir_wait_sndmem(int cgrp, struct sockmap_options *opt)
{
txmsg_redir = 1;
@@ -1872,6 +1892,7 @@ static int populate_progs(char *bpf_file)
struct _test test[] = {
{"txmsg test passthrough", test_txmsg_pass},
{"txmsg test redirect", test_txmsg_redir},
+ {"txmsg test redirect permanent", test_txmsg_redir_permanent},
{"txmsg test redirect wait send mem", test_txmsg_redir_wait_sndmem},
{"txmsg test drop", test_txmsg_drop},
{"txmsg test ingress redirect", test_txmsg_ingress_redir},
--
2.34.1
Powered by blists - more mailing lists