Re: [PATCH bpf-next] libbpf: deprecate xdp_cpumap and xdp_devmap sec definitions

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

 



Lorenzo Bianconi <lorenzo@xxxxxxxxxx> writes:

> Deprecate xdp_cpumap xdp_devmap sec definitions.
> Introduce xdp/devmap and xdp/cpumap definitions according to the standard
> for SEC("") in libbpf:
> - prog_type.prog_flags/attach_place
> Update cpumap/devmap samples and kselftests
>
> Signed-off-by: Lorenzo Bianconi <lorenzo@xxxxxxxxxx>
> ---
>  samples/bpf/xdp_redirect_cpu.bpf.c                   |  8 ++++----
>  samples/bpf/xdp_redirect_map.bpf.c                   |  2 +-
>  samples/bpf/xdp_redirect_map_multi.bpf.c             |  2 +-
>  tools/lib/bpf/libbpf.c                               | 12 ++++++++++--
>  .../bpf/progs/test_xdp_with_cpumap_frags_helpers.c   |  2 +-
>  .../bpf/progs/test_xdp_with_cpumap_helpers.c         |  2 +-
>  .../bpf/progs/test_xdp_with_devmap_frags_helpers.c   |  2 +-
>  .../bpf/progs/test_xdp_with_devmap_helpers.c         |  2 +-
>  .../selftests/bpf/progs/xdp_redirect_multi_kern.c    |  2 +-
>  9 files changed, 21 insertions(+), 13 deletions(-)
>
> diff --git a/samples/bpf/xdp_redirect_cpu.bpf.c b/samples/bpf/xdp_redirect_cpu.bpf.c
> index 25e3a405375f..87c54bfdbb70 100644
> --- a/samples/bpf/xdp_redirect_cpu.bpf.c
> +++ b/samples/bpf/xdp_redirect_cpu.bpf.c
> @@ -491,7 +491,7 @@ int  xdp_prognum5_lb_hash_ip_pairs(struct xdp_md *ctx)
>  	return bpf_redirect_map(&cpu_map, cpu_dest, 0);
>  }
>  
> -SEC("xdp_cpumap/redirect")
> +SEC("xdp/cpumap")
>  int xdp_redirect_cpu_devmap(struct xdp_md *ctx)
>  {
>  	void *data_end = (void *)(long)ctx->data_end;
> @@ -507,19 +507,19 @@ int xdp_redirect_cpu_devmap(struct xdp_md *ctx)
>  	return bpf_redirect_map(&tx_port, 0, 0);
>  }
>  
> -SEC("xdp_cpumap/pass")
> +SEC("xdp/cpumap")
>  int xdp_redirect_cpu_pass(struct xdp_md *ctx)
>  {
>  	return XDP_PASS;
>  }
>  
> -SEC("xdp_cpumap/drop")
> +SEC("xdp/cpumap")
>  int xdp_redirect_cpu_drop(struct xdp_md *ctx)
>  {
>  	return XDP_DROP;
>  }
>  
> -SEC("xdp_devmap/egress")
> +SEC("xdp/devmap")
>  int xdp_redirect_egress_prog(struct xdp_md *ctx)
>  {
>  	void *data_end = (void *)(long)ctx->data_end;
> diff --git a/samples/bpf/xdp_redirect_map.bpf.c b/samples/bpf/xdp_redirect_map.bpf.c
> index 59efd656e1b2..415bac1758e3 100644
> --- a/samples/bpf/xdp_redirect_map.bpf.c
> +++ b/samples/bpf/xdp_redirect_map.bpf.c
> @@ -68,7 +68,7 @@ int xdp_redirect_map_native(struct xdp_md *ctx)
>  	return xdp_redirect_map(ctx, &tx_port_native);
>  }
>  
> -SEC("xdp_devmap/egress")
> +SEC("xdp/devmap")
>  int xdp_redirect_map_egress(struct xdp_md *ctx)
>  {
>  	void *data_end = (void *)(long)ctx->data_end;
> diff --git a/samples/bpf/xdp_redirect_map_multi.bpf.c b/samples/bpf/xdp_redirect_map_multi.bpf.c
> index bb0a5a3bfcf0..8b2fd4ec2c76 100644
> --- a/samples/bpf/xdp_redirect_map_multi.bpf.c
> +++ b/samples/bpf/xdp_redirect_map_multi.bpf.c
> @@ -53,7 +53,7 @@ int xdp_redirect_map_native(struct xdp_md *ctx)
>  	return xdp_redirect_map(ctx, &forward_map_native);
>  }
>  
> -SEC("xdp_devmap/egress")
> +SEC("xdp/devmap")
>  int xdp_devmap_prog(struct xdp_md *ctx)
>  {
>  	void *data_end = (void *)(long)ctx->data_end;
> diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
> index 4ce94f4ed34a..1d97bc346be6 100644
> --- a/tools/lib/bpf/libbpf.c
> +++ b/tools/lib/bpf/libbpf.c
> @@ -237,6 +237,8 @@ enum sec_def_flags {
>  	SEC_SLOPPY_PFX = 16,
>  	/* BPF program support non-linear XDP buffer */
>  	SEC_XDP_FRAGS = 32,
> +	/* deprecated sec definitions not supposed to be used */
> +	SEC_DEPRECATED = 64,
>  };
>  
>  struct bpf_sec_def {
> @@ -6575,6 +6577,10 @@ static int libbpf_preload_prog(struct bpf_program *prog,
>  	if (prog->type == BPF_PROG_TYPE_XDP && (def & SEC_XDP_FRAGS))
>  		opts->prog_flags |= BPF_F_XDP_HAS_FRAGS;
>  
> +	if (def & SEC_DEPRECATED)
> +		pr_warn("sec '%s' is deprecated, please use new version instead\n",
> +			prog->sec_name);
> +

How is the user supposed to figure out what "the new version" is?

-Toke




[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