Re: [PATCH bpf-next] selftests/bpf: Use prog_attach_type to attach in test_sockmap

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch is "Rejected", according to Jakub's comments:

https://lore.kernel.org/bpf/87zfsiw3a3.fsf@xxxxxxxxxxxxxx/

Thanks,
-Geliang

On Wed, 2024-05-22 at 18:08 +0800, Geliang Tang wrote:
> From: Geliang Tang <tanggeliang@xxxxxxxxxx>
> 
> Since prog_attach_type[] array is defined, it makes sense to use it
> paired
> with prog_fd[] array for bpf_prog_attach() and bpf_prog_detach2()
> instead
> of open-coding.
> 
> Signed-off-by: Geliang Tang <tanggeliang@xxxxxxxxxx>
> ---
>  tools/testing/selftests/bpf/test_sockmap.c | 44 +++++++++++---------
> --
>  1 file changed, 22 insertions(+), 22 deletions(-)
> 
> diff --git a/tools/testing/selftests/bpf/test_sockmap.c
> b/tools/testing/selftests/bpf/test_sockmap.c
> index 4499b3cfc3a6..8c8208b82c5e 100644
> --- a/tools/testing/selftests/bpf/test_sockmap.c
> +++ b/tools/testing/selftests/bpf/test_sockmap.c
> @@ -65,6 +65,18 @@ int map_fd[9];
>  struct bpf_map *maps[9];
>  int prog_fd[9];
>  
> +int prog_attach_type[] = {
> +	BPF_SK_SKB_STREAM_PARSER,
> +	BPF_SK_SKB_STREAM_VERDICT,
> +	BPF_SK_SKB_STREAM_VERDICT,
> +	BPF_CGROUP_SOCK_OPS,
> +	BPF_SK_MSG_VERDICT,
> +	BPF_SK_MSG_VERDICT,
> +	BPF_SK_MSG_VERDICT,
> +	BPF_SK_MSG_VERDICT,
> +	BPF_SK_MSG_VERDICT,
> +};
> +
>  int txmsg_pass;
>  int txmsg_redir;
>  int txmsg_drop;
> @@ -961,7 +973,7 @@ static int run_options(struct sockmap_options
> *options, int cg_fd,  int test)
>  	/* Attach programs to sockmap */
>  	if (!txmsg_omit_skb_parser) {
>  		err = bpf_prog_attach(prog_fd[0], map_fd[0],
> -				      BPF_SK_SKB_STREAM_PARSER, 0);
> +				      prog_attach_type[0], 0);
>  		if (err) {
>  			fprintf(stderr,
>  				"ERROR: bpf_prog_attach (sockmap %i-
> >%i): %d (%s)\n",
> @@ -971,7 +983,7 @@ static int run_options(struct sockmap_options
> *options, int cg_fd,  int test)
>  	}
>  
>  	err = bpf_prog_attach(prog_fd[1], map_fd[0],
> -				BPF_SK_SKB_STREAM_VERDICT, 0);
> +			      prog_attach_type[1], 0);
>  	if (err) {
>  		fprintf(stderr, "ERROR: bpf_prog_attach (sockmap):
> %d (%s)\n",
>  			err, strerror(errno));
> @@ -982,7 +994,7 @@ static int run_options(struct sockmap_options
> *options, int cg_fd,  int test)
>  	if (txmsg_ktls_skb) {
>  		if (!txmsg_omit_skb_parser) {
>  			err = bpf_prog_attach(prog_fd[0], map_fd[8],
> -					     
> BPF_SK_SKB_STREAM_PARSER, 0);
> +					      prog_attach_type[0],
> 0);
>  			if (err) {
>  				fprintf(stderr,
>  					"ERROR: bpf_prog_attach (TLS
> sockmap %i->%i): %d (%s)\n",
> @@ -992,7 +1004,7 @@ static int run_options(struct sockmap_options
> *options, int cg_fd,  int test)
>  		}
>  
>  		err = bpf_prog_attach(prog_fd[2], map_fd[8],
> -				      BPF_SK_SKB_STREAM_VERDICT, 0);
> +				      prog_attach_type[2], 0);
>  		if (err) {
>  			fprintf(stderr, "ERROR: bpf_prog_attach (TLS
> sockmap): %d (%s)\n",
>  				err, strerror(errno));
> @@ -1001,7 +1013,7 @@ static int run_options(struct sockmap_options
> *options, int cg_fd,  int test)
>  	}
>  
>  	/* Attach to cgroups */
> -	err = bpf_prog_attach(prog_fd[3], cg_fd,
> BPF_CGROUP_SOCK_OPS, 0);
> +	err = bpf_prog_attach(prog_fd[3], cg_fd,
> prog_attach_type[3], 0);
>  	if (err) {
>  		fprintf(stderr, "ERROR: bpf_prog_attach (groups): %d
> (%s)\n",
>  			err, strerror(errno));
> @@ -1279,11 +1291,11 @@ static int run_options(struct sockmap_options
> *options, int cg_fd,  int test)
>  		fprintf(stderr, "unknown test\n");
>  out:
>  	/* Detatch and zero all the maps */
> -	bpf_prog_detach2(prog_fd[3], cg_fd, BPF_CGROUP_SOCK_OPS);
> -	bpf_prog_detach2(prog_fd[0], map_fd[0],
> BPF_SK_SKB_STREAM_PARSER);
> -	bpf_prog_detach2(prog_fd[1], map_fd[0],
> BPF_SK_SKB_STREAM_VERDICT);
> -	bpf_prog_detach2(prog_fd[0], map_fd[8],
> BPF_SK_SKB_STREAM_PARSER);
> -	bpf_prog_detach2(prog_fd[2], map_fd[8],
> BPF_SK_SKB_STREAM_VERDICT);
> +	bpf_prog_detach2(prog_fd[3], cg_fd, prog_attach_type[3]);
> +	bpf_prog_detach2(prog_fd[0], map_fd[0],
> prog_attach_type[0]);
> +	bpf_prog_detach2(prog_fd[1], map_fd[0],
> prog_attach_type[1]);
> +	bpf_prog_detach2(prog_fd[0], map_fd[8],
> prog_attach_type[0]);
> +	bpf_prog_detach2(prog_fd[2], map_fd[8],
> prog_attach_type[2]);
>  
>  	if (tx_prog_fd >= 0)
>  		bpf_prog_detach2(tx_prog_fd, map_fd[1],
> BPF_SK_MSG_VERDICT);
> @@ -1783,18 +1795,6 @@ char *map_names[] = {
>  	"tls_sock_map",
>  };
>  
> -int prog_attach_type[] = {
> -	BPF_SK_SKB_STREAM_PARSER,
> -	BPF_SK_SKB_STREAM_VERDICT,
> -	BPF_SK_SKB_STREAM_VERDICT,
> -	BPF_CGROUP_SOCK_OPS,
> -	BPF_SK_MSG_VERDICT,
> -	BPF_SK_MSG_VERDICT,
> -	BPF_SK_MSG_VERDICT,
> -	BPF_SK_MSG_VERDICT,
> -	BPF_SK_MSG_VERDICT,
> -};
> -
>  int prog_type[] = {
>  	BPF_PROG_TYPE_SK_SKB,
>  	BPF_PROG_TYPE_SK_SKB,





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux