0

如果在我的 python bcc 程序中我将信息存储在固定地图中,我如何从单独的 python 程序访问它?

所以我从参考指南中得到了这张固定地图:

BPF_TABLE_PINNED("hash", u64, u64, ids, 1024, "/sys/fs/bpf/ids");

我已经尝试像普通表一样访问它,但我得到了一个 raise key 错误。没有任何文档,但我发现这个我不太了解的示例https://github.com/iovisor/bcc/blame/master/examples/cpp/UseExternalMap.cc

4

1 回答 1

0

如果您只想共享 BPF 地图,您可以在密件抄送中执行此操作,而无需显式固定地图。在这种情况下,您需要使用BPF_TABLE_SHAREDandBPF_TABLE("extern"。例如(取自BPF 项目 polycube):

# In first program
BPF_TABLE_SHARED("lru_hash", struct st_k, struct st_v, egress_session_table, NAT_MAP_DIM);

# In second program
BPF_TABLE("extern", struct st_k, struct st_v, egress_session_table,
      NAT_MAP_DIM);
于 2021-07-15T20:43:26.077 回答