Subject: Re: [PATCH v2 bpf-next 0/3] bpf: Program extensions or dynamic re-linking

From: Toke Høiland-Jørgensen <[email-masked]>
Date: Tue, 21 Jan 2020 16:37:31 +0100

Alexei Starovoitov <[email-masked]> writes:

> The last few month BPF community has been discussing an approach to call
> chaining, since exiting bpt_tail_call() mechanism used in production XDP
> programs has plenty of downsides. The outcome of these discussion was a
> conclusion to implement dynamic re-linking of BPF programs. Where rootlet XDP
> program attached to a netdevice can programmatically define a policy of
> execution of other XDP programs. Such rootlet would be compiled as normal XDP
> program and provide a number of placeholder global functions which later can be
> replaced with future XDP programs. BPF trampoline, function by function
> verification were building blocks towards that goal. The patch 1 is a final
> building block. It introduces dynamic program extensions. A number of
> improvements like more flexible function by function verification and better
> libbpf api will be implemented in future patches.

This is great, thank you! I'll go play around with it; couldn't spot
anything obvious from eye-balling the code, except that yeah, it does
need a more flexible libbpf api :)

One thing that's not obvious to me: How can userspace tell which
programs replace which functions after they are loaded? Is this put into
prog_tags in struct bpf_prog_info, or?

For the series:
Acked-by: Toke Høiland-Jørgensen <[email-masked]>

-Toke