2

我知道该eBPF程序可以固定到/sys/fs/bpf(默认位置 small bpffs。例如使用bpftool

$ bpftool prog load ./my_bpf.o /sys/fs/bpf/my_bpf

我期待这会返回内核open("/sys/fs/bpf/my_bpf")分配给我的文件描述符的值。my_bpf但是open()调用失败了,我认为它会返回-EINVAL

在这种情况下,钉住的目的是什么?fd鉴于当前可能加载了很多 BPF 程序,我通常如何获得BPF 程序。我知道这libbpf允许fd从中检索id,但如果我没有id呢?

4

1 回答 1

2

bpf(BPF_OBJ_GET, …)包裹在bpf_obj_get()由内核返回fd的固定对象提供的 libbpf 中。固定对象的路径是bpf_obj_get().

于 2018-02-14T17:21:25.020 回答