经典 BPF——简单的统计数据不可用?
Classic BPF -- simple stats not available?
我正在使用经典的 BPF
来过滤 netlink
套接字上的内容,发现没有简单的统计数据可用于验证数据包是否已被丢弃或允许。
所以我查看了 https://elixir.bootlin.com/linux/latest/source/net/core/filter.c#L90 是的,它执行过滤器 bpf 程序但不更新任何会告诉我用户 space(例如通过 /proc FS)是否过滤器是否丢弃了数据包。这将简化 cBPF 过滤器的调试。
这是预期的,还是我遗漏了什么?
据我所知,你是对的,没有与附加到套接字的 BPF 程序相关的统计信息。如果你想要这样的统计数据,你必须自己计算它们,使用 eBPF 程序和映射。
据我所知,XDP 挂钩是唯一带有统计信息的挂钩(通过 ethtool)。
我正在使用经典的 BPF
来过滤 netlink
套接字上的内容,发现没有简单的统计数据可用于验证数据包是否已被丢弃或允许。
所以我查看了 https://elixir.bootlin.com/linux/latest/source/net/core/filter.c#L90 是的,它执行过滤器 bpf 程序但不更新任何会告诉我用户 space(例如通过 /proc FS)是否过滤器是否丢弃了数据包。这将简化 cBPF 过滤器的调试。
这是预期的,还是我遗漏了什么?
据我所知,你是对的,没有与附加到套接字的 BPF 程序相关的统计信息。如果你想要这样的统计数据,你必须自己计算它们,使用 eBPF 程序和映射。
据我所知,XDP 挂钩是唯一带有统计信息的挂钩(通过 ethtool)。