我正在使用tc
将我的eBPF(使用 clang 编译的 C 代码)附加到网络。
我正在使用eBPF Maps来存储一些数据。
具体来说,我用于从 BPF 程序内部bpf_map_update_elem
更新eBPF 映射,但我还想从程序外部更改映射的内容。
地图结构:
struct rt_val {
int ifaceno;
int macaddr[6];
};
union key_4 {
__u32 b32[2];
__u8 b8[8];
};
struct bpf_map_def SEC("maps") lpm_map_fwd = {
.type = BPF_MAP_TYPE_LPM_TRIE,
.key_size = 8,
.value_size = sizeof(struct rt_val),
.max_entries = 50,
.map_flags = BPF_F_NO_PREALLOC,
};
Run Code Online (Sandbox Code Playgroud)
地图更新和查找都很好。
但我想从程序执行外部动态更改 eBPF Map 的内容。
任何有关相同的意见/建议将不胜感激!
资源:
系统细节:
uname -r
:4.15.0-47-通用OS
:Ubuntu …