最初のeBPFプログラムをXDPフックにロードしようとしていますが、DRV_MODEを使用できません。
Ubuntu 20.04 LTS (GNU/Linux 5.4.0-100-generic x86_64)
より具体的には、およびNICを使用していますca:00.0 Ethernet controller: Mellanox Technologies MT2892 Family [ConnectX-6 Dx]
。ドライバを最新バージョンに更新しました。
driver: mlx5_core
version: 5.6-2.0.9
firmware-version: 22.32.2004 (DEL0000000027)
expansion-rom-version:
bus-info: 0000:ca:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: yes
ただし、ドライバモードではまだプログラムをロードできません。
bpf_set_link_xdp_fd(ifindex, prog_fd, XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_DRV_MODE).
私はここに閉じ込められており、このMellanoxドライバがXDPネイティブモードをサポートしているかどうかについてのどの単語も見つかりません(実際にはネットワークカードは問題ありません。XDPネイティブモードをサポートする必要があると思います)。
誰でもトラブルシューティングに役立つガイダンスを提供できますか?
答え1
はい、mlx5ドライバはLinux 4.9以降のXDPをサポートしています。https://docs.cilium.io/en/latest/gettingstarted/kubeproxy-free/#xdp-acceleration。
あなたの計画は他の理由で拒否されることがあります。ドライバーモード自体とは無関係な操作 (例えば、検証者によって拒否される) であるか、ドライバーがサポートしていない操作を実行しています。