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
。
私の NIC、Mellanox MT28800 ファミリ [ConnectX-5 Ex] は、ハードウェア オフロードをサポートする必要があります。
メインの XDP プログラムは、2 つの異なるテール プログラムを呼び出します。私は使用しますBPF_MAP_TYPE_RINGBUF, BPF_MAP_TYPE_PROG_ARRAY, and BPF_MAP_TYPE_ARRAY
。