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 9.. **Read this first.** 10 11 The text in the sections below explains how to update the release notes. 12 13 Use proper spelling, capitalization and punctuation in all sections. 14 15 Variable and config names should be quoted as fixed width text: 16 ``LIKE_THIS``. 17 18 Build the docs and view the output file to ensure the changes are correct:: 19 20 ninja -C build doc 21 xdg-open build/doc/guides/html/rel_notes/release_24_03.html 22 23 24New Features 25------------ 26 27.. This section should contain new features added in this release. 28 Sample format: 29 30 * **Add a title in the past tense with a full stop.** 31 32 Add a short 1-2 sentence description in the past tense. 33 The description should be enough to allow someone scanning 34 the release notes to understand the new feature. 35 36 If the feature adds a lot of sub-features you can use a bullet list 37 like this: 38 39 * Added feature foo to do something. 40 * Enhanced feature bar to do something else. 41 42 Refer to the previous release notes for examples. 43 44 Suggested order in release notes items: 45 * Core libs (EAL, mempool, ring, mbuf, buses) 46 * Device abstraction libs and PMDs (ordered alphabetically by vendor name) 47 - ethdev (lib, PMDs) 48 - cryptodev (lib, PMDs) 49 - eventdev (lib, PMDs) 50 - etc 51 * Other libs 52 * Apps, Examples, Tools (if significant) 53 54 This section is a comment. Do not overwrite or remove it. 55 Also, make sure to start the actual text at the margin. 56 ======================================================= 57 58* **Added HiSilicon UACCE bus support.** 59 60 UACCE (Unified/User-space-access-intended Accelerator Framework) bus driver 61 has been added, so that the accelerator devices could be seen in DPDK and could 62 be further registered such as a compress, crypto, DMA and ethernet devices. 63 64* **Introduced argument parsing library.** 65 66 The argparse library was added to ease writing user-friendly applications, 67 replacing ``getopt()`` usage. 68 69* **Improved RSS hash algorithm support.** 70 71 Added new function ``rte_eth_find_rss_algo`` 72 to get RSS hash algorithm by its name. 73 74* **Added query of used descriptors number in Tx queue.** 75 76 * Added a fath path function ``rte_eth_tx_queue_count`` 77 to get the number of used descriptors of a Tx queue. 78 79* **Added hash calculation of an encapsulated packet as done by the HW.** 80 81 Added function to calculate hash when doing tunnel encapsulation: 82 ``rte_flow_calc_encap_hash()`` 83 84* **Added flow matching items.** 85 86 * Added ``RTE_FLOW_ITEM_TYPE_COMPARE`` to allow matching 87 on comparison result between packet fields or value. 88 * Added ``RTE_FLOW_ITEM_TYPE_RANDOM`` to match a random value, 89 and ``RTE_FLOW_FIELD_RANDOM`` to represent it with a field ID. 90 91* **Added flow template table resizing.** 92 93 * ``RTE_FLOW_TABLE_SPECIALIZE_RESIZABLE_TABLE`` table configuration bit. 94 Set at table creation to allow future resizing. 95 * ``rte_flow_template_table_resizable()``. 96 Query whether template table can be resized. 97 * ``rte_flow_template_table_resize()``. 98 Reconfigure template table for new flows capacity. 99 * ``rte_flow_async_update_resized()``. 100 Reconfigure flows for the updated table configuration. 101 * ``rte_flow_template_table_resize_complete()``. 102 Complete table resize. 103 104* **Updated Atomic Rules' Arkville driver.** 105 106 * Added support for Atomic Rules' TK242 packet-capture family of devices 107 with PCI IDs: ``0x1024, 0x1025, 0x1026``. 108 109* **Updated Broadcom bnxt driver.** 110 111 * Added support for 5760X device family. 112 113* **Updated Marvell cnxk net driver.** 114 115 * Added support for port representors. 116 * Added support for ``RTE_FLOW_ITEM_TYPE_PPPOES`` flow item. 117 * Added support for ``RTE_FLOW_ACTION_TYPE_SAMPLE`` flow item. 118 * Added support for Rx inject. 119 * Added support for ``rte_eth_tx_queue_count()``. 120 * Optimized SW external mbuf free for better performance and avoid SQ corruption. 121 122* **Updated Marvell OCTEON EP driver.** 123 124 * Optimized mbuf rearm sequence. 125 * Updated Tx queue mbuf free thresholds from 128 to 256 for better performance. 126 * Updated Rx queue mbuf refill routine to use mempool alloc and reorder it 127 to avoid mbuf write commits. 128 * Added option to control ISM memory accesses which gives better performance 129 for lower packet sizes when enabled. 130 * Added optimized SSE Rx routines. 131 * Added optimized AVX2 Rx routines. 132 * Added optimized NEON Rx routines. 133 134* **Updated NVIDIA mlx5 driver.** 135 136 * Added support for VXLAN-GPE matching in DV and HWS flow engines. 137 * Added support for GENEVE matching and modifying in HWS flow engine. 138 * Added support for modifying IPv4 proto field in HWS flow engine. 139 * Added support for modifying IPsec ESP fields in HWS flow engine. 140 * Added support for matching a random value. 141 * Added support for comparing result between packet fields or value. 142 * Added support for accumulating value of field into another one. 143 144* **Updated Intel QuickAssist Technology driver.** 145 146 * Enabled support for new QAT GEN3 (578a) and QAT GEN5 (4946) 147 devices in QAT crypto driver. 148 * Enabled ZUC256 cipher and auth algorithm for wireless slice 149 enabled GEN3 and GEN5 devices. 150 * Added support for GEN LCE (1454) device, for AES-GCM only. 151 * Enabled support for virtual QAT - vQAT (0da5) devices in QAT crypto driver. 152 153* **Updated Marvell cnxk crypto driver.** 154 155 * Added support for Rx inject in crypto_cn10k. 156 * Added support for TLS record processing in crypto_cn10k 157 to support TLS v1.2, TLS v1.3 and DTLS v1.2. 158 * Added PMD API to allow raw submission of instructions to CPT. 159 160* **Added Marvell Nitrox compression driver.** 161 162 Added a new compression driver for Marvell Nitrox devices to support 163 deflate compression and decompression algorithm. 164 165* **Updated Marvell cnxk eventdev driver.** 166 167 * Added power-saving during polling within the ``rte_event_dequeue_burst()`` API. 168 * Added support for DMA adapter. 169 170 171Removed Items 172------------- 173 174.. This section should contain removed items in this release. Sample format: 175 176 * Add a short 1-2 sentence description of the removed item 177 in the past tense. 178 179 This section is a comment. Do not overwrite or remove it. 180 Also, make sure to start the actual text at the margin. 181 ======================================================= 182 183* log: Removed the statically defined logtypes that were used internally by DPDK. 184 All code should be using the dynamic logtypes (see ``RTE_LOG_REGISTER()``). 185 The application reserved statically defined logtypes ``RTE_LOGTYPE_USER1..RTE_LOGTYPE_USER8`` 186 are still defined. 187 188* acc101: Removed obsolete code for non productized HW variant. 189 190 191API Changes 192----------- 193 194.. This section should contain API changes. Sample format: 195 196 * sample: Add a short 1-2 sentence description of the API change 197 which was announced in the previous releases and made in this release. 198 Start with a scope label like "ethdev:". 199 Use fixed width quotes for ``function_names`` or ``struct_names``. 200 Use the past tense. 201 202 This section is a comment. Do not overwrite or remove it. 203 Also, make sure to start the actual text at the margin. 204 ======================================================= 205 206* eal: Removed ``typeof(type)`` from the expansion of ``RTE_DEFINE_PER_LCORE`` 207 and ``RTE_DECLARE_PER_LCORE`` macros aligning them with their intended design. 208 If use with an expression is desired applications can adapt by supplying 209 ``typeof(e)`` as an argument. 210 211* eal: Improved ``RTE_BUILD_BUG_ON`` by using C11 ``static_assert``. 212 Non-constant expressions are now rejected instead of being silently ignored. 213 214* gso: ``rte_gso_segment`` now returns -ENOTSUP for unknown protocols. 215 216* ethdev: Renamed structure ``rte_flow_action_modify_data`` to be 217 ``rte_flow_field_data`` for more generic usage. 218 219 220ABI Changes 221----------- 222 223.. This section should contain ABI changes. Sample format: 224 225 * sample: Add a short 1-2 sentence description of the ABI change 226 which was announced in the previous releases and made in this release. 227 Start with a scope label like "ethdev:". 228 Use fixed width quotes for ``function_names`` or ``struct_names``. 229 Use the past tense. 230 231 This section is a comment. Do not overwrite or remove it. 232 Also, make sure to start the actual text at the margin. 233 ======================================================= 234 235* No ABI change that would break compatibility with 23.11. 236 237 238Known Issues 239------------ 240 241.. This section should contain new known issues in this release. Sample format: 242 243 * **Add title in present tense with full stop.** 244 245 Add a short 1-2 sentence description of the known issue 246 in the present tense. Add information on any known workarounds. 247 248 This section is a comment. Do not overwrite or remove it. 249 Also, make sure to start the actual text at the margin. 250 ======================================================= 251 252 253Tested Platforms 254---------------- 255 256.. This section should contain a list of platforms that were tested 257 with this release. 258 259 The format is: 260 261 * <vendor> platform with <vendor> <type of devices> combinations 262 263 * List of CPU 264 * List of OS 265 * List of devices 266 * Other relevant details... 267 268 This section is a comment. Do not overwrite or remove it. 269 Also, make sure to start the actual text at the margin. 270 ======================================================= 271