在我提出我的问题之前;我已经阅读了之前提出的不同 ebpf 程序类型之间的地图共享 问题,该问题似乎没有回答我的问题。
现在,我正在做的是,我有两个 BPF 程序,一个用于 XDP,另一个用于 TC(无用户空间程序)。我在 TC 程序中创建了地图并将其固定到全局命名空间
struct bpf_elf_map cnt_map __section("maps") = {
.type = BPF_MAP_TYPE_ARRAY,
.size_key = sizeof(uint32_t),
.size_value = sizeof(uint32_t),
.pinning = PIN_GLOBAL_NS,
.max_elem = 2,
};
现在,我想在我的 XDP 代码中访问同一个地图。该文档说可以使用 获取固定对象BPF_OBJ_GET
,但我能找到的只是用户空间版本。
所以,我需要知道,两个内核空间 BPF 程序如何共享一个映射?如果BPF_OBJ_GET
可以获得固定对象(在我的情况下是地图),那么如何?或者还有其他方法吗?
非常感谢如何访问其他内核空间 BPF 程序中的固定对象的代码示例,因为我是 XDP/BPF 或 tc/BPF 的新手。
谢谢。