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

Alexis Lothoré (eBPF Foundation) posted 1 patch 2 months, 1 week ago
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
[PATCH bpf-next] selftests/bpf: remove unused toggle in tc_tunnel
Posted by Alexis Lothoré (eBPF Foundation) 2 months, 1 week ago
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@bootlin.com>
---
 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@bootlin.com>

Re: [PATCH bpf-next] selftests/bpf: remove unused toggle in tc_tunnel
Posted by Paul Chaignon 2 months, 1 week ago
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@bootlin.com>

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

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

> ---
>  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@bootlin.com>
> 
>