net/mlx5: support ESP SPI match and RSS hash
[dpdk.git] / doc / guides / rel_notes / release_22_03.rst
1 .. SPDX-License-Identifier: BSD-3-Clause
2    Copyright 2021 The DPDK contributors
3
4 .. include:: <isonum.txt>
5
6 DPDK Release 22.03
7 ==================
8
9 New Features
10 ------------
11
12 * **Added ability to reuse hugepages in Linux.**
13
14   It is now possible to reuse files in hugetlbfs to speed up hugepage mapping,
15   which may be useful for fast restart and large allocations.
16   The new mode is activated with ``--huge-unlink=never``
17   and has security implications, refer to the user and programmer guides.
18
19 * **Added functions to calculate UDP/TCP checksum in mbuf.**
20
21   Added the following functions to calculate UDP/TCP checksum of packets
22   which can be over multi-segments:
23
24   - ``rte_ipv4_udptcp_cksum_mbuf()``
25   - ``rte_ipv4_udptcp_cksum_mbuf_verify()``
26   - ``rte_ipv6_udptcp_cksum_mbuf()``
27   - ``rte_ipv6_udptcp_cksum_mbuf_verify()``
28
29 * **Added functions to configure the flow engine.**
30
31   Added the ``rte_flow_configure`` API to configure the flow management
32   engine, allowing preallocation of some resources for better performance.
33   Added ``rte_flow_info_get`` API to retrieve available resources.
34
35   Added ``rte_flow_template_table_create`` API to group flow rules
36   with the same flow attributes and common matching patterns and actions
37   defined by ``rte_flow_pattern_template_create`` and
38   ``rte_flow_actions_template_create`` respectively.
39   The corresponding functions to destroy these entities are:
40   ``rte_flow_template_table_destroy``, ``rte_flow_pattern_template_destroy``
41   and ``rte_flow_actions_template_destroy``.
42
43 * **Added functions for asynchronous flow rules creation and destruction.**
44
45   Added the ``rte_flow_async_create`` and ``rte_flow_async_destroy`` APIs
46   to enqueue flow creation/destruction operations asynchronously as well as
47   ``rte_flow_pull`` to poll and retrieve results of these operations and
48   ``rte_flow_push`` to push all the in-flight   operations to the NIC.
49
50   Added asynchronous APIs for indirect actions management:
51
52   - ``rte_flow_async_action_handle_create``
53   - ``rte_flow_async_action_handle_destroy``
54   - ``rte_flow_async_action_handle_update``
55
56 * **Added rte_flow support for matching GRE optional fields.**
57
58   Added ``gre_option`` item in rte_flow to support checksum/key/sequence
59   matching in GRE packets.
60
61 * **Added new RSS offload types for L2TPv2 in RSS flow.**
62
63   Added ``RTE_ETH_RSS_L2TPV2`` macro so that he L2TPv2 session ID field can be used as
64   input set for RSS.
65
66 * **Added IP reassembly Ethernet offload APIs to get and set config.**
67
68   Added IP reassembly offload APIs which provide functions to query IP
69   reassembly capabilities, to set configuration and to get currently set
70   reassembly configuration.
71
72 * **Added an API to enable queue based priority flow ctrl (PFC).**
73
74   Added new APIs, ``rte_eth_dev_priority_flow_ctrl_queue_info_get()`` and
75   ``rte_eth_dev_priority_flow_ctrl_queue_configure()`` for queue based
76   priority flow ctrl (PFC).
77
78 * **Added a private dump API, to dump private info from device.**
79
80   Added the private dump API which provides a facility for querying private info from a device.
81   There exists many private properties in different PMD drivers and
82   the information in these properties is useful for debugging.
83
84 * **Updated AF_XDP PMD.**
85
86   * Added support for libxdp >= v1.2.2.
87   * Re-enabled secondary process support. RX/TX is not supported.
88
89 * **Updated Amazon ENA PMD.**
90
91   The new driver version (v2.6.0) introduces bug fixes and improvements, including:
92
93   * Added new checksum related xstats: ``l3_csum_bad``, ``l4_csum_bad`` and
94     ``l4_csum_good``.
95   * Added support for the link status configuration.
96   * Added optimized memcpy support for the ARM platforms.
97   * Added ENA admin queue support for the MP applications.
98   * Added free Tx mbuf on demand feature support.
99   * Added ``rte_eth_xstats_get_names_by_id`` API support.
100   * Added ``miss_txc_to`` device argument for setting the Tx completion timeout.
101
102 * **Updated Cisco enic driver.**
103
104   * Added rte_flow support for matching GENEVE packets.
105   * Added rte_flow support for matching eCPRI packets.
106
107 * **Updated Intel iavf driver.**
108
109   * Added L2TPv2 (include PPP over L2TPv2) RSS support based on outer
110     MAC src/dst address and L2TPv2 session ID.
111   * Added L2TPv2 (include PPP over L2TPv2) FDIR support based on outer
112     MAC src/dst address and L2TPv2 session ID.
113   * Added PPPoL2TPv2oUDP FDIR distribute packets based on inner IP
114     src/dst address and UDP/TCP src/dst port.
115
116 * **Updated Marvell cnxk ethdev PMD.**
117
118   * Added queue based priority flow control support for CN9K and CN10K.
119   * Added support for IP reassembly for inline inbound IPsec packets.
120   * Added support for packet marking in traffic manager.
121   * Added support for CNF95xx B0 variant SoC.
122
123 * **Updated Mellanox mlx5 driver.**
124
125   * Added support for ConnectX-7 capability to schedule traffic sending on timestamp.
126   * Added WQE based hardware steering support with ``rte_flow_async`` API.
127   * Added steering for external Rx queue created outside the PMD.
128   * Added GRE optional fields matching.
129
130 * **Updated Wangxun ngbe driver.**
131
132   * Added support for devices of custom PHY interfaces.
133
134     - M88E1512 PHY connects to RJ45
135     - M88E1512 PHY connects to RGMII combo
136     - YT8521S PHY connects to SFP
137
138   * Added LED OEM support.
139
140 * **Updated Wangxun txgbe driver.**
141
142   Added LED OEM support.
143
144 * **Added an API for private user data in asymmetric crypto session.**
145
146   An API was added to get/set an asymmetric crypto session's user data.
147
148 * **Updated Marvell cnxk crypto PMD.**
149
150   * Added SHA256-HMAC support in lookaside protocol (IPsec) for CN10K.
151   * Added SHA384-HMAC support in lookaside protocol (IPsec) for CN9K & CN10K.
152   * Added SHA512-HMAC support in lookaside protocol (IPsec) for CN9K & CN10K.
153   * Added AES-CTR support in lookaside protocol (IPsec) for CN9K & CN10K.
154   * Added NULL cipher support in lookaside protocol (IPsec) for CN9K & CN10K.
155   * Added AES-XCBC support in lookaside protocol (IPsec) for CN9K & CN10K.
156   * Added AES-CMAC support in CN9K & CN10K.
157   * Added ESN and anti-replay support in lookaside protocol (IPsec) for CN10K.
158
159 * **Updated Intel QuickAssist Technology crypto PMD.**
160
161   * Added support for CPM2.0b (4942) devices.
162   * Added ECDSA algorithm support.
163   * Added ECPM algorithm support.
164
165 * **Added an API to retrieve event port id of ethdev Rx adapter.**
166
167   The new API ``rte_event_eth_rx_adapter_event_port_get()`` was added.
168
169 * **Added support for Kunpeng930 DMA devices to HiSilicon DMA PMD.**
170
171   Kunpeng930 DMA devices are now enabled for HiSilicon DMA PMD.
172
173 * **Added CNXK GPIO PMD.**
174
175   Added a new rawdevice PMD which allows managing userspace GPIOs and installing
176   custom GPIO interrupt handlers which bypass the kernel. This is especially useful
177   for applications that as well as providing standard dataplane functionality
178   also want to have fast and low latency access to GPIO pin state.
179
180   See the :doc:`../rawdevs/cnxk_gpio` rawdev guide for more details on this
181   driver.
182
183 * **Updated testpmd to support software UDP/TCP checksum over multiple segments.**
184
185   Updated ``rte_ipv4/6_udptcp_cksum_mbuf()`` functions in testpmd csum mode
186   to support software UDP/TCP checksum over multiple segments.
187
188 * **Added crypto producer mode in test-eventdev.**
189
190   Crypto producer mode helps to measure performance of OP_NEW and OP_FORWARD
191   modes of event crypto adapter.
192
193
194 Removed Items
195 -------------
196
197 * **Removed experimental performance thread example application.**
198
199
200 API Changes
201 -----------
202
203 * net: added experimental functions ``rte_ipv4_udptcp_cksum_mbuf()``,
204   ``rte_ipv4_udptcp_cksum_mbuf_verify()``, ``rte_ipv6_udptcp_cksum_mbuf()``,
205   ``rte_ipv6_udptcp_cksum_mbuf_verify()``
206
207 * ethdev: Old public macros and enumeration constants without ``RTE_ETH_`` prefix,
208   which are kept for backward compatibility, are marked as deprecated.
209
210 * cryptodev: The asymmetric session handling was modified to use a single
211   mempool object. An API ``rte_cryptodev_asym_session_pool_create`` was added
212   to create a mempool with element size big enough to hold the generic asymmetric
213   session header, max size for a device private session data, and user data size.
214   The session structure was moved to ``cryptodev_pmd.h``,
215   hiding it from applications.
216   The API ``rte_cryptodev_asym_session_init`` was removed as the initialization
217   is now moved to ``rte_cryptodev_asym_session_create``, which was updated to
218   return an integer value to indicate initialisation errors.
219
220
221 ABI Changes
222 -----------
223
224 * No ABI change that would break compatibility with 21.11.
225
226
227 Known Issues
228 ------------
229
230 * **Possible reduced power saving with PMD Power Management.**
231
232   Users may see reduced power savings when using PMD Power Management.
233   This issue occurs when compiling DPDK applications with GCC-9
234   on platforms with TSX enabled.
235   The function ``rte_power_monitor_multi()`` may return
236   without successfully starting the RTM transaction (``_xbegin()`` fails).
237
238   There are three workarounds for this issue.
239   Either build DPDK with GCC-11 or newer, build with shared libraries,
240   or build DPDK with fewer drivers.
241
242
243 Tested Platforms
244 ----------------
245
246    * Intel\ |reg| platforms with Intel\ |reg| NICs combinations
247
248      * CPU
249
250        * Intel\ |reg| Atom\ |trade| CPU C3758 @ 2.20GHz
251        * Intel\ |reg| Xeon\ |reg| CPU D-1553N @ 2.30GHz
252        * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz
253        * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v3 @ 2.30GHz
254        * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @ 2.20GHz
255        * Intel\ |reg| Xeon\ |reg| Gold 6139 CPU @ 2.30GHz
256        * Intel\ |reg| Xeon\ |reg| Gold 6140M CPU @ 2.30GHz
257        * Intel\ |reg| Xeon\ |reg| Gold 6252N CPU @ 2.30GHz
258        * Intel\ |reg| Xeon\ |reg| Gold 6348 CPU @ 2.60GHz
259        * Intel\ |reg| Xeon\ |reg| Platinum 8180 CPU @ 2.50GHz
260        * Intel\ |reg| Xeon\ |reg| Platinum 8180M CPU @ 2.50GHz
261        * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz
262        * Intel\ |reg| Xeon\ |reg| Platinum 8380 CPU @ 2.30GHz
263
264      * OS:
265
266        * Fedora 35
267        * OpenWRT 21.02.1
268        * FreeBSD 13.0
269        * Red Hat Enterprise Linux Server release 8.4
270        * Red Hat Enterprise Linux Server release 8.5
271        * Suse 15 SP3
272        * Ubuntu 20.04.3
273        * Ubuntu 21.10
274
275      * NICs:
276
277        * Intel\ |reg| Ethernet Controller E810-C for SFP (4x25G)
278
279          * Firmware version: 3.22 0x8000d83c 1.3146.0
280          * Device id (pf/vf): 8086:1593 / 8086:1889
281          * Driver version: 1.8.3_2_g5c2ff303 (ice)
282          * OS Default DDP: 1.3.28.0
283          * COMMS DDP: 1.3.35.0
284          * Wireless Edge DDP: 1.3.8.0
285
286        * Intel\ |reg| Ethernet Controller E810-C for QSFP (2x100G)
287
288          * Firmware version: 3.20 0x8000d83e 1.3146.0
289          * Device id (pf/vf): 8086:1592 / 8086:1889
290          * Driver version: 1.8.3_2_g5c2ff303 (ice)
291          * OS Default DDP: 1.3.28.0
292          * COMMS DDP: 1.3.35.0
293          * Wireless Edge DDP: 1.3.8.0
294
295        * Intel\ |reg| 82599ES 10 Gigabit Ethernet Controller
296
297          * Firmware version: 0x61bf0001
298          * Device id (pf/vf): 8086:10fb / 8086:10ed
299          * Driver version(in-tree): 5.1.0-k (ixgbe)
300          * Driver version(out-tree): 5.13.4 (ixgbe)
301
302        * Intel\ |reg| Ethernet Converged Network Adapter X710-DA4 (4x10G)
303
304          * Firmware version(PF): 8.30 0x8000a49d 1.2926.0
305          * Firmware version(VF): 8.50 0x8000b6d9 1.3082.0
306          * Device id (pf/vf): 8086:1572 / 8086:154c
307          * Driver version: 2.17.15 (i40e)
308
309        * Intel\ |reg| Corporation Ethernet Connection X722 for 10GbE SFP+ (2x10G)
310
311          * Firmware version: 5.50 0x80003327 1.3082.0
312          * Device id (pf/vf): 8086:37d0 / 8086:37cd
313          * Driver version(out-tree): 2.17.15 (i40e)
314          * Driver version(in-tree): 2.8.20-k (i40e)
315
316        * Intel\ |reg| Corporation Ethernet Connection X722 for 10GBASE-T
317
318          * Firmware version: 5.50 0x800032e0 1.2935.0
319          * Device id (pf/vf): 8086:37d2 / 8086:37cd
320          * Driver version(out-tree): 2.17.15 (i40e)
321          * Driver version(in-tree): 2.8.20-k (i40e)
322
323        * Intel\ |reg| Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
324
325          * Firmware version(PF): 8.30 0x8000a483 1.2926.0
326          * Firmware version(VF): 8.50 0x8000b703 1.3082.0
327          * Device id (pf/vf): 8086:158b / 8086:154c
328          * Driver version: 2.17.15 (i40e)
329
330        * Intel\ |reg| Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
331
332          * Firmware version(PF): 8.30 0x8000a4ae 1.2926.0
333          * Firmware version(VF): 8.50 0x8000b6c7 1.3082.0
334          * Device id (pf/vf): 8086:1583 / 8086:154c
335          * Driver version: 2.17.15 (i40e)
336
337        * Intel\ |reg| Ethernet Converged Network Adapter X710-T2L
338
339          * Firmware version: 8.30 0x8000a489 1.2879.0
340          * Device id (pf): 8086:15ff
341          * Driver version: 2.17.15 (i40e)
342
343 * Intel\ |reg| platforms with Mellanox\ |reg| NICs combinations
344
345   * CPU:
346
347     * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz
348     * Intel\ |reg| Xeon\ |reg| CPU E5-2697A v4 @ 2.60GHz
349     * Intel\ |reg| Xeon\ |reg| CPU E5-2697 v3 @ 2.60GHz
350     * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz
351     * Intel\ |reg| Xeon\ |reg| CPU E5-2670 0 @ 2.60GHz
352     * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v4 @ 2.20GHz
353     * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v3 @ 2.30GHz
354     * Intel\ |reg| Xeon\ |reg| CPU E5-2640 @ 2.50GHz
355     * Intel\ |reg| Xeon\ |reg| CPU E5-2650 0 @ 2.00GHz
356     * Intel\ |reg| Xeon\ |reg| CPU E5-2620 v4 @ 2.10GHz
357
358   * OS:
359
360     * Red Hat Enterprise Linux release 8.2 (Ootpa)
361     * Red Hat Enterprise Linux Server release 7.8 (Maipo)
362     * Red Hat Enterprise Linux Server release 7.6 (Maipo)
363     * Red Hat Enterprise Linux Server release 7.5 (Maipo)
364     * Red Hat Enterprise Linux Server release 7.4 (Maipo)
365     * Red Hat Enterprise Linux Server release 7.3 (Maipo)
366     * Red Hat Enterprise Linux Server release 7.2 (Maipo)
367     * Ubuntu 20.04
368     * Ubuntu 18.04
369     * Ubuntu 16.04
370     * SUSE Enterprise Linux 15 SP2
371     * SUSE Enterprise Linux 12 SP4
372
373   * OFED:
374
375     * MLNX_OFED 5.5-1.0.3.2 and above
376     * MLNX_OFED 5.4-3.1.0.0
377
378   * upstream kernel:
379
380     * Linux 5.17.0-rc4 and above
381
382   * rdma-core:
383
384     * rdma-core-39.0 and above
385
386   * NICs:
387
388     * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCC_Ax (2x40G)
389
390       * Host interface: PCI Express 3.0 x8
391       * Device ID: 15b3:1007
392       * Firmware version: 2.42.5000
393
394     * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCCT (2x40G)
395
396       * Host interface: PCI Express 3.0 x8
397       * Device ID: 15b3:1007
398       * Firmware version: 2.42.5000
399
400     * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 25G MCX4121A-ACAT (2x25G)
401
402       * Host interface: PCI Express 3.0 x8
403       * Device ID: 15b3:1015
404       * Firmware version: 14.32.1010 and above
405
406     * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 50G MCX4131A-GCAT (1x50G)
407
408       * Host interface: PCI Express 3.0 x8
409       * Device ID: 15b3:1015
410       * Firmware version: 14.32.1010 and above
411
412     * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX516A-CCAT (2x100G)
413
414       * Host interface: PCI Express 3.0 x16
415       * Device ID: 15b3:1017
416       * Firmware version: 16.32.1010 and above
417
418     * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-ECAT (2x100G)
419
420       * Host interface: PCI Express 3.0 x16
421       * Device ID: 15b3:1017
422       * Firmware version: 16.32.1010 and above
423
424     * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-EDAT (2x100G)
425
426       * Host interface: PCI Express 3.0 x16
427       * Device ID: 15b3:1017
428       * Firmware version: 16.32.1010 and above
429
430     * Mellanox\ |reg| ConnectX\ |reg|-5 Ex EN 100G MCX516A-CDAT (2x100G)
431
432       * Host interface: PCI Express 4.0 x16
433       * Device ID: 15b3:1019
434       * Firmware version: 16.32.1010 and above
435
436     * Mellanox\ |reg| ConnectX\ |reg|-6 Dx EN 100G MCX623106AN-CDAT (2x100G)
437
438       * Host interface: PCI Express 4.0 x16
439       * Device ID: 15b3:101d
440       * Firmware version: 22.32.1010 and above
441
442     * Mellanox\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G)
443
444       * Host interface: PCI Express 4.0 x8
445       * Device ID: 15b3:101f
446       * Firmware version: 26.32.1010 and above
447
448 * Mellanox\ |reg| BlueField\ |reg| SmartNIC
449
450   * Mellanox\ |reg| BlueField\ |reg| 2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G)
451
452     * Host interface: PCI Express 3.0 x16
453     * Device ID: 15b3:a2d6
454     * Firmware version: 24.32.2004 and above
455
456   * Embedded software:
457
458     * Ubuntu 20.04.3
459     * MLNX_OFED 5.5-2.1.7.0 and above
460     * DPDK application running on Arm cores
461
462 * IBM Power 9 platforms with Mellanox\ |reg| NICs combinations
463
464   * CPU:
465
466     * POWER9 2.2 (pvr 004e 1202)
467
468   * OS:
469
470     * Red Hat Enterprise Linux Server release 8.2
471
472   * NICs:
473
474     * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-ECAT (2x100G)
475
476       * Host interface: PCI Express 4.0 x16
477       * Device ID: 15b3:1017
478       * Firmware version: 16.32.1010
479
480     * Mellanox\ |reg| ConnectX\ |reg|-6 Dx 100G MCX623106AN-CDAT (2x100G)
481
482       * Host interface: PCI Express 4.0 x16
483       * Device ID: 15b3:101d
484       * Firmware version: 22.32.1010
485
486   * OFED:
487
488     * MLNX_OFED 5.5-1.0.3.2