ebpf program loading error: unknown func bpf_l4_csum_replace#11

ebpf program loading error: unknown func bpf_l4_csum_replace#11

我正在使用 ebpf 测试一个 nat 程序。但是 ebpf prog 加载器抛出一条错误消息:

221: (85) call bpf_l4_csum_replace#11
unknown func bpf_l4_csum_replace#11  

这是什么意思?如何解决? 谢谢

类似的消息可能意味着您的内核不知道您尝试使用的 BPF 助手,因为例如您的内核太旧帮助程序已根据内核配置选项编译出来。但在那些情况下,您不会在验证程序日志中看到函数的名称。

这里可能发生的情况是您的内核确实支持 BPF 助手,但是您尝试加载的 BPF 程序的类型不兼容和那个帮手。例如,如果您的程序是 socket_filter 类型,则您不能使用此助手(请参阅函数 sk_filter_func_proto() used for the check)。如果您的程序是 TC 分类器,您就可以使用它。