3. DPDK Release 23.03
3.1. New Features
Introduced lock annotations.
Added lock annotations attributes so that clang can statically analyze lock correctness.
Added support for reporting lcore usage in applications.
- The
/eal/lcore/list
,/eal/lcore/usage
and/eal/lcore/info
telemetry endpoints have been added to provide information similar torte_lcore_dump()
. - Applications can register a callback at startup via
rte_lcore_register_usage_cb()
to provide lcore usage information.
- The
Added platform bus support.
A platform bus provides a way to use Linux platform devices which are compatible with the vfio-platform kernel driver.
Added ARM support for power monitor in the power management library.
Added power monitor and wake up API support with WFE/SVE instructions for Arm architecture.
Added Ethernet link speed for 400 Gb/s.
Added Ethernet link speed for 400 Gb/s since there are some devices already supporting that speed and it is well standardized in IEEE.
Added support for mapping a queue with an aggregated port.
- Introduced new function
rte_eth_dev_count_aggr_ports()
to get the number of aggregated ports. - Introduced new function
rte_eth_dev_map_aggr_tx_affinity()
to map a Tx queue with an aggregated port of the DPDK port. - Added Rx affinity flow matching of an aggregated port.
- Introduced new function
Added flow matching of IPv6 routing extension.
Added
RTE_FLOW_ITEM_TYPE_IPV6_ROUTING_EXT
to match IPv6 routing extension header fields.Added flow matching of ICMPv6.
Added flow items to match ICMPv6 echo request and reply packets. Matching patterns can include ICMP identifier and sequence numbers.
Added flow flex handle to modify action.
Added flex modify item
RTE_FLOW_FIELD_FLEX_ITEM
.Added index-based rules insertion in flow API.
- Added
rte_flow_table_insertion_type
to allow the creation of index-based template tables in addition to pattern-based tables. - Introduced new function
rte_flow_async_create_by_index()
to insert rules by index into index-based template tables. - Added hash calculation function used in template tables to allow control over the calculation of the rule index for a packet.
- Added
Added cross-port indirect action in asynchronous flow API.
- Enabled the ability to share indirect actions between ports by passing
the flag
RTE_FLOW_PORT_FLAG_SHARE_INDIRECT
torte_flow_configure()
. - Added
host_port_id
inrte_flow_port_attr
structure to reference the port hosting the shared objects.
- Enabled the ability to share indirect actions between ports by passing
the flag
Added atomic query and update indirect flow action.
Added synchronous and asynchronous functions to atomically query and update indirect flow action:
rte_flow_action_handle_query_update()
rte_flow_async_action_handle_query_update()
Added flow quota action and item.
RTE_FLOW_ACTION_TYPE_QUOTA
RTE_FLOW_ITEM_TYPE_QUOTA
Added flow API to skip congestion management configuration.
- Added the action
RTE_FLOW_ACTION_TYPE_SKIP_CMAN
to skip congestion management processing based on per flow or packet color identified by a flow meter object.
- Added the action
Updated AMD axgbe driver.
- Added multi-process support.
Updated Atomic Rules ark driver.
- Added Arkville FX2 device supporting PCIe Gen5x16.
Updated Corigine nfp driver.
- Added support for meter options.
- Added support for rte_flow meter action.
Added Intel cpfl driver.
Added the new cpfl net driver for Intel® Infrastructure Processing Unit (Intel® IPU) E2100. See the CPFL Poll Mode Driver NIC guide for more details on this new driver.
Updated Intel igc driver.
- Added support for timesync API.
- Added support for packet pacing (launch time offloading).
Updated Marvell cnxk ethdev driver.
- Added support to skip RED using
RTE_FLOW_ACTION_TYPE_SKIP_CMAN
.
- Added support to skip RED using
Updated NVIDIA mlx5 driver.
- Added support for matching on ICMPv6 ID and sequence fields.
- Added support for MPLSoUDP in hardware steering.
- Added support for enhanced CQE compression layout.
Updated Wangxun ngbe driver.
- Added chip overheat detection support.
Updated Wangxun txgbe driver.
- Added chip overheat detection support.
- Added SFP hot-plug identification support.
Added new algorithms to cryptodev.
Added SHAKE-128 and SHAKE-256 symmetric secure hash algorithm.
Updated Marvell cnxk crypto driver.
Added support for SHAKE hash algorithm in cn9k and cn10k.
Updated Intel QuickAssist Technology (QAT) crypto driver.
- Added support for SHA3 224/256/384/512 plain hash in QAT GEN 3.
- Added support for SHA3 256 plain hash in QAT GEN 2.
- Added support for asymmetric crypto in QAT GEN3.
Added LZ4 algorithm in compressdev library.
Added LZ4 compression algorithm with xxHash-32 for the checksum.
Updated NVIDIA mlx5 compress driver.
Added LZ4 algorithm support for decompress operation.
Added machine learning inference device library.
- Added a machine learning inference device framework for management and provision of hardware and software machine learning inference devices.
- Added a test application for machine learning inference device library.
Added Marvell CNXK machine learning driver.
Added driver which supports machine learning inference operations on Marvell’s CN10K series of SoC’s.
Updated the eventdev reconfigure logic for service based adapters.
- The eventdev reconfigure logic was enhanced to increment the
rte_event_dev_config::nb_single_link_event_port_queues
parameter if event port config is of typeRTE_EVENT_PORT_CFG_SINGLE_LINK
. - With this change, the application no longer needs to account for the
rte_event_dev_config::nb_single_link_event_port_queues
parameter required for eth_rx, eth_tx, crypto and timer eventdev adapters.
- The eventdev reconfigure logic was enhanced to increment the
Added PCAP trace support in graph library.
- Added support to capture packets at each graph node with packet metadata and node name.
3.2. Removed Items
Removed the experimental empty poll API from the power management library.
The empty poll mechanism is superseded by the power PMD modes i.e. monitor, pause and scale.
3.3. API Changes
- The telemetry command
/eal/heap_info
is fixed to printHeap_id
. - The experimental function
rte_pcapng_copy
was updated to support a comment section in enhanced packet block in the PcapNG library. - The experimental structures
struct rte_graph_param
,struct rte_graph
andstruct graph
were updated to support pcap trace in the graph library.
3.4. ABI Changes
- No ABI change that would break compatibility with 22.11.
3.5. Tested Platforms
- Intel® platforms with Intel® NICs combinations
- CPU
- Intel® Atom™ CPU C3758 @ 2.20GHz
- Intel® Xeon® CPU D-1553N @ 2.30GHz
- Intel® Xeon® CPU E5-2680 v2 @ 2.80GHz
- Intel® Xeon® CPU E5-2699 v4 @ 2.20GHz
- Intel® Xeon® D-1749NT CPU @ 3.00GHz
- 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
- OS:
- CentOS 7.9
- CBL Mariner 2.0
- Fedora 37
- FreeBSD 13.1
- openEuler 22.03 (LTS-SP1)
- Red Hat Enterprise Linux Server release 8.4
- Red Hat Enterprise Linux Server release 8.6
- Red Hat Enterprise Linux Server release 9.1
- SUSE Linux Enterprise Server 15 SP4
- Ubuntu 20.04.5
- Ubuntu 22.04.1
- NICs:
- Intel® Ethernet Controller E810-C for SFP (4x25G)
- Firmware version: 4.20 0x800177d1 1.3346.0
- Device id (pf/vf): 8086:1593 / 8086:1889
- Driver version(out-tree): 1.11.14 (ice)
- Driver version(in-tree): 5.15.0-57-generic / 4.18.0-372.9.1.rt7.166.el8.x86_64 (ice)
- OS Default DDP: 1.3.30.0
- COMMS DDP: 1.3.40.0
- Wireless Edge DDP: 1.3.10.0
- Intel® Ethernet Controller E810-C for QSFP (2x100G)
- Firmware version: 4.20 0x80017785 1.3346.0
- Device id (pf/vf): 8086:1592 / 8086:1889
- Driver version(out-tree): 1.11.14 (ice)
- Driver version(in-tree): 5.15.86-rt56 / 5.15.55.1-1.cm_7dc1fb4+ (ice)
- OS Default DDP: 1.3.30.0
- COMMS DDP: 1.3.40.0
- Wireless Edge DDP: 1.3.10.0
- Intel® Ethernet Controller E810-XXV for SFP (2x25G)
- Firmware version: 4.20 0x8001778c 1.3346.0
- Device id (pf/vf): 8086:159b / 8086:1889
- Driver version: 1.11.14 (ice)
- OS Default DDP: 1.3.30.0
- COMMS DDP: 1.3.40.0
- Intel® Corporation Device 188b
- Firmware version: 3.12 0x80017ca8 1.3243.0
- Device id (pf/vf): 8086:188b / 8086:1889
- Driver version: 1.11.14 (ice)
- OS Default DDP: 1.3.30.0
- COMMS DDP: 1.3.40.0
- Wireless Edge DDP: 1.3.10.0
- Intel® Ethernet Connection E823-L for QSFP
- Firmware version: 3.12 0x80017cf4 1.3243.0
- Device id (pf/vf): 8086:151d / 8086:1889
- Driver version: 1.11.14 (ice)
- OS Default DDP: 1.3.30.0
- COMMS DDP: 1.3.40.0
- Wireless Edge DDP: 1.3.10.0
- Intel® 82599ES 10 Gigabit Ethernet Controller
- Firmware version: 0x61bf0001
- Device id (pf/vf): 8086:10fb / 8086:10ed
- Driver version(out-tree): 5.18.11 (ixgbe)
- Driver version(in-tree): 5.15.0-57-generic (ixgbe)
- Intel® Ethernet Converged Network Adapter X710-DA4 (4x10G)
- Firmware version: 9.20 0x8000d8bd 1.3353.0
- Device id (pf/vf): 8086:1572 / 8086:154c
- Driver version(out-tree): 2.22.18 (i40e)
- Driver version(in-tree): 5.15.0-57-generic (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.22.18 (i40e)
- Driver version(in-tree): 5.15.0-57-generic (i40e)
- Intel® Corporation Ethernet Connection X722 for 10GBASE-T
- Firmware version: 6.20 0x80003d3e 1.2935.0
- Device id (pf/vf): 8086:37d2 / 8086:37cd
- Driver version(out-tree): 2.22.18 (i40e)
- Driver version(in-tree): 5.15.0-57-generic (i40e)
- Intel® Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
- Firmware version: 9.20 0x8000d89c 1.3353.0
- Device id (pf/vf): 8086:158b / 8086:154c
- Driver version(out-tree): 2.22.18 (i40e)
- Driver version(in-tree): 5.15.0-57-generic (i40e)
- Intel® Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
- Firmware version(PF): 9.20 0x8000d893 1.3353.0
- Device id (pf/vf): 8086:1583 / 8086:154c
- Driver version(out-tree): 2.22.18 (i40e)
- Driver version(in-tree): 5.15.0-57-generic (i40e)
- Intel® Ethernet Converged Network Adapter X710-T2L
- Firmware version: 9.20 0x8000d877 1.3353.0
- Device id (pf): 8086:15ff
- Driver version: 2.22.18 (i40e)
- 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 5.9-0.5.6.0 and above
- upstream kernel:
- Linux 6.3.0-rc3 and above
- rdma-core:
- rdma-core-45.0 and above
- NICs:
- NVIDIA® ConnectX®-3 Pro 40G MCX354A-FCC_Ax (2x40G)
- Host interface: PCI Express 3.0 x8
- Device ID: 15b3:1007
- Firmware version: 2.42.5000
- NVIDIA® ConnectX®-3 Pro 40G MCX354A-FCCT (2x40G)
- Host interface: PCI Express 3.0 x8
- Device ID: 15b3:1007
- Firmware version: 2.42.5000
- NVIDIA® ConnectX®-4 Lx 25G MCX4121A-ACAT (2x25G)
- Host interface: PCI Express 3.0 x8
- Device ID: 15b3:1015
- Firmware version: 14.32.1010 and above
- NVIDIA® ConnectX®-4 Lx 50G MCX4131A-GCAT (1x50G)
- Host interface: PCI Express 3.0 x8
- Device ID: 15b3:1015
- Firmware version: 14.32.1010 and above
- NVIDIA® ConnectX®-5 100G MCX516A-CCAT (2x100G)
- Host interface: PCI Express 3.0 x16
- Device ID: 15b3:1017
- Firmware version: 16.36.1010 and above
- NVIDIA® ConnectX®-5 100G MCX556A-ECAT (2x100G)
- Host interface: PCI Express 3.0 x16
- Device ID: 15b3:1017
- Firmware version: 16.36.1010 and above
- NVIDIA® ConnectX®-5 100G MCX556A-EDAT (2x100G)
- Host interface: PCI Express 3.0 x16
- Device ID: 15b3:1017
- Firmware version: 16.36.1010 and above
- NVIDIA® ConnectX®-5 Ex EN 100G MCX516A-CDAT (2x100G)
- Host interface: PCI Express 4.0 x16
- Device ID: 15b3:1019
- Firmware version: 16.36.1010 and above
- NVIDIA® ConnectX®-6 Dx EN 100G MCX623106AN-CDAT (2x100G)
- Host interface: PCI Express 4.0 x16
- Device ID: 15b3:101d
- Firmware version: 22.36.1010 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.36.1010 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.36.1010 and above
- NVIDIA® ConnectX®-3 Pro 40G MCX354A-FCC_Ax (2x40G)
- 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.35.2000 and above
- Embedded software:
- Ubuntu 20.04.3
- MLNX_OFED 5.8-1.0.1.1 and above
- DOCA 1.5.1 with BlueField 3.9.3
- 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®-5 100G MCX556A-ECAT (2x100G)
- Host interface: PCI Express 4.0 x16
- Device ID: 15b3:1017
- Firmware version: 16.36.1010
- NVIDIA® ConnectX®-6 Dx 100G MCX623106AN-CDAT (2x100G)
- Host interface: PCI Express 4.0 x16
- Device ID: 15b3:101d
- Firmware version: 22.36.1010
- NVIDIA® ConnectX®-5 100G MCX556A-ECAT (2x100G)
- OFED:
- MLNX_OFED 5.9-0.5.6.0
- CPU: