common/mlx5: update doorbell mapping parameter name
[dpdk.git] / doc / guides / rel_notes / release_21_11.rst
1 .. SPDX-License-Identifier: BSD-3-Clause
2    Copyright 2021 The DPDK contributors
3
4 .. include:: <isonum.txt>
5
6 DPDK Release 21.11
7 ==================
8
9 New Features
10 ------------
11
12 * **Enabled new devargs parser.**
13
14   * Enabled devargs syntax:
15     ``bus=X,paramX=x/class=Y,paramY=y/driver=Z,paramZ=z``.
16   * Added bus-level parsing of the devargs syntax.
17   * Kept compatibility with the legacy syntax as parsing fallback.
18
19 * **Updated EAL hugetlbfs mount handling for Linux.**
20
21   * Modified EAL to allow ``--huge-dir`` option to specify a sub-directory
22     within a hugetlbfs mountpoint.
23
24 * **Added dmadev library.**
25
26   * Added a DMA device framework for management and provision of
27     hardware and software DMA devices.
28   * Added generic API which support a number of different DMA
29     operations.
30   * Added multi-process support.
31
32 * **Updated default KNI behavior on net devices control callbacks.**
33
34   Updated KNI net devices control callbacks to run with ``rtnl`` kernel lock
35   held by default. A newly added ``enable_bifurcated`` KNI kernel module
36   parameter can be used to run callbacks with ``rtnl`` lock released.
37
38 * **Added HiSilicon DMA driver.**
39
40   The HiSilicon DMA driver provides device drivers for the Kunpeng's DMA devices.
41   This device driver can be used through the generic dmadev API.
42
43 * **Added IDXD dmadev driver implementation.**
44
45   The IDXD dmadev driver provides device drivers for the Intel DSA devices.
46   This device driver can be used through the generic dmadev API.
47
48 * **Added IOAT dmadev driver implementation.**
49
50   The Intel I/O Acceleration Technology (IOAT) dmadev driver provides a device
51   driver for Intel IOAT devices such as Crystal Beach DMA (CBDMA) on Ice Lake,
52   Skylake and Broadwell. This device driver can be used through the generic dmadev API.
53
54 * **Added Marvell CNXK DMA driver.**
55
56   Added dmadev driver for the DPI DMA hardware accelerator
57   of Marvell OCTEONTX2 and OCTEONTX3 family of SoCs.
58
59 * **Added NXP DPAA DMA driver.**
60
61   Added a new dmadev driver for the NXP DPAA platform.
62
63 * **Added support to get all MAC addresses of a device.**
64
65   Added ``rte_eth_macaddrs_get`` to allow a user to retrieve all Ethernet
66   addresses assigned to a given Ethernet port.
67
68 * **Introduced GPU device class.**
69
70   Introduced the GPU device class with initial features:
71
72   * Device information.
73   * Memory management.
74   * Communication flag and list.
75
76 * **Added NVIDIA GPU driver implemented with CUDA library.**
77
78   Added NVIDIA GPU driver implemented with CUDA library under the new
79   GPU device interface.
80
81 * **Added new RSS offload types for IPv4/L4 checksum in RSS flow.**
82
83   Added macros ``ETH_RSS_IPV4_CHKSUM`` and ``ETH_RSS_L4_CHKSUM``. The IPv4 and
84   TCP/UDP/SCTP header checksum field can now be used as input set for RSS.
85
86 * **Added L2TPv2 and PPP protocol support in flow API.**
87
88   Added flow pattern items and header formats for the L2TPv2 and PPP protocols.
89
90 * **Added flow flex item.**
91
92   The configurable flow flex item provides the capability to introduce
93   an arbitrary user-specified network protocol header,
94   configure the hardware accordingly, and perform match on this header
95   with desired patterns and masks.
96
97 * **Added ethdev support to control delivery of Rx metadata from the HW to the PMD.**
98
99   A new API, ``rte_eth_rx_metadata_negotiate()``, was added.
100   The following parts of Rx metadata were defined:
101
102   * ``RTE_ETH_RX_METADATA_USER_FLAG``
103   * ``RTE_ETH_RX_METADATA_USER_MARK``
104   * ``RTE_ETH_RX_METADATA_TUNNEL_ID``
105
106 * **Added an API to get a proxy port to manage "transfer" flows.**
107
108   A new API, ``rte_flow_pick_transfer_proxy()``, was added.
109
110 * **Added ethdev shared Rx queue support.**
111
112   * Added new device capability flag and Rx domain field to switch info.
113   * Added share group and share queue ID to Rx queue configuration.
114   * Added testpmd support and dedicated forwarding engine.
115
116 * **Updated af_packet ethdev driver.**
117
118   * The default VLAN strip behavior has changed. The VLAN tag won't be stripped
119     unless ``DEV_RX_OFFLOAD_VLAN_STRIP`` offload is enabled.
120
121 * **Added API to get device configuration in ethdev.**
122
123   Added an ethdev API which can help users get device configuration.
124
125 * **Updated AF_XDP PMD.**
126
127   * Disabled secondary process support due to insufficient state shared
128     between processes which causes a crash. This will be fixed/re-enabled
129     in the next release.
130
131 * **Updated Amazon ENA PMD.**
132
133   Updated the Amazon ENA PMD. The new driver version (v2.5.0) introduced
134   bug fixes and improvements, including:
135
136   * Support for the ``tx_free_thresh`` and ``rx_free_thresh`` configuration parameters.
137   * NUMA aware allocations for the queue helper structures.
138   * A Watchdog feature which is checking for missing Tx completions.
139
140 * **Updated Broadcom bnxt PMD.**
141
142   * Added flow offload support for Thor.
143   * Added TruFlow and AFM SRAM partitioning support.
144   * Implemented support for tunnel offload.
145   * Updated HWRM API to version 1.10.2.68.
146   * Added NAT support for destination IP and port combination.
147   * Added support for socket redirection.
148   * Added wildcard match support for ingress flows.
149   * Added support for inner IP header for GRE tunnel flows.
150   * Updated support for RSS action in flow rules.
151   * Removed devargs option for stats accumulation.
152
153 * **Updated Cisco enic driver.**
154
155   * Added rte_flow support for matching GTP, GTP-C and GTP-U headers.
156
157 * **Updated Intel e1000 emulated driver.**
158
159   * Added Intel e1000 support on Windows.
160
161 * **Updated Intel iavf driver.**
162
163   * Added Intel iavf support on Windows.
164   * Added IPv4 and L4 (TCP/UDP/SCTP) checksum hash support in RSS flow.
165   * Added PPPoL2TPv2oUDP RSS hash based on inner IP address and TCP/UDP port.
166   * Added Intel iavf inline crypto support.
167
168 * **Updated Intel ice driver.**
169
170   * Added protocol agnostic flow offloading support in Flow Director.
171   * Added protocol agnostic flow offloading support in RSS hash.
172   * Added 1PPS out support via devargs.
173   * Added IPv4 and L4 (TCP/UDP/SCTP) checksum hash support in RSS flow.
174   * Added ``DEV_RX_OFFLOAD_TIMESTAMP`` support.
175   * Added timesync API support under scalar path.
176   * Added DCF reset API support.
177
178 * **Updated Intel ixgbe driver.**
179
180   * Added Intel ixgbe support on Windows.
181
182 * **Updated Marvell cnxk ethdev driver.**
183
184   * Added rte_flow support for dual VLAN insert and strip actions.
185   * Added rte_tm support.
186   * Added support for Inline IPsec for CN9K event mode and CN10K
187     poll mode and event mode.
188   * Added support for ingress meter for CN10K platform.
189
190 * **Updated Mellanox mlx5 driver.**
191
192   Updated the Mellanox mlx5 driver with new features and improvements, including:
193
194   * Added implicit mempool registration to avoid data path hiccups (opt-out).
195   * Added delay drop support for Rx queues.
196   * Added NIC offloads for the PMD on Windows (TSO, VLAN strip, CRC keep).
197   * Added socket direct mode bonding support.
198
199 * **Added NXP ENETFEC PMD [EXPERIMENTAL].**
200
201   Added the new ENETFEC driver for the NXP IMX8MMEVK platform. See the
202   :doc:`../nics/enetfec` NIC driver guide for more details on this new driver.
203
204 * **Updated Solarflare network PMD.**
205
206   Updated the Solarflare ``sfc_efx`` driver with changes including:
207
208   * Added port representors support on SN1000 SmartNICs
209   * Added flow API transfer proxy support
210   * Added SN1000 virtual functions (VF) support
211   * Added support for flow counters without service cores
212   * Added support for regioned DMA mapping required on SN1022 SoC
213
214 * **Added power monitor API in vhost library.**
215
216   Added an API to support power monitor in vhost library.
217
218 * **Updated vhost PMD.**
219
220   Add power monitor support in vhost PMD.
221
222 * **Updated virtio PMD.**
223
224   * Initial support for RSS receive mode has been added to the Virtio PMD,
225     with the capability for the application to configure the hash key,
226     the RETA and the hash types.
227     Virtio hash reporting is yet to be added.
228   * Added power monitor support in virtio PMD.
229
230 * **Updated Wangxun ngbe driver.**
231
232   * Added offloads and packet type on RxTx.
233   * Added VLAN and MAC filters.
234   * Added device basic statistics and extended stats.
235   * Added multi-queue and RSS.
236   * Added SRIOV.
237   * Added flow control.
238   * Added IEEE 1588.
239
240 * **Added new vDPA PMD based on Xilinx devices.**
241
242   Added a new Xilinx vDPA  (``sfc_vdpa``) PMD.
243   See the :doc:`../vdpadevs/sfc` guide for more details on this driver.
244
245 * **Added telemetry callbacks to the cryptodev library.**
246
247   Added telemetry callback functions which allow a list of crypto devices,
248   stats for a crypto device, and other device information to be queried.
249   Also added callback to get cryptodev capabilities.
250
251 * **Added telemetry to security library.**
252
253   Added telemetry callback functions to query security capabilities of
254   crypto device.
255
256 * **Updated Marvell cnxk crypto PMD.**
257
258   * Added AES-CBC SHA1-HMAC support in lookaside protocol (IPsec) for CN10K.
259   * Added Transport mode support in lookaside protocol (IPsec) for CN10K.
260   * Added UDP encapsulation support in lookaside protocol (IPsec) for CN10K.
261   * Added support for lookaside protocol (IPsec) offload for CN9K.
262   * Added support for ZUC algorithm with 256-bit key length for CN10K.
263   * Added support for CN98xx dual block.
264   * Added inner checksum support in lookaside protocol (IPsec) for CN10K.
265   * Added AES-CBC NULL auth support in lookaside protocol (IPsec) for CN10K.
266   * Added ESN and anti-replay support in lookaside protocol (IPsec) for CN9K.
267
268 * **Added support for event crypto adapter on Marvell CN10K and CN9K.**
269
270   * Added event crypto adapter ``OP_FORWARD`` mode support.
271
272 * **Updated Mellanox mlx5 crypto driver.**
273
274   * Added Windows support.
275   * Added support for BlueField 2 and ConnectX-6 Dx.
276
277 * **Updated NXP dpaa_sec crypto PMD.**
278
279   * Added DES-CBC, AES-XCBC-MAC, AES-CMAC and non-HMAC algorithm support.
280   * Added PDCP short MAC-I support.
281   * Added raw vector datapath API support.
282
283 * **Updated NXP dpaa2_sec crypto PMD.**
284
285   * Added PDCP short MAC-I support.
286   * Added raw vector datapath API support.
287
288 * **Added framework for consolidation of IPsec_MB dependent SW Crypto PMDs.**
289
290   * The IPsec_MB framework was added to share common code between Intel
291     SW Crypto PMDs that depend on the intel-ipsec-mb library.
292   * Multiprocess support was added for the consolidated PMDs
293     which requires v1.1 of the intel-ipsec-mb library.
294   * The following PMDs were moved into a single source folder
295     while their usage and EAL options remain unchanged.
296     * AESNI_MB PMD.
297     * AESNI_GCM PMD.
298     * KASUMI PMD.
299     * SNOW3G PMD.
300     * ZUC PMD.
301     * CHACHA20_POLY1305 - a new PMD.
302
303 * **Updated the aesni_mb crypto PMD.**
304
305   * Added support for ZUC-EEA3-256 and ZUC-EIA3-256.
306
307 * **Added digest appended ops support for Snow3G PMD.**
308
309   * Added support for out-of-place auth-cipher operations that encrypt
310     the digest along with the rest of the raw data.
311   * Added support for partially encrypted digest when using auth-cipher
312     operations.
313
314 * **Updated the ACC100 bbdev PMD.**
315
316   Added support for more comprehensive CRC options.
317
318 * **Updated the turbo_sw bbdev PMD.**
319
320   Added support for more comprehensive CRC options.
321
322 * **Added NXP LA12xx baseband PMD.**
323
324   * Added a new baseband PMD for NXP LA12xx Software defined radio.
325   * See the :doc:`../bbdevs/la12xx` for more details.
326
327 * **Updated Mellanox compress driver.**
328
329   * Added devargs option to allow manual setting of Huffman block size.
330
331 * **Updated Mellanox regex driver.**
332
333   * Added support for new ROF file format.
334
335 * **Updated IPsec library.**
336
337   * Added support for more AEAD algorithms AES_CCM, CHACHA20_POLY1305
338     and AES_GMAC.
339   * Added support for NAT-T / UDP encapsulated ESP.
340   * Added support for SA telemetry.
341   * Added support for setting a non default starting ESN value.
342   * Added support for TSO in inline crypto mode.
343
344 * **Added optimized Toeplitz hash implementation.**
345
346   Added optimized Toeplitz hash implementation using Galois Fields New Instructions.
347
348 * **Added multi-process support for testpmd.**
349
350   Added command-line options to specify total number of processes and
351   current process ID. Each process owns a subset of Rx and Tx queues.
352
353 * **Updated test-crypto-perf application with new cases.**
354
355   * Added support for asymmetric crypto throughput performance measurement.
356     Only modex is supported for now.
357   * Added support for lookaside IPsec protocol offload throughput measurement.
358
359 * **Added lookaside protocol (IPsec) tests in dpdk-test.**
360
361   * Added known vector tests (AES-GCM 128, 192, 256).
362   * Added tests to verify error reporting with ICV corruption.
363   * Added tests to verify IV generation.
364   * Added tests to verify UDP encapsulation.
365   * Added tests to verify UDP encapsulation ports.
366   * Added tests to validate packets soft expiry.
367   * Added tests to validate packets hard expiry.
368   * Added tests to verify tunnel header verification in IPsec inbound.
369   * Added tests to verify inner checksum.
370   * Added tests for CHACHA20_POLY1305 PMD, including a new testcase for SGL OOP.
371
372 * **Updated l3fwd sample application.**
373
374   * Increased number of routes to 16 for all lookup modes (LPM, EM and FIB).
375     This helps in validating SoC with many Ethernet devices.
376   * Updated EM mode to use RFC2544 reserved IP address space with RFC863
377     UDP discard protocol.
378
379 * **Updated IPsec Security Gateway sample application with new features.**
380
381   * Added support for TSO (only for inline crypto TCP packets).
382   * Added support for telemetry.
383   * Added support for more AEAD algorithms: AES-GMAC, AES_CTR, AES_XCBC_MAC,
384     AES_CCM, CHACHA20_POLY1305
385   * Added support for event vectors for inline protocol offload mode.
386
387 * **Revised packet capture framework.**
388
389   * New dpdk-dumpcap program that has most of the features
390     of the wireshark dumpcap utility including:
391     capture of multiple interfaces, filtering,
392     and stopping after number of bytes, packets.
393   * New library for writing pcapng packet capture files.
394   * Enhancements to the pdump library to support:
395     * Packet filter with BPF.
396     * Pcapng format with timestamps and meta-data.
397     * Fixes packet capture with stripped VLAN tags.
398
399 * **Added ASan support.**
400
401   Added ASan/AddressSanitizer support. `AddressSanitizer
402   <https://github.com/google/sanitizers/wiki/AddressSanitizer>`_
403   is a widely-used debugging tool to detect memory access errors.
404   It helps to detect issues like use-after-free, various kinds of buffer
405   overruns in C/C++ programs, and other similar errors, as well as
406   printing out detailed debug information whenever an error is detected.
407
408
409 Removed Items
410 -------------
411
412 * eal: Removed the deprecated function ``rte_get_master_lcore()``
413   and the iterator macro ``RTE_LCORE_FOREACH_SLAVE``.
414
415 * eal: The old API arguments that were deprecated for
416   blacklist/whitelist are removed. Users must use the new
417   block/allow list arguments.
418
419 * mbuf: Removed offload flag ``PKT_RX_EIP_CKSUM_BAD``.
420   The ``PKT_RX_OUTER_IP_CKSUM_BAD`` flag should be used as a replacement.
421
422 * ethdev: Removed the port mirroring API. A more fine-grain flow API
423   action ``RTE_FLOW_ACTION_TYPE_SAMPLE`` should be used instead.
424   The structures ``rte_eth_mirror_conf`` and ``rte_eth_vlan_mirror`` and
425   the functions ``rte_eth_mirror_rule_set`` and
426   ``rte_eth_mirror_rule_reset`` along with the associated macros
427   ``ETH_MIRROR_*`` are removed.
428
429 * ethdev: Removed the ``rte_eth_rx_descriptor_done()`` API function and its
430   driver callback. It is replaced by the more complete function
431   ``rte_eth_rx_descriptor_status()``.
432
433 * ethdev: Removed deprecated ``shared`` attribute of the
434   ``struct rte_flow_action_count``. Shared counters should be managed
435   using indirect actions API (``rte_flow_action_handle_create`` etc).
436
437 * i40e: Removed i40evf driver.
438   iavf already became the default VF driver for i40e devices,
439   so there is no need to maintain i40evf.
440
441
442 API Changes
443 -----------
444
445 * eal: The lcore state ``FINISHED`` is removed from
446   the ``enum rte_lcore_state_t``.
447   The lcore state ``WAIT`` is enough to represent the same state.
448
449 * eal: Made ``rte_intr_handle`` structure definition hidden.
450
451 * kvargs: The experimental function ``rte_kvargs_strcmp()`` has been
452   removed. Its usages have been replaced by a new function
453   ``rte_kvargs_get_with_value()``.
454
455 * cmdline: ``cmdline_stdin_exit()`` now frees the ``cmdline`` structure.
456   Calls to ``cmdline_free()`` after it need to be deleted from applications.
457
458 * cmdline: Made ``cmdline`` structure definition hidden on Linux and FreeBSD.
459
460 * cmdline: Made ``rdline`` structure definition hidden. Functions are added
461   to dynamically allocate and free it, and to access user data in callbacks.
462
463 * mempool: Added ``RTE_MEMPOOL_F_NON_IO`` flag to give a hint to DPDK components
464   that objects from this pool will not be used for device IO (e.g. DMA).
465
466 * mempool: The mempool flags ``MEMPOOL_F_*`` will be deprecated in the future.
467   Newly added flags with ``RTE_MEMPOOL_F_`` prefix should be used instead.
468
469 * mempool: Helper macro ``MEMPOOL_HEADER_SIZE()`` is deprecated.
470   The replacement macro ``RTE_MEMPOOL_HEADER_SIZE()`` is internal only.
471
472 * mempool: Macro to register mempool driver ``MEMPOOL_REGISTER_OPS()`` is
473   deprecated.  Use replacement ``RTE_MEMPOOL_REGISTER_OPS()``.
474
475 * mempool: The mempool API macros ``MEMPOOL_PG_*`` are deprecated and
476   will be removed in DPDK 22.11.
477
478 * mbuf: The mbuf offload flags ``PKT_*`` are renamed as ``RTE_MBUF_F_*``. A
479   compatibility layer will be kept until DPDK 22.11.
480 * net: Renamed ``s_addr`` and ``d_addr`` fields of ``rte_ether_hdr`` structure
481   to ``src_addr`` and ``dst_addr``, respectively.
482
483 * net: Added ``version`` and ``ihl`` bit-fields to ``struct rte_ipv4_hdr``.
484   Existing ``version_ihl`` field is kept for backward compatibility.
485
486 * ethdev: Added items and actions ``PORT_REPRESENTOR``, ``REPRESENTED_PORT`` to
487   flow API.
488
489 * ethdev: Deprecated items and actions ``PF``, ``VF``, ``PHY_PORT``, ``PORT_ID``.
490   Suggested items and actions ``PORT_REPRESENTOR``, ``REPRESENTED_PORT`` instead.
491
492 * ethdev: Deprecated the use of attributes ``ingress`` / ``egress`` combined
493   with ``transfer``. See items ``PORT_REPRESENTOR``, ``REPRESENTED_PORT``.
494
495 * ethdev: ``rte_flow_action_modify_data`` structure updated, immediate data
496   array is extended, data pointer field is explicitly added to union, the
497   action behavior is defined in a more strict fashion and documentation updated.
498   The immediate value behavior has been changed, the entire immediate field
499   should be provided, and offset for immediate source bitfield is assigned
500   from the destination one.
501
502 * vhost: ``rte_vdpa_register_device``, ``rte_vdpa_unregister_device``,
503   ``rte_vhost_host_notifier_ctrl`` and ``rte_vdpa_relay_vring_used`` vDPA
504   driver interface are marked as internal.
505
506 * cryptodev: The API ``rte_cryptodev_pmd_is_valid_dev()`` is modified to
507   ``rte_cryptodev_is_valid_dev()`` as it can be used by the application as
508   well as the PMD to check whether the device is valid or not.
509
510 * cryptodev: The ``rte_cryptodev_pmd.*`` files are renamed to ``cryptodev_pmd.*``
511   since they are for drivers only and should be private to DPDK, and not
512   installed for app use.
513
514 * cryptodev: A ``reserved`` byte from structure ``rte_crypto_op`` was
515   renamed to ``aux_flags`` to indicate warnings and other information from
516   the crypto/security operation. This field will be used to communicate
517   events such as soft expiry with IPsec in lookaside mode.
518
519 * cryptodev: The field ``dataunit_len`` of the ``struct rte_crypto_cipher_xform``
520   moved to the end of the structure and extended to ``uint32_t``.
521
522 * cryptodev: The structure ``rte_crypto_vec`` was updated to add ``tot_len``
523   field to support total buffer length to facilitate protocol offload case.
524
525 * cryptodev: The structure ``rte_crypto_sym_vec`` was updated to add
526   ``dest_sgl`` to support out of place processing.
527
528 * bbdev: Added device info related to data byte endianness processing.
529
530 * eventdev: Moved memory used by timer adapters to hugepage. This will prevent
531   TLB misses if any and aligns to memory structure of other subsystems.
532
533 * fib: Added the ``rib_ext_sz`` field to ``rte_fib_conf`` and ``rte_fib6_conf``
534   so that user can specify the size of the RIB extension inside the FIB.
535
536 * ip_frag: All macros updated to have ``RTE_IP_FRAG_`` prefix.
537   Obsolete macros are kept for compatibility.
538   DPDK components updated to use new names.
539   Experimental function ``rte_frag_table_del_expired_entries()`` was renamed
540   to ``rte_ip_frag_table_del_expired_entries()``
541   to comply with other public API naming convention.
542
543
544 ABI Changes
545 -----------
546
547 * ethdev: All enums and macros updated to have ``RTE_ETH`` prefix and structures
548   updated to have ``rte_eth`` prefix. DPDK components updated to use new names.
549
550 * ethdev: The input parameters for ``eth_rx_queue_count_t`` were changed.
551   Instead of a pointer to ``rte_eth_dev`` and queue index, it now accepts a pointer
552   to internal queue data as an input parameter. While this change is transparent
553   to the user, it still counts as an ABI change, as ``eth_rx_queue_count_t``
554   is used by the public inline function ``rte_eth_rx_queue_count``.
555
556 * ethdev: Made ``rte_eth_dev``, ``rte_eth_dev_data``, ``rte_eth_rxtx_callback``
557   private data structures. ``rte_eth_devices[]`` can't be accessed directly
558   by user any more. While it is an ABI breakage, this change is intended
559   to be transparent for both users (no changes in user app is required) and
560   PMD developers (no changes in PMD is required).
561
562 * vhost: rename ``struct vhost_device_ops`` to ``struct rte_vhost_device_ops``.
563
564 * cryptodev: Made ``rte_cryptodev``, ``rte_cryptodev_data`` private
565   structures internal to DPDK. ``rte_cryptodevs`` can't be accessed directly
566   by user any more. While it is an ABI breakage, this change is intended
567   to be transparent for both users (no changes in user app is required) and
568   PMD developers (no changes in PMD is required).
569
570 * security: ``rte_security_set_pkt_metadata`` and ``rte_security_get_userdata``
571   routines used by inline outbound and inline inbound security processing were
572   made inline and enhanced to do simple 64-bit set/get for PMDs that do not
573   have much processing in PMD specific callbacks but just 64-bit set/get.
574   This avoids a per packet function pointer jump overhead for such PMDs.
575
576 * security: A new option ``iv_gen_disable`` was added in structure
577   ``rte_security_ipsec_sa_options`` to disable IV generation inside PMD,
578   so that application can provide its own IV and test known test vectors.
579
580 * security: A new option ``tunnel_hdr_verify`` was added in structure
581   ``rte_security_ipsec_sa_options`` to indicate whether outer header
582   verification need to be done as part of inbound IPsec processing.
583
584 * security: A new option ``udp_ports_verify`` was added in structure
585   ``rte_security_ipsec_sa_options`` to indicate whether UDP ports
586   verification need to be done as part of inbound IPsec processing.
587
588 * security: A new structure ``rte_security_ipsec_lifetime`` was added to
589   replace ``esn_soft_limit`` in IPsec configuration structure
590   ``rte_security_ipsec_xform`` to allow applications to configure SA soft
591   and hard expiry limits. Limits can be either in number of packets or bytes.
592
593 * security: The new options ``ip_csum_enable`` and ``l4_csum_enable`` were added
594   in structure ``rte_security_ipsec_sa_options`` to indicate whether inner
595   packet IPv4 header checksum and L4 checksum need to be offloaded to
596   security device.
597
598 * security: A new structure ``esn`` was added in structure
599   ``rte_security_ipsec_xform`` to set an initial ESN value. This permits
600   applications to start from an arbitrary ESN value for debug and SA lifetime
601   enforcement purposes.
602
603 * security: A new structure ``udp`` was added in structure
604   ``rte_security_ipsec_xform`` to allow setting the source and destination ports
605   for UDP encapsulated IPsec traffic.
606
607 * bbdev: Added capability related to more comprehensive CRC options,
608   shifting values of the ``enum rte_bbdev_op_ldpcdec_flag_bitmasks``.
609
610 * eventdev: New variables ``rx_event_buf_count`` and ``rx_event_buf_size``
611   were added in structure ``rte_event_eth_rx_adapter_stats`` to get additional
612   status.
613
614 * eventdev: A new structure ``rte_event_fp_ops`` has been added which is now used
615   by the fastpath inline functions. The structures ``rte_eventdev``,
616   ``rte_eventdev_data`` have been made internal. ``rte_eventdevs[]`` can't be
617   accessed directly by user any more. This change is transparent to both
618   applications and PMDs.
619
620 * eventdev: Re-arranged fields in ``rte_event_timer`` to remove holes.
621
622 * ip_frag: Increased default value for config parameter
623   ``RTE_LIBRTE_IP_FRAG_MAX_FRAG`` from ``4`` to ``8``.
624   This parameter controls maximum number of fragments per packet
625   in IP reassembly table. Increasing this value from ``4`` to ``8``
626   will allow covering the common case with jumbo packet size of ``9000B``
627   and fragments with default frame size ``(1500B)``.
628
629
630 Tested Platforms
631 ----------------
632
633 * Intel\ |reg| platforms with Intel\ |reg| NICs combinations
634
635   * CPU
636
637     * Intel\ |reg| Atom\ |trade| CPU C3758 @ 2.20GHz
638     * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz
639     * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v3 @ 2.30GHz
640     * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @ 2.20GHz
641     * Intel\ |reg| Xeon\ |reg| Gold 6140M CPU @ 2.30GHz
642     * Intel\ |reg| Xeon\ |reg| Gold 6139 CPU @ 2.30GHz
643     * Intel\ |reg| Xeon\ |reg| Gold 6252N CPU @ 2.30GHz
644     * Intel\ |reg| Xeon\ |reg| Gold 6348 CPU @ 2.60GHz
645     * Intel\ |reg| Xeon\ |reg| Platinum 8180M CPU @ 2.50GHz
646     * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz
647
648   * OS:
649
650     * Fedora 34
651     * OpenWRT 21.02.0
652     * FreeBSD 13.0
653     * Red Hat Enterprise Linux Server release 8.4
654     * Suse 15 SP3
655     * Ubuntu 20.04.3
656     * Ubuntu 21.10
657
658   * NICs:
659
660     * Intel\ |reg| Ethernet Controller E810-C for SFP (4x25G)
661
662       * Firmware version: 3.10 0x8000aa86 1.3100.0
663       * Device id (pf/vf): 8086:1593 / 8086:1889
664       * Driver version: 1.7.11_7_g444e5edb (ice)
665       * OS Default DDP: 1.3.27.0
666       * COMMS DDP: 1.3.31.0
667       * Wireless Edge DDP: 1.3.7.0
668
669     * Intel\ |reg| Ethernet Controller E810-C for QSFP (2x100G)
670
671       * Firmware version: 3.10 0x8000aa66 1.3100.0
672       * Device id (pf/vf): 8086:1592 / 8086:1889
673       * Driver version: 1.7.11_7_g444e5edb (ice)
674       * OS Default DDP: 1.3.27.0
675       * COMMS DDP: 1.3.31.0
676       * Wireless Edge DDP: 1.3.7.0
677
678     * Intel\ |reg| 82599ES 10 Gigabit Ethernet Controller
679
680       * Firmware version: 0x61bf0001
681       * Device id (pf/vf): 8086:10fb / 8086:10ed
682       * Driver version(in-tree): 5.1.0-k (ixgbe)
683       * Driver version(out-tree): 5.13.4 (ixgbe)
684
685     * Intel\ |reg| Ethernet Converged Network Adapter X710-DA4 (4x10G)
686
687       * PF Firmware version: 8.30 0x8000a49d 1.2926.0
688       * VF Firmware version: 8.50 0x8000b6d9 1.3082.0
689       * Device id (pf/vf): 8086:1572 / 8086:154c
690       * Driver version: 2.17.4 (i40e)
691
692     * Intel\ |reg| Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G)
693
694       * Firmware version: 5.30 0x80002a29 1.2926.0
695       * Device id (pf/vf): 8086:37d0 / 8086:37cd
696       * Driver version: 2.17.4 (i40e)
697
698     * Intel\ |reg| Corporation Ethernet Connection X722 for 10GBASE-T (2x10G)
699
700       * Firmware version: 5.40 0x80002e2f 1.2935.0
701       * Device id (pf/vf): 8086:37d2 / 8086:37cd
702       * Driver version: 2.17.4 (i40e)
703
704     * Intel\ |reg| Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
705
706       * PF Firmware version: 8.30 0x8000a483 1.2926.0
707       * VF Firmware version: 8.50 0x8000b703 1.3082.0
708       * Device id (pf/vf): 8086:158b / 8086:154c
709       * Driver version: 2.17.4 (i40e)
710
711     * Intel\ |reg| Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
712
713       * PF Firmware version: 8.30 0x8000a4ae 1.2926.0
714       * VF Firmware version: 8.50 0x8000b6c7 1.3082.0
715       * Device id (pf/vf): 8086:1583 / 8086:154c
716       * Driver version: 2.17.4 (i40e)
717
718     * Intel\ |reg| Ethernet Converged Network Adapter X710-T2L
719
720       * Firmware version: 8.30 0x8000a489 1.2879.0
721       * Device id (pf): 8086:15ff
722       * Driver version: 2.17.4 (i40e)
723
724 * Intel\ |reg| platforms with Mellanox\ |reg| NICs combinations
725
726   * CPU:
727
728     * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz
729     * Intel\ |reg| Xeon\ |reg| CPU E5-2697A v4 @ 2.60GHz
730     * Intel\ |reg| Xeon\ |reg| CPU E5-2697 v3 @ 2.60GHz
731     * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz
732     * Intel\ |reg| Xeon\ |reg| CPU E5-2670 0 @ 2.60GHz
733     * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v4 @ 2.20GHz
734     * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v3 @ 2.30GHz
735     * Intel\ |reg| Xeon\ |reg| CPU E5-2640 @ 2.50GHz
736     * Intel\ |reg| Xeon\ |reg| CPU E5-2650 0 @ 2.00GHz
737     * Intel\ |reg| Xeon\ |reg| CPU E5-2620 v4 @ 2.10GHz
738
739   * OS:
740
741     * Red Hat Enterprise Linux release 8.2 (Ootpa)
742     * Red Hat Enterprise Linux Server release 7.8 (Maipo)
743     * Red Hat Enterprise Linux Server release 7.6 (Maipo)
744     * Red Hat Enterprise Linux Server release 7.5 (Maipo)
745     * Red Hat Enterprise Linux Server release 7.4 (Maipo)
746     * Red Hat Enterprise Linux Server release 7.3 (Maipo)
747     * Red Hat Enterprise Linux Server release 7.2 (Maipo)
748     * Ubuntu 20.04
749     * Ubuntu 18.04
750     * Ubuntu 16.04
751     * SUSE Enterprise Linux 15 SP2
752     * SUSE Enterprise Linux 12 SP4
753
754   * OFED:
755
756     * MLNX_OFED 5.5-0.5.9.0 and above
757     * MLNX_OFED 5.4-3.1.0.0
758
759   * upstream kernel:
760
761     * Linux 5.16.0-rc2 and above
762
763   * rdma-core:
764
765     * rdma-core-37.1 and above
766
767   * NICs:
768
769     * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCC_Ax (2x40G)
770
771       * Host interface: PCI Express 3.0 x8
772       * Device ID: 15b3:1007
773       * Firmware version: 2.42.5000
774
775     * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCCT (2x40G)
776
777       * Host interface: PCI Express 3.0 x8
778       * Device ID: 15b3:1007
779       * Firmware version: 2.42.5000
780
781     * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 25G MCX4121A-ACAT (2x25G)
782
783       * Host interface: PCI Express 3.0 x8
784       * Device ID: 15b3:1015
785       * Firmware version: 14.32.0570 and above
786
787     * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 50G MCX4131A-GCAT (1x50G)
788
789       * Host interface: PCI Express 3.0 x8
790       * Device ID: 15b3:1015
791       * Firmware version: 14.32.0570 and above
792
793     * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX516A-CCAT (2x100G)
794
795       * Host interface: PCI Express 3.0 x16
796       * Device ID: 15b3:1017
797       * Firmware version: 16.32.0570 and above
798
799     * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-ECAT (2x100G)
800
801       * Host interface: PCI Express 3.0 x16
802       * Device ID: 15b3:1017
803       * Firmware version: 16.32.0570 and above
804
805     * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-EDAT (2x100G)
806
807       * Host interface: PCI Express 3.0 x16
808       * Device ID: 15b3:1017
809       * Firmware version: 16.32.0570 and above
810
811     * Mellanox\ |reg| ConnectX\ |reg|-5 Ex EN 100G MCX516A-CDAT (2x100G)
812
813       * Host interface: PCI Express 4.0 x16
814       * Device ID: 15b3:1019
815       * Firmware version: 16.32.0570 and above
816
817     * Mellanox\ |reg| ConnectX\ |reg|-6 Dx EN 100G MCX623106AN-CDAT (2x100G)
818
819       * Host interface: PCI Express 4.0 x16
820       * Device ID: 15b3:101d
821       * Firmware version: 22.32.0570 and above
822
823     * Mellanox\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G)
824
825       * Host interface: PCI Express 4.0 x8
826       * Device ID: 15b3:101f
827       * Firmware version: 26.32.0570 and above
828
829 * Mellanox\ |reg| BlueField\ |reg| SmartNIC
830
831   * Mellanox\ |reg| BlueField\ |reg| 2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G)
832
833     * Host interface: PCI Express 3.0 x16
834     * Device ID: 15b3:a2d6
835     * Firmware version: 24.32.0570 and above
836
837   * Embedded software:
838
839     * Ubuntu 20.04.3
840     * MLNX_OFED 5.5-0.5.8 and above
841     * DPDK application running on Arm cores
842
843 * IBM Power 9 platforms with Mellanox\ |reg| NICs combinations
844
845   * CPU:
846
847     * POWER9 2.2 (pvr 004e 1202) 2300MHz
848
849   * OS:
850
851     * Red Hat Enterprise Linux Server release 7.6
852
853   * NICs:
854
855     * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-ECAT (2x100G)
856
857       * Host interface: PCI Express 4.0 x16
858       * Device ID: 15b3:1017
859       * Firmware version: 16.32.0560
860
861     * Mellanox\ |reg| ConnectX\ |reg|-6 Dx 100G MCX623106AN-CDAT (2x100G)
862
863       * Host interface: PCI Express 4.0 x16
864       * Device ID: 15b3:101d
865       * Firmware version: 22.32.0560
866
867   * OFED:
868
869     * MLNX_OFED 5.5-0.5.9.0
870
871 * NXP ARM SoCs (with integrated NICs)
872
873   * SoC:
874
875     * NXP i.MX 8M Mini with ARM Cortex A53, Cortex M4
876
877   * OS (Based on NXP LF support packages):
878
879     * Kernel version: 5.10
880     * Ubuntu 18.04