[PATCH 2/3] selftests/bpf: Allow setting BPF_F_INGRESS in prog_msg_verdict()

From: Michal Luczaj
Date: Wed Aug 14 2024 - 12:19:14 EST


Let a selftest set BPF_F_INGRESS for map/hash redirect.

In run_tests(), explicitly reset skel->bss->test_ingress to false. Earlier
tests might have left it flipped.

Signed-off-by: Michal Luczaj <mhal@xxxxxxx>
---
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c | 2 ++
tools/testing/selftests/bpf/progs/test_sockmap_listen.c | 6 ++++--
2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c b/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
index da5a6fb03b69..a5e7d27760cf 100644
--- a/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
+++ b/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
@@ -1850,6 +1850,8 @@ static void test_udp_unix_redir(struct test_sockmap_listen *skel, struct bpf_map
static void run_tests(struct test_sockmap_listen *skel, struct bpf_map *map,
int family)
{
+ skel->bss->test_ingress = false;
+
test_ops(skel, map, family, SOCK_STREAM);
test_ops(skel, map, family, SOCK_DGRAM);
test_redir(skel, map, family, SOCK_STREAM);
diff --git a/tools/testing/selftests/bpf/progs/test_sockmap_listen.c b/tools/testing/selftests/bpf/progs/test_sockmap_listen.c
index b7250eb9c30c..5a3504d5dfc3 100644
--- a/tools/testing/selftests/bpf/progs/test_sockmap_listen.c
+++ b/tools/testing/selftests/bpf/progs/test_sockmap_listen.c
@@ -106,9 +106,11 @@ int prog_msg_verdict(struct sk_msg_md *msg)
int verdict;

if (test_sockmap)
- verdict = bpf_msg_redirect_map(msg, &sock_map, zero, 0);
+ verdict = bpf_msg_redirect_map(msg, &sock_map, zero,
+ test_ingress ? BPF_F_INGRESS : 0);
else
- verdict = bpf_msg_redirect_hash(msg, &sock_hash, &zero, 0);
+ verdict = bpf_msg_redirect_hash(msg, &sock_hash, &zero,
+ test_ingress ? BPF_F_INGRESS : 0);

count = bpf_map_lookup_elem(&verdict_map, &verdict);
if (count)
--
2.46.0