Search code examples
linux-kernellinux-device-driverebpfxdp-bpf

Offloaded XDP program to Netronome Smart NIC unsupported function


I'm trying to offload a small EBPF program to the NIC that uses a map. I can lookup elements in the hash map, but when I add the command bpf_map_update_elem I get back an error when I attempt to load.

14: (85) call bpf_map_update_elem#2
[nfp] map_update: not supported by FW

The driver I'm running:

$ ethtool -i $ETHNAME
driver: nfp
version: 5.15.0-27-generic
firmware-version: 0.0.3.5 0.31 bpf-2.0.6.124 ebpf
expansion-rom-version:
bus-info: 0000:06:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

According to https://www.netronome.com/media/documents/UG_Getting_Started_with_eBPF_Offload.pdf this function should be supported. Has anybody found a solution?


Solution

  • The document you link states:

    Since Kernel 4.17, map updates are supported by our driver. As of this writing, our public firmware does not contain map update support from the datapath, but this is available on request.

    You should contact Netronome's customer support service to get the version of the firmware which supports map updates.

    (I worked on this guide and can confirm that, to my knowledge, the firmware with map updates has not been publicly released.)