b136f1fb2715c3413465a3d982da0cc26cce7c68
[dpdk.git] / doc / guides / rel_notes / release_21_05.rst
1 .. SPDX-License-Identifier: BSD-3-Clause
2    Copyright 2021 The DPDK contributors
3
4 .. include:: <isonum.txt>
5
6 DPDK Release 21.05
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       make doc-guides-html
21       xdg-open build/doc/html/guides/rel_notes/release_21_05.html
22
23
24 New 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
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 phase-fair lock.**
59
60   Phase-fair lock provides fairness guarantees.
61   It has two ticket pools, one for readers and one for writers.
62
63 * **Added support for Marvell CN10K SoC drivers.**
64
65   Added Marvell CN10K SoC support. Marvell CN10K SoC are based on Octeon 10
66   family of ARM64 processors with ARM Neoverse N2 core with accelerators for
67   packet processing, timers, cryptography, etc.
68
69   * Added common/cnxk driver consisting of common API to be used by
70     net, crypto and event PMD's.
71   * Added mempool/cnxk driver which provides the support for the integrated
72     mempool device.
73
74 * **Enhanced ethdev representor syntax.**
75
76   * Introduced representor type of VF, SF and PF.
77   * Supported sub-function and multi-host in representor syntax::
78
79       representor=#            [0,2-4]      /* Legacy VF compatible.         */
80       representor=[[c#]pf#]vf# c1pf2vf3     /* VF 3 on PF 2 of controller 1. */
81       representor=[[c#]pf#]sf# sf[0,2-1023] /* 1023 SFs.                     */
82       representor=[c#]pf#      c2pf[0,1]    /* 2 PFs on controller 2.        */
83
84 * **Added queue state in queried Rx/Tx queue info.**
85
86   * Added new field ``queue_state`` to ``rte_eth_rxq_info`` structure to
87     provide indicated Rx queue state.
88   * Added new field ``queue_state`` to ``rte_eth_txq_info`` structure to
89     provide indicated Tx queue state.
90
91 * **Added support for meter PPS profile.**
92
93   Added packet mode in the meter profile parameters data structures
94   to support metering traffic by packet per second (PPS),
95   in addition to the initial bytes per second (BPS) mode (value 0).
96
97 * **Added packet integrity match to flow rules.**
98
99   * Added ``RTE_FLOW_ITEM_TYPE_INTEGRITY`` flow item.
100   * Added ``rte_flow_item_integrity`` data structure.
101
102 * **Added TCP connection tracking offload in flow API.**
103
104   * Added conntrack item and action for stateful connection offload.
105
106 * **Updated Arkville PMD driver.**
107
108   Updated Arkville net driver with new features and improvements, including:
109
110   * Generalized passing meta data between PMD and FPGA, allowing up to 20
111     bytes of user specified information in RX and TX paths.
112
113   * Updated dynamic PMD extensions API using standardized names.
114
115   * Added support for new Atomic Rules PCI device IDs ``0x100f, 0x1010, 0x1017,
116     0x1018, 0x1019``.
117
118 * **Updated Broadcom bnxt driver.**
119
120   * Updated HWRM structures to 1.10.2.15 version.
121
122 * **Updated Hisilicon hns3 driver.**
123
124   * Added support for module EEPROM dumping.
125   * Added support for freeing Tx mbuf on demand.
126   * Added support for copper port in Kunpeng930.
127   * Added support for runtime config to select IO burst function.
128   * Added support for outer UDP checksum in Kunpeng930.
129   * Added support for query Tx descriptor status.
130   * Added support for query Rx descriptor status.
131   * Added support for IEEE 1588 PTP.
132
133 * **Updated Intel iavf driver.**
134
135   Updated the Intel iavf driver with new features and improvements, including:
136
137   * Added flow filter to support GTPU inner L3/L4 fields matching.
138   * In AVX512 code, added the new RX and TX paths to use the HW offload
139     features. When the HW offload features are configured to be used, the
140     offload paths are chosen automatically. In parallel the support of HW
141     offload features was removed from the legacy AVX512 paths.
142
143 * **Updated Intel ice driver.**
144
145   * Added Intel ice support on Windows.
146   * Added GTPU TEID support for DCF switch filter.
147   * Added flow priority support for DCF switch filter.
148
149 * **Updated Marvell OCTEON TX2 ethdev driver.**
150
151   * Added support for flow action port id.
152
153 * **Updated Mellanox mlx5 driver.**
154
155   Updated the Mellanox mlx5 driver with new features and improvements, including:
156
157   * Added support for VXLAN and NVGRE encap as sample actions.
158   * Support push VLAN on ingress traffic and pop VLAN on egress traffic in E-Switch mode.
159   * Added support for ASO (Advanced Steering Operation) meter.
160
161 * **Updated NXP DPAA driver.**
162
163   * Added support for shared ethernet interface.
164   * Added support for external buffers in Tx.
165
166 * **Updated NXP DPAA2 driver.**
167
168   * Added support for traffic management.
169   * Added support for configurable Tx confirmation.
170   * Added support for external buffers in Tx.
171
172 * **Updated Wangxun txgbe driver.**
173
174   * Added support for txgbevf PMD.
175   * Support device arguments to handle AN training for backplane NICs.
176
177 * **Enabled vmxnet3 PMD on Windows.**
178
179 * **Updated the AF_XDP driver.**
180
181   * Added support for preferred busy polling.
182
183 * **Added support of multiple data-units in cryptodev API.**
184
185   The cryptodev library has been enhanced to allow operations on multiple
186   data-units for AES-XTS algorithm, the data-unit length should be set in the
187   transformation. A capability for it was added too.
188
189 * **Added a cryptodev feature flag to support cipher wrapped keys.**
190
191   A new feature flag has been added to allow application to provide
192   cipher wrapped keys in session xforms.
193
194 * **Updated the OCTEON TX crypto PMD.**
195
196   * Added support for DIGEST_ENCRYPTED mode in OCTEON TX crypto PMD.
197
198 * **Updated the OCTEON TX2 crypto PMD.**
199
200   * Added support for DIGEST_ENCRYPTED mode in OCTEON TX2 crypto PMD.
201   * Added support in lookaside protocol offload mode for IPsec with
202     UDP encapsulation support for NAT Traversal.
203   * Added support in lookaside protocol offload mode for IPsec with
204     IPv4 transport mode.
205
206 * **Updated Mellanox RegEx PMD.**
207
208   * Added support for multi-segments mbuf.
209
210 * **Introduced period timer mode in eventdev timer adapter.**
211
212   * Added support for periodic timer mode in eventdev timer adapter.
213   * Added support for periodic timer mode in octeontx2 event device driver.
214
215 * **Added event device vector capability.**
216
217   * Added ``rte_event_vector`` data structure which is capable of holding
218     multiple ``uintptr_t`` of the same flow thereby allowing applications
219     to vectorize their pipelines and also reduce the complexity of pipelining
220     the events across multiple stages.
221   * This also reduced the scheduling overhead on a event device.
222
223 * **Added Predictable RSS functionality to the Toeplitz hash library.**
224
225   Added feature for finding collisions of the Toeplitz hash function -
226   the hash function used in NICs to spread the traffic among the queues.
227   It can be used to get predictable mapping of the flows.
228
229 * **Updated testpmd.**
230
231   * Added a command line option to configure forced speed for Ethernet port.
232     ``dpdk-testpmd -- --eth-link-speed N``
233   * Added command to display Rx queue used descriptor count.
234     ``show port (port_id) rxq (queue_id) desc used count``
235   * Added command to dump internal representation information of single flow.
236     ``flow dump (port_id) rule (rule_id)``
237   * Added commands to construct conntrack context and relevant indirect
238     action handle creation, update for conntrack action as well as conntrack
239     item matching.
240
241 * **Added support for the FIB lookup method in the l3fwd example app.**
242
243   Previously the l3fwd sample app only supported LPM and EM lookup methods,
244   the app now supports the Forwarding Information Base (FIB) lookup method.
245
246 * **Updated ipsec-secgw sample application.**
247
248   * Updated the ``ipsec-secgw`` sample application with UDP encapsulation
249     support for NAT Traversal.
250
251 * **Enhanced crypto adapter forward mode.**
252
253   * Added ``rte_event_crypto_adapter_enqueue()`` API to enqueue events to crypto
254     adapter if forward mode is supported by driver.
255   * Added support for crypto adapter forward mode in octeontx2 event and crypto
256     device driver.
257
258
259 Removed Items
260 -------------
261
262 .. This section should contain removed items in this release. Sample format:
263
264    * Add a short 1-2 sentence description of the removed item
265      in the past tense.
266
267    This section is a comment. Do not overwrite or remove it.
268    Also, make sure to start the actual text at the margin.
269    =======================================================
270
271 * Removed support for Intel DLB V1 hardware. This is not a broad market device,
272   and existing customers already obtain the source code directly from Intel.
273
274
275 API Changes
276 -----------
277
278 .. This section should contain API changes. Sample format:
279
280    * sample: Add a short 1-2 sentence description of the API change
281      which was announced in the previous releases and made in this release.
282      Start with a scope label like "ethdev:".
283      Use fixed width quotes for ``function_names`` or ``struct_names``.
284      Use the past tense.
285
286    This section is a comment. Do not overwrite or remove it.
287    Also, make sure to start the actual text at the margin.
288    =======================================================
289
290 * eal: The experimental TLS API added in ``rte_thread.h`` has been renamed
291   from ``rte_thread_tls_*`` to ``rte_thread_*`` to avoid naming redundancy
292   and confusion with the transport layer security term.
293
294 * pci: The value ``PCI_ANY_ID`` is marked as deprecated
295   and can be replaced with ``RTE_PCI_ANY_ID``.
296
297 * ethdev: Added a ``rte_flow`` pointer parameter to the function
298   ``rte_flow_dev_dump()`` allowing dump for single flow.
299
300 * cryptodev: The experimental raw data path API for dequeue
301   ``rte_cryptodev_raw_dequeue_burst`` got a new parameter
302   ``max_nb_to_dequeue`` to provide flexible control on dequeue.
303
304 * ethdev: The experimental flow API for shared action has been generalized
305   as a flow action handle used in rules through an indirect action.
306   The functions ``rte_flow_shared_action_*`` manipulating the action object
307   are replaced with ``rte_flow_action_handle_*``.
308   The action ``RTE_FLOW_ACTION_TYPE_SHARED`` is deprecated and can be
309   replaced with ``RTE_FLOW_ACTION_TYPE_INDIRECT``.
310
311
312 ABI Changes
313 -----------
314
315 .. This section should contain ABI changes. Sample format:
316
317    * sample: Add a short 1-2 sentence description of the ABI change
318      which was announced in the previous releases and made in this release.
319      Start with a scope label like "ethdev:".
320      Use fixed width quotes for ``function_names`` or ``struct_names``.
321      Use the past tense.
322
323    This section is a comment. Do not overwrite or remove it.
324    Also, make sure to start the actual text at the margin.
325    =======================================================
326
327 * No ABI change that would break compatibility with 20.11.
328
329 * The experimental function ``rte_telemetry_legacy_register`` has been
330   removed from the public API and is now an internal-only function. This
331   function was already marked as internal in the API documentation for it,
332   and was not for use by external applications.
333
334
335 Known Issues
336 ------------
337
338 .. This section should contain new known issues in this release. Sample format:
339
340    * **Add title in present tense with full stop.**
341
342      Add a short 1-2 sentence description of the known issue
343      in the present tense. Add information on any known workarounds.
344
345    This section is a comment. Do not overwrite or remove it.
346    Also, make sure to start the actual text at the margin.
347    =======================================================
348
349
350 Tested Platforms
351 ----------------
352
353 .. This section should contain a list of platforms that were tested
354    with this release.
355
356    The format is:
357
358    * <vendor> platform with <vendor> <type of devices> combinations
359
360      * List of CPU
361      * List of OS
362      * List of devices
363      * Other relevant details...
364
365    This section is a comment. Do not overwrite or remove it.
366    Also, make sure to start the actual text at the margin.
367    =======================================================