1. DPDK Release 24.03
1.1. New Features
Added HiSilicon UACCE bus support.
Added UACCE (Unified/User-space-access-intended Accelerator Framework) bus driver so that the accelerator devices such as a compress, crypto, DMA and ethernet devices could be seen and registered in DPDK.
Introduced argument parsing library.
The argparse library was added to help writing user-friendly applications, replacing
getopt()
usage.Improved RSS hash algorithm support.
Added new function
rte_eth_find_rss_algo
to get RSS hash algorithm by its name.Added query of used descriptors number in Tx queue.
- Added a fast path function
rte_eth_tx_queue_count
to get the number of used descriptors for a Tx queue.
- Added a fast path function
Added hash calculation of an encapsulated packet as done by the HW.
Added function to calculate hash when doing tunnel encapsulation:
rte_flow_calc_encap_hash()
Added flow matching items and action.
- Added
RTE_FLOW_ITEM_TYPE_COMPARE
to allow matching on comparison result between packet fields or value. - Added
RTE_FLOW_ITEM_TYPE_RANDOM
to match a random value, andRTE_FLOW_FIELD_RANDOM
to represent it with a field ID. - Added
RTE_FLOW_ACTION_TYPE_NAT64
to offload header conversion between IPv4 and IPv6.
- Added
Added flow template table resizing.
RTE_FLOW_TABLE_SPECIALIZE_RESIZABLE_TABLE
table configuration bit. Set at table creation to allow future resizing.rte_flow_template_table_resizable()
. Query whether template table can be resized.rte_flow_template_table_resize()
. Reconfigure template table for new flows capacity.rte_flow_async_update_resized()
. Reconfigure flows for the updated table configuration.rte_flow_template_table_resize_complete()
. Complete table resize.
Updated Amazon ena (Elastic Network Adapter) net driver.
- Removed the reporting of
rx_overruns
errors from xstats and instead updatedimissed
counter with its value. - Added support for sub-optimal configuration notifications from the device.
- Added
normal_llq_hdr
devarg that enforces normal LLQ header policy. - Added support for LLQ header size recommendation from the device.
- Allowed large LLQ with 1024 entries when the device supports enlarged memory BAR.
- Added control_poll_interval devarg that configures the control-path to work in poll-mode.
- Added support for binding ports to uio_pci_generic kernel module.
- Removed the reporting of
Updated Atomic Rules’ Arkville driver.
- Added support for Atomic Rules’ TK242 packet-capture family of devices
with PCI IDs:
0x1024, 0x1025, 0x1026
.
- Added support for Atomic Rules’ TK242 packet-capture family of devices
with PCI IDs:
Updated Broadcom bnxt driver.
- Added support for 5760X device family.
Updated HiSilicon hns3 ethdev driver.
- Added new device supporting RDMA/DCB/ROH with PCI IDs:
0xa227, 0xa22c
.
- Added new device supporting RDMA/DCB/ROH with PCI IDs:
Updated Marvell cnxk net driver.
- Added support for port representors.
- Added support for
RTE_FLOW_ITEM_TYPE_PPPOES
flow item. - Added support for
RTE_FLOW_ACTION_TYPE_SAMPLE
flow item. - Added support for Rx inject.
- Added support for
rte_eth_tx_queue_count()
. - Optimized SW external mbuf free for better performance and avoid SQ corruption.
Updated Marvell OCTEON EP driver.
- Optimized mbuf rearm sequence.
- Updated Tx queue mbuf free thresholds from 128 to 256 for better performance.
- Updated Rx queue mbuf refill routine to use mempool alloc and reorder it to avoid mbuf write commits.
- Added option to control ISM memory accesses which gives better performance for lower packet sizes when enabled.
- Added optimized SSE Rx routines.
- Added optimized AVX2 Rx routines.
- Added optimized NEON Rx routines.
Updated NVIDIA mlx5 driver.
- Added support for VXLAN-GPE matching in DV and HWS flow engines.
- Added support for GENEVE matching and modifying in HWS flow engine.
- Added support for modifying IPv4 proto field in HWS flow engine.
- Added support for modifying IPsec ESP fields in HWS flow engine.
- Added support for modifying IPv6 traffic class field in HWS flow engine.
- Added support for modifying IPv6 flow label field in HWS flow engine.
- Added support for matching a random value.
- Added support for comparing result between packet fields or value.
- Added support for accumulating value of field into another one.
- Added support for copying inner fields in HWS flow engine.
- Added support for
RTE_FLOW_ACTION_TYPE_NAT64
flow action in HWS flow engine. - Added support for sharing indirect action objects
of type
RTE_FLOW_ACTION_TYPE_METER_MARK
andRTE_FLOW_ACTION_TYPE_CONNTRACK
in HWS flow engine.
Updated Intel QuickAssist Technology driver.
- Enabled support for new QAT GEN3 (578a) and QAT GEN5 (4946) devices in QAT crypto driver.
- Enabled ZUC256 cipher and auth algorithm for wireless slice enabled GEN3 and GEN5 devices.
- Added support for GEN LCE (1454) device, for AES-GCM only.
- Enabled support for virtual QAT - vQAT (0da5) devices in QAT crypto driver.
Updated Marvell cnxk crypto driver.
- Added support for Rx inject in crypto_cn10k.
- Added support for TLS record processing in crypto_cn10k to support TLS v1.2, TLS v1.3 and DTLS v1.2.
- Added PMD API to allow raw submission of instructions to CPT.
Added Marvell Nitrox compression driver.
Added a new compression driver for Marvell Nitrox devices to support the deflate compression and decompression algorithm.
Updated Marvell cnxk eventdev driver.
- Added power-saving during polling within the
rte_event_dequeue_burst()
API. - Added support for DMA adapter.
- Added power-saving during polling within the
Added DMA producer mode in eventdev test.
Added DMA producer mode to measure performance of
OP_FORWARD
mode of event DMA adapter.
1.2. Removed Items
- log: Removed the statically defined logtypes that were used internally by DPDK.
All code should be using the dynamic logtypes (see
RTE_LOG_REGISTER()
). The application reserved statically defined logtypesRTE_LOGTYPE_USER1..RTE_LOGTYPE_USER8
are still defined. - acc101: Removed obsolete code for non productized HW variant.
1.3. API Changes
- eal: Removed
typeof(type)
from the expansion ofRTE_DEFINE_PER_LCORE
andRTE_DECLARE_PER_LCORE
macros aligning them with their intended design. If use with an expression is desired applications can adapt by supplyingtypeof(e)
as an argument. - eal: Improved
RTE_BUILD_BUG_ON
by using C11static_assert
. Non-constant expressions are now rejected instead of being silently ignored. - gso:
rte_gso_segment
now returns-ENOTSUP
for unknown protocols. - ethdev: Renamed structure
rte_flow_action_modify_data
to berte_flow_field_data
for more generic usage.
1.4. ABI Changes
- No ABI change that would break compatibility with 23.11.
1.5. Known Issues
1.6. Tested Platforms
- AMD platforms
- CPU
- AMD EPYC™ 7543 32-Core Processor @ 3.70GHz
- BIOS 7.00.30.00
- AMD EPYC™ 8534 64-Core Processor @ 3.10GHz
- BIOS 7.00.00.00
- AMD EPYC™ 7543 32-Core Processor @ 3.70GHz
- OS:
- Ubuntu 22.04.4 LTS
- CPU
- 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 8490H
- OS:
- CBL Mariner 2.0
- Fedora 39
- FreeBSD 14.0
- OpenAnolis OS 8.8
- openEuler 22.03 (LTS-SP2)
- Red Hat Enterprise Linux Server release 8.7
- Red Hat Enterprise Linux Server release 9.0
- Red Hat Enterprise Linux Server release 9.2
- Ubuntu 22.04.3
- NICs:
- Intel® Ethernet Controller E810-C for SFP (4x25G)
- Firmware version: 4.40 0x8001c982 1.3534.0
- Device id (pf/vf): 8086:1593 / 8086:1889
- Driver version(out-tree): 1.13.7 (ice)
- Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3) / 5.14.0-284.11.1.rt14.296.el9_2.x86_64 (RHEL9.2) (ice)
- OS Default DDP: 1.3.35.0
- COMMS DDP: 1.3.45.0
- Wireless Edge DDP: 1.3.13.0
- Intel® Ethernet Controller E810-C for QSFP (2x100G)
- Firmware version: 4.40 0x8001c967 1.3534.0
- Device id (pf/vf): 8086:1592 / 8086:1889
- Driver version(out-tree): 1.13.7 (ice)
- Driver version(in-tree): 5.15.55.1-1.cm2-5464b22cac7+ (CBL Mariner 2.0) (ice)
- OS Default DDP: 1.3.35.0
- COMMS DDP: 1.3.45.0
- Wireless Edge DDP: 1.3.13.0
- Intel® Ethernet Controller E810-XXV for SFP (2x25G)
- Firmware version: 4.40 0x8001af86 1.3444.0
- Device id (pf/vf): 8086:159b / 8086:1889
- Driver version: 1.13.7 (ice)
- OS Default DDP: 1.3.35.0
- COMMS DDP: 1.3.45.0
- Intel® Ethernet Connection E823-C for QSFP
- Firmware version: 3.33 0x8001b295 1.3443.0
- Device id (pf/vf): 8086:188b / 8086:1889
- Driver version: 1.13.7 (ice)
- OS Default DDP: 1.3.35.0
- COMMS DDP: 1.3.45.0
- Wireless Edge DDP: 1.3.13.0
- Intel® Ethernet Connection E823-L for QSFP
- Firmware version: 3.33 0x8001b4b0 1.3429.0
- Device id (pf/vf): 8086:124c / 8086:1889
- Driver version: 1.13.7 (ice)
- OS Default DDP: 1.3.35.0
- COMMS DDP: 1.3.45.0
- Wireless Edge DDP: 1.3.13.0
- Intel® Ethernet Connection E822-L for backplane
- Firmware version: 3.33 0x8001b4b6 1.3429.0
- Device id (pf/vf): 8086:1897 / 8086:1889
- Driver version: 1.13.7 (ice)
- OS Default DDP: 1.3.35.0
- COMMS DDP: 1.3.45.0
- Wireless Edge DDP: 1.3.13.0
- Intel® 82599ES 10 Gigabit Ethernet Controller
- Firmware version: 0x000161bf
- Device id (pf/vf): 8086:10fb / 8086:10ed
- Driver version(out-tree): 5.19.9 (ixgbe)
- Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3) / 5.14.0-284.11.1.el9_2.x86_64 (RHEL9.2)(ixgbe)
- Intel® Ethernet Converged Network Adapter X710-DA4 (4x10G)
- Firmware version: 9.40 0x8000eca2 1.3429.0
- Device id (pf/vf): 8086:1572 / 8086:154c
- Driver version(out-tree): 2.24.6 (i40e)
- Intel® Corporation Ethernet Connection X722 for 10GbE SFP+ (2x10G)
- Firmware version: 6.20 0x80003d82 1.3353.0
- Device id (pf/vf): 8086:37d0 / 8086:37cd
- Driver version(out-tree): 2.24.6 (i40e)
- Driver version(in-tree): 5.14.0-284.11.1.el9_2.x86_64 (RHEL9.2)(i40e)
- Intel® Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
- Firmware version: 9.40 0x8000ed12 1.3429.0
- Device id (pf/vf): 8086:158b / 8086:154c
- Driver version(out-tree): 2.24.6 (i40e)
- Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3) / 5.14.0-284.11.1.el9_2.x86_64 (RHEL9.2)(i40e)
- Intel® Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
- Firmware version(PF): 9.40 0x8000ece4 1.3429.0
- Device id (pf/vf): 8086:1583 / 8086:154c
- Driver version(out-tree): 2.24.6 (i40e)
- Intel® Ethernet Controller I225-LM
- Firmware version: 1.3, 0x800000c9
- Device id (pf): 8086:15f2
- Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3)(igc)
- Intel® Ethernet Controller I226-LM
- Firmware version: 2.14, 0x8000028c
- Device id (pf): 8086:125b
- Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3)(igc)
- Intel® Ethernet Controller E810-C for SFP (4x25G)
- CPU
- 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.01-0.3.3.1 and above
- upstream kernel:
- Linux 6.8.0 and above
- rdma-core:
- rdma-core-50.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.40.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.40.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.40.1000 and above
- NVIDIA® ConnectX®-6 Dx EN 100G MCX623106AN-CDAT (2x100G)
- CPU:
- 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.40.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.40.1000 and above
- Embedded software:
- Ubuntu 22.04
- MLNX_OFED 24.01-0.3.3.0 and above
- DOCA_2.6.0_BSP_4.6.0_Ubuntu_22.04-5.24-01
- DPDK application running on ARM cores
- NVIDIA® BlueField®-2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G)
- 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.40.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.40.1000 and above
- NVIDIA® ConnectX®-6 Dx 100G MCX623106AN-CDAT (2x100G)
- OFED:
- MLNX_OFED 24.01-0.3.3.1
- CPU: