vdpa/mlx5: pre-create virtq at probing time
[dpdk.git] / doc / guides / rel_notes / release_22_07.rst
1 .. SPDX-License-Identifier: BSD-3-Clause
2    Copyright 2022 The DPDK contributors
3
4 .. include:: <isonum.txt>
5
6 DPDK Release 22.07
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       ninja -C build doc
21       xdg-open build/doc/guides/html/rel_notes/release_22_07.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 (ordered alphabetically by vendor name)
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 initial RISC-V architecture support.***
59
60   Added EAL implementation for RISC-V architecture.
61   The initial device the porting was tested on is
62   a HiFive Unmatched development board based on the SiFive Freedom U740 SoC.
63   In theory this implementation should work
64   with any ``rv64gc`` ISA compatible implementation
65   with MMU supporting a reasonable address space size (U740 uses sv39 MMU).
66
67 * **Added Sequence Lock.**
68
69   Added a new synchronization primitive: the sequence lock
70   (seqlock). A seqlock allows for low overhead, parallel reads. The
71   DPDK seqlock uses a spinlock to serialize multiple writing threads.
72
73 * ** Added function get random floating point number.**
74
75   Added the function ``rte_drand()`` to provide a pseudo-random
76   floating point number.
77
78 * **Added protocol based input color selection for meter.**
79
80   Added new functions ``rte_mtr_color_in_protocol_set()``,
81   ``rte_mtr_color_in_protocol_get()``,
82   ``rte_mtr_color_in_protocol_priority_get()``,
83   ``rte_mtr_meter_vlan_table_update()``
84   and updated ``struct rte_mtr_params`` and ``struct rte_mtr_capabilities`` to
85   support protocol based input color selection for meter.
86
87 * **Added Rx queue available descriptors threshold and event.**
88
89   Added ethdev API and corresponding driver operations to set Rx queue
90   available descriptors threshold and query for queues with reached
91   threshold when a new event ``RTE_ETH_EVENT_RX_AVAIL_THRESH`` is received.
92
93 * **Added telemetry for module EEPROM.**
94
95   Added telemetry command to dump module EEPROM.
96   Added support for module EEPROM information format defined in:
97
98     * SFF-8079 revision 1.7
99     * SFF-8472 revision 12.0
100     * SFF-8636 revision 2.7
101
102 * **Added vhost API to get the number of in-flight packets.**
103
104   Added an API which can get the number of in-flight packets in
105   vhost async data path without using lock.
106
107 * **Added vhost async dequeue API to receive packets from guest.**
108
109   Added vhost async dequeue API which can leverage DMA devices to
110   accelerate receiving packets from guest.
111
112 * **Added thread-safe version of in-flight packet clear API in vhost library.**
113
114   Added an API which can clear the in-flight packets submitted to
115   the async channel in a thread-safe manner in the vhost async data path.
116
117 * **Added vhost API to get the device type of a vDPA device.**
118
119   Added an API which can get the device type of vDPA device.
120
121 * **Updated NVIDIA mlx5 vDPA driver.**
122
123   * Added new devargs options ``queue_size`` and ``queues``
124     to allow prior creation of virtq resources.
125
126 * **Updated Amazon ena driver.**
127
128   The new driver version (v2.7.0) includes:
129
130   * Added fast mbuf free feature support.
131   * Added ``enable_llq`` device argument for controlling the PMD LLQ
132     (Low Latency Queue) mode.
133
134 * **Updated Atomic Rules' Arkville PMD.**
135
136   * A firmware version update to Arkville 22.07 is required.
137   * Added support for Atomic Rules PCI device IDs ``0x101a, 0x101b, 0x101c``.
138   * Added PMD support for virtual functions and vfio_pci driver.
139
140 * **Updated Intel iavf driver.**
141
142   * Added Tx QoS queue rate limitation support.
143   * Added quanta size configuration support.
144   * Added ``DEV_RX_OFFLOAD_TIMESTAMP`` support.
145   * Added Protocol Agnostic Flow Offloading support in AVF FDIR and RSS.
146
147 * **Updated Intel ice driver.**
148
149  * Added support for RSS RETA configure in DCF mode.
150  * Added support for RSS HASH configure in DCF mode.
151  * Added support for MTU configure in DCF mode.
152  * Added support for promisc configuration in DCF mode.
153  * Added support for MAC configuration in DCF mode.
154  * Added support for VLAN filter and offload configuration in DCF mode.
155  * Added Tx QoS queue / queue group rate limitation configure support.
156  * Added Tx QoS queue / queue group priority configuration support.
157  * Added Tx QoS queue weight configuration support.
158
159 * **Updated Intel igc driver.**
160
161   Added Intel Foxville I226 devices in ``igc`` driver.
162   See the doc:`../nics/igc` NIC guide for more details.
163
164 * **Updated Mellanox mlx5 driver.**
165
166   * Added support for promiscuous mode on Windows.
167   * Added support for MTU on Windows.
168   * Added matching and RSS on IPsec ESP.
169
170 * **Updated Netronome nfp driver.**
171
172   * Added support for NFP3800 NIC.
173   * Added support for firmware with NFDk.
174
175 * **Updated VMware vmxnet3 networking driver.**
176
177   * Added version 5 support.
178   * Added RETA query and RETA update support.
179   * Added version 6 support with some new features:
180
181     * Increased maximum MTU up to 9190;
182     * Increased maximum number of Rx and Tx queues;
183     * Removed power-of-two limitations on Rx and Tx queue size;
184     * Extended interrupt structures (required for additional queues).
185
186 * **Updated Wangxun ngbe driver.**
187
188   * Added support for yt8531s PHY.
189   * Added support for OEM subsystem vendor ID.
190   * Added autoneg on/off for external PHY SFI mode.
191   * Added support for yt8521s/yt8531s PHY SGMII to RGMII mode.
192
193 * **Updated Wangxun txgbe driver.**
194
195   * Added support for OEM subsystem vendor ID.
196
197 * **Added Elliptic Curve Diffie-Hellman (ECDH) algorithm in cryptodev.**
198
199   Added support for Elliptic Curve Diffie Hellman (ECDH) asymmetric
200   algorithm in cryptodev.
201
202 * **Updated OpenSSL crypto driver with 3.0 EVP API.**
203
204   Updated OpenSSL driver to support OpenSSL v3.0 EVP API.
205   Backward compatibility with OpenSSL v1.1.1 is also maintained.
206
207 * **Updated Marvell cnxk crypto driver.**
208
209   * Added AH mode support in lookaside protocol (IPsec) for CN9K & CN10K.
210   * Added AES-GMAC support in lookaside protocol (IPsec) for CN9K & CN10K.
211
212 * **Updated Intel QuickAssist Technology (QAT) crypto PMD.**
213
214   * Added support for secp384r1 elliptic curve.
215
216 * **Added Intel ACC101 baseband PMD.**
217
218   Added a new baseband PMD for Intel ACC101 device.
219
220 * **Added eventdev API to quiesce an event port.**
221
222   Added the function ``rte_event_port_quiesce()``
223   to quiesce any lcore-specific resources consumed by the event port,
224   when the lcore is no more associated with an event port.
225
226 * **Added support for setting queue attributes at runtime in eventdev.**
227
228   Added new API ``rte_event_queue_attr_set()``, to set event queue attributes
229   at runtime.
230
231 * **Added new queues attributes weight and affinity in eventdev.**
232
233   Defined new event queue attributes weight and affinity as below:
234
235   * ``RTE_EVENT_QUEUE_ATTR_WEIGHT``
236   * ``RTE_EVENT_QUEUE_ATTR_AFFINITY``
237
238 * **Added telemetry to dmadev library.**
239
240   Added telemetry callback functions which allow for a list of DMA devices,
241   statistics and other DMA device information to be queried.
242
243 * **Added scalar version of the LPM library.**
244
245   Added scalar implementation of ``rte_lpm_lookupx4``.
246   This is a fall-back implementation for platforms that
247   don't support vector operations.
248
249 * **Merged l3fwd-acl into l3fwd example.**
250
251   Merged l3fwd-acl code into l3fwd as l3fwd-acl contains duplicate
252   and common functions to l3fwd.
253
254
255 Removed Items
256 -------------
257
258 .. This section should contain removed items in this release. Sample format:
259
260    * Add a short 1-2 sentence description of the removed item
261      in the past tense.
262
263    This section is a comment. Do not overwrite or remove it.
264    Also, make sure to start the actual text at the margin.
265    =======================================================
266
267
268 API Changes
269 -----------
270
271 .. This section should contain API changes. Sample format:
272
273    * sample: Add a short 1-2 sentence description of the API change
274      which was announced in the previous releases and made in this release.
275      Start with a scope label like "ethdev:".
276      Use fixed width quotes for ``function_names`` or ``struct_names``.
277      Use the past tense.
278
279    This section is a comment. Do not overwrite or remove it.
280    Also, make sure to start the actual text at the margin.
281    =======================================================
282
283 * The DPDK header file ``rte_altivec.h``,
284   which is a wrapper for the PPC header file ``altivec.h``,
285   undefines the AltiVec keyword ``vector``.
286   The alternative keyword ``__vector`` should be used instead.
287
288 * Experimental structures ``struct rte_mtr_params``
289   and ``struct rte_mtr_capabilities`` updated to support
290   protocol based input color for meter.
291
292
293 ABI Changes
294 -----------
295
296 .. This section should contain ABI changes. Sample format:
297
298    * sample: Add a short 1-2 sentence description of the ABI change
299      which was announced in the previous releases and made in this release.
300      Start with a scope label like "ethdev:".
301      Use fixed width quotes for ``function_names`` or ``struct_names``.
302      Use the past tense.
303
304    This section is a comment. Do not overwrite or remove it.
305    Also, make sure to start the actual text at the margin.
306    =======================================================
307
308 * No ABI change that would break compatibility with 21.11.
309
310
311 Known Issues
312 ------------
313
314 .. This section should contain new known issues in this release. Sample format:
315
316    * **Add title in present tense with full stop.**
317
318      Add a short 1-2 sentence description of the known issue
319      in the present tense. Add information on any known workarounds.
320
321    This section is a comment. Do not overwrite or remove it.
322    Also, make sure to start the actual text at the margin.
323    =======================================================
324
325
326 Tested Platforms
327 ----------------
328
329 .. This section should contain a list of platforms that were tested
330    with this release.
331
332    The format is:
333
334    * <vendor> platform with <vendor> <type of devices> combinations
335
336      * List of CPU
337      * List of OS
338      * List of devices
339      * Other relevant details...
340
341    This section is a comment. Do not overwrite or remove it.
342    Also, make sure to start the actual text at the margin.
343    =======================================================