aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorPaul Chaignon <paul.chaignon@gmail.com>2023-09-01 23:55:15 +0200
committerAleksandr Nogikh <nogikh@google.com>2023-09-11 09:55:16 +0000
commitece90fe7b89e16b5099149e5ee99e943ef83f50c (patch)
treef5f2fc3acf24a67b1c08c31a0247e9d3bb9441c6 /sys
parent1742950b2ba1f046805cffc72f3b2d9989a0e012 (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.txt12
-rw-r--r--sys/linux/test/bpf_cgroup2
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.