On Tue, Jun 25, 2019 at 3:04 PM Mickaël Salaün <m...@digikod.net> wrote: > > The goal of the program subtype is to be able to have different static > fine-grained verifications for a unique program type. > > The struct bpf_verifier_ops gets a new optional function: > is_valid_subtype(). This new verifier is called at the beginning of the > eBPF program verification to check if the (optional) program subtype is > valid. > > The new helper bpf_load_program_xattr() enables to verify a program with > subtypes. > > For now, only Landlock eBPF programs are using a program subtype (see > next commits) but this could be used by other program types in the > future. > > Signed-off-by: Mickaël Salaün <m...@digikod.net> > Cc: Alexei Starovoitov <a...@kernel.org> > Cc: Daniel Borkmann <dan...@iogearbox.net> > Cc: David S. Miller <da...@davemloft.net> > Link: https://lkml.kernel.org/r/20160827205559.ga43...@ast-mbp.thefacebook.com > --- > > Changes since v8: > * use bpf_load_program_xattr() instead of bpf_load_program() and add > bpf_verify_program_xattr() to deal with subtypes > * remove put_extra() since there is no more "previous" field (for now) > > Changes since v7: > * rename LANDLOCK_SUBTYPE_* to LANDLOCK_* > * move subtype in bpf_prog_aux and use only one bit for has_subtype > (suggested by Alexei Starovoitov)
sorry to say, but I don't think the landlock will ever land, since posting huge patches once a year is missing a lot of development that is happening during that time. This 2/10 patch is an example. subtype concept was useful 2 years ago when v6 was posted. Since then bpf developers faced very similar problem in other parts and it was solved with 'expected_attach_type' field. See commit 5e43f899b03a ("bpf: Check attach type at prog load time") dated March 2018.