Re: [PATCH bpf-next] selftests/bpf: remove unused toggle in tc_tunnel

From: Paul Chaignon

Date: Fri Apr 03 2026 - 06:23:20 EST


On Fri, Apr 03, 2026 at 09:52:06AM +0200, Alexis Lothoré (eBPF Foundation) wrote:
> tc_tunnel test is based on a send_and_test_data function which takes a
> subtest configuration, and a boolean indicating whether the connection
> is supposed to fail or not. This boolean is systematically passed to
> true, and is a remnant from the first (not integrated) attempts to
> convert tc_tunnel to test_progs: those versions validated for
> example that a connection properly fails when only one side of the
> connection has tunneling enabled. This specific testing has not been
> integrated because it involved large timeouts which increased quite a
> lot the test duration, for little added value.
>
> Remove the unused boolean from send_and_test_data to simplify the
> generic part of subtests.
>
> Signed-off-by: Alexis Lothoré (eBPF Foundation) <alexis.lothore@xxxxxxxxxxx>

For reference, the discussion on the non-integrated version was at
https://lore.kernel.org/all/DDOOS5LR0GZH.ITEM5495FPOX@xxxxxxxxxxx/.
Seems like a good bit of cleanup :)

Acked-by: Paul Chaignon <paul.chaignon@xxxxxxxxx>

> ---
> tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c | 15 +++++----------
> 1 file changed, 5 insertions(+), 10 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c b/tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
> index 23b5c522ea9f..1aa7c9463980 100644
> --- a/tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
> +++ b/tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
> @@ -206,18 +206,13 @@ static void disconnect_client_from_server(struct subtest_cfg *cfg,
> free(conn);
> }
>
> -static int send_and_test_data(struct subtest_cfg *cfg, bool must_succeed)
> +static int send_and_test_data(struct subtest_cfg *cfg)
> {
> struct connection *conn;
> int err, res = -1;
>
> conn = connect_client_to_server(cfg);
> - if (!must_succeed && !ASSERT_ERR_PTR(conn, "connection that must fail"))
> - goto end;
> - else if (!must_succeed)
> - return 0;
> -
> - if (!ASSERT_OK_PTR(conn, "connection that must succeed"))
> + if (!ASSERT_OK_PTR(conn, "connect to server"))
> return -1;
>
> err = send(conn->client_fd, tx_buffer, DEFAULT_TEST_DATA_SIZE, 0);
> @@ -391,7 +386,7 @@ static void run_test(struct subtest_cfg *cfg)
> goto fail;
>
> /* Basic communication must work */
> - if (!ASSERT_OK(send_and_test_data(cfg, true), "connect without any encap"))
> + if (!ASSERT_OK(send_and_test_data(cfg), "connect without any encap"))
> goto fail;
>
> /* Attach encapsulation program to client */
> @@ -403,7 +398,7 @@ static void run_test(struct subtest_cfg *cfg)
> if (!ASSERT_OK(configure_kernel_decapsulation(cfg),
> "configure kernel decapsulation"))
> goto fail;
> - if (!ASSERT_OK(send_and_test_data(cfg, true),
> + if (!ASSERT_OK(send_and_test_data(cfg),
> "connect with encap prog and kern decap"))
> goto fail;
> }
> @@ -411,7 +406,7 @@ static void run_test(struct subtest_cfg *cfg)
> /* Replace kernel decapsulation with BPF decapsulation, test must pass */
> if (!ASSERT_OK(configure_ebpf_decapsulation(cfg), "configure ebpf decapsulation"))
> goto fail;
> - ASSERT_OK(send_and_test_data(cfg, true), "connect with encap and decap progs");
> + ASSERT_OK(send_and_test_data(cfg), "connect with encap and decap progs");
>
> fail:
> close_netns(nstoken);
>
> ---
> base-commit: 9ebb4fa90266705741534924eac62d6f03895fea
> change-id: 20260403-tc_tunnel_cleanup-bf03af4f8c7c
>
> Best regards,
> --
> Alexis Lothoré (eBPF Foundation) <alexis.lothore@xxxxxxxxxxx>
>
>