All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin KaFai Lau <martin.lau@linux.dev>
To: Geliang Tang <geliang@kernel.org>
Cc: Geliang Tang <tanggeliang@kylinos.cn>,
	Andrii Nakryiko <andrii@kernel.org>,
	Eduard Zingerman <eddyz87@gmail.com>,
	Mykola Lysenko <mykolal@fb.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Song Liu <song@kernel.org>,
	Yonghong Song <yonghong.song@linux.dev>,
	John Fastabend <john.fastabend@gmail.com>,
	KP Singh <kpsingh@kernel.org>,
	Stanislav Fomichev <sdf@google.com>, Hao Luo <haoluo@google.com>,
	Jiri Olsa <jolsa@kernel.org>, Shuah Khan <shuah@kernel.org>,
	bpf@vger.kernel.org, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH bpf-next v2 11/14] selftests/bpf: Use start_server_setsockopt in sockopt_inherit
Date: Thu, 11 Apr 2024 15:10:56 -0700	[thread overview]
Message-ID: <4d19829e-6e96-445f-8e2a-47f58b921281@linux.dev> (raw)
In-Reply-To: <cf65883b5ad52bfe99e0dc02b6213aa0eaf51ead.1712796967.git.tanggeliang@kylinos.cn>

On 4/10/24 6:03 PM, Geliang Tang wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
> 
> Include network_helpers.h in prog_tests/sockopt_inherit.c, use public
> helpers make_sockaddr() and start_server_setsockopt() instead of the
> local defined function start_server(). This can avoid duplicate code.
> 
> Add a helper setsockopt_loop() to set SOL_CUSTOM sockopt looply, and
> pass it to start_server_setsockopt().
> 
> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> ---
>   .../bpf/prog_tests/sockopt_inherit.c          | 33 ++++++++-----------
>   1 file changed, 14 insertions(+), 19 deletions(-)
> 
> diff --git a/tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c b/tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c
> index 917f486db826..f000d9229765 100644
> --- a/tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c
> +++ b/tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c
> @@ -1,6 +1,7 @@
>   // SPDX-License-Identifier: GPL-2.0
>   #include <test_progs.h>
>   #include "cgroup_helpers.h"
> +#include "network_helpers.h"
>   
>   #include "sockopt_inherit.skel.h"
>   
> @@ -98,23 +99,12 @@ static void *server_thread(void *arg)
>   	return (void *)(long)err;
>   }
>   
> -static int start_server(void)
> +static int setsockopt_loop(int fd, int val)
>   {
> -	struct sockaddr_in addr = {
> -		.sin_family = AF_INET,
> -		.sin_addr.s_addr = htonl(INADDR_LOOPBACK),
> -	};
>   	char buf;
>   	int err;
> -	int fd;
>   	int i;
>   
> -	fd = socket(AF_INET, SOCK_STREAM, 0);
> -	if (fd < 0) {
> -		log_err("Failed to create server socket");
> -		return -1;
> -	}
> -
>   	for (i = CUSTOM_INHERIT1; i <= CUSTOM_LISTENER; i++) {
>   		buf = 0x01;
>   		err = setsockopt(fd, SOL_CUSTOM, i, &buf, 1);
> @@ -125,13 +115,18 @@ static int start_server(void)
>   		}
>   	}
>   
> -	if (bind(fd, (const struct sockaddr *)&addr, sizeof(addr)) < 0) {
> -		log_err("Failed to bind socket");
> -		close(fd);
> -		return -1;
> -	}
> +	return 0;
> +}
>   
> -	return fd;
> +static int start_server_lo(void)
> +{
> +	struct sockaddr_storage addr;
> +	socklen_t addrlen;
> +
> +	if (make_sockaddr(AF_INET, "127.0.0.1", 0, &addr, &addrlen))
> +		return -1;
> +	return start_server_setsockopt((struct sockaddr *)&addr, addrlen,
> +				       SOCK_STREAM, (void *)setsockopt_loop, 0);

The start_server_setsockopt is only limited to integer socket option. It is not 
very flexible. It seems this is the only test that will be useful. Lets drop 
start_server_setsockopt addition from this set for now and discuss it separately.

>   }
>   
>   static void run_test(int cgroup_fd)
> @@ -160,7 +155,7 @@ static void run_test(int cgroup_fd)
>   	if (!ASSERT_OK_PTR(link_setsockopt, "cg-attach-setsockopt"))
>   		goto close_bpf_object;
>   
> -	server_fd = start_server();
> +	server_fd = start_server_lo();
>   	if (!ASSERT_GE(server_fd, 0, "start_server"))
>   		goto close_bpf_object;
>   


  reply	other threads:[~2024-04-11 22:11 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-11  1:03 [PATCH bpf-next v2 00/14] use start_server and connect_to helpers Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 01/14] selftests/bpf: Add start_server_addr helper Geliang Tang
2024-04-11 22:06   ` Martin KaFai Lau
2024-04-11  1:03 ` [PATCH bpf-next v2 02/14] selftests/bpf: Use start_server_addr in cls_redirect Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 03/14] selftests/bpf: Use connect_to_addr " Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 04/14] selftests/bpf: Use start_server_addr in sk_assign Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 05/14] selftests/bpf: Use connect_to_addr " Geliang Tang
2024-04-12 16:38   ` Eduard Zingerman
2024-04-11  1:03 ` [PATCH bpf-next v2 06/14] selftests/bpf: Use log_err in network_helpers Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 07/14] selftests/bpf: Use start_server_addr in test_sock_addr Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 08/14] selftests/bpf: Use connect_to_addr " Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 09/14] selftests/bpf: Add function pointer for __start_server Geliang Tang
2024-04-12 17:23   ` Eduard Zingerman
2024-04-11  1:03 ` [PATCH bpf-next v2 10/14] selftests/bpf: Add start_server_setsockopt helper Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 11/14] selftests/bpf: Use start_server_setsockopt in sockopt_inherit Geliang Tang
2024-04-11 22:10   ` Martin KaFai Lau [this message]
2024-04-12 17:35     ` Eduard Zingerman
2024-04-11  1:03 ` [PATCH bpf-next v2 12/14] selftests/bpf: Use connect_to_fd " Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 13/14] selftests/bpf: Use start_server_* in test_tcp_check_syncookie Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 14/14] selftests/bpf: Use connect_to_addr " Geliang Tang
2024-04-12 18:52 ` [PATCH bpf-next v2 00/14] use start_server and connect_to helpers Eduard Zingerman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4d19829e-6e96-445f-8e2a-47f58b921281@linux.dev \
    --to=martin.lau@linux.dev \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=eddyz87@gmail.com \
    --cc=geliang@kernel.org \
    --cc=haoluo@google.com \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=kpsingh@kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=mykolal@fb.com \
    --cc=sdf@google.com \
    --cc=shuah@kernel.org \
    --cc=song@kernel.org \
    --cc=tanggeliang@kylinos.cn \
    --cc=yonghong.song@linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.