xref: /dpdk/doc/guides/rel_notes/release_22_07.rst (revision eb1dcc017a3701aea053bfdafce771d158fdc9f7)
1.. SPDX-License-Identifier: BSD-3-Clause
2   Copyright 2022 The DPDK contributors
3
4.. include:: <isonum.txt>
5
6DPDK Release 22.07
7==================
8
9New Features
10------------
11
12* **Added initial RISC-V architecture support.**
13
14  Added EAL implementation for RISC-V architecture.
15  The initial device the porting was tested on was
16  a HiFive Unmatched development board based on the SiFive Freedom U740 SoC.
17  In theory this implementation should work
18  with any ``rv64gc`` ISA compatible implementation
19  with MMU supporting a reasonable address space size (U740 uses sv39 MMU).
20
21* **Added Sequence Lock.**
22
23  Added a new synchronization primitive: the sequence lock
24  (seqlock). A seqlock allows for low overhead, parallel reads. The
25  DPDK seqlock uses a spinlock to serialize multiple writing threads.
26
27* **Added function to get random floating point number.**
28
29  Added the function ``rte_drand()`` to provide a pseudo-random
30  floating point number.
31
32* **Added protocol based input color selection for meter.**
33
34  Added new functions ``rte_mtr_color_in_protocol_set()``,
35  ``rte_mtr_color_in_protocol_get()``,
36  ``rte_mtr_color_in_protocol_priority_get()``,
37  ``rte_mtr_meter_vlan_table_update()``
38  and updated ``struct rte_mtr_params`` and ``struct rte_mtr_capabilities`` to
39  support protocol based input color selection for meter.
40
41* **Added Rx queue available descriptors threshold and event.**
42
43  Added ethdev API and corresponding driver operations to set Rx queue
44  available descriptors threshold and query for queues that have reached the
45  threshold when a new event ``RTE_ETH_EVENT_RX_AVAIL_THRESH`` is received.
46
47* **Added telemetry for module EEPROM.**
48
49  Added telemetry command to dump module EEPROM.
50  Added support for module EEPROM information format defined in:
51
52    * SFF-8079 revision 1.7
53    * SFF-8472 revision 12.0
54    * SFF-8636 revision 2.7
55
56* **Added vhost API to get the number of in-flight packets.**
57
58  Added an API which can get the number of in-flight packets in
59  the vhost async data path without using lock.
60
61* **Added vhost async dequeue API to receive packets from guest.**
62
63  Added vhost async dequeue API which can leverage DMA devices to
64  accelerate receiving packets from a guest.
65  Both split and packed virtqueues are supported.
66
67* **Added thread-safe version of in-flight packet clear API in vhost library.**
68
69  Added an API which can clear the in-flight packets submitted to
70  the async channel in a thread-safe manner, in the vhost async data path.
71
72* **Added vhost API to get the device type of a vDPA device.**
73
74  Added an API which can get the device type of vDPA devices.
75
76* **Updated NVIDIA mlx5 vDPA driver.**
77
78  * Added new devargs options ``queue_size`` and ``queues``
79    to allow prior creation of virtq resources.
80  * Added new devargs option ``max_conf_threads``
81    defining the number of management threads for parallel configurations.
82
83* **Updated Amazon ENA driver to version 2.7.0.**
84
85  * Added fast mbuf free feature support.
86  * Added ``enable_llq`` device argument for controlling the PMD LLQ
87    (Low Latency Queue) mode.
88
89* **Updated Atomic Rules' Arkville PMD.**
90
91  * A firmware version update to Arkville 22.07 is required.
92  * Added support for Atomic Rules PCI device IDs ``0x101a, 0x101b, 0x101c``.
93  * Added PMD support for virtual functions and vfio_pci driver.
94
95* **Updated HiSilicon hns3 driver.**
96
97  * Added support for backplane media type.
98
99* **Updated Intel iavf driver.**
100
101  * Added Tx QoS queue rate limitation support.
102  * Added quanta size configuration support.
103  * Added ``DEV_RX_OFFLOAD_TIMESTAMP`` support.
104  * Added Protocol Agnostic Flow Offloading support in AVF FDIR and RSS.
105
106* **Updated Intel ice driver.**
107
108  * Added support for RSS RETA configure in DCF mode.
109  * Added support for RSS HASH configure in DCF mode.
110  * Added support for MTU configure in DCF mode.
111  * Added support for promisc configuration in DCF mode.
112  * Added support for MAC configuration in DCF mode.
113  * Added support for VLAN filter and offload configuration in DCF mode.
114  * Added Tx QoS queue / queue group rate limitation configure support.
115  * Added Tx QoS queue / queue group priority configuration support.
116  * Added Tx QoS queue weight configuration support.
117
118* **Updated Intel igc driver.**
119
120  Added Intel Foxville I226 devices in ``igc`` driver.
121  See the :doc:`../nics/igc` NIC guide for more details.
122
123* **Updated Mellanox mlx5 driver.**
124
125  * Added support for promiscuous mode on Windows.
126  * Added support for MTU on Windows.
127  * Added matching and RSS on IPsec ESP.
128  * Added matching on represented port.
129  * Added support for modifying ECN field of IPv4/IPv6.
130  * Added Rx queue available descriptor threshold support.
131  * Added host shaper support.
132
133* **Updated Netronome nfp driver.**
134
135  * Added support for NFP3800 NIC.
136  * Added support for firmware with NFDk.
137
138* **Updated VMware vmxnet3 networking driver.**
139
140  * Added version 5 support.
141  * Added RETA query and RETA update support.
142  * Added version 6 support with some new features:
143
144    * Increased maximum MTU up to 9190;
145    * Increased maximum number of Rx and Tx queues;
146    * Removed power-of-two limitations on Rx and Tx queue size;
147    * Extended interrupt structures (required for additional queues).
148
149* **Updated Wangxun ngbe driver.**
150
151  * Added support for yt8531s PHY.
152  * Added support for OEM subsystem vendor ID.
153  * Added autoneg on/off for external PHY SFI mode.
154  * Added support for yt8521s/yt8531s PHY SGMII to RGMII mode.
155
156* **Updated Wangxun txgbe driver.**
157
158  * Added support for OEM subsystem vendor ID.
159
160* **Added Elliptic Curve Diffie-Hellman (ECDH) algorithm in cryptodev.**
161
162  Added support for Elliptic Curve Diffie Hellman (ECDH) asymmetric
163  algorithm in cryptodev.
164
165* **Updated OpenSSL crypto driver with 3.0 EVP API.**
166
167  Updated OpenSSL driver to support OpenSSL v3.0 EVP API.
168  Backward compatibility with OpenSSL v1.1.1 is also maintained.
169
170* **Updated Marvell cnxk crypto driver.**
171
172  * Added AH mode support in lookaside protocol (IPsec) for CN9K & CN10K.
173  * Added AES-GMAC support in lookaside protocol (IPsec) for CN9K & CN10K.
174
175* **Updated Intel QuickAssist Technology (QAT) crypto PMD.**
176
177  * Added support for secp384r1 elliptic curve.
178
179* **Added Intel ACC101 baseband PMD.**
180
181  Added a new baseband PMD for Intel ACC101 device.
182
183* **Added eventdev API to quiesce an event port.**
184
185  Added the function ``rte_event_port_quiesce()``
186  to quiesce any lcore-specific resources consumed by the event port,
187  when the lcore is no more associated with an event port.
188
189* **Added support for setting queue attributes at runtime in eventdev.**
190
191  Added new API ``rte_event_queue_attr_set()``, to set event queue attributes
192  at runtime.
193
194* **Added new queues attributes weight and affinity in eventdev.**
195
196  Defined new event queue attributes weight and affinity:
197
198  * ``RTE_EVENT_QUEUE_ATTR_WEIGHT``
199  * ``RTE_EVENT_QUEUE_ATTR_AFFINITY``
200
201* **Added telemetry to dmadev library.**
202
203  Added telemetry callback functions which allow for a list of DMA devices,
204  statistics and other DMA device information to be queried.
205
206* **Added scalar version of the LPM library.**
207
208  Added scalar implementation of ``rte_lpm_lookupx4``.
209  This is a fall-back implementation for platforms that
210  don't support vector operations.
211
212* **Merged l3fwd-acl into l3fwd example.**
213
214  Merged l3fwd-acl code into l3fwd as l3fwd-acl contains duplicate
215  and common functions to l3fwd.
216
217* **Renamed L2 payload RSS type in testpmd.**
218
219  Renamed RSS type ``ether`` to ``l2-payload`` for ``port config all rss``
220  command.
221
222
223API Changes
224-----------
225
226* The DPDK header file ``rte_altivec.h``,
227  which is a wrapper for the PPC header file ``altivec.h``,
228  undefines the AltiVec keyword ``vector``.
229  The alternative keyword ``__vector`` should be used instead.
230
231* Experimental structures ``struct rte_mtr_params``
232  and ``struct rte_mtr_capabilities`` were updated to support
233  protocol based input color for meter.
234
235
236ABI Changes
237-----------
238
239* No ABI change that would break compatibility with 21.11.
240
241
242Tested Platforms
243----------------
244
245* Intel\ |reg| platforms with Intel\ |reg| NICs combinations
246
247  * CPU
248
249    * Intel\ |reg| Atom\ |trade| CPU C3758 @ 2.20GHz
250    * Intel\ |reg| Xeon\ |reg| CPU D-1553N @ 2.30GHz
251    * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz
252    * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v3 @ 2.30GHz
253    * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @ 2.20GHz
254    * Intel\ |reg| Xeon\ |reg| Gold 6139 CPU @ 2.30GHz
255    * Intel\ |reg| Xeon\ |reg| Gold 6140M CPU @ 2.30GHz
256    * Intel\ |reg| Xeon\ |reg| Gold 6252N CPU @ 2.30GHz
257    * Intel\ |reg| Xeon\ |reg| Gold 6348 CPU @ 2.60GHz
258    * Intel\ |reg| Xeon\ |reg| Platinum 8180 CPU @ 2.50GHz
259    * Intel\ |reg| Xeon\ |reg| Platinum 8180M CPU @ 2.50GHz
260    * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz
261    * Intel\ |reg| Xeon\ |reg| Platinum 8380 CPU @ 2.30GHz
262
263  * OS:
264
265    * Fedora 35
266    * FreeBSD 13.0
267    * Red Hat Enterprise Linux Server release 8.4
268    * Red Hat Enterprise Linux Server release 8.5
269    * CentOS7.9
270    * Ubuntu 20.04.4
271    * Ubuntu 22.04
272
273  * NICs:
274
275    * Intel\ |reg| Ethernet Controller E810-C for SFP (4x25G)
276
277      * Firmware version: 4.00 0x80011845 1.3236.0
278      * Device id (pf/vf): 8086:1593 / 8086:1889
279      * Driver version: 1.9.5_dirty (ice)
280      * OS Default DDP: 1.3.30.0
281      * COMMS DDP: 1.3.37.0
282      * Wireless Edge DDP: 1.3.10.0
283
284    * Intel\ |reg| Ethernet Controller E810-C for QSFP (2x100G)
285
286      * Firmware version: 4.00 0x800117e8 1.3236.0
287      * Device id (pf/vf): 8086:1592 / 8086:1889
288      * Driver version: 1.9.5_dirty (ice)
289      * OS Default DDP: 1.3.30.0
290      * COMMS DDP: 1.3.37.0
291      * Wireless Edge DDP: 1.3.10.0
292
293    * Intel\ |reg| Ethernet Controller E810-XXV for SFP (2x25G)
294
295      * Firmware version: 4.00 0x800117e5 1.3236.0
296      * Device id (pf/vf): 8086:159b / 8086:1889
297      * Driver version: 1.9.5_dirty (ice)
298      * OS Default DDP: 1.3.30.0
299      * COMMS DDP: 1.3.37.0
300
301    * Intel\ |reg| 82599ES 10 Gigabit Ethernet Controller
302
303      * Firmware version: 0x61bf0001
304      * Device id (pf/vf): 8086:10fb / 8086:10ed
305      * Driver version(out-tree): 5.15.2 (ixgbe)
306      * Driver version(in-tree): 5.15.0-27-generic (ixgbe)
307
308    * Intel\ |reg| Ethernet Converged Network Adapter X710-DA4 (4x10G)
309
310      * Firmware version: 8.70 0x8000c3d5 1.3179.0
311      * Device id (pf/vf): 8086:1572 / 8086:154c
312      * Driver version(out-tree): 2.19.3 (i40e)
313      * Driver version(in-tree): 5.15.0-27-generic (i40e)
314
315    * Intel\ |reg| Corporation Ethernet Connection X722 for 10GbE SFP+ (2x10G)
316
317      * Firmware version: 5.60 0x800035cb 1.3179.0
318      * Device id (pf/vf): 8086:37d0 / 8086:37cd
319      * Driver version(out-tree): 2.19.3 (i40e)
320      * Driver version(in-tree): 5.13.0-30-generic (i40e)
321
322    * Intel\ |reg| Corporation Ethernet Connection X722 for 10GBASE-T
323
324      * Firmware version: 5.60 0x8000357f 1.2935.0
325      * Device id (pf/vf): 8086:37d2 / 8086:37cd
326      * Driver version(out-tree): 2.19.3 (i40e)
327      * Driver version(in-tree): 5.13.0-30-generic (i40e)
328
329    * Intel\ |reg| Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
330
331      * Firmware version: 8.70 0x8000c3eb 1.3179.0
332      * Device id (pf/vf): 8086:158b / 8086:154c
333      * Driver version(out-tree): 2.19.3 (i40e)
334      * Driver version(in-tree): 5.15.0-27-generic (i40e)
335
336    * Intel\ |reg| Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
337
338      * Firmware version(PF): 8.70 0x8000c40f 1.3179.0
339      * Device id (pf/vf): 8086:1583 / 8086:154c
340      * Driver version(out-tree): 2.19.3 (i40e)
341      * Driver version(in-tree): 5.15.0-27-generic (i40e)
342
343    * Intel\ |reg| Ethernet Converged Network Adapter X710-T2L
344
345      * Firmware version: 8.70 0x8000c3e3 1.3179.0
346      * Device id (pf): 8086:15ff
347      * Driver version: 2.19.3 (i40e)
348
349* Intel\ |reg| platforms with NVIDIA \ |reg| NICs combinations
350
351  * CPU:
352
353    * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz
354    * Intel\ |reg| Xeon\ |reg| CPU E5-2697A v4 @ 2.60GHz
355    * Intel\ |reg| Xeon\ |reg| CPU E5-2697 v3 @ 2.60GHz
356    * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz
357    * Intel\ |reg| Xeon\ |reg| CPU E5-2670 0 @ 2.60GHz
358    * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v4 @ 2.20GHz
359    * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v3 @ 2.30GHz
360    * Intel\ |reg| Xeon\ |reg| CPU E5-2640 @ 2.50GHz
361    * Intel\ |reg| Xeon\ |reg| CPU E5-2650 0 @ 2.00GHz
362    * Intel\ |reg| Xeon\ |reg| CPU E5-2620 v4 @ 2.10GHz
363
364  * OS:
365
366    * Red Hat Enterprise Linux release 8.2 (Ootpa)
367    * Red Hat Enterprise Linux Server release 7.8 (Maipo)
368    * Red Hat Enterprise Linux Server release 7.6 (Maipo)
369    * Red Hat Enterprise Linux Server release 7.5 (Maipo)
370    * Red Hat Enterprise Linux Server release 7.4 (Maipo)
371    * Red Hat Enterprise Linux Server release 7.3 (Maipo)
372    * Red Hat Enterprise Linux Server release 7.2 (Maipo)
373    * Ubuntu 20.04
374    * Ubuntu 18.04
375    * Ubuntu 16.04
376    * SUSE Enterprise Linux 15 SP2
377    * SUSE Enterprise Linux 12 SP4
378
379  * OFED:
380
381    * MLNX_OFED 5.6-2.0.9.0 and above
382    * MLNX_OFED 5.5-1.0.3.2
383
384  * upstream kernel:
385
386    * Linux 5.18.0 and above
387
388  * rdma-core:
389
390    * rdma-core-40.0 and above
391
392  * NICs:
393
394    * NVIDIA\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCC_Ax (2x40G)
395
396      * Host interface: PCI Express 3.0 x8
397      * Device ID: 15b3:1007
398      * Firmware version: 2.42.5000
399
400    * NVIDIA\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCCT (2x40G)
401
402      * Host interface: PCI Express 3.0 x8
403      * Device ID: 15b3:1007
404      * Firmware version: 2.42.5000
405
406    * NVIDIA\ |reg| ConnectX\ |reg|-4 Lx 25G MCX4121A-ACAT (2x25G)
407
408      * Host interface: PCI Express 3.0 x8
409      * Device ID: 15b3:1015
410      * Firmware version: 14.33.1048 and above
411
412    * NVIDIA\ |reg| ConnectX\ |reg|-4 Lx 50G MCX4131A-GCAT (1x50G)
413
414      * Host interface: PCI Express 3.0 x8
415      * Device ID: 15b3:1015
416      * Firmware version: 14.33.1048 and above
417
418    * NVIDIA\ |reg| ConnectX\ |reg|-5 100G MCX516A-CCAT (2x100G)
419
420      * Host interface: PCI Express 3.0 x16
421      * Device ID: 15b3:1017
422      * Firmware version: 16.33.1048 and above
423
424    * NVIDIA\ |reg| ConnectX\ |reg|-5 100G MCX556A-ECAT (2x100G)
425
426      * Host interface: PCI Express 3.0 x16
427      * Device ID: 15b3:1017
428      * Firmware version: 16.33.1048 and above
429
430    * NVIDIA\ |reg| ConnectX\ |reg|-5 100G MCX556A-EDAT (2x100G)
431
432      * Host interface: PCI Express 3.0 x16
433      * Device ID: 15b3:1017
434      * Firmware version: 16.33.1048 and above
435
436    * NVIDIA\ |reg| ConnectX\ |reg|-5 Ex EN 100G MCX516A-CDAT (2x100G)
437
438      * Host interface: PCI Express 4.0 x16
439      * Device ID: 15b3:1019
440      * Firmware version: 16.33.1048 and above
441
442    * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx EN 100G MCX623106AN-CDAT (2x100G)
443
444      * Host interface: PCI Express 4.0 x16
445      * Device ID: 15b3:101d
446      * Firmware version: 22.33.1048 and above
447
448    * NVIDIA\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G)
449
450      * Host interface: PCI Express 4.0 x8
451      * Device ID: 15b3:101f
452      * Firmware version: 26.33.1048 and above
453
454    * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G)
455
456      * Host interface: PCI Express 5.0 x16
457      * Device ID: 15b3:1021
458      * Firmware version: 28.33.2028 and above
459
460* NVIDIA \ |reg| BlueField\ |reg| SmartNIC
461
462  * NVIDIA\ |reg| BlueField\ |reg|-2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G)
463
464    * Host interface: PCI Express 3.0 x16
465    * Device ID: 15b3:a2d6
466    * Firmware version: 24.33.1048 and above
467
468  * Embedded software:
469
470    * Ubuntu 20.04.3
471    * MLNX_OFED 5.6-2.0.9.0 and above
472    * DPDK application running on Arm cores
473
474* IBM Power 9 platforms with NVIDIA\ |reg| NICs combinations
475
476  * CPU:
477
478    * POWER9 2.2 (pvr 004e 1202)
479
480  * OS:
481
482    * Red Hat Enterprise Linux Server release 8.2
483
484  * NICs:
485
486    * NVIDIA\ |reg| ConnectX\ |reg|-5 100G MCX556A-ECAT (2x100G)
487
488      * Host interface: PCI Express 4.0 x16
489      * Device ID: 15b3:1017
490      * Firmware version: 16.33.1048
491
492    * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx 100G MCX623106AN-CDAT (2x100G)
493
494      * Host interface: PCI Express 4.0 x16
495      * Device ID: 15b3:101d
496      * Firmware version: 22.33.1048
497
498  * OFED:
499
500    * MLNX_OFED 5.6-2.0.9.0
501