lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <CAEf4BzbgjOaxVFAfnrRyPP0_1Rh-gC3er4tKLkfr=OPb_x-ueA@mail.gmail.com> Date: Thu, 27 Oct 2022 13:05:36 -0700 From: Andrii Nakryiko <andrii.nakryiko@...il.com> To: Stanislav Fomichev <sdf@...gle.com> Cc: bpf@...r.kernel.org, ast@...nel.org, daniel@...earbox.net, andrii@...nel.org, martin.lau@...ux.dev, song@...nel.org, yhs@...com, john.fastabend@...il.com, kpsingh@...nel.org, haoluo@...gle.com, jolsa@...nel.org, Jakub Kicinski <kuba@...nel.org>, Willem de Bruijn <willemb@...gle.com>, Jesper Dangaard Brouer <brouer@...hat.com>, Anatoly Burakov <anatoly.burakov@...el.com>, Alexander Lobakin <alexandr.lobakin@...el.com>, Magnus Karlsson <magnus.karlsson@...il.com>, Maryam Tahhan <mtahhan@...hat.com>, xdp-hints@...-project.net, netdev@...r.kernel.org Subject: Re: [RFC bpf-next 3/5] libbpf: Pass prog_ifindex via bpf_object_open_opts On Thu, Oct 27, 2022 at 1:00 PM Stanislav Fomichev <sdf@...gle.com> wrote: > > Allow passing prog_ifindex to BPF_PROG_LOAD. This patch is > not XDP metadata specific but it's here because we (ab)use > prog_ifindex as "target metadata" device during loading. > We can figure out proper UAPI story if we decide to go forward > with the kfunc approach. > > Cc: Martin KaFai Lau <martin.lau@...ux.dev> > Cc: Jakub Kicinski <kuba@...nel.org> > Cc: Willem de Bruijn <willemb@...gle.com> > Cc: Jesper Dangaard Brouer <brouer@...hat.com> > Cc: Anatoly Burakov <anatoly.burakov@...el.com> > Cc: Alexander Lobakin <alexandr.lobakin@...el.com> > Cc: Magnus Karlsson <magnus.karlsson@...il.com> > Cc: Maryam Tahhan <mtahhan@...hat.com> > Cc: xdp-hints@...-project.net > Cc: netdev@...r.kernel.org > Signed-off-by: Stanislav Fomichev <sdf@...gle.com> > --- > tools/lib/bpf/libbpf.c | 1 + > tools/lib/bpf/libbpf.h | 6 +++++- > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c > index 5d7819edf074..61bc37006fe4 100644 > --- a/tools/lib/bpf/libbpf.c > +++ b/tools/lib/bpf/libbpf.c > @@ -7190,6 +7190,7 @@ static int bpf_object_init_progs(struct bpf_object *obj, const struct bpf_object > > prog->type = prog->sec_def->prog_type; > prog->expected_attach_type = prog->sec_def->expected_attach_type; > + prog->prog_ifindex = opts->prog_ifindex; > > /* sec_def can have custom callback which should be called > * after bpf_program is initialized to adjust its properties > diff --git a/tools/lib/bpf/libbpf.h b/tools/lib/bpf/libbpf.h > index eee883f007f9..4a40b7623099 100644 > --- a/tools/lib/bpf/libbpf.h > +++ b/tools/lib/bpf/libbpf.h > @@ -170,9 +170,13 @@ struct bpf_object_open_opts { > */ > __u32 kernel_log_level; > > + /* Optional ifindex of netdev for offload purposes. > + */ > + int prog_ifindex; > + nope, don't do that, open_opts are for entire object, while this is per-program thing So bpf_program__set_ifindex() setter would be more appropriate > size_t :0; > }; > -#define bpf_object_open_opts__last_field kernel_log_level > +#define bpf_object_open_opts__last_field prog_ifindex > > LIBBPF_API struct bpf_object *bpf_object__open(const char *path); > > -- > 2.38.1.273.g43a17bfeac-goog >
Powered by blists - more mailing lists