xref: /dpdk/doc/guides/rel_notes/release_24_03.rst (revision e2e546ab5bf5e024986ccb5310ab43982f3bb40c)
1.. SPDX-License-Identifier: BSD-3-Clause
2   Copyright 2023 The DPDK contributors
3
4.. include:: <isonum.txt>
5
6DPDK Release 24.03
7==================
8
9New Features
10------------
11
12* **Added HiSilicon UACCE bus support.**
13
14  Added UACCE (Unified/User-space-access-intended Accelerator Framework) bus
15  driver so that the accelerator devices such as a compress, crypto,
16  DMA and ethernet devices could be seen and registered in DPDK.
17
18* **Introduced argument parsing library.**
19
20  The argparse library was added to help writing user-friendly applications,
21  replacing ``getopt()`` usage.
22
23* **Improved RSS hash algorithm support.**
24
25  Added new function ``rte_eth_find_rss_algo``
26  to get RSS hash algorithm by its name.
27
28* **Added query of used descriptors number in Tx queue.**
29
30  * Added a fast path function ``rte_eth_tx_queue_count``
31    to get the number of used descriptors for a Tx queue.
32
33* **Added hash calculation of an encapsulated packet as done by the HW.**
34
35  Added function to calculate hash when doing tunnel encapsulation:
36  ``rte_flow_calc_encap_hash()``
37
38* **Added flow matching items and action.**
39
40  * Added ``RTE_FLOW_ITEM_TYPE_COMPARE`` to allow matching
41    on comparison result between packet fields or value.
42  * Added ``RTE_FLOW_ITEM_TYPE_RANDOM`` to match a random value,
43    and ``RTE_FLOW_FIELD_RANDOM`` to represent it with a field ID.
44  * Added ``RTE_FLOW_ACTION_TYPE_NAT64`` to offload header conversion
45    between IPv4 and IPv6.
46
47* **Added flow template table resizing.**
48
49  * ``RTE_FLOW_TABLE_SPECIALIZE_RESIZABLE_TABLE`` table configuration bit.
50    Set at table creation to allow future resizing.
51  * ``rte_flow_template_table_resizable()``.
52    Query whether template table can be resized.
53  * ``rte_flow_template_table_resize()``.
54    Reconfigure template table for new flows capacity.
55  * ``rte_flow_async_update_resized()``.
56    Reconfigure flows for the updated table configuration.
57  * ``rte_flow_template_table_resize_complete()``.
58    Complete table resize.
59
60* **Updated Amazon ena (Elastic Network Adapter) net driver.**
61
62  * Removed the reporting of ``rx_overruns`` errors from xstats
63    and instead updated ``imissed`` counter with its value.
64  * Added support for sub-optimal configuration notifications from the device.
65  * Added ``normal_llq_hdr`` devarg that enforces normal LLQ header policy.
66  * Added support for LLQ header size recommendation from the device.
67  * Allowed large LLQ with 1024 entries when the device supports enlarged memory BAR.
68  * Added `control_poll_interval` devarg that configures the control-path to work in poll-mode.
69  * Added support for binding ports to `uio_pci_generic` kernel module.
70
71* **Updated Atomic Rules' Arkville driver.**
72
73  * Added support for Atomic Rules' TK242 packet-capture family of devices
74    with PCI IDs: ``0x1024, 0x1025, 0x1026``.
75
76* **Updated Broadcom bnxt driver.**
77
78  * Added support for 5760X device family.
79
80* **Updated HiSilicon hns3 ethdev driver.**
81
82  * Added new device supporting RDMA/DCB/ROH with PCI IDs: ``0xa227, 0xa22c``.
83
84* **Updated Marvell cnxk net driver.**
85
86  * Added support for port representors.
87  * Added support for ``RTE_FLOW_ITEM_TYPE_PPPOES`` flow item.
88  * Added support for ``RTE_FLOW_ACTION_TYPE_SAMPLE`` flow item.
89  * Added support for Rx inject.
90  * Added support for ``rte_eth_tx_queue_count()``.
91  * Optimized SW external mbuf free for better performance and avoid SQ corruption.
92
93* **Updated Marvell OCTEON EP driver.**
94
95  * Optimized mbuf rearm sequence.
96  * Updated Tx queue mbuf free thresholds from 128 to 256 for better performance.
97  * Updated Rx queue mbuf refill routine to use mempool alloc and reorder it
98    to avoid mbuf write commits.
99  * Added option to control ISM memory accesses which gives better performance
100    for lower packet sizes when enabled.
101  * Added optimized SSE Rx routines.
102  * Added optimized AVX2 Rx routines.
103  * Added optimized NEON Rx routines.
104
105* **Updated NVIDIA mlx5 driver.**
106
107  * Added support for VXLAN-GPE matching in DV and HWS flow engines.
108  * Added support for GENEVE matching and modifying in HWS flow engine.
109  * Added support for modifying IPv4 proto field in HWS flow engine.
110  * Added support for modifying IPsec ESP fields in HWS flow engine.
111  * Added support for modifying IPv6 traffic class field in HWS flow engine.
112  * Added support for modifying IPv6 flow label field in HWS flow engine.
113  * Added support for matching a random value.
114  * Added support for comparing result between packet fields or value.
115  * Added support for accumulating value of field into another one.
116  * Added support for copying inner fields in HWS flow engine.
117  * Added support for ``RTE_FLOW_ACTION_TYPE_NAT64`` flow action in HWS flow engine.
118  * Added support for sharing indirect action objects
119    of type ``RTE_FLOW_ACTION_TYPE_METER_MARK`` and ``RTE_FLOW_ACTION_TYPE_CONNTRACK``
120    in HWS flow engine.
121
122* **Updated Intel QuickAssist Technology driver.**
123
124  * Enabled support for new QAT GEN3 (578a) and QAT GEN5 (4946)
125    devices in QAT crypto driver.
126  * Enabled ZUC256 cipher and auth algorithm for wireless slice
127    enabled GEN3 and GEN5 devices.
128  * Added support for GEN LCE (1454) device, for AES-GCM only.
129  * Enabled support for virtual QAT - vQAT (0da5) devices in QAT crypto driver.
130
131* **Updated Marvell cnxk crypto driver.**
132
133  * Added support for Rx inject in crypto_cn10k.
134  * Added support for TLS record processing in crypto_cn10k
135    to support TLS v1.2, TLS v1.3 and DTLS v1.2.
136  * Added PMD API to allow raw submission of instructions to CPT.
137
138* **Added Marvell Nitrox compression driver.**
139
140  Added a new compression driver for Marvell Nitrox devices to support
141  the deflate compression and decompression algorithm.
142
143* **Updated Marvell cnxk eventdev driver.**
144
145  * Added power-saving during polling within the ``rte_event_dequeue_burst()`` API.
146  * Added support for DMA adapter.
147
148* **Added DMA producer mode in eventdev test.**
149
150  Added DMA producer mode to measure performance of ``OP_FORWARD`` mode
151  of event DMA adapter.
152
153
154Removed Items
155-------------
156
157* log: Removed the statically defined logtypes that were used internally by DPDK.
158  All code should be using the dynamic logtypes (see ``RTE_LOG_REGISTER()``).
159  The application reserved statically defined logtypes ``RTE_LOGTYPE_USER1..RTE_LOGTYPE_USER8``
160  are still defined.
161
162* acc101: Removed obsolete code for non productized HW variant.
163
164
165API Changes
166-----------
167
168* eal: Removed ``typeof(type)`` from the expansion of ``RTE_DEFINE_PER_LCORE``
169  and ``RTE_DECLARE_PER_LCORE`` macros aligning them with their intended design.
170  If use with an expression is desired applications can adapt by supplying
171  ``typeof(e)`` as an argument.
172
173* eal: Improved ``RTE_BUILD_BUG_ON`` by using C11 ``static_assert``.
174  Non-constant expressions are now rejected instead of being silently ignored.
175
176* gso: ``rte_gso_segment`` now returns ``-ENOTSUP`` for unknown protocols.
177
178* ethdev: Renamed structure ``rte_flow_action_modify_data`` to be
179  ``rte_flow_field_data`` for more generic usage.
180
181
182ABI Changes
183-----------
184
185* No ABI change that would break compatibility with 23.11.
186
187
188Tested Platforms
189----------------
190
191* AMD platforms
192
193  * CPU
194
195    * AMD EPYC\ |trade| 7543 32-Core Processor @ 3.70GHz
196
197      * BIOS 7.00.30.00
198
199    * AMD EPYC\ |trade| 8534 64-Core Processor @ 3.10GHz
200
201      * BIOS 7.00.00.00
202
203  * OS:
204
205    * Ubuntu 22.04.4 LTS
206
207* Intel\ |reg| platforms with Intel\ |reg| NICs combinations
208
209  * CPU
210
211    * Intel Atom\ |reg| P5342 processor
212    * Intel\ |reg| Atom\ |trade| CPU C3758 @ 2.20GHz
213    * Intel\ |reg| Xeon\ |reg| CPU D-1553N @ 2.30GHz
214    * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @ 2.20GHz
215    * Intel\ |reg| Xeon\ |reg| D-1747NTE CPU @ 2.50GHz
216    * Intel\ |reg| Xeon\ |reg| D-2796NT CPU @ 2.00GHz
217    * Intel\ |reg| Xeon\ |reg| Gold 6139 CPU @ 2.30GHz
218    * Intel\ |reg| Xeon\ |reg| Gold 6140M CPU @ 2.30GHz
219    * Intel\ |reg| Xeon\ |reg| Gold 6252N CPU @ 2.30GHz
220    * Intel\ |reg| Xeon\ |reg| Gold 6348 CPU @ 2.60GHz
221    * Intel\ |reg| Xeon\ |reg| Platinum 8180 CPU @ 2.50GHz
222    * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz
223    * Intel\ |reg| Xeon\ |reg| Platinum 8380 CPU @ 2.30GHz
224    * Intel\ |reg| Xeon\ |reg| Platinum 8490H
225
226  * OS:
227
228    * CBL Mariner 2.0
229    * Fedora 39
230    * FreeBSD 14.0
231    * OpenAnolis OS 8.8
232    * openEuler 22.03 (LTS-SP2)
233    * Red Hat Enterprise Linux Server release 8.7
234    * Red Hat Enterprise Linux Server release 9.0
235    * Red Hat Enterprise Linux Server release 9.2
236    * Ubuntu 22.04.3
237
238  * NICs:
239
240    * Intel\ |reg| Ethernet Controller E810-C for SFP (4x25G)
241
242      * Firmware version: 4.40 0x8001c982 1.3534.0
243      * Device id (pf/vf): 8086:1593 / 8086:1889
244      * Driver version(out-tree): 1.13.7 (ice)
245      * Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3) /
246        5.14.0-284.11.1.rt14.296.el9_2.x86_64 (RHEL9.2) (ice)
247      * OS Default DDP: 1.3.35.0
248      * COMMS DDP: 1.3.45.0
249      * Wireless Edge DDP: 1.3.13.0
250
251    * Intel\ |reg| Ethernet Controller E810-C for QSFP (2x100G)
252
253      * Firmware version: 4.40 0x8001c967 1.3534.0
254      * Device id (pf/vf): 8086:1592 / 8086:1889
255      * Driver version(out-tree): 1.13.7 (ice)
256      * Driver version(in-tree): 5.15.55.1-1.cm2-5464b22cac7+ (CBL Mariner 2.0) (ice)
257      * OS Default DDP: 1.3.35.0
258      * COMMS DDP: 1.3.45.0
259      * Wireless Edge DDP: 1.3.13.0
260
261    * Intel\ |reg| Ethernet Controller E810-XXV for SFP (2x25G)
262
263      * Firmware version: 4.40 0x8001af86 1.3444.0
264      * Device id (pf/vf): 8086:159b / 8086:1889
265      * Driver version: 1.13.7 (ice)
266      * OS Default DDP: 1.3.35.0
267      * COMMS DDP: 1.3.45.0
268
269    * Intel\ |reg| Ethernet Connection E823-C for QSFP
270
271      * Firmware version: 3.33 0x8001b295 1.3443.0
272      * Device id (pf/vf): 8086:188b / 8086:1889
273      * Driver version: 1.13.7 (ice)
274      * OS Default DDP: 1.3.35.0
275      * COMMS DDP: 1.3.45.0
276      * Wireless Edge DDP: 1.3.13.0
277
278    * Intel\ |reg| Ethernet Connection E823-L for QSFP
279
280      * Firmware version: 3.33 0x8001b4b0 1.3429.0
281      * Device id (pf/vf): 8086:124c / 8086:1889
282      * Driver version: 1.13.7 (ice)
283      * OS Default DDP: 1.3.35.0
284      * COMMS DDP: 1.3.45.0
285      * Wireless Edge DDP: 1.3.13.0
286
287    * Intel\ |reg| Ethernet Connection E822-L for backplane
288
289      * Firmware version: 3.33 0x8001b4b6 1.3429.0
290      * Device id (pf/vf): 8086:1897 / 8086:1889
291      * Driver version: 1.13.7 (ice)
292      * OS Default DDP: 1.3.35.0
293      * COMMS DDP: 1.3.45.0
294      * Wireless Edge DDP: 1.3.13.0
295
296    * Intel\ |reg| 82599ES 10 Gigabit Ethernet Controller
297
298      * Firmware version: 0x000161bf
299      * Device id (pf/vf): 8086:10fb / 8086:10ed
300      * Driver version(out-tree): 5.19.9 (ixgbe)
301      * Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3) /
302        5.14.0-284.11.1.el9_2.x86_64 (RHEL9.2)(ixgbe)
303
304    * Intel\ |reg| Ethernet Converged Network Adapter X710-DA4 (4x10G)
305
306      * Firmware version: 9.40 0x8000eca2 1.3429.0
307      * Device id (pf/vf): 8086:1572 / 8086:154c
308      * Driver version(out-tree): 2.24.6 (i40e)
309
310    * Intel\ |reg| Corporation Ethernet Connection X722 for 10GbE SFP+ (2x10G)
311
312      * Firmware version: 6.20 0x80003d82 1.3353.0
313      * Device id (pf/vf): 8086:37d0 / 8086:37cd
314      * Driver version(out-tree): 2.24.6 (i40e)
315      * Driver version(in-tree): 5.14.0-284.11.1.el9_2.x86_64 (RHEL9.2)(i40e)
316
317    * Intel\ |reg| Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
318
319      * Firmware version: 9.40 0x8000ed12 1.3429.0
320      * Device id (pf/vf): 8086:158b / 8086:154c
321      * Driver version(out-tree): 2.24.6 (i40e)
322      * Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3) /
323        5.14.0-284.11.1.el9_2.x86_64 (RHEL9.2)(i40e)
324
325    * Intel\ |reg| Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
326
327      * Firmware version(PF): 9.40 0x8000ece4 1.3429.0
328      * Device id (pf/vf): 8086:1583 / 8086:154c
329      * Driver version(out-tree): 2.24.6 (i40e)
330
331    * Intel\ |reg| Ethernet Controller I225-LM
332
333      * Firmware version: 1.3, 0x800000c9
334      * Device id (pf): 8086:15f2
335      * Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3)(igc)
336
337    * Intel\ |reg| Ethernet Controller I226-LM
338
339      * Firmware version: 2.14, 0x8000028c
340      * Device id (pf): 8086:125b
341      * Driver version(in-tree): 5.15.0-82-generic (Ubuntu22.04.3)(igc)
342
343* Intel\ |reg| platforms with NVIDIA\ |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 9.1 (Plow)
361    * Red Hat Enterprise Linux release 8.6 (Ootpa)
362    * Red Hat Enterprise Linux release 8.4 (Ootpa)
363    * Red Hat Enterprise Linux Server release 7.9 (Maipo)
364    * Red Hat Enterprise Linux Server release 7.6 (Maipo)
365    * Ubuntu 22.04
366    * Ubuntu 20.04
367    * SUSE Enterprise Linux 15 SP2
368
369  * OFED:
370
371    * MLNX_OFED 24.01-0.3.3.1 and above
372
373  * upstream kernel:
374
375    * Linux 6.8.0 and above
376
377  * rdma-core:
378
379    * rdma-core-50.0 and above
380
381  * NICs
382
383    * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx EN 100G MCX623106AN-CDAT (2x100G)
384
385      * Host interface: PCI Express 4.0 x16
386      * Device ID: 15b3:101d
387      * Firmware version: 22.40.1000 and above
388
389    * NVIDIA\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G)
390
391      * Host interface: PCI Express 4.0 x8
392      * Device ID: 15b3:101f
393      * Firmware version: 26.40.1000 and above
394
395    * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G)
396
397      * Host interface: PCI Express 5.0 x16
398      * Device ID: 15b3:1021
399      * Firmware version: 28.40.1000 and above
400
401* NVIDIA\ |reg| BlueField\ |reg| SmartNIC
402
403  * NVIDIA\ |reg| BlueField\ |reg|-2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G)
404
405    * Host interface: PCI Express 3.0 x16
406    * Device ID: 15b3:a2d6
407    * Firmware version: 24.40.1000 and above
408
409  * NVIDIA\ |reg| BlueField\ |reg|-3 P-Series DPU MT41692 - 900-9D3B6-00CV-AAB (2x200G)
410
411    * Host interface: PCI Express 5.0 x16
412    * Device ID: 15b3:a2dc
413    * Firmware version: 32.40.1000 and above
414
415  * Embedded software:
416
417    * Ubuntu 22.04
418    * MLNX_OFED 24.01-0.3.3.0 and above
419    * DOCA_2.6.0_BSP_4.6.0_Ubuntu_22.04-5.24-01
420    * DPDK application running on ARM cores
421
422* IBM Power 9 platforms with NVIDIA\ |reg| NICs combinations
423
424  * CPU:
425
426    * POWER9 2.2 (pvr 004e 1202)
427
428  * OS:
429
430    * Ubuntu 20.04
431
432  * NICs:
433
434    * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx 100G MCX623106AN-CDAT (2x100G)
435
436      * Host interface: PCI Express 4.0 x16
437      * Device ID: 15b3:101d
438      * Firmware version: 22.40.1000 and above
439
440    * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G)
441
442      * Host interface: PCI Express 5.0 x16
443      * Device ID: 15b3:1021
444      * Firmware version: 28.40.1000 and above
445
446  * OFED:
447
448    * MLNX_OFED 24.01-0.3.3.1
449