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