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
andrte_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 newdp_path
parameter removed this limitation and maintains backward compatibility for applications using theuse_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
fieldscacheline0
andcacheline1
have been removed fromstruct 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