mbox series

[bpf-next,v5,0/6] selftests/bpf: Migrate test_xdp_redirect_multi.sh to test_progs

Message ID 20250212-redirect-multi-v5-0-fd0d39fca6e6@bootlin.com (mailing list archive)
Headers show
Series selftests/bpf: Migrate test_xdp_redirect_multi.sh to test_progs | expand

Message

Bastien Curutchet (eBPF Foundation) Feb. 12, 2025, 11:11 a.m. UTC
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,

Comments

patchwork-bot+netdevbpf@kernel.org Feb. 18, 2025, 11:10 p.m. UTC | #1
Hello:

This series was applied to bpf/bpf-next.git (master)
by Martin KaFai Lau <martin.lau@kernel.org>:

On Wed, 12 Feb 2025 12:11:08 +0100 you wrote:
> 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().
> 
> [...]

Here is the summary with links:
  - [bpf-next,v5,1/6] selftests/bpf: test_xdp_veth: Create struct net_configuration
    https://git.kernel.org/bpf/bpf-next/c/6bdac0e317e9
  - [bpf-next,v5,2/6] selftests/bpf: test_xdp_veth: Use a dedicated namespace
    https://git.kernel.org/bpf/bpf-next/c/19a9484c1bbc
  - [bpf-next,v5,3/6] selftests/bpf: Optionally select broadcasting flags
    https://git.kernel.org/bpf/bpf-next/c/09c8bb1fae15
  - [bpf-next,v5,4/6] selftests/bpf: test_xdp_veth: Add XDP broadcast redirection tests
    https://git.kernel.org/bpf/bpf-next/c/1e7e6345429c
  - [bpf-next,v5,5/6] selftests/bpf: test_xdp_veth: Add XDP program on egress test
    https://git.kernel.org/bpf/bpf-next/c/a93bfd824d95
  - [bpf-next,v5,6/6] selftests/bpf: Remove test_xdp_redirect_multi.sh
    https://git.kernel.org/bpf/bpf-next/c/e06f5bfd937d

You are awesome, thank you!