xref: /dpdk/doc/guides/rel_notes/release_23_03.rst (revision 665b49c51639a10c553433bc2bcd85c7331c631e)
1.. SPDX-License-Identifier: BSD-3-Clause
2   Copyright 2022 The DPDK contributors
3
4.. include:: <isonum.txt>
5
6DPDK Release 23.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_23_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* **Introduced lock annotations.**
59
60  Added lock annotations attributes so that clang can statically analyze lock
61  correctness.
62
63* **Added support for reporting lcore usage in applications.**
64
65  * The ``/eal/lcore/list``, ``/eal/lcore/usage`` and ``/eal/lcore/info``
66    telemetry endpoints have been added to provide information similar to
67    ``rte_lcore_dump()``.
68  * Applications can register a callback at startup via
69    ``rte_lcore_register_usage_cb()`` to provide lcore usage information.
70
71* **Added ARM support for power monitor in the power management library.**
72
73  Added power monitor and wake up API support
74  with WFE/SVE instructions for Arm architecture.
75
76* **Added support for mapping a queue with an aggregated port.**
77
78  * Introduced new function ``rte_eth_dev_count_aggr_ports()``
79    to get the number of aggregated ports.
80  * Introduced new function ``rte_eth_dev_map_aggr_tx_affinity()``
81    to map a Tx queue with an aggregated port of the DPDK port.
82  * Added Rx affinity flow matching of an aggregated port.
83
84* **Added flow matching of IPv6 routing extension.**
85
86  Added ``RTE_FLOW_ITEM_TYPE_IPV6_ROUTING_EXT``
87  to match IPv6 routing extension header fields.
88
89* **Added flow matching of ICMPv6.**
90
91  Added flow items to match ICMPv6 echo request and reply packets.
92  Matching patterns can include ICMP identifier and sequence numbers.
93
94* **Added flow flex handle to modify action.**
95
96  Added flex modify item ``RTE_FLOW_FIELD_FLEX_ITEM``.
97
98* **Added index-based rules insertion in flow API.**
99
100  * Added ``rte_flow_table_insertion_type`` to allow the creation
101    of index-based template tables in addition to pattern-based tables.
102  * Introduced new function ``rte_flow_async_create_by_index()``
103    to insert rules by index into index-based template tables.
104  * Added hash calculation function used in template tables
105    to allow control over the calculation of the rule index for a packet.
106
107* **Added cross-port indirect action in asynchronous flow API.**
108
109  * Allowed to share indirect actions between ports by passing
110    the flag ``RTE_FLOW_PORT_FLAG_SHARE_INDIRECT`` to ``rte_flow_configure()``.
111  * Added ``host_port_id`` in ``rte_flow_port_attr`` structure
112    to reference the port hosting the shared objects.
113
114* **Added atomic query and update indirect flow action.**
115
116  Added synchronous and asynchronous functions to atomically query and update
117  indirect flow action:
118
119  * ``rte_flow_action_handle_query_update()``
120  * ``rte_flow_async_action_handle_query_update()``
121
122* **Added flow quota action and item.**
123
124  * ``RTE_FLOW_ACTION_TYPE_QUOTA``
125  * ``RTE_FLOW_ITEM_TYPE_QUOTA``
126
127* **Added flow API to skip congestion management configuration.**
128
129  * Added the action ``RTE_FLOW_ACTION_TYPE_SKIP_CMAN`` to skip
130    congestion management processing
131    based on per flow or packet color identified by a flow meter object.
132
133* **Updated AMD axgbe driver.**
134
135  * Added multi-process support.
136
137* **Updated Atomic Rules ark driver.**
138
139  * Added Arkville FX2 device supporting PCIe Gen5x16.
140
141* **Updated Corigine nfp driver.**
142
143  * Added support for meter options.
144  * Added support for rte_flow meter action.
145
146* **Updated Intel igc driver.**
147
148  * Added support for timesync API.
149  * Added support for packet pacing (launch time offloading).
150
151* **Updated Marvell cnxk ethdev driver.**
152
153  * Added support to skip RED using ``RTE_FLOW_ACTION_TYPE_SKIP_CMAN``.
154
155* **Updated NVIDIA mlx5 driver.**
156
157  * Added support for matching on ICMPv6 ID and sequence fields.
158
159* **Updated Wangxun ngbe driver.**
160
161  * Added chip overheat detection support.
162
163* **Updated Wangxun txgbe driver.**
164
165  * Added chip overheat detection support.
166  * Added SFP hot-plug identification support.
167
168* **Added new algorithms to cryptodev.**
169
170  Added SHAKE-128 and SHAKE-256 symmetric secure hash algorithm.
171
172* **Updated Marvell cnxk crypto driver.**
173
174  Added support for SHAKE hash algorithm in cn9k and cn10k.
175
176* **Updated Intel QuickAssist Technology (QAT) crypto driver.**
177
178  * Added support for SHA3 224/256/384/512 plain hash in QAT GEN 3.
179  * Added support for SHA3 256 plain hash in QAT GEN 2.
180  * Added support for asymmetric crypto in QAT GEN3.
181
182* **Added LZ4 algorithm in compressdev library.**
183
184  Added LZ4 compression algorithm with xxHash-32 for the checksum.
185
186* **Updated the eventdev reconfigure logic for service based adapters.**
187
188  * eventdev reconfig logic is enhanced to increment the
189    ``rte_event_dev_config::nb_single_link_event_port_queues`` parameter
190    if event port config is of type ``RTE_EVENT_PORT_CFG_SINGLE_LINK``.
191  * With this change, the application no longer needs to account for the
192    ``rte_event_dev_config::nb_single_link_event_port_queues`` parameter
193    required for eth_rx, eth_tx, crypto and timer eventdev adapters.
194
195* **Added pcap trace support in graph library.**
196
197  * Added support to capture packets at each graph node with packet metadata and
198    node name.
199
200
201Removed Items
202-------------
203
204.. This section should contain removed items in this release. Sample format:
205
206   * Add a short 1-2 sentence description of the removed item
207     in the past tense.
208
209   This section is a comment. Do not overwrite or remove it.
210   Also, make sure to start the actual text at the margin.
211   =======================================================
212
213* Removed the experimental empty poll API from the power management library.
214
215  The empty poll mechanism is superseded by the power PMD modes
216  i.e. monitor, pause and scale.
217
218
219API Changes
220-----------
221
222.. This section should contain API changes. Sample format:
223
224   * sample: Add a short 1-2 sentence description of the API change
225     which was announced in the previous releases and made in this release.
226     Start with a scope label like "ethdev:".
227     Use fixed width quotes for ``function_names`` or ``struct_names``.
228     Use the past tense.
229
230   This section is a comment. Do not overwrite or remove it.
231   Also, make sure to start the actual text at the margin.
232   =======================================================
233
234* The experimental function ``rte_pcapng_copy`` was updated to support comment
235  section in enhanced packet block in the pcapng library.
236
237* The experimental structures ``struct rte_graph_param``, ``struct rte_graph``
238  and ``struct graph`` were updated to support pcap trace in the graph library.
239
240
241ABI Changes
242-----------
243
244.. This section should contain ABI changes. Sample format:
245
246   * sample: Add a short 1-2 sentence description of the ABI change
247     which was announced in the previous releases and made in this release.
248     Start with a scope label like "ethdev:".
249     Use fixed width quotes for ``function_names`` or ``struct_names``.
250     Use the past tense.
251
252   This section is a comment. Do not overwrite or remove it.
253   Also, make sure to start the actual text at the margin.
254   =======================================================
255
256* No ABI change that would break compatibility with 22.11.
257
258
259Known Issues
260------------
261
262.. This section should contain new known issues in this release. Sample format:
263
264   * **Add title in present tense with full stop.**
265
266     Add a short 1-2 sentence description of the known issue
267     in the present tense. Add information on any known workarounds.
268
269   This section is a comment. Do not overwrite or remove it.
270   Also, make sure to start the actual text at the margin.
271   =======================================================
272
273
274Tested Platforms
275----------------
276
277.. This section should contain a list of platforms that were tested
278   with this release.
279
280   The format is:
281
282   * <vendor> platform with <vendor> <type of devices> combinations
283
284     * List of CPU
285     * List of OS
286     * List of devices
287     * Other relevant details...
288
289   This section is a comment. Do not overwrite or remove it.
290   Also, make sure to start the actual text at the margin.
291   =======================================================
292