我正在尝试将我的第一个 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
是的,根据 Linux 4.9,mlx5 驱动程序支持 XDPhttps://docs.cilium.io/en/latest/gettingstarted/kubeproxy-free/#xdp-acceleration。
您的计划可能因其他原因被拒绝。要么是与驱动程序模式本身无关的事情(例如,被验证程序拒绝),要么是您正在执行驱动程序不支持的事情。