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]

 



On Thu, Jan 27, 2022 at 7:37 AM Toke Høiland-Jørgensen <toke@xxxxxxxxxx> wrote:
>
> 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?


Let's add the section to
https://github.com/libbpf/libbpf/wiki/Libbpf-1.0-migration-guide and
link to it from the deprecation warning.

>
> -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