1. DPDK Release 25.03
1.1. New Features
Added Staged-Ordered-Ring (SORING) API to the ring library.
Added new API to the ring library to provide a software abstraction for ordered queues with multiple processing stages. It is based on the conventional DPDK
rte_ring
and re-uses many of its concepts, including substantial part of its code. It can be viewed as an extension ofrte_ring
functionality.Hardened more allocation functions.
Added allocation attributes to functions that allocate data:
rte_acl_create()
rte_comp_op_pool_create()
rte_event_ring_create()
rte_fbk_hash_create()
rte_fib_create()
rte_fib6_create()
rte_hash_create()
rte_lpm_create()
rte_lpm6_create()
rte_member_create()
rte_mempool_create()
rte_mempool_create_empty()
rte_reorder_create()
rte_rib_create()
rte_rib6_create()
rte_ring_create()
rte_sched_port_config()
rte_stats_bitrate_create()
rte_tel_data_alloc()
This can catch some obvious bugs at compile time (with GCC 11.0 or later). For example, calling
free
on a pointer that was allocated with one of those functions (and vice versa), freeing the same pointer twice in the same routine or freeing an object that was not created by allocation.Updated af_packet net driver.
Added ability to configure receive packet fanout mode.
Added statistics for failed buffer allocation and missed packets.
Updated Amazon ENA (Elastic Network Adapter) net driver.
Added support for mutable RSS table size based on device capabilities.
Updated AMD axgbe driver.
Added support for the TCP Segmentation Offload (TSO).
Updated Intel e1000 driver.
Added support for the Intel i225-series NICs (previously handled by net/igc).
Updated base code to the latest version.
Updated Intel ipdf driver.
Added support for AVX2 instructions in single queue Rx and Tx path. (The single queue model processes all packets in order within one Rx queue, while the split queue model separates packet data and metadata into different queues for parallel processing and improved performance.)
Updated Marvell cnxk net driver.
Added flow rules support for CN20K SoC.
Added inline IPsec support for CN20K SoC.
Updated Napatech ntnic driver.
Added support for the NT400D13 adapter.
Updated NVIDIA mlx5 driver.
Added support for NVIDIA ConnectX-8 adapters.
Optimized large scale port probing. This feature enhances the efficiency of probing VF/SFs on a large scale by significantly reducing the probing time.
Updated Wangxun ngbe driver.
Added support for virtual function (VF).
Updated ZTE zxdh network driver.
Added support for multiple queues.
Added support for SR-IOV VF.
Scatter and gather for Tx and Rx.
Link state and auto-negotiation.
MAC address filtering.
Multicast and promiscuous mode.
VLAN filtering and offload.
Receive Side Scaling (RSS).
Hardware and extended statistics.
Jumbo frames.
Checksum offload.
LRO and TSO.
Ingress metering.
Added Yunsilicon xsc net driver [EXPERIMENTAL].
Added network driver for the Yunsilicon metaScale serials NICs.
Updated vhost/virtio for RSA crypto.
Added RSA crypto operations to the vhost library.
Added RSA crypto operations to the virtio crypto driver.
Updated IPsec_MB crypto driver.
Added support for the SM4 GCM algorithm.
Added ZTE Storage Data Accelerator (ZSDA) driver.
Added a compress driver for ZSDA devices to support the deflate compression and decompression algorithm.
See the ZTE Storage Data Accelerator (ZSDA) Poll Mode Driver guide for more details on the new driver.
Added atomic tests to the eventdev test application.
Added two atomic tests:
atomic_queue
andatomic_atq
. These work in the same way as the corresponding ordered tests but use atomic queues exclusively. Atomicity is verified using spinlocks.
1.2. Removed Items
Dropped support for Intel|reg| C++ Compiler (icc) (replaced by “icx” support).
Support for the older Intel® C++ Compiler “icc” has been dropped. The newer Intel® oneAPI DPC++/C++ Compiler, “icx”, can be used to compile DPDK instead.
1.3. API Changes
eal: The
__rte_packed
macro for packing data is replaced with__rte_packed_begin
/__rte_packed_end
.eal: The
__rte_weak
macro is deprecated and will be removed in a future release.net: Changed the API for CRC calculation to be thread-safe. An opaque context argument was introduced to the net CRC API containing the algorithm type and length. This argument is added to
rte_net_crc_calc
,rte_net_crc_set_alg
and freed withrte_net_crc_free
. These functions are versioned to retain binary compatibility until the next LTS release.build: The Intel networking drivers: cpfl, e1000, fm10k, i40e, iavf, ice, idpf, ipn3ke and ixgbe, have been moved from
drivers/net
to a newdrivers/net/intel
directory. The resulting build output, including the driver filenames, is the same, but to enable/disable these drivers via Meson option requires the use of the new paths. For example,-Denable_drivers=/net/i40e
becomes-Denable_drivers=/net/intel/i40e
.build: The Intel IGC networking driver was merged with the e1000 driver and is no longer provided as a separate driver. The resulting build output will no longer have the
librte_net_igc.*
driver files, but thelibrte_net_e1000.*
driver files will provide support for all of the devices and features of the old driver. In addition, to enable/disable the driver via Meson option, the path has changed from-Denable_drivers=net/igc
to-Denable_drivers=net/intel/e1000
.build: The driver
common/idpf
has been merged into thenet/intel/idpf
driver. Similarly, thecommon/iavf
driver has been merged into thenet/intel/iavf
driver. These changes should have no impact to end applications, but, when specifying theidpf
orcpfl
net drivers to Meson via-Denable_drivers
option, there is no longer any need to also specify thecommon/idpf
driver. In the same way, when specifying theiavf
orice
net drivers, there is no need to also specify thecommon/iavf
driver. Note, however,net/intel/cpfl
driver now depends upon thenet/intel/idpf
driver.
1.4. ABI Changes
No ABI change that would break compatibility with 24.11.
1.5. Tested Platforms
Intel® platforms with Intel® NICs combinations
CPU
Intel® Atom™ x7835RE
Intel® Xeon® CPU E5-2699 v4 @ 2.20GHz
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 8358 CPU @ 2.60GHz
Intel® Xeon® Platinum 8380 CPU @ 2.30GHz
Intel® Xeon® Platinum 8468H
Intel® Xeon® Platinum 8490H
OS:
Microsoft Azure Linux 3.0
Fedora 41
FreeBSD 14.2
OpenAnolis OS 8.9
openEuler 24.03 (LTS)
Red Hat Enterprise Linux Server release 9.0
Red Hat Enterprise Linux Server release 9.4
Red Hat Enterprise Linux Server release 9.5
Ubuntu 22.04.3 LTS
Ubuntu 22.04.4 LTS
Ubuntu 22.04.5 LTS
Ubuntu 24.04.1 LTS
NICs:
Intel® Ethernet Controller E810-C for SFP (4x25G)
Firmware version: 4.70 0x8001f79e 1.3755.0
Device id (pf/vf): 8086:1593 / 8086:1889
Driver version(out-tree): 1.16.3 (ice)
Driver version(in-tree): 6.8.0-48-generic (Ubuntu24.04.1) / 5.14.0-503.11.1.el9_5.x86_64 (RHEL9.5) (ice)
OS Default DDP: 1.3.39.1
COMMS DDP: 1.3.53.0
Wireless Edge DDP: 1.3.14.0
Intel® Ethernet Controller E810-C for QSFP (2x100G)
Firmware version: 4.70 0x8001f7b8 1.3755.0
Device id (pf/vf): 8086:1592 / 8086:1889
Driver version(out-tree): 1.16.3 (ice)
Driver version(in-tree): 6.6.12.1-1.azl3+ice+ (Microsoft Azure Linux 3.0) (ice)
OS Default DDP: 1.3.39.1
COMMS DDP: 1.3.53.0
Wireless Edge DDP: 1.3.14.0
Intel® Ethernet Controller E810-XXV for SFP (2x25G)
Firmware version: 4.70 0x8001f7ba 1.3755.0
Device id (pf/vf): 8086:159b / 8086:1889
Driver version: 1.16.3 (ice)
OS Default DDP: 1.3.39.1
COMMS DDP: 1.3.53.0
Intel® Ethernet Network Adapter E830-XXVDA2 for OCP
Firmware version: 1.00 0x800107e3 1.3766.0
Device id (pf/vf): 8086:12d3 / 8086:1889
Driver version: 1.16.3 (ice)
OS Default DDP: 1.3.39.1
Intel® Ethernet Network Adapter E830-CQDA2
Firmware version: 1.00 0x800107ca 1.3766.0
Device id (pf/vf): 8086:12d2 / 8086:1889
Driver version: 1.16.3 (ice)
OS Default DDP: 1.3.39.1
COMMS DDP: 1.3.53.0
Wireless Edge DDP: 1.3.19.0
Intel® Ethernet Connection E825-C for QSFP
Firmware version: 3.81 0x8000674f 1.0.0
Device id (pf/vf): 8086:579d / 8086:1889
Driver version: 2.1.0 (ice)
OS Default DDP: 1.3.39.2
COMMS DDP: 1.3.54.0
Wireless Edge DDP: 1.3.22.0
Intel® 82599ES 10 Gigabit Ethernet Controller
Firmware version: 0x000161bf
Device id (pf/vf): 8086:10fb / 8086:10ed
Driver version(out-tree): 6.0.6 (ixgbe)
Driver version(in-tree): 6.8.0-48-generic (Ubuntu24.04.1) (ixgbe)
Intel® Ethernet Network Adapter E610-XT2
Firmware version: 1.00 0x800066ae 0.0.0
Device id (pf/vf): 8086:57b0 / 8086:57ad
Driver version(out-tree): 6.0.6 (ixgbe)
Intel® Ethernet Network Adapter E610-XT4
Firmware version: 1.00 0x80004ef2 0.0.0
Device id (pf/vf): 8086:57b0 / 8086:57ad
Driver version(out-tree): 6.0.6 (ixgbe)
Intel® Ethernet Converged Network Adapter X710-DA4 (4x10G)
Firmware version: 9.53 0x8000f8f5 1.3755.0
Device id (pf/vf): 8086:1572 / 8086:154c
Driver version(out-tree): 2.27.8 (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.27.8 (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.53 0x8000f912 1.3755.0
Device id (pf/vf): 8086:158b / 8086:154c
Driver version(out-tree): 2.27.8 (i40e)
Driver version(in-tree): 6.8.0-45-generic (Ubuntu24.04.1) / 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.53 0x8000f8f5 1.3755.0
Device id (pf/vf): 8086:1583 / 8086:154c
Driver version(out-tree): 2.27.8 (i40e)
Intel® Ethernet Controller I225-LM
Firmware version: 1.3, 0x800000c9
Device id (pf): 8086:15f2
Driver version(in-tree): 6.8.0-48-generic (Ubuntu24.04.1)(igc)
Intel® Ethernet Controller (2) I225-IT
Firmware version: 1.82, 0x8000026C
Device id (pf): 8086:0d9f
Driver version(in-tree): 6.6.25-lts-240422t024020z (Ubuntu22.04.4 LTS)(igc)
Intel® Ethernet Controller I226-LM
Firmware version: 2.14, 0x8000028c
Device id (pf): 8086:125b
Driver version(in-tree): 6.8.0-45-generic (Ubuntu24.04.1)(igc)
Intel® Corporation Ethernet Server Adapter I350-T4
Firmware version: 1.63, 0x80001001
Device id (pf/vf): 8086:1521 /8086:1520
Driver version: 6.6.25-lts-240422t024020z(igb)
Intel® Infrastructure Processing Unit (Intel® IPU) E2100
Firmware version: CI-9231
Device id (idpf/cpfl): 8086:1452/8086:1453
Driver version: 0.0.754 (idpf)
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)
Ubuntu 22.04
Ubuntu 20.04
SUSE Enterprise Linux 15 SP2
DOCA:
DOCA 2.10.0-0.5.3 and above
upstream kernel:
Linux 6.12.0 and above
rdma-core:
rdma-core-54.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.44.1036 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.44.1036 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.44.1036 and above
NVIDIA® ConnectX®-8 SuperNIC 400G MT4131 - 900-9X81Q-00CN-STA (2x400G)
Host interface: PCI Express 6.0 x16
Device ID: 15b3:1023
Firmware version: 40.44.1036 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.44.1036 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.44.1036 and above
Embedded software:
Ubuntu 22.04
MLNX_OFED 25.01-0.6.0.0
bf-bundle-2.10.0-147_25.01_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.44.1036 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.44.1036 and above
DOCA:
DOCA 2.10.0-0.5.3 and above