2. DPDK Release 24.07

2.1. New Features

  • Introduced pointer compression library.

    Library provides functions to compress and decompress arrays of pointers which can improve application performance under certain conditions. Performance test was added to help users evaluate performance on their setup.

  • Added API to retrieve memory locations of objects in a mempool.

    Added mempool API rte_mempool_get_mem_range and rte_mempool_get_obj_alignment to retrieve information about the memory range and the alignment of objects stored in a mempool.

  • Updated AF_XDP driver.

    • Enabled multi-interface (UDS) support with AF_XDP Device Plugin.

      The argument use_cni was limiting a pod to a single netdev/interface. The new dp_path parameter removed this limitation and maintains backward compatibility for applications using the use_cni vdev argument with the AF_XDP Device Plugin.

    • Integrated AF_XDP Device Plugin eBPF map pinning support.

      The argument use_map_pinning was added to allow Kubernetes Pods to use AF_XDP with DPDK, and run with limited privileges, without having to do a full handshake over a Unix Domain Socket with the Device Plugin.

  • Updated Amazon ena (Elastic Network Adapter) driver.

    • Reworked the driver logger usage in order to improve Tx performance.

    • Reworked the device uninitialization flow to ensure complete resource cleanup and lay the groundwork for hot-unplug support.

  • Updated Intel ice driver.

    • Added support for E830 device family.

    • Added support for configuring the Forward Error Correction (FEC) mode, querying FEC capabilities and current FEC mode from a device.

  • Updated Intel i40e driver.

    • Added support for configuring the Forward Error Correction (FEC) mode, querying FEC capabilities and current FEC mode from a device.

  • Updated Intel ixgbe driver.

    • Updated base code with E610 device family support.

  • Added Napatech ntnic net driver [EXPERIMENTAL].

    • Added the PMD for Napatech smartNIC:

      • Ability to initialize the NIC (NT200A02)

      • Supporting only one FPGA firmware (9563.55.39)

      • Ability to bring up the 100G link

      • Supporting QSFP/QSFP+/QSFP28 NIM

      • Does not support datapath

  • Updated Marvell cnxk net driver.

    • Added support disabling custom meta aura and separately use custom SA action support.

    • Added MTU update for port representor.

    • Added multi-segment support for port representor.

  • Updated NVIDIA mlx5 driver.

    • Added match with Tx queue.

    • Added match with external Tx queue.

    • Added match with E-Switch manager.

    • Added async flow item and actions validation.

    • Added global and per-port out of buffer counter for hairpin queues.

    • Added hardware queue object context dump for Rx/Tx debugging.

  • Updated TAP driver.

    • Updated to support up to 8 queues when used by secondary process.

    • Fixed support for RSS flow action to work with current Linux kernels and BPF tooling. Will only be enabled if clang, libbpf 1.0 and bpftool are available.

  • Updated Wangxun ngbe driver.

    • Added SSE/NEON vector datapath.

  • Updated Wangxun txgbe driver.

    • Added SSE/NEON vector datapath.

  • Added AMD Pensando ionic crypto driver.

    Added a new crypto driver for AMD Pensando hardware accelerators.

  • Updated NVIDIA mlx5 crypto driver.

    • Added AES-GCM IPsec operation optimization.

  • Updated IPsec_MB crypto driver.

    • Made Kasumi and ChaCha-Poly PMDs to share the job code path with AESNI_MB PMD.

  • Added UADK compress driver.

    Added a new compress driver for the UADK library. See the UADK Compression Poll Mode Driver guide for more details on this new driver.

  • Updated Marvell CNXK DMA driver.

    • Updated DMA driver internal pool to use higher chunk size, effectively reducing the number of mempool allocs needed, thereby increasing DMA performance.

  • Added Marvell Odyssey ODM DMA driver.

    • Added Marvell Odyssey ODM DMA device PMD.

  • Updated the DSW event device.

    • Added support for RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE, allowing applications to take on new tasks without having completed (released) the previous event batch. This in turn facilities DSW use alongside high-latency look-aside hardware accelerators.

  • Updated the hash library.

    • Added defer queue reclamation via RCU.

    • Added SVE support for bulk lookup.

2.2. Removed Items

  • Disabled the BPF library and net/af_xdp for 32-bit x86.

    BPF is not supported and the librte-bpf test fails on 32-bit x86 kernels. So disable the library and the pmd.

  • Removed hisilicon DMA support for HIP09 platform.

    The DMA for HIP09 is no longer available, so the support is removed from hisilicon driver for HIP09 platform.

2.3. API Changes

  • mbuf: RTE_MARKER fields cacheline0 and cacheline1 have been removed from struct rte_mbuf.

  • hash: The rte_hash_sig_compare_function internal enum is not exposed in the public API anymore.

2.4. ABI Changes

  • No ABI change that would break compatibility with 23.11.

  • eventdev/dma: Reorganize the experimental fastpath structure rte_event_dma_adapter_op to optimize the memory layout and improve performance.

2.5. Tested Platforms

  • Intel® platforms with Intel® NICs combinations

    • CPU

      • Intel Atom® P5342 processor

      • Intel® Atom™ CPU C3758 @ 2.20GHz

      • Intel® Xeon® CPU D-1553N @ 2.30GHz

      • Intel® Xeon® CPU E5-2699 v4 @ 2.20GHz

      • Intel® Xeon® D-1747NTE CPU @ 2.50GHz

      • Intel® Xeon® D-2796NT CPU @ 2.00GHz

      • Intel® Xeon® Gold 6139 CPU @ 2.30GHz

      • Intel® Xeon® Gold 6140M CPU @ 2.30GHz

      • Intel® Xeon® Gold 6252N CPU @ 2.30GHz

      • Intel® Xeon® Gold 6348 CPU @ 2.60GHz

      • Intel® Xeon® Platinum 8180 CPU @ 2.50GHz

      • Intel® Xeon® Platinum 8280M CPU @ 2.70GHz

      • Intel® Xeon® Platinum 8380 CPU @ 2.30GHz

      • Intel® Xeon® Platinum 8468H

      • Intel® Xeon® Platinum 8490H

    • OS:

      • CBL Mariner 2.0

      • Fedora 40

      • FreeBSD 14.0

      • OpenAnolis OS 8.8

      • openEuler 22.03 (LTS-SP3)

      • Red Hat Enterprise Linux Server release 9.0

      • Red Hat Enterprise Linux Server release 9.4

      • Ubuntu 22.04.3

      • Ubuntu 24.04

    • NICs:

      • Intel® Ethernet Controller E810-C for SFP (4x25G)

        • Firmware version: 4.50 0x8001d8b5 1.3597.0

        • Device id (pf/vf): 8086:1593 / 8086:1889

        • Driver version(out-tree): 1.14.11 (ice)

        • Driver version(in-tree): 6.8.0-31-generic (Ubuntu24.04) / 5.14.0-427.13.1.el9_4.x86_64+rt (RHEL9.4) (ice)

        • OS Default DDP: 1.3.36.0

        • COMMS DDP: 1.3.46.0

        • Wireless Edge DDP: 1.3.14.0

      • Intel® Ethernet Controller E810-C for QSFP (2x100G)

        • Firmware version: 4.50 0x8001d8b6 1.3597.0

        • Device id (pf/vf): 8086:1592 / 8086:1889

        • Driver version(out-tree): 1.14.11 (ice)

        • Driver version(in-tree): 5.15.55.1-1.cm2-5464b22cac7+ (CBL Mariner 2.0) (ice)

        • OS Default DDP: 1.3.36.0

        • COMMS DDP: 1.3.46.0

        • Wireless Edge DDP: 1.3.14.0

      • Intel® Ethernet Controller E810-XXV for SFP (2x25G)

        • Firmware version: 4.50 0x8001d8c2 1.3597.0

        • Device id (pf/vf): 8086:159b / 8086:1889

        • Driver version: 1.14.11 (ice)

        • OS Default DDP: 1.3.36.0

        • COMMS DDP: 1.3.46.0

      • Intel® Ethernet Connection E823-C for QSFP

        • Firmware version: 3.39 0x8001db5f 1.3597.0

        • Device id (pf/vf): 8086:188b / 8086:1889

        • Driver version: 1.14.11 (ice)

        • OS Default DDP: 1.3.36.0

        • COMMS DDP: 1.3.46.0

        • Wireless Edge DDP: 1.3.14.0

      • Intel® Ethernet Connection E823-L for QSFP

        • Firmware version: 3.39 0x8001da47 1.3534.0

        • Device id (pf/vf): 8086:124c / 8086:1889

        • Driver version: 1.14.11 (ice)

        • OS Default DDP: 1.3.36.0

        • COMMS DDP: 1.3.46.0

        • Wireless Edge DDP: 1.3.14.0

      • Intel® Ethernet Connection E822-L for backplane

        • Firmware version: 3.39 0x8001d9b6 1.3353.0

        • Device id (pf/vf): 8086:1897 / 8086:1889

        • Driver version: 1.14.11 (ice)

        • OS Default DDP: 1.3.36.0

        • COMMS DDP: 1.3.46.0

        • Wireless Edge DDP: 1.3.14.0

      • Intel® 82599ES 10 Gigabit Ethernet Controller

        • Firmware version: 0x000161bf

        • Device id (pf/vf): 8086:10fb / 8086:10ed

        • Driver version(out-tree): 5.20.9 (ixgbe)

        • Driver version(in-tree): 6.8.0-31-generic (Ubuntu24.04) / 5.14.0-427.13.1.el9_4.x86_64 (RHEL9.4)(ixgbe)

      • Intel® Ethernet Converged Network Adapter X710-DA4 (4x10G)

        • Firmware version: 9.50 0x8000f145 1.3597.0

        • Device id (pf/vf): 8086:1572 / 8086:154c

        • Driver version(out-tree): 2.25.9 (i40e)

      • Intel® Corporation Ethernet Connection X722 for 10GbE SFP+ (2x10G)

        • Firmware version: 6.50 0x80004216 1.3597.0

        • Device id (pf/vf): 8086:37d0 / 8086:37cd

        • Driver version(out-tree): 2.25.9 (i40e)

        • Driver version(in-tree): 5.14.0-427.13.1.el9_4.x86_64 (RHEL9.4)(i40e)

      • Intel® Ethernet Converged Network Adapter XXV710-DA2 (2x25G)

        • Firmware version: 9.50 0x8000f167 1.3597.0

        • Device id (pf/vf): 8086:158b / 8086:154c

        • Driver version(out-tree): 2.25.9 (i40e)

        • Driver version(in-tree): 6.8.0-31-generic (Ubuntu24.04) / 5.14.0-427.13.1.el9_4.x86_64 (RHEL9.4)(i40e)

      • Intel® Ethernet Converged Network Adapter XL710-QDA2 (2X40G)

        • Firmware version(PF): 9.50 0x8000f181 1.3597.0

        • Device id (pf/vf): 8086:1583 / 8086:154c

        • Driver version(out-tree): 2.25.9 (i40e)

      • Intel® Ethernet Controller I225-LM

        • Firmware version: 1.3, 0x800000c9

        • Device id (pf): 8086:15f2

        • Driver version(in-tree): 6.8.0-31-generic (Ubuntu24.04)(igc)

      • Intel® Ethernet Controller I226-LM

        • Firmware version: 2.14, 0x8000028c

        • Device id (pf): 8086:125b

        • Driver version(in-tree): 6.8.0-31-generic (Ubuntu24.04)(igc)

  • Intel® platforms with NVIDIA® NICs combinations

    • CPU:

      • Intel® Xeon® Gold 6154 CPU @ 3.00GHz

      • Intel® Xeon® CPU E5-2697A v4 @ 2.60GHz

      • Intel® Xeon® CPU E5-2697 v3 @ 2.60GHz

      • Intel® Xeon® CPU E5-2680 v2 @ 2.80GHz

      • Intel® Xeon® CPU E5-2670 0 @ 2.60GHz

      • Intel® Xeon® CPU E5-2650 v4 @ 2.20GHz

      • Intel® Xeon® CPU E5-2650 v3 @ 2.30GHz

      • Intel® Xeon® CPU E5-2640 @ 2.50GHz

      • Intel® Xeon® CPU E5-2650 0 @ 2.00GHz

      • Intel® Xeon® CPU E5-2620 v4 @ 2.10GHz

    • OS:

      • Red Hat Enterprise Linux release 9.1 (Plow)

      • Red Hat Enterprise Linux release 8.6 (Ootpa)

      • Red Hat Enterprise Linux release 8.4 (Ootpa)

      • Red Hat Enterprise Linux Server release 7.9 (Maipo)

      • Red Hat Enterprise Linux Server release 7.6 (Maipo)

      • Ubuntu 22.04

      • Ubuntu 20.04

      • SUSE Enterprise Linux 15 SP2

    • OFED:

      • MLNX_OFED 24.04-0.6.6.0 and above

    • upstream kernel:

      • Linux 6.10.0 and above

    • rdma-core:

      • rdma-core-52.0 and above

    • NICs

      • NVIDIA® ConnectX®-6 Dx EN 100G MCX623106AN-CDAT (2x100G)

        • Host interface: PCI Express 4.0 x16

        • Device ID: 15b3:101d

        • Firmware version: 22.41.1000 and above

      • NVIDIA® ConnectX®-6 Lx EN 25G MCX631102AN-ADAT (2x25G)

        • Host interface: PCI Express 4.0 x8

        • Device ID: 15b3:101f

        • Firmware version: 26.41.1000 and above

      • NVIDIA® ConnectX®-7 200G CX713106AE-HEA_QP1_Ax (2x200G)

        • Host interface: PCI Express 5.0 x16

        • Device ID: 15b3:1021

        • Firmware version: 28.41.1000 and above

  • NVIDIA® BlueField® SmartNIC

    • NVIDIA® BlueField®-2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G)

      • Host interface: PCI Express 3.0 x16

      • Device ID: 15b3:a2d6

      • Firmware version: 24.41.1000 and above

    • NVIDIA® BlueField®-3 P-Series DPU MT41692 - 900-9D3B6-00CV-AAB (2x200G)

      • Host interface: PCI Express 5.0 x16

      • Device ID: 15b3:a2dc

      • Firmware version: 32.41.1000 and above

    • Embedded software:

      • Ubuntu 22.04

      • MLNX_OFED 24.04-0.6.6.0 and above

      • bf-bundle-2.7.0-33_24.04_ubuntu-22.04

      • DPDK application running on ARM cores

  • IBM Power 9 platforms with NVIDIA® NICs combinations

    • CPU:

      • POWER9 2.2 (pvr 004e 1202)

    • OS:

      • Ubuntu 20.04

    • NICs:

      • NVIDIA® ConnectX®-6 Dx 100G MCX623106AN-CDAT (2x100G)

        • Host interface: PCI Express 4.0 x16

        • Device ID: 15b3:101d

        • Firmware version: 22.41.1000 and above

      • NVIDIA® ConnectX®-7 200G CX713106AE-HEA_QP1_Ax (2x200G)

        • Host interface: PCI Express 5.0 x16

        • Device ID: 15b3:1021

        • Firmware version: 28.41.1000 and above

    • OFED:

      • MLNX_OFED 24.04-0.6.6.0