我从XDP和BPF地图开始。
我知道要从用户空间访问BPF映射,我们使用bpf_*系统。例如,bpf_map_lookup_elem()用于在用户空间程序中查找BPF映射的一个元素。但是,我注意到,相同的syscalls也用于访问加载在内核上的XDP程序中的映射(ref )。这里)。
我假设这样的程序应该在内核空间中运行,因此是否有其他方法可以从内核空间访问这些BPF映射?还是XDP加载的程序也是用户空间的一部分,但只在内核中运行?
发布于 2022-01-14 09:41:48
要从userspace查找map元素,您应该使用赛瑟尔,并使用命令BPF_MAP_LOOKUP_ELEM。BPF的主用户空间库确实将这个syscall命令公开为bpf_map_lookup_elem()。
要从BPF程序中查找映射元素,确实需要使用bpf_map_lookup_elem BPF助手。简而言之,BPF帮助程序是可以通过指令call从BPF字节码调用的内核函数。
尽管有相同的名称,但它们是不同的东西:第一个是库函数,第二个是BPF助手.。
https://stackoverflow.com/questions/70707891
复制相似问题