推送到 bpf 映射堆栈类型

Push to bpf map stack type

我正在寻找一种将数据从用户空间发送到 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 函数

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