推送到 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_QUEUE
和 BPF_MAP_TYPE_STACK
地图使用常用的 bpf_map_update_elem
和 bpf_map_lookup_elem
函数。
您可以在内核源代码中找到几个示例:
我正在寻找一种将数据从用户空间发送到 Linux 中的 bpf 程序的方法。
我在用户空间中使用 libbpf,在内核的 bpf 程序中使用 bpf_helpers。
我现在可以通过 ringbuf 和其他方式从内核向用户发送数据。
但我想为此使用堆栈和队列。我在用户空间中找不到处理队列或堆栈的函数,我仍然感到困惑。
我的问题是:我如何使用堆栈或队列将数据从用户空间发送到 bpf 程序并在我的 bpf 程序中获取它,就像我们在 bcc 中所做的那样,例如用户空间中的 bpf['queue'].push
和 bpf 中的 queue.peek(&val);
程序。
感谢您的帮助!
您应该对 BPF_MAP_TYPE_QUEUE
和 BPF_MAP_TYPE_STACK
地图使用常用的 bpf_map_update_elem
和 bpf_map_lookup_elem
函数。
您可以在内核源代码中找到几个示例: