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