bpf: Support consuming XDP HW metadata from fext programs
authorToke Høiland-Jørgensen <toke@redhat.com>
Thu, 19 Jan 2023 22:15:27 +0000 (14:15 -0800)
committerMartin KaFai Lau <martin.lau@kernel.org>
Mon, 23 Jan 2023 17:38:11 +0000 (09:38 -0800)
commitfd7c211d6875013f81acc09868effe199b5d2c0c
treec01192bef62941811490dc9ae00325f5b0c683ae
parent3d76a4d3d4e591af3e789698affaad88a5a8e8ab
bpf: Support consuming XDP HW metadata from fext programs

Instead of rejecting the attaching of PROG_TYPE_EXT programs to XDP
programs that consume HW metadata, implement support for propagating the
offload information. The extension program doesn't need to set a flag or
ifindex, these will just be propagated from the target by the verifier.
We need to create a separate offload object for the extension program,
though, since it can be reattached to a different program later (which
means we can't just inherit the offload information from the target).

An additional check is added on attach that the new target is compatible
with the offload information in the extension prog.

Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Link: https://lore.kernel.org/r/20230119221536.3349901-9-sdf@google.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
include/linux/bpf.h
kernel/bpf/offload.c
kernel/bpf/syscall.c
kernel/bpf/verifier.c