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