Re: [PATCH] bpf: Deprecate "data" member of bpf_lpm_trie_key

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

 



On Thu, Feb 9, 2023 at 12:05 PM Kees Cook <keescook@xxxxxxxxxxxx> wrote:
>
> On Thu, Feb 09, 2023 at 11:52:10AM -0800, Andrii Nakryiko wrote:
> > Do we need to add a new type to UAPI at all here? We can make this new
> > struct internal to kernel code (e.g. struct bpf_lpm_trie_key_kern) and
> > point out that it should match the layout of struct bpf_lpm_trie_key.
> > User-space can decide whether to use bpf_lpm_trie_key as-is, or if
> > just to ensure their custom struct has the same layout (I see some
> > internal users at Meta do just this, just make sure that they have
> > __u32 prefixlen as first member).
>
> The uses outside the kernel seemed numerous enough to justify a new UAPI
> struct (samples, selftests, etc). It also paves a single way forward
> when the userspace projects start using modern compiler options (e.g.
> systemd is usually pretty quick to adopt new features).

I don't understand how the new uapi struct bpf_lpm_trie_key_u8 helps.
cilium progs and progs/map_ptr_kern.c
cannot do s/bpf_lpm_trie_key/bpf_lpm_trie_key_u8/.
They will fail to build, so they're stuck with bpf_lpm_trie_key.

Can we do just
struct bpf_lpm_trie_key_kern {
  __u32   prefixlen;
  __u8    data[];
};
and use it in the kernel?
What is the disadvantage?



[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