281feb0ead531e9281ca3d21bbb1ea516ef423a2
[dpdk.git] / doc / guides / rel_notes / release_20_05.rst
1 .. SPDX-License-Identifier: BSD-3-Clause
2    Copyright 2020 The DPDK contributors
3
4 .. include:: <isonum.txt>
5
6 DPDK Release 20.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
22       xdg-open build/doc/html/guides/rel_notes/release_20_05.html
23
24
25 New Features
26 ------------
27
28 .. This section should contain new features added in this release.
29    Sample format:
30
31    * **Add a title in the past tense with a full stop.**
32
33      Add a short 1-2 sentence description in the past tense.
34      The description should be enough to allow someone scanning
35      the release notes to understand the new feature.
36
37      If the feature adds a lot of sub-features you can use a bullet list
38      like this:
39
40      * Added feature foo to do something.
41      * Enhanced feature bar to do something else.
42
43      Refer to the previous release notes for examples.
44
45      Suggested order in release notes items:
46      * Core libs (EAL, mempool, ring, mbuf, buses)
47      * Device abstraction libs and PMDs
48        - ethdev (lib, PMDs)
49        - cryptodev (lib, PMDs)
50        - eventdev (lib, PMDs)
51        - etc
52      * Other libs
53      * Apps, Examples, Tools (if significant)
54
55      This section is a comment. Do not overwrite or remove it.
56      Also, make sure to start the actual text at the margin.
57      =========================================================
58
59 * **Added Trace Library and Tracepoints**
60
61   A native implementation of ``common trace format(CTF)`` based trace library
62   has been added to provide the ability to add tracepoints in
63   application/library to get runtime trace/debug information for control and
64   fast APIs with minimum impact on fast path performance.
65   Typical trace overhead is ~20 cycles and instrumentation overhead is 1 cycle.
66   Added tracepoints in ``EAL``, ``ethdev``, ``cryptodev``, ``eventdev`` and
67   ``mempool`` libraries for important functions.
68
69 * **Added new API for rte_ring.**
70
71   * New synchronization modes for rte_ring.
72
73   Introduced new optional MT synchronization modes for rte_ring:
74   Relaxed Tail Sync (RTS) mode and Head/Tail Sync (HTS) mode.
75   With these mode selected, rte_ring shows significant improvements for
76   average enqueue/dequeue times on overcommitted systems.
77
78   * Added peek style API for rte_ring.
79
80   For rings with producer/consumer in RTE_RING_SYNC_ST, RTE_RING_SYNC_MT_HTS
81   mode, provide an ability to split enqueue/dequeue operation into two phases
82   (enqueue/dequeue start; enqueue/dequeue finish). That allows user to inspect
83   objects in the ring without removing them from it (aka MT safe peek).
84
85 * **Added flow aging support.**
86
87   Added flow aging support to detect and report aged-out flows, including:
88
89   * Added new action: ``RTE_FLOW_ACTION_TYPE_AGE`` to set the timeout
90     and the application flow context for each flow.
91   * Added new event: ``RTE_ETH_EVENT_FLOW_AGED`` for the driver to report
92     that there are new aged-out flows.
93   * Added new query: ``rte_flow_get_aged_flows`` to get the aged-out flows
94     contexts from the port.
95
96 * **ethdev: Added a new value to link speed for 200Gbps**
97
98 * **Updated Amazon ena driver.**
99
100   Updated ena PMD with new features and improvements, including:
101
102   * Added support for large LLQ (Low-latency queue) headers.
103   * Added Tx drops as new extended driver statistic.
104   * Added support for accelerated LLQ mode.
105   * Handling of the 0 length descriptors on the Rx path.
106
107 * **Updated Intel i40e driver.**
108
109   Updated i40e PMD with new features and improvements, including:
110
111   * Enable MAC address as FDIR input set for ipv4-other, ipv4-udp and ipv4-tcp.
112   * Added support for RSS using L3/L4 source/destination only.
113   * Added support for setting hash function in rte flow.
114
115 * **Updated the Intel iavf driver.**
116
117   Update the Intel iavf driver with new features and improvements, including:
118
119   * Added generic filter support.
120   * Added advanced iavf with FDIR capability.
121   * Added advanced RSS configuration for VFs.
122
123 * **Updated the Intel ice driver.**
124
125   Updated the Intel ice driver with new features and improvements, including:
126
127   * Added support for DCF (Device Config Function) feature.
128   * Added switch filter support for intel DCF.
129
130 * **Updated Marvell OCTEON TX2 ethdev driver.**
131
132   Updated Marvell OCTEON TX2 ethdev driver with traffic manager support with
133   below features.
134
135   * Hierarchial Scheduling with DWRR and SP.
136   * Single rate - Two color, Two rate - Three color shaping.
137
138 * **Updated Mellanox mlx5 driver.**
139
140   Updated Mellanox mlx5 driver with new features and improvements, including:
141
142   * Added support for matching on IPv4 Time To Live and IPv6 Hop Limit.
143   * Added support for creating Relaxed Ordering Memory Regions.
144   * Added support for configuring Hairpin queue data buffer size.
145   * Added support for jumbo frame size (9K MTU) in Multi-Packet RQ mode.
146   * Removed flow rules caching for memory saving and compliance with ethdev API.
147   * Optimized the memory consumption of flow.
148   * Added support for flow aging based on hardware counter.
149   * Added support for flow pattern with wildcard VLAN item (without VID value).
150
151 * **Added Chacha20-Poly1305 algorithm to Cryptodev API.**
152
153   Chacha20-Poly1305 AEAD algorithm can now be supported in Cryptodev.
154
155 * **Updated the AESNI MB crypto PMD.**
156
157   * Added support for intel-ipsec-mb version 0.54.
158   * Updated the AESNI MB PMD with AES-256 DOCSIS algorithm.
159   * Added support for synchronous Crypto burst API.
160
161 * **Updated the AESNI GCM crypto PMD.**
162
163   * Added support for intel-ipsec-mb version 0.54.
164
165 * **Updated the ZUC crypto PMD.**
166
167   * Added support for intel-ipsec-mb version 0.54.
168   * Updated the PMD to support Multi-buffer ZUC-EIA3,
169     improving performance significantly, when using
170     intel-ipsec-mb version 0.54
171
172 * **Updated the SNOW3G crypto PMD.**
173
174   * Added support for intel-ipsec-mb version 0.54.
175
176 * **Updated the KASUMI crypto PMD.**
177
178   * Added support for intel-ipsec-mb version 0.54.
179
180 * **Added a new driver for Intel Foxville I225 devices.**
181
182   Added the new ``igc`` net driver for Intel Foxville I225 devices. See the
183   :doc:`../nics/igc` NIC guide for more details on this new driver.
184
185 * **Updated Broadcom bnxt driver.**
186
187   Updated Broadcom bnxt driver with new features and improvements, including:
188
189   * Added support for host based flow table management
190   * Added flow counters to extended stats
191   * Added PCI function stats to extended stats
192
193 * **Added handling of mixed crypto algorithms in QAT PMD for GEN2.**
194
195   Enabled handling of mixed algorithms in encrypted digest hash-cipher
196   (generation) and cipher-hash (verification) requests in QAT PMD
197   when running on GEN2 QAT hardware with particular firmware versions
198   (GEN3 support was added in DPDK 20.02).
199
200 * **Added plain SHA-1,224,256,384,512 support to QAT PMD.**
201
202   Added support for plain SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 hashes
203   to QAT PMD.
204
205 * **Added AES-GCM/GMAC J0 support to QAT PMD.**
206
207   Added support for AES-GCM/GMAC J0 to Intel QuickAssist Technology PMD. User can
208   use this feature by passing zero length IV in appropriate xform. For more
209   info please refer to rte_crypto_sym.h J0 comments.
210
211 * **Added QAT intermediate buffer too small handling in QAT compression PMD.**
212
213   Added a special way of buffer handling when internal QAT intermediate buffer
214   is too small for Huffman dynamic compression operation. Instead of falling
215   back to fixed compression, the operation is now split into multiple smaller
216   dynamic compression requests (possible to execute on QAT) and their results
217   are then combined and copied into the output buffer. This is not possible if
218   any checksum calculation was requested - in such case the code falls back to
219   fixed compression as before.
220
221 * **Updated the turbo_sw bbdev PMD.**
222
223   Supported large size code blocks which does not fit in one mbuf segment.
224
225 * **Added Intel FPGA_5GNR_FEC bbdev PMD.**
226
227   Added a new ``fpga_5gnr_fec`` bbdev driver for the Intel\ |reg| FPGA PAC
228   (Programmable  Acceleration Card) N3000.  See the
229   :doc:`../bbdevs/fpga_5gnr_fec` BBDEV guide for more details on this new driver.
230
231 * **Updated ipsec-secgw sample application with following features.**
232
233   * Updated ipsec-secgw application to add event based packet processing.
234     The worker thread(s) would receive events and submit them back to the
235     event device after the processing. This way, multicore scaling and HW
236     assisted scheduling is achieved by making use of the event device
237     capabilities. The event mode currently supports only inline IPsec
238     protocol offload.
239
240   * Updated ipsec-secgw application to support key sizes for AES-192-CBC,
241     AES-192-GCM, AES-256-GCM algorithms.
242
243   * Added IPsec inbound load-distribution support for ipsec-secgw application
244     using NIC load distribution feature(Flow Director).
245
246 * **Updated Telemetry Library.**
247
248   The updated Telemetry library has many improvements on the original version
249   to make it more accessible and scalable:
250
251   * It enables DPDK libraries and applications provide their own specific
252     telemetry information, rather than being limited to what could be reported
253     through the metrics library.
254
255   * It is no longer dependent on the external Jansson library, which allows
256     Telemetry be enabled by default.
257
258   * The socket handling has been simplified making it easier for clients to
259     connect and retrieve information.
260
261 * **Added rte_graph library.**
262
263   Graph architecture abstracts the data processing functions as a ``node`` and
264   ``links`` them together to create a complex ``graph`` to enable reusable/modular
265   data processing functions. The graph library provides API to enable graph
266   framework operations such as create, lookup, dump and destroy on graph and node
267   operations such as clone, edge update, and edge shrink, etc.
268   The API also allows to create the stats cluster to monitor per graph and per node stats.
269
270 * **Added rte_node library which consists of a set of packet processing nodes.**
271
272   The rte_node library that consists of nodes used by rte_graph library. Each
273   node performs a specific packet processing function based on application
274   configuration. The following nodes are added:
275
276   * Null node: Skeleton node that defines the general structure of a node.
277   * Ethernet device node: Consists of ethernet Rx/Tx nodes as well as ethernet
278     control APIs.
279   * IPv4 lookup node: Consists of ipv4 extract and lpm lookup node. Routes can
280     be configured by the application through ``rte_node_ip4_route_add`` function.
281   * IPv4 rewrite node: Consists of ipv4 and ethernet header rewrite functionality
282     that can be configured through ``rte_node_ip4_rewrite_add`` function.
283   * Packet drop node: Frees the packets received to their respective mempool.
284
285 * **Added new l3fwd-graph sample application.**
286
287   Added an example application ``l3fwd-graph``. It demonstrates the usage of graph
288   library and node library for packet processing. In addition to the library usage
289   demonstration, this application can use for performance comparison with existing
290   ``l3fwd`` (The static code without any nodes) with the modular ``l3fwd-graph``
291   approach.
292
293 * **Updated testpmd application.**
294
295   * Added a new cmdline option ``--rx-mq-mode`` which can be used to test PMD's
296     behaviour on handling Rx mq mode.
297
298
299 Removed Items
300 -------------
301
302 .. This section should contain removed items in this release. Sample format:
303
304    * Add a short 1-2 sentence description of the removed item
305      in the past tense.
306
307    This section is a comment. Do not overwrite or remove it.
308    Also, make sure to start the actual text at the margin.
309    =========================================================
310
311
312 API Changes
313 -----------
314
315 .. This section should contain API changes. Sample format:
316
317    * sample: Add a short 1-2 sentence description of the API 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 * mempool: The API of ``rte_mempool_populate_iova()`` and
328   ``rte_mempool_populate_virt()`` changed to return 0 instead of -EINVAL
329   when there is not enough room to store one object.
330
331
332 ABI Changes
333 -----------
334
335 .. This section should contain ABI changes. Sample format:
336
337    * sample: Add a short 1-2 sentence description of the ABI change
338      which was announced in the previous releases and made in this release.
339      Start with a scope label like "ethdev:".
340      Use fixed width quotes for ``function_names`` or ``struct_names``.
341      Use the past tense.
342
343    This section is a comment. Do not overwrite or remove it.
344    Also, make sure to start the actual text at the margin.
345    =========================================================
346
347 * No ABI change that would break compatibility with DPDK 20.02 and 19.11.
348
349
350 Known Issues
351 ------------
352
353 .. This section should contain new known issues in this release. Sample format:
354
355    * **Add title in present tense with full stop.**
356
357      Add a short 1-2 sentence description of the known issue
358      in the present tense. Add information on any known workarounds.
359
360    This section is a comment. Do not overwrite or remove it.
361    Also, make sure to start the actual text at the margin.
362    =========================================================
363
364
365 Tested Platforms
366 ----------------
367
368 .. This section should contain a list of platforms that were tested
369    with this release.
370
371    The format is:
372
373    * <vendor> platform with <vendor> <type of devices> combinations
374
375      * List of CPU
376      * List of OS
377      * List of devices
378      * Other relevant details...
379
380    This section is a comment. Do not overwrite or remove it.
381    Also, make sure to start the actual text at the margin.
382    =========================================================