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