6. DPDK Release 23.03
6.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.
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.
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 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.
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.
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
.
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.
Added PCAP trace support in graph library.
Added support to capture packets at each graph node with packet metadata and node name.
6.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.
6.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.
6.4. ABI Changes
No ABI change that would break compatibility with 22.11.
6.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® 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® 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
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
OFED:
MLNX_OFED 5.9-0.5.6.0