xref: /dpdk/doc/guides/rel_notes/release_23_07.rst (revision 8ac3a1cd3ebdf54d9bae0dba0b3b8aa5b3f5339a)
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