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