1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright 2023 The DPDK contributors 3 4.. include:: <isonum.txt> 5 6DPDK Release 24.03 7================== 8 9New Features 10------------ 11 12* **Added HiSilicon UACCE bus support.** 13 14 Added UACCE (Unified/User-space-access-intended Accelerator Framework) bus 15 driver so that the accelerator devices such as a compress, crypto, 16 DMA and ethernet devices could be seen and registered in DPDK. 17 18* **Introduced argument parsing library.** 19 20 The argparse library was added to help writing user-friendly applications, 21 replacing ``getopt()`` usage. 22 23* **Improved RSS hash algorithm support.** 24 25 Added new function ``rte_eth_find_rss_algo`` 26 to get RSS hash algorithm by its name. 27 28* **Added query of used descriptors number in Tx queue.** 29 30 * Added a fast path function ``rte_eth_tx_queue_count`` 31 to get the number of used descriptors for a Tx queue. 32 33* **Added hash calculation of an encapsulated packet as done by the HW.** 34 35 Added function to calculate hash when doing tunnel encapsulation: 36 ``rte_flow_calc_encap_hash()`` 37 38* **Added flow matching items and action.** 39 40 * Added ``RTE_FLOW_ITEM_TYPE_COMPARE`` to allow matching 41 on comparison result between packet fields or value. 42 * Added ``RTE_FLOW_ITEM_TYPE_RANDOM`` to match a random value, 43 and ``RTE_FLOW_FIELD_RANDOM`` to represent it with a field ID. 44 * Added ``RTE_FLOW_ACTION_TYPE_NAT64`` to offload header conversion 45 between IPv4 and IPv6. 46 47* **Added flow template table resizing.** 48 49 * ``RTE_FLOW_TABLE_SPECIALIZE_RESIZABLE_TABLE`` table configuration bit. 50 Set at table creation to allow future resizing. 51 * ``rte_flow_template_table_resizable()``. 52 Query whether template table can be resized. 53 * ``rte_flow_template_table_resize()``. 54 Reconfigure template table for new flows capacity. 55 * ``rte_flow_async_update_resized()``. 56 Reconfigure flows for the updated table configuration. 57 * ``rte_flow_template_table_resize_complete()``. 58 Complete table resize. 59 60* **Updated Amazon ena (Elastic Network Adapter) net driver.** 61 62 * Removed the reporting of ``rx_overruns`` errors from xstats 63 and instead updated ``imissed`` counter with its value. 64 * Added support for sub-optimal configuration notifications from the device. 65 * Added ``normal_llq_hdr`` devarg that enforces normal LLQ header policy. 66 * Added support for LLQ header size recommendation from the device. 67 * Allowed large LLQ with 1024 entries when the device supports enlarged memory BAR. 68 * Added `control_poll_interval` devarg that configures the control-path to work in poll-mode. 69 * Added support for binding ports to `uio_pci_generic` kernel module. 70 71* **Updated Atomic Rules' Arkville driver.** 72 73 * Added support for Atomic Rules' TK242 packet-capture family of devices 74 with PCI IDs: ``0x1024, 0x1025, 0x1026``. 75 76* **Updated Broadcom bnxt driver.** 77 78 * Added support for 5760X device family. 79 80* **Updated HiSilicon hns3 ethdev driver.** 81 82 * Added new device supporting RDMA/DCB/ROH with PCI IDs: ``0xa227, 0xa22c``. 83 84* **Updated Marvell cnxk net driver.** 85 86 * Added support for port representors. 87 * Added support for ``RTE_FLOW_ITEM_TYPE_PPPOES`` flow item. 88 * Added support for ``RTE_FLOW_ACTION_TYPE_SAMPLE`` flow item. 89 * Added support for Rx inject. 90 * Added support for ``rte_eth_tx_queue_count()``. 91 * Optimized SW external mbuf free for better performance and avoid SQ corruption. 92 93* **Updated Marvell OCTEON EP driver.** 94 95 * Optimized mbuf rearm sequence. 96 * Updated Tx queue mbuf free thresholds from 128 to 256 for better performance. 97 * Updated Rx queue mbuf refill routine to use mempool alloc and reorder it 98 to avoid mbuf write commits. 99 * Added option to control ISM memory accesses which gives better performance 100 for lower packet sizes when enabled. 101 * Added optimized SSE Rx routines. 102 * Added optimized AVX2 Rx routines. 103 * Added optimized NEON Rx routines. 104 105* **Updated NVIDIA mlx5 driver.** 106 107 * Added support for VXLAN-GPE matching in DV and HWS flow engines. 108 * Added support for GENEVE matching and modifying in HWS flow engine. 109 * Added support for modifying IPv4 proto field in HWS flow engine. 110 * Added support for modifying IPsec ESP fields in HWS flow engine. 111 * Added support for modifying IPv6 traffic class field in HWS flow engine. 112 * Added support for modifying IPv6 flow label field in HWS flow engine. 113 * Added support for matching a random value. 114 * Added support for comparing result between packet fields or value. 115 * Added support for accumulating value of field into another one. 116 * Added support for copying inner fields in HWS flow engine. 117 * Added support for ``RTE_FLOW_ACTION_TYPE_NAT64`` flow action in HWS flow engine. 118 * Added support for sharing indirect action objects 119 of type ``RTE_FLOW_ACTION_TYPE_METER_MARK`` and ``RTE_FLOW_ACTION_TYPE_CONNTRACK`` 120 in HWS flow engine. 121 122* **Updated Intel QuickAssist Technology driver.** 123 124 * Enabled support for new QAT GEN3 (578a) and QAT GEN5 (4946) 125 devices in QAT crypto driver. 126 * Enabled ZUC256 cipher and auth algorithm for wireless slice 127 enabled GEN3 and GEN5 devices. 128 * Added support for GEN LCE (1454) device, for AES-GCM only. 129 * Enabled support for virtual QAT - vQAT (0da5) devices in QAT crypto driver. 130 131* **Updated Marvell cnxk crypto driver.** 132 133 * Added support for Rx inject in crypto_cn10k. 134 * Added support for TLS record processing in crypto_cn10k 135 to support TLS v1.2, TLS v1.3 and DTLS v1.2. 136 * Added PMD API to allow raw submission of instructions to CPT. 137 138* **Added Marvell Nitrox compression driver.** 139 140 Added a new compression driver for Marvell Nitrox devices to support 141 the deflate compression and decompression algorithm. 142 143* **Updated Marvell cnxk eventdev driver.** 144 145 * Added power-saving during polling within the ``rte_event_dequeue_burst()`` API. 146 * Added support for DMA adapter. 147 148* **Added DMA producer mode in eventdev test.** 149 150 Added DMA producer mode to measure performance of ``OP_FORWARD`` mode 151 of event DMA adapter. 152 153 154Removed Items 155------------- 156 157* log: Removed the statically defined logtypes that were used internally by DPDK. 158 All code should be using the dynamic logtypes (see ``RTE_LOG_REGISTER()``). 159 The application reserved statically defined logtypes ``RTE_LOGTYPE_USER1..RTE_LOGTYPE_USER8`` 160 are still defined. 161 162* acc101: Removed obsolete code for non productized HW variant. 163 164 165API Changes 166----------- 167 168* eal: Removed ``typeof(type)`` from the expansion of ``RTE_DEFINE_PER_LCORE`` 169 and ``RTE_DECLARE_PER_LCORE`` macros aligning them with their intended design. 170 If use with an expression is desired applications can adapt by supplying 171 ``typeof(e)`` as an argument. 172 173* eal: Improved ``RTE_BUILD_BUG_ON`` by using C11 ``static_assert``. 174 Non-constant expressions are now rejected instead of being silently ignored. 175 176* gso: ``rte_gso_segment`` now returns ``-ENOTSUP`` for unknown protocols. 177 178* ethdev: Renamed structure ``rte_flow_action_modify_data`` to be 179 ``rte_flow_field_data`` for more generic usage. 180 181 182ABI Changes 183----------- 184 185* No ABI change that would break compatibility with 23.11. 186 187 188Tested Platforms 189---------------- 190 191* AMD platforms 192 193 * CPU 194 195 * AMD EPYC\ |trade| 7543 32-Core Processor @ 3.70GHz 196 197 * BIOS 7.00.30.00 198 199 * AMD EPYC\ |trade| 8534 64-Core Processor @ 3.10GHz 200 201 * BIOS 7.00.00.00 202 203 * OS: 204 205 * Ubuntu 22.04.4 LTS 206 207* Intel\ |reg| platforms with Intel\ |reg| NICs combinations 208 209 * CPU 210 211 * Intel Atom\ |reg| P5342 processor 212 * Intel\ |reg| Atom\ |trade| CPU C3758 @ 2.20GHz 213 * Intel\ |reg| Xeon\ |reg| CPU D-1553N @ 2.30GHz 214 * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @ 2.20GHz 215 * Intel\ |reg| Xeon\ |reg| D-1747NTE CPU @ 2.50GHz 216 * Intel\ |reg| Xeon\ |reg| D-2796NT CPU @ 2.00GHz 217 * Intel\ |reg| Xeon\ |reg| Gold 6139 CPU @ 2.30GHz 218 * Intel\ |reg| Xeon\ |reg| Gold 6140M CPU @ 2.30GHz 219 * Intel\ |reg| Xeon\ |reg| Gold 6252N CPU @ 2.30GHz 220 * Intel\ |reg| Xeon\ |reg| Gold 6348 CPU @ 2.60GHz 221 * Intel\ |reg| Xeon\ |reg| Platinum 8180 CPU @ 2.50GHz 222 * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz 223 * Intel\ |reg| Xeon\ |reg| Platinum 8380 CPU @ 2.30GHz 224 * Intel\ |reg| Xeon\ |reg| Platinum 8490H 225 226 * OS: 227 228 * CBL Mariner 2.0 229 * Fedora 39 230 * FreeBSD 14.0 231 * OpenAnolis OS 8.8 232 * openEuler 22.03 (LTS-SP2) 233 * Red Hat Enterprise Linux Server release 8.7 234 * Red Hat Enterprise Linux Server release 9.0 235 * Red Hat Enterprise Linux Server release 9.2 236 * Ubuntu 22.04.3 237 238 * NICs: 239 240 * Intel\ |reg| Ethernet Controller E810-C for SFP (4x25G) 241 242 * Firmware version: 4.40 0x8001c982 1.3534.0 243 * Device id (pf/vf): 8086:1593 / 8086:1889 244 * Driver version(out-tree): 1.13.7 (ice) 245 * Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3) / 246 5.14.0-284.11.1.rt14.296.el9_2.x86_64 (RHEL9.2) (ice) 247 * OS Default DDP: 1.3.35.0 248 * COMMS DDP: 1.3.45.0 249 * Wireless Edge DDP: 1.3.13.0 250 251 * Intel\ |reg| Ethernet Controller E810-C for QSFP (2x100G) 252 253 * Firmware version: 4.40 0x8001c967 1.3534.0 254 * Device id (pf/vf): 8086:1592 / 8086:1889 255 * Driver version(out-tree): 1.13.7 (ice) 256 * Driver version(in-tree): 5.15.55.1-1.cm2-5464b22cac7+ (CBL Mariner 2.0) (ice) 257 * OS Default DDP: 1.3.35.0 258 * COMMS DDP: 1.3.45.0 259 * Wireless Edge DDP: 1.3.13.0 260 261 * Intel\ |reg| Ethernet Controller E810-XXV for SFP (2x25G) 262 263 * Firmware version: 4.40 0x8001af86 1.3444.0 264 * Device id (pf/vf): 8086:159b / 8086:1889 265 * Driver version: 1.13.7 (ice) 266 * OS Default DDP: 1.3.35.0 267 * COMMS DDP: 1.3.45.0 268 269 * Intel\ |reg| Ethernet Connection E823-C for QSFP 270 271 * Firmware version: 3.33 0x8001b295 1.3443.0 272 * Device id (pf/vf): 8086:188b / 8086:1889 273 * Driver version: 1.13.7 (ice) 274 * OS Default DDP: 1.3.35.0 275 * COMMS DDP: 1.3.45.0 276 * Wireless Edge DDP: 1.3.13.0 277 278 * Intel\ |reg| Ethernet Connection E823-L for QSFP 279 280 * Firmware version: 3.33 0x8001b4b0 1.3429.0 281 * Device id (pf/vf): 8086:124c / 8086:1889 282 * Driver version: 1.13.7 (ice) 283 * OS Default DDP: 1.3.35.0 284 * COMMS DDP: 1.3.45.0 285 * Wireless Edge DDP: 1.3.13.0 286 287 * Intel\ |reg| Ethernet Connection E822-L for backplane 288 289 * Firmware version: 3.33 0x8001b4b6 1.3429.0 290 * Device id (pf/vf): 8086:1897 / 8086:1889 291 * Driver version: 1.13.7 (ice) 292 * OS Default DDP: 1.3.35.0 293 * COMMS DDP: 1.3.45.0 294 * Wireless Edge DDP: 1.3.13.0 295 296 * Intel\ |reg| 82599ES 10 Gigabit Ethernet Controller 297 298 * Firmware version: 0x000161bf 299 * Device id (pf/vf): 8086:10fb / 8086:10ed 300 * Driver version(out-tree): 5.19.9 (ixgbe) 301 * Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3) / 302 5.14.0-284.11.1.el9_2.x86_64 (RHEL9.2)(ixgbe) 303 304 * Intel\ |reg| Ethernet Converged Network Adapter X710-DA4 (4x10G) 305 306 * Firmware version: 9.40 0x8000eca2 1.3429.0 307 * Device id (pf/vf): 8086:1572 / 8086:154c 308 * Driver version(out-tree): 2.24.6 (i40e) 309 310 * Intel\ |reg| Corporation Ethernet Connection X722 for 10GbE SFP+ (2x10G) 311 312 * Firmware version: 6.20 0x80003d82 1.3353.0 313 * Device id (pf/vf): 8086:37d0 / 8086:37cd 314 * Driver version(out-tree): 2.24.6 (i40e) 315 * Driver version(in-tree): 5.14.0-284.11.1.el9_2.x86_64 (RHEL9.2)(i40e) 316 317 * Intel\ |reg| Ethernet Converged Network Adapter XXV710-DA2 (2x25G) 318 319 * Firmware version: 9.40 0x8000ed12 1.3429.0 320 * Device id (pf/vf): 8086:158b / 8086:154c 321 * Driver version(out-tree): 2.24.6 (i40e) 322 * Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3) / 323 5.14.0-284.11.1.el9_2.x86_64 (RHEL9.2)(i40e) 324 325 * Intel\ |reg| Ethernet Converged Network Adapter XL710-QDA2 (2X40G) 326 327 * Firmware version(PF): 9.40 0x8000ece4 1.3429.0 328 * Device id (pf/vf): 8086:1583 / 8086:154c 329 * Driver version(out-tree): 2.24.6 (i40e) 330 331 * Intel\ |reg| Ethernet Controller I225-LM 332 333 * Firmware version: 1.3, 0x800000c9 334 * Device id (pf): 8086:15f2 335 * Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3)(igc) 336 337 * Intel\ |reg| Ethernet Controller I226-LM 338 339 * Firmware version: 2.14, 0x8000028c 340 * Device id (pf): 8086:125b 341 * Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3)(igc) 342 343* Intel\ |reg| platforms with NVIDIA\ |reg| NICs combinations 344 345 * CPU: 346 347 * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz 348 * Intel\ |reg| Xeon\ |reg| CPU E5-2697A v4 @ 2.60GHz 349 * Intel\ |reg| Xeon\ |reg| CPU E5-2697 v3 @ 2.60GHz 350 * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz 351 * Intel\ |reg| Xeon\ |reg| CPU E5-2670 0 @ 2.60GHz 352 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v4 @ 2.20GHz 353 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v3 @ 2.30GHz 354 * Intel\ |reg| Xeon\ |reg| CPU E5-2640 @ 2.50GHz 355 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 0 @ 2.00GHz 356 * Intel\ |reg| Xeon\ |reg| CPU E5-2620 v4 @ 2.10GHz 357 358 * OS: 359 360 * Red Hat Enterprise Linux release 9.1 (Plow) 361 * Red Hat Enterprise Linux release 8.6 (Ootpa) 362 * Red Hat Enterprise Linux release 8.4 (Ootpa) 363 * Red Hat Enterprise Linux Server release 7.9 (Maipo) 364 * Red Hat Enterprise Linux Server release 7.6 (Maipo) 365 * Ubuntu 22.04 366 * Ubuntu 20.04 367 * SUSE Enterprise Linux 15 SP2 368 369 * OFED: 370 371 * MLNX_OFED 24.01-0.3.3.1 and above 372 373 * upstream kernel: 374 375 * Linux 6.8.0 and above 376 377 * rdma-core: 378 379 * rdma-core-50.0 and above 380 381 * NICs 382 383 * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx EN 100G MCX623106AN-CDAT (2x100G) 384 385 * Host interface: PCI Express 4.0 x16 386 * Device ID: 15b3:101d 387 * Firmware version: 22.40.1000 and above 388 389 * NVIDIA\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G) 390 391 * Host interface: PCI Express 4.0 x8 392 * Device ID: 15b3:101f 393 * Firmware version: 26.40.1000 and above 394 395 * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G) 396 397 * Host interface: PCI Express 5.0 x16 398 * Device ID: 15b3:1021 399 * Firmware version: 28.40.1000 and above 400 401* NVIDIA\ |reg| BlueField\ |reg| SmartNIC 402 403 * NVIDIA\ |reg| BlueField\ |reg|-2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G) 404 405 * Host interface: PCI Express 3.0 x16 406 * Device ID: 15b3:a2d6 407 * Firmware version: 24.40.1000 and above 408 409 * NVIDIA\ |reg| BlueField\ |reg|-3 P-Series DPU MT41692 - 900-9D3B6-00CV-AAB (2x200G) 410 411 * Host interface: PCI Express 5.0 x16 412 * Device ID: 15b3:a2dc 413 * Firmware version: 32.40.1000 and above 414 415 * Embedded software: 416 417 * Ubuntu 22.04 418 * MLNX_OFED 24.01-0.3.3.0 and above 419 * DOCA_2.6.0_BSP_4.6.0_Ubuntu_22.04-5.24-01 420 * DPDK application running on ARM cores 421 422* IBM Power 9 platforms with NVIDIA\ |reg| NICs combinations 423 424 * CPU: 425 426 * POWER9 2.2 (pvr 004e 1202) 427 428 * OS: 429 430 * Ubuntu 20.04 431 432 * NICs: 433 434 * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx 100G MCX623106AN-CDAT (2x100G) 435 436 * Host interface: PCI Express 4.0 x16 437 * Device ID: 15b3:101d 438 * Firmware version: 22.40.1000 and above 439 440 * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G) 441 442 * Host interface: PCI Express 5.0 x16 443 * Device ID: 15b3:1021 444 * Firmware version: 28.40.1000 and above 445 446 * OFED: 447 448 * MLNX_OFED 24.01-0.3.3.1 449