推送至bpf映射堆栈类型



我正在寻找一种在Linux中将数据从用户空间发送到bpf程序的方法。我在用户空间中使用libbpf,在内核中的bpf程序中使用bpf_helpers。我现在可以通过ringbuf和其他方式将数据从内核发送给用户。但我想使用堆栈和队列。我在用户空间中找不到处理队列或堆栈的函数,我仍然感到困惑。我的问题是:如何使用堆栈或队列将数据从用户空间发送到bpf程序,并在我的bpf程序中获取数据,就像我们在bcc中使用用户空间中的bpf['queue'].push和bpf程序的queue.peek(&val);所做的那样。

谢谢你的帮助!

对于BPF_MAP_TYPE_QUEUEBPF_MAP_TYPE_STACK映射,您应该使用常见的bpf_map_update_elembpf_map_lookup_elem函数

您可以在内核源代码中找到几个示例:

  • 使用push和peek堆栈示例
  • 使用推送和偷看的队列示例
  • 处理堆栈和队列映射的示例

相关内容

  • 没有找到相关文章

最新更新