当我尝试在 XDP 卸载模式下附加 BPF 程序时,我得到Invalid argument
. 如果通过代码附加或使用bpftool
. 这是我使用netlink附加的方式:
err = netlink.LinkSetXdpFdWithFlags(link, objects.CollectIpsProg.FD(), 8)
从使用bpftool
:
# bpftool prog loadall collect_ips.o /sys/fs/bpf/collect_ips type xdp
# bpftool net attach xdpoffload id 106 dev public
Error: interface xdpoffload attach failed: Invalid argument
我在驱动程序模式下加载程序没有任何问题,其中4
传递给LinkSetXdpFdWithFlags
.
我的网卡 Mellanox MT28800 系列 [ConnectX-5 Ex] 应该支持硬件卸载。
我的主要 XDP 程序调用两个不同的尾部程序。我用BPF_MAP_TYPE_RINGBUF, BPF_MAP_TYPE_PROG_ARRAY, and BPF_MAP_TYPE_ARRAY
.