xdp-loader will not perform hardware offload mode
davehouser1 opened this issue · comments
When trying to perform xdp-loader load -m hw ens224 ./xdp_prog_kern.o
I keep getting the following error:
Couldn't attach XDP program on iface 'ens224': Invalid argument(-22)
My xdp program works fine with generic and native modes.
Here is info on the interface:
# ethtool -i ens224
driver: i40e
version: 5.11.0-49-generic
firmware-version: 7.10 0x800075e1 19.5.12
expansion-rom-version:
bus-info: 0000:5e:00.2
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
# ip link show dev ens224
6: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether f8:f2:1e:bd:12:b2 brd ff:ff:ff:ff:ff:ff
# uname -r
5.11.0-49-generic
How can I troubleshoot this? Its not clear to me what Invalid argument(-22)
means.
@tohojo
here is the lshw -c network
info
*-network:2
description: Ethernet interface
product: Ethernet Controller X710 for 10GbE SFP+
vendor: Intel Corporation
physical id: 0.2
bus info: pci@0000:86:00.2
logical name: ens224
version: 02
serial: f8:f2:1e:bd:11:82
capacity: 10Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi msix pciexpress vpd bus_master cap_list rom ethernet physical 10000bt-fd autonegotiation
configuration: autonegotiation=off broadcast=yes driver=i40e driverversion=5.11.0-49-generic firmware=7.10 0x800075e1 19.5.12 latency=0 link=no multicast=yes
resources: irq:277 memory:d5000000-d5ffffff memory:d8008000-d800ffff memory:d3900000-d397ffff
Oh, sorry, missed you already included the driver info. Intel cards don't support hardware offloaded BPF, so the error is expected...
Ok, how do you know that? Is there somewhere I can go to look up this information? or a way to check from the Linux Kernel?
@tohojo Thanks for the info.
Sounds like I just need to look up if my card can do hardware offload or reach out to the manufacture to check if it can.
I will close the case, however I would recommend someone update the documentation here before I do. It was not clear to me that only specific NICs support HW offload even if your driver carries support.
The section under the -m, --mode <mode>
section to state not all NICs support hardware offload and research with the NIC manufacture is needed to determine if there is support for the feature.
Sounds like I just need to look up if my card can do hardware offload or reach out to the manufacture to check if it can.
In principle, yes, but in this instance I can tell you with confidence that it can't :)
You're quite right that the documentation could certainly mention this. I don't suppose you'd be interested in contributing some text to fix this?