1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright 2023 The DPDK contributors 3 4.. include:: <isonum.txt> 5 6DPDK Release 23.07 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_23_07.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 AMD CDX bus support.** 59 60 CDX bus driver has been added to support AMD CDX bus, 61 which operates on FPGA based CDX devices. 62 The CDX devices are memory mapped on system bus for embedded CPUs. 63 64* **Added MMIO read and write API to PCI bus.** 65 66 Introduced ``rte_pci_mmio_read()`` and ``rte_pci_mmio_write()`` API 67 to PCI bus so that PCI drivers can access PCI memory resources 68 when they are not mapped to process address space. 69 70* **Added ethdev Rx/Tx queue ID check API.** 71 72 Added ethdev Rx/Tx queue ID check API. 73 If the queue has been setup, it is considered valid. 74 75* **Added LLRS FEC mode in ethdev.** 76 77 Added LLRS algorithm to Forward Error Correction (FEC) modes. 78 79* **Added flow matching of Tx queue.** 80 81 Added ``RTE_FLOW_ITEM_TYPE_TX_QUEUE`` rte_flow pattern 82 to match the Tx queue of the sent packet. 83 84* **Added flow matching of Infiniband BTH.** 85 86 Added ``RTE_FLOW_ITEM_TYPE_IB_BTH`` to match Infiniband BTH fields. 87 88* **Added actions to push or remove IPv6 extension.** 89 90 Added ``RTE_FLOW_ACTION_TYPE_IPV6_EXT_PUSH`` and ``RTE_FLOW_ACTION_TYPE_IPV6_EXT_PUSH`` 91 to push or remove the specific IPv6 extension into or from the packets. 92 Push always put the new extension as the last one due to the next header awareness. 93 94* **Added indirect list flow action.** 95 96 Added API to manage (create, destroy, update) a list of indirect actions. 97 98* **Added flow rule update.** 99 100 * Added API for updating the action list in the already existing rule. 101 Introduced both ``rte_flow_actions_update()`` and 102 ``rte_flow_async_actions_update()`` functions. 103 104* **Added vhost callback API for interrupt handling.** 105 106 A new callback, ``guest_notify``, is introduced that can be used to handle 107 the interrupt kick outside of the datapath fast path. 108 In addition, a new API, ``rte_vhost_notify_guest()``, 109 is added to raise the interrupt outside of the fast path. 110 111* **Added vhost API to set maximum queue pairs supported.** 112 113 Introduced ``rte_vhost_driver_set_max_queue_num()`` to be able to limit 114 the maximum number of supported queue pairs, required for VDUSE support. 115 116* **Added VDUSE support into vhost library.** 117 118 VDUSE aims at implementing vDPA devices in userspace. 119 It can be used as an alternative to Vhost-user when using Vhost-vDPA, 120 but also enable providing a virtio-net netdev to the host 121 when using Virtio-vDPA driver. 122 A limitation in this release is the lack of reconnection support. 123 While VDUSE support is already available in upstream kernel, 124 a couple of patches are required to support network device type, 125 which are being upstreamed: 126 https://lore.kernel.org/all/20230419134329.346825-1-maxime.coquelin@redhat.com/ 127 128* **Updated Google GVE net driver.** 129 130 * Added DQO queue descriptor format support. 131 132* **Updated Marvell cnxk ethdev driver.** 133 134 * Added support for reassembly of multi-segment packets. 135 * Extended ``RTE_FLOW_ACTION_TYPE_PORT_ID`` to redirect traffic across PF ports. 136 * Added support for inline MACsec processing using security library 137 for CN103 platform. 138 139* **Updated NVIDIA mlx5 net driver.** 140 141 * Added support for multi-packet receive queue (MPRQ) on Windows. 142 * Added support for CQE compression on Windows. 143 * Added support for enhanced multi-packet write on Windows. 144 * Added support for InfiniBand BTH matching. 145 * Added support for quota flow action and item. 146 * Added support for flow rule update. 147 148* **Updated Solarflare network PMD.** 149 150 * Added support for configuring FEC mode, querying FEC capabilities and 151 current FEC mode from a device. 152 * Added partial support for transfer flow actions SET_IPV4_DST, SET_TP_DST, 153 SET_IPV4_SRC and SET_TP_SRC on SN1000 SmartNICs. 154 * Added support for transfer flow action INDIRECT with subtype COUNT, 155 for aggregated statistics. 156 * Added support for keeping CRC. 157 * Added VLAN stripping support on SN1000 SmartNICs. 158 159* **Added vmxnet3 version 7 support.** 160 161 Added support for vmxnet3 version 7 which includes support 162 for uniform passthrough(UPT). The patches also add support 163 for new capability registers, large passthrough BAR and some 164 performance enhancements for UPT. 165 166* **Added new algorithms to cryptodev.** 167 168 * Added asymmetric algorithm ShangMi 2 (SM2) along with prime field curve support. 169 * Added symmetric hash algorithm SM3-HMAC. 170 * Added symmetric cipher algorithm ShangMi 4 (SM4) in CFB and OFB modes. 171 172* **Updated Intel QuickAssist Technology (QAT) crypto driver.** 173 174 * Added support for combined Cipher-CRC offload for DOCSIS for QAT GENs 2,3 and 4. 175 * Added support for SM3-HMAC algorithm for QAT GENs 3 and 4. 176 177* **Updated Marvell cnxk crypto driver.** 178 179 * Added support for PDCP chain in cn10k crypto driver. 180 * Added support for SM3 hash operations. 181 * Added support for SM4 operations in cn10k driver. 182 * Added support for AES-CCM in cn9k and cn10k drivers. 183 184* **Updated NVIDIA mlx5 crypto driver.** 185 186 * Added support for AES-GCM crypto. 187 188* **Updated OpenSSL crypto driver.** 189 190 * Added SM2 algorithm support in asymmetric crypto operations. 191 192* **Added PDCP Library.** 193 194 Added an experimental library to provide PDCP UL and DL processing of packets. 195 196 The library supports all PDCP algorithms 197 and leverages lookaside crypto offloads to cryptodevs for crypto processing. 198 PDCP features such as IV generation, sequence number handling, etc are supported. 199 It is planned to add more features such as packet caching in future releases. 200 201 See :doc:`../prog_guide/pdcp_lib` for more information. 202 203* **Added TCP/IPv6 support in GRO library.** 204 205 Enhanced the GRO library to support TCP packets over IPv6 network. 206 207* **Added DMA device performance test application.** 208 209 Added an application to test the performance of DMA device and CPU. 210 211 See the :doc:`../tools/dmaperf` for more details. 212 213 214Removed Items 215------------- 216 217.. This section should contain removed items in this release. Sample format: 218 219 * Add a short 1-2 sentence description of the removed item 220 in the past tense. 221 222 This section is a comment. Do not overwrite or remove it. 223 Also, make sure to start the actual text at the margin. 224 ======================================================= 225 226* Removed LiquidIO ethdev driver located at ``drivers/net/liquidio/``. 227 228 229API Changes 230----------- 231 232.. This section should contain API changes. Sample format: 233 234 * sample: Add a short 1-2 sentence description of the API change 235 which was announced in the previous releases and made in this release. 236 Start with a scope label like "ethdev:". 237 Use fixed width quotes for ``function_names`` or ``struct_names``. 238 Use the past tense. 239 240 This section is a comment. Do not overwrite or remove it. 241 Also, make sure to start the actual text at the margin. 242 ======================================================= 243 244* ethdev: Ensured all entries in MAC address list are uniques. 245 When setting a default MAC address with the function 246 ``rte_eth_dev_default_mac_addr_set``, 247 the default one needs to be removed by the user 248 if it was already in the address list. 249 250 251ABI Changes 252----------- 253 254.. This section should contain ABI changes. Sample format: 255 256 * sample: Add a short 1-2 sentence description of the ABI change 257 which was announced in the previous releases and made in this release. 258 Start with a scope label like "ethdev:". 259 Use fixed width quotes for ``function_names`` or ``struct_names``. 260 Use the past tense. 261 262 This section is a comment. Do not overwrite or remove it. 263 Also, make sure to start the actual text at the margin. 264 ======================================================= 265 266* No ABI change that would break compatibility with 22.11. 267 268* ethdev: In the experimental ``struct rte_flow_action_modify_data``: 269 270 * ``level`` field was reduced to 8 bits. 271 * ``tag_index`` field replaced ``level`` field in representing tag array for 272 ``RTE_FLOW_FIELD_TAG`` type. 273 274 275Known Issues 276------------ 277 278.. This section should contain new known issues in this release. Sample format: 279 280 * **Add title in present tense with full stop.** 281 282 Add a short 1-2 sentence description of the known issue 283 in the present tense. Add information on any known workarounds. 284 285 This section is a comment. Do not overwrite or remove it. 286 Also, make sure to start the actual text at the margin. 287 ======================================================= 288 289 290Tested Platforms 291---------------- 292 293.. This section should contain a list of platforms that were tested 294 with this release. 295 296 The format is: 297 298 * <vendor> platform with <vendor> <type of devices> combinations 299 300 * List of CPU 301 * List of OS 302 * List of devices 303 * Other relevant details... 304 305 This section is a comment. Do not overwrite or remove it. 306 Also, make sure to start the actual text at the margin. 307 ======================================================= 308