eBPF:检索固定 bpf 程序的 `fd`
eBPF: retrieve `fd` of the pinned bpf program
我知道 eBPF
程序可以固定到 /sys/fs/bpf
(小 bpffs
的默认位置)。例如使用 bpftool
:
$ bpftool prog load ./my_bpf.o /sys/fs/bpf/my_bpf
我原以为 open("/sys/fs/bpf/my_bpf")
会 return 我得到内核为 my_bpf
分配的文件描述符的值。但是 open()
调用就失败了,我认为是 returns -EINVAL
.
在这种情况下,固定的目的是什么?我通常如何获取 BPF 程序的 fd
,因为当前可能加载了很多程序。我知道 libbpf
允许从 id
检索 fd
,但是如果我也没有 id
怎么办?
bpf(BPF_OBJ_GET, …)
包裹在内核提供的 libbpf 中的 bpf_obj_get()
returns fd
固定对象。固定对象的路径是 bpf_obj_get()
.
的参数
我知道 eBPF
程序可以固定到 /sys/fs/bpf
(小 bpffs
的默认位置)。例如使用 bpftool
:
$ bpftool prog load ./my_bpf.o /sys/fs/bpf/my_bpf
我原以为 open("/sys/fs/bpf/my_bpf")
会 return 我得到内核为 my_bpf
分配的文件描述符的值。但是 open()
调用就失败了,我认为是 returns -EINVAL
.
在这种情况下,固定的目的是什么?我通常如何获取 BPF 程序的 fd
,因为当前可能加载了很多程序。我知道 libbpf
允许从 id
检索 fd
,但是如果我也没有 id
怎么办?
bpf(BPF_OBJ_GET, …)
包裹在内核提供的 libbpf 中的 bpf_obj_get()
returns fd
固定对象。固定对象的路径是 bpf_obj_get()
.