【问题标题】:EBPF access pinned tablesEBPF 访问固定表
【发布时间】:2021-09-24 16:32:54
【问题描述】:

如果在我的 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

【问题讨论】:

  • 为什么要固定地图?是否只是为了能够从第二个 Python 程序中引用它?

标签: python c ebpf bcc-bpf


【解决方案1】:

如果您只想共享 BPF 地图,您可以在密件抄送中执行此操作,而无需显式固定地图。在这种情况下,您需要使用BPF_TABLE_SHAREDBPF_TABLE("extern"。例如(取自the BPF project 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);

【讨论】:

  • 与固定地图相比,使用共享地图有什么优势?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多