1. DPDK Release 26.07
1.1. New Features
Changed mempool cache behaviour.
The mempool cache flush/refill algorithm was improved, to reduce the mempool cache miss rate for most application types. Applications where each lcore only puts or gets to a mempool, e.g. pipelined applications where ethdev Rx and Tx run on separate lcores, should adapt to the new algorithm by doubling their configured mempool cache size, to avoid doubling their mempool cache miss rate.
The effective size of a mempool cache was changed to match the specified size at mempool creation; the effective size was previously 50 % larger than requested.
The size of the
struct rte_mempool_cachewas kept for API/ABI compatibility purposes.
Added option to change memory limits per page size.
Added the EAL option
--pagesz-memto override the default per-page-size memory limits. Each maximum can be configured with a pair<pagesz>:<limit>.Added option to disable device auto probing.
Added EAL options affecting the initial bus probing to find devices.
-Aor--no-auto-probingdisables the initial bus probing: no device is probed duringrte_eal_initand the application is responsible for probing each device.--auto-probingenables the initial bus probing, which is the current default behavior.
Added RISC-V vector paths.
Increased the default SIMD bitwidth to allow using the vector extension.
Added vectorized ACL which can process up to 8 flows in parallel.
Added vectorized IPv4 LPM lookup for the node library.
Added peek style API for staged-ordered ring (``rte_soring``).
For sorings with producer/consumer in
RTE_RING_SYNC_ST,RTE_RING_SYNC_MT_HTSmode, provide the ability to split enqueue/dequeue operation into two phases (enqueue/dequeue start and enqueue/dequeue finish). This allows the user to inspect objects in the ring without removing them (aka MT safe peek).Added PTP protocol definitions.
Added IEEE 1588 Precision Time Protocol header structures, constants, and inline helpers to
lib/net/rte_ptp.h. Provides wire-format structures with endian-annotated types and correction field manipulation for transparent clock implementations.Added PTP software relay example application.
Added a new example application
ptp_tap_relay_swdemonstrating a software PTP transparent clock relay between a DPDK port and a kernel TAP interface.Added no-IOMMU mode to UACCE bus.
Added no-IOMMU mode for devices that do not have or do not enable IOMMU/SVA support.
Added unplug operation support to VMBUS bus.
Implemented device unplug operation to allow runtime removal of VMBUS devices.
Added selective Rx in ethdev API.
Some parts of packets may be discarded in Rx by configuring a split of packets received in a queue, and assigning no mempool to some configuration segments. This is a driver capability advertised in the
selective_rxbit.Added vhost support for dynamic memory regions.
The feature
VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTShas been implemented to support adding and removing memory regions without resetting the whole guest memory map.Updated Google gve driver.
Added hardware timestamping support on DQO queues.
Updated Intel iavf driver.
Added support for QinQ offloading operations.
Added support for transmitting LLDP packets based on mbuf packet type.
Implemented AVX2 context descriptor transmit paths.
Updated Intel ice driver.
Added
rl_burst_sizedevarg to configure the scheduler rate-limiter burst size, reducing Tx latency jitter for time-sensitive traffic.Added LinkData sxe2 ethernet driver.
Added network driver for the LinkData network adapters.
Updated Microsoft mana driver.
Added device reset support to the MANA PMD, doing automatic recovery from hardware service reset events, and notification to upper layers of the reset lifecycle.
Updated NVIDIA mlx5 ethernet driver.
Added support for selective Rx in scalar SPRQ Rx path.
Updated NXP dpaa2 driver.
Added RSS RETA query and update support.
Removed the software VLAN strip offload:
RTE_ETH_RX_OFFLOAD_VLAN_STRIPis no longer advertised, as no hardware strip backs it. An application that needs the tag removed must now strip it itself.Added Rx queue interrupt support.
Updated NXP enetc ethernet driver.
Added support for ESP packet type in packet parsing.
Added scatter-gather support for ENETC4 PFs and VFs.
Added devargs option
enetc4_vsi_disableto disable VSI-PSI messaging.Added devargs options
enetc4_vsi_timeoutandenetc4_vsi_delayfor VSI-PSI messaging timeout and delay.Added devargs option
enetc4_txq_priorto set Tx queues priorities.Added devargs option
ncto select non-cacheable Rx/Tx ops.
Updated PCAP ethernet driver.
Added support for VLAN insertion and stripping.
Added support for reporting link state in
ifacemode.Added support for link state interrupt in
ifacemode.Added nanosecond precision to timestamp support.
Added
snaplendevarg to configure packet capture snapshot length.Added
eofdevarg to use link state to signal end of receive file input.Added unit test suite.
Updated Wangxun ngbe driver.
Implemented UDP Segmentation Offload (USO) in the transmit path. The
RTE_ETH_TX_OFFLOAD_UDP_TSOcapability was advertised since the driver’s initial integration but the data path was missing; it is now functional.Updated Wangxun txgbe driver.
Implemented UDP Segmentation Offload (USO) in the transmit path. The
RTE_ETH_TX_OFFLOAD_UDP_TSOcapability was advertised since the driver’s initial integration but the data path was missing; it is now functional.Added support for VF sensing PF down. VFs now detect when the PF goes down (via the mailbox
TXGBE_VT_MSGTYPE_CTSflag) and report link down. When the PF comes back, the VF triggers anRTE_ETH_EVENT_INTR_RESETevent so the application can reset the VF and resume normal packet Rx/Tx.Added VF support for the Amber-Lite 40G NIC variant, with new device IDs
0x503fand0x513f.
Updated Intel qat crypto driver dependency requirements.
The QAT crypto PMD now requires IPsec MB library (v1.4.0+) for HMAC precomputes on all platforms. OpenSSL 3.0+ is now optional and used only for DOCSIS BPI cipher fallback. Previously, QAT could build with OpenSSL-only on x86.
On ARM, both IPsec MB and OpenSSL are required for full functionality.
Updated Marvell cnxk crypto driver.
Added support for ML-KEM and ML-DSA on CN20K platform.
Updated lcore validation in power library.
Lcore ID validation was moved into the cpufreq framework before driver dispatch. Power QoS API was updated to accept service lcores.
Extended BPF API.
Added an extensible BPF loading API comprising the function
rte_bpf_load_exand structrte_bpf_prm_ex. This enables new features such as loading classic BPF (cBPF), loading ELF images directly from memory buffers, and executing multi-argument programs, while avoiding future ABI breakages.Added support for loading and executing BPF programs with up to 5 arguments. This introduces new API functions
rte_bpf_exec_ex,rte_bpf_exec_burst_ex, andrte_bpf_get_jit_ex.Added API functions
rte_bpf_eth_rx_installandrte_bpf_eth_tx_installfor installing already loaded BPF programs as port callbacks (as opposed to loading them directly from ELF files).
Added BPF validation debugging API and hardened BPF validator.
Introduced a new API (prefixed with
rte_bpf_validate_debug_) to introspect the BPF validator. This provides a mechanism to set breakpoints or catchpoints during validation and inspect the verifier’s internal state (such as tracked register bounds). This API is crucial primarily for writing comprehensive tests for the validator, but also serves as a foundation for a future interactive eBPF validation debugger.Fixed numerous bugs in the BPF validator’s abstract interpretation logic, including incorrect bounds tracking for jumps and arithmetic operations, as well as fixing several instances of undefined behavior (UB) when verifying malicious or corrupt programs.
Updated testpmd application.
Added support for setting VLAN priority and CFI/DEI bits in
tx_vlan set/tx_qinq setcommands andvlan_tciparameter.Added script for real-time telemetry monitoring.
Introduced the
dpdk-telemetry-watcher.pyscript, enabling users to monitor real-time telemetry statistics from running DPDK applications. The tool supports customizable display options, including delta values, total statistics, and single-line output for compact monitoring.Added AI review helpers.
Added AGENTS.md file for AI review and supporting scripts to review patches and documentation.
1.2. Removed Items
crypto/openssl: Removed support for OpenSSL 1.x versions from the OpenSSL crypto PMD.
The OpenSSL crypto PMD now requires OpenSSL 3.0 as the minimum version, and all compatibility code for OpenSSL 1.0.1, 1.1.0, and 1.1.1 versions has been removed.
crypto/ipsec_mb: Removed Chacha20-poly1305 and KASUMI crypto drivers.
The Chacha20-poly1305 and KASUMI drivers were just wrappers around the main AESNI_MB driver.
crypto/ipsec_mb: Removed ZUC and SNOW 3G crypto drivers from the x86 release.
The ZUC and SNOW 3G crypto drivers are using APIs that are now deprecated in the Intel IPsec Multi-Buffer library.
1.3. API Changes
eal: Promoted
rte_memeq_timingsafe()from experimental to stable.ethdev: Promoted the following flow metadata symbols from experimental to stable:
rte_flow_dynf_metadata_registerrte_flow_dynf_metadata_offsrte_flow_dynf_metadata_maskrte_flow_dynf_metadata_availrte_flow_dynf_metadata_getrte_flow_dynf_metadata_set
mlx5: Promoted the following driver event and steering management functions from experimental to stable:
rte_pmd_mlx5_driver_event_cb_registerrte_pmd_mlx5_driver_event_cb_unregisterrte_pmd_mlx5_enable_steeringrte_pmd_mlx5_disable_steering
ip_frag: Changed handling of malformed fragments.
Duplicate fragments are tolerated instead of failing reassembly.
Overlapping fragments are rejected on arrival rather than during reassembly.
Oversized fragments (reassembled length over 65535) are rejected.
For IPv6, fragments with per-fragment extension headers are rejected.
Overlap and oversize are now detected on arrival, which adds a scan of the already received fragments per fragment and may affect throughput.
1.4. ABI Changes
No ABI change that would break compatibility with 25.11.
1.5. Tested Platforms
Intel® platforms with Intel® NICs combinations
CPU * Intel® Xeon® 6553P-B CPU @ 2.60GHz * Intel® Xeon® 6740E CPU @ 2.40GHz * Intel® Xeon® 6756P-B CPU @ 2.20GHz * Intel® Xeon® 6760P CPU @ 2.20GHz * Intel® Xeon® 6767P CPU @ 2.40GHz * Intel® Xeon® CPU Max 9480 CPU @ 1.90GHz * Intel® Xeon® Gold 6348 CPU @ 2.60GHz * Intel® Xeon® Gold 6430L CPU @ 1.90GHz * Intel® Xeon® Platinum 8468H CPU @ 2.10GHz * Intel® Xeon® Platinum 8490H CPU @ 1.90GHz
OS:
Fedora 43
FreeBSD 15.0
Microsoft Azure Linux 3.0
OpenAnolis OS 8.10
openEuler 24.03 (LTS-SP3)
Red Hat Enterprise Linux Server release 10
Red Hat Enterprise Linux Server release 9.6
Ubuntu 24.04.4 LTS
Ubuntu 26.04
Vmware Exsi 9.0
NICs:
Intel® Ethernet Controller E835-CC for SFP
Firmware version: 2.10 0x80018d57 1.4002.0
Device id (pf/vf): 8086:124a / 8086:1889
Driver version: 2.6.6 (ice)
OS Default DDP: 1.3.59.0
COMMS DDP: 1.3.63.0
Wireless Edge DDP: 1.3.28.0
Intel® Ethernet Controller E810-C for SFP (4x25G)
Firmware version: 5.00 0x80021c11 1.4002.0
Device id (pf/vf): 8086:1593 / 8086:1889
Driver version(out-of-tree): 2.6.6 (ice)
Driver version(in-tree): 7.0.0-15-generic (Ubuntu26.04) (ice)
OS Default DDP: 1.3.59.0
COMMS DDP: 1.3.63.0
Wireless Edge DDP: 1.3.28.0
Intel® Ethernet Controller E810-C for QSFP (2x100G)
Firmware version: 5.00 0x80021bcc 1.4002.0
Device id (pf/vf): 8086:1592 / 8086:1889
Driver version(out-of-tree): 2.6.6 (ice)
Driver version(in-tree): 6.6.119.3-1.azl3 (Microsoft Azure Linux 3.0) / 6.12.0-55.9.1.el10_0.x86_64+rt (RHEL10) / 7.0.0-15-generic (Ubuntu26.04) (ice)
OS Default DDP: 1.3.59.0
COMMS DDP: 1.3.63.0
Wireless Edge DDP: 1.3.28.0
Intel® Ethernet Controller E830-CC for QSFP
Firmware version: 2.10 0x80018d29 1.4002.0
Device id (pf/vf): 8086:12d2 / 8086:1889
Driver version: 2.6.6 (ice)
OS Default DDP: 1.3.59.0
COMMS DDP: 1.3.63.0
Wireless Edge DDP: 1.3.28.0
Intel® Ethernet Connection E825-C for QSFP
Firmware version: 4.10 0x800084d5 1.4002.0
Device id (pf/vf): 8086:579d / 8086:1889
Driver version: 2.6.6 (ice)
OS Default DDP: 1.3.59.0
COMMS DDP: 1.3.63.0
Wireless Edge DDP: 1.3.28.0
Intel® Ethernet Network Adapter E610-XT2
Firmware version: 1.60 0x8000f173 0.0.0
Device id (pf/vf): 8086:57b0 / 8086:57ad
Driver version(out-of-tree): 6.4.4 (ixgbe)
Intel® Ethernet Controller X550 1563
Firmware version: 3.70 0x8000184a 1.3052.0
Device id (pf/vf): 8086:1563 / 8086:1565
Driver version(out-of-tree): 6.4.4 (ixgbe)
Intel® Ethernet Converged Network Adapter X710-DA4 (4x10G)
Firmware version: 9.57 0x80010340 1.4002.0
Device id (pf/vf): 8086:1572 / 8086:154c
Driver version(out-of-tree): 2.30.18 (i40e)
Driver version(in-tree): 6.12.0-55.9.1.el10_0.x86_64 (RHEL10) (i40e)
Intel® Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
Firmware version: 9.57 0x80010398 1.4002.0
Device id (pf/vf): 8086:158b / 8086:154c
Driver version(out-of-tree): 2.30.18 (i40e)
Intel® Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
Firmware version(PF): 9.57 0x8001037b 1.4002.0
Device id (pf/vf): 8086:1583 / 8086:154c
Driver version(out-of-tree): 2.30.18 (i40e)
Driver version(in-tree): 7.0.0-27-generic (Ubuntu26.04) (i40e)
Intel® Corporation Ethernet Connection X722 for 10GbE SFP (2x10G)
Firmware version: 6.51 0x80004430 1.4002.0
Device id (pf/vf): 8086:37d0 / 8086:37cd
Driver version(out-of-tree): 2.30.18 (i40e)
Intel® Ethernet Controller I226-LM
Firmware version: 2.14, 0x8000028c
Device id (pf): 8086:125b
Driver version(in-tree): 7.0.0-15-generic (Ubuntu26.04) (igc)
Intel® Infrastructure Processing Unit (Intel® IPU) E2100
Firmware version: ci-ts.release.2.0.0.11126
Device id (idpf/cpfl): 8086:1452/8086:1453
Driver version: 1.0.13 (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.2 (Plow)
Red Hat Enterprise Linux release 9.1 (Plow)
Red Hat Enterprise Linux release 8.6 (Ootpa)
Ubuntu 24.04
Ubuntu 22.04
SUSE Enterprise Linux 15 SP4
DOCA:
DOCA 3.5.0-035000 and above.
upstream kernel:
Linux 6.18.0 and above
rdma-core:
rdma-core-60.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.50.0394 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.50.0394 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.50.0394 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.50.0394 and above
NVIDIA® ConnectX®-9 SuperNIC 800G MT4133 - 900-9X91E-00EB-STA_Ax (1x800G)
Host interface: PCI Express 6.0 x16
Device ID: 15b3:1025
Firmware version: 82.50.0394 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.50.0394 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.49.1014 and above
Embedded software:
Ubuntu 24.04
MLNX_OFED 26.07-0.3.5.0
DOCA 3.5.0-035000
bf-bundle-3.5.0-47_26.7_ubuntu-24.04
DPDK application running on ARM cores
IBM Power 9 platforms with NVIDIA® NICs combinations
CPU:
POWER9 2.2 (pvr 004e 1202)
OS:
Ubuntu 24.04
NICs:
NVIDIA® ConnectX®-6 Dx 100G MCX623106AN-CDAT (2x100G)
Host interface: PCI Express 4.0 x16
Device ID: 15b3:101d
Firmware version: 22.50.0394 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.50.0394 and above
DOCA:
DOCA 3.5.0-035000 and above
IBM Power 11 platforms with NVIDIA® NICs combinations
CPU:
Power11 2.0 (pvr 0082 0200)
OS:
Red Hat Enterprise Linux 10.2 (6.12.0-211.20.1.el10_2.ppc64le)
SUSE Linux Enterprise Server 15 SP7 (6.4.0-150700.53.66)
PowerVM LPARs via pHyp Hypervisor
NICs:
NVIDIA® ConnectX®-7 25GbE MCX713104AS-ADAT (4x25GbE)
Host interface: PCIe 4.0 x16
Driver version: 26.04-0.8.6
Firmware version: 28.48.1000
NVIDIA® ConnectX®-7 200GbE MCX755106AS-HEAT (2x200GbE)
Host interface: PCIe 5.0x16 with x16 PCIe extension option
Driver version: 26.04-0.8.6
Firmware version: 28.48.1000
DOCA:
DOCA 3.4.0-085000.ppc64le