diff options
| author | Paul Chaignon <paul.chaignon@gmail.com> | 2023-09-01 23:55:15 +0200 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2023-09-11 09:55:16 +0000 |
| commit | ece90fe7b89e16b5099149e5ee99e943ef83f50c (patch) | |
| tree | f5f2fc3acf24a67b1c08c31a0247e9d3bb9441c6 /sys | |
| parent | 1742950b2ba1f046805cffc72f3b2d9989a0e012 (diff) | |
sys/linux: support multi-progs for BPF_PROG_ATTACH
Commit [1] upstream, and subsequent patches, extended the
BPF_PROG_ATTACH command to support a new multi-prog object in the BPF
subsystem. In particular, programs can now be attached relative to
another object (relative_obj), a BPF program or link, referenced via
either an fd or a BPF ID (id_or_fd). In addition, a new concept of BPF
revision number was introduced and a revision number can be passed, to
be checked at attach time. Finally, the attachment target can now also
be an ifindex.
1 - 053c8e1f235dc ("bpf: Add generic attach/detach/query API for multi-progs")
Signed-off-by: Paul Chaignon <paul.chaignon@gmail.com>
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/linux/bpf.txt | 12 | ||||
| -rw-r--r-- | sys/linux/test/bpf_cgroup | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/sys/linux/bpf.txt b/sys/linux/bpf.txt index 4eb63170e..cafdb65fc 100644 --- a/sys/linux/bpf.txt +++ b/sys/linux/bpf.txt @@ -565,14 +565,24 @@ bpf_obj_get_o_path { bpf_attach_targets [ cgroup fd_cgroup[opt] map fd_bpf_map[opt] + ifindex ifindex +] + +id_or_fd [ + link_fd fd_bpf_link + prog_fd fd_bpf_prog + link_id bpf_link_id + prog_id bpf_prog_id ] bpf_attach_arg { - target_fd bpf_attach_targets + target bpf_attach_targets attach_bpf_fd fd_bpf_prog type flags[bpf_attach_type, int32] flags flags[bpf_attach_flags, int32] replace_bpf_fd fd_bpf_prog + relative_obj id_or_fd + exp_revision int64 } bpf_detach_arg { diff --git a/sys/linux/test/bpf_cgroup b/sys/linux/test/bpf_cgroup index 8d341eb99..f8c772c4e 100644 --- a/sys/linux/test/bpf_cgroup +++ b/sys/linux/test/bpf_cgroup @@ -10,7 +10,7 @@ r2 = bpf$PROG_LOAD(AUTO, &AUTO={0x17, AUTO, &AUTO=@framed={{AUTO, AUTO, AUTO, AU r3 = openat(0xffffffffffffff9c, &AUTO='./cgroup\x00', 0x0, 0x0) -r4 = bpf$BPF_PROG_ATTACH(AUTO, &AUTO={@cgroup=r3, r2, 0x12, 0x0, 0x0}, AUTO) +r4 = bpf$BPF_PROG_ATTACH(AUTO, &AUTO={@cgroup=r3, r2, 0x12, 0x0, 0x0, @prog_id=0x0, 0x0}, AUTO) # It should fail now. |
