BPF List
 help / color / mirror / Atom feed
* [PATCH bpf-next v5 0/6] selftests/bpf: Migrate test_xdp_redirect_multi.sh to test_progs
@ 2025-02-12 11:11 Bastien Curutchet (eBPF Foundation)
  2025-02-12 11:11 ` [PATCH bpf-next v5 1/6] selftests/bpf: test_xdp_veth: Create struct net_configuration Bastien Curutchet (eBPF Foundation)
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Bastien Curutchet (eBPF Foundation) @ 2025-02-12 11:11 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, David S. Miller,
	Jakub Kicinski, Jesper Dangaard Brouer, John Fastabend,
	Andrii Nakryiko, Martin KaFai Lau, Eduard Zingerman, Song Liu,
	Yonghong Song, KP Singh, Stanislav Fomichev, Hao Luo, Jiri Olsa,
	Mykola Lysenko, Shuah Khan
  Cc: Alexis Lothore, Thomas Petazzoni, netdev, bpf, linux-kselftest,
	linux-kernel, Bastien Curutchet (eBPF Foundation)

Hi all,

This patch series continues the work to migrate the *.sh tests into
prog_tests framework.

test_xdp_redirect_multi.sh tests the XDP redirections done through
bpf_redirect_map().

This is already partly covered by test_xdp_veth.c that already tests
map redirections at XDP level. What isn't covered yet by test_xdp_veth is
the use of the broadcast flags (BPF_F_BROADCAST or BPF_F_EXCLUDE_INGRESS)
and XDP egress programs.

Hence, this patch series add test cases to test_xdp_veth.c to get rid of
the test_xdp_redirect_multi.sh:
 - PATCH 1 & 2 Rework test_xdp_veth.c to avoid using the root namespace
 - PATCH 3 and 4 cover the broadcast flags
 - PATCH 5 covers the XDP egress programs

NOTE: While working on this iteration I ran into a memory leak in
net/core/rtnetlink.c that leads to oom-kill when running ./test_progs in
a loop. This leak has been fixed by commit 1438f5d07b9a ("rtnetlink:
fix netns leak with rtnl_setlink()") in the net tree.

Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
---
Changes in v5:
- Remove the patches that were applied from previous iteration
- Add PATCH 1 & 2 to avoid using the root namespace so the veth indexes
don't get incremented on every ./test_progs call
- PATCH 3: Remove unnecessary <linux/ip.h> header
- Link to v4: https://lore.kernel.org/r/20250131-redirect-multi-v4-0-970b33678512@bootlin.com

Changes in v4:
- Remove the NO_IP #define
- append_tid() takes string's size as input to ensure there is enough
  space to fit the thread ID at the end
- Fix PATCH 12's commit log
- Link to v3: https://lore.kernel.org/r/20250128-redirect-multi-v3-0-c1ce69997c01@bootlin.com

Changes in v3:
- Add append_tid() helper and use unique names to allow parallel testing
- Check create_network()'s return value through ASSERT_OK()
- Remove check_ping() and unused defines
- Change next_veth type (from string to int)
- Link to v2: https://lore.kernel.org/r/20250121-redirect-multi-v2-0-fc9cacabc6b2@bootlin.com

Changes in v2:
- Use serial_test_* to avoid conflict between tests
- Link to v1: https://lore.kernel.org/r/20250121-redirect-multi-v1-0-b215e35ff505@bootlin.com

---
Bastien Curutchet (eBPF Foundation) (6):
      selftests/bpf: test_xdp_veth: Create struct net_configuration
      selftests/bpf: test_xdp_veth: Use a dedicated namespace
      selftests/bpf: Optionally select broadcasting flags
      selftests/bpf: test_xdp_veth: Add XDP broadcast redirection tests
      selftests/bpf: test_xdp_veth: Add XDP program on egress test
      selftests/bpf: Remove test_xdp_redirect_multi.sh

 tools/testing/selftests/bpf/Makefile               |   2 -
 .../selftests/bpf/prog_tests/test_xdp_veth.c       | 435 ++++++++++++++++++---
 .../testing/selftests/bpf/progs/xdp_redirect_map.c |  88 +++++
 .../selftests/bpf/progs/xdp_redirect_multi_kern.c  |  41 +-
 .../selftests/bpf/test_xdp_redirect_multi.sh       | 214 ----------
 tools/testing/selftests/bpf/xdp_redirect_multi.c   | 226 -----------
 6 files changed, 491 insertions(+), 515 deletions(-)
---
base-commit: 36ab3d3de536753a4b9b2b4c4ce26af41917a378
change-id: 20250103-redirect-multi-245d6eafb5d1

Best regards,
-- 
Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-02-18 23:10 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-12 11:11 [PATCH bpf-next v5 0/6] selftests/bpf: Migrate test_xdp_redirect_multi.sh to test_progs Bastien Curutchet (eBPF Foundation)
2025-02-12 11:11 ` [PATCH bpf-next v5 1/6] selftests/bpf: test_xdp_veth: Create struct net_configuration Bastien Curutchet (eBPF Foundation)
2025-02-12 11:11 ` [PATCH bpf-next v5 2/6] selftests/bpf: test_xdp_veth: Use a dedicated namespace Bastien Curutchet (eBPF Foundation)
2025-02-12 11:11 ` [PATCH bpf-next v5 3/6] selftests/bpf: Optionally select broadcasting flags Bastien Curutchet (eBPF Foundation)
2025-02-12 11:11 ` [PATCH bpf-next v5 4/6] selftests/bpf: test_xdp_veth: Add XDP broadcast redirection tests Bastien Curutchet (eBPF Foundation)
2025-02-12 11:11 ` [PATCH bpf-next v5 5/6] selftests/bpf: test_xdp_veth: Add XDP program on egress test Bastien Curutchet (eBPF Foundation)
2025-02-12 11:11 ` [PATCH bpf-next v5 6/6] selftests/bpf: Remove test_xdp_redirect_multi.sh Bastien Curutchet (eBPF Foundation)
2025-02-18 23:10 ` [PATCH bpf-next v5 0/6] selftests/bpf: Migrate test_xdp_redirect_multi.sh to test_progs patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox