net/sfc: rely on native thread safety in flow mechanism
[dpdk.git] / doc / guides / rel_notes / release_20_11.rst
index dca8d41..4e8d13f 100644 (file)
@@ -84,6 +84,15 @@ New Features
   ``rte_vect_set_max_simd_bitwidth`` function, or by the user with EAL flag
   ``--force-max-simd-bitwidth``.
 
+* **Added zero copy APIs for rte_ring.**
+
+  For rings with producer/consumer in ``RTE_RING_SYNC_ST``, ``RTE_RING_SYNC_MT_HTS``
+  modes, these APIs split enqueue/dequeue operation into three phases
+  (enqueue/dequeue start, copy data to/from ring, enqueue/dequeue finish).
+  Along with the advantages of the peek APIs, these provide the ability to
+  copy the data to the ring memory directly without the need for temporary
+  storage.
+
 * **Updated CRC modules of the net library.**
 
   * Added runtime selection of the optimal architecture-specific CRC path.
@@ -139,6 +148,12 @@ New Features
   Hairpin Tx part flow rules can be inserted explicitly.
   New API is added to get the hairpin peer ports list.
 
+* **Updated the Amazon ena driver.**
+
+  Updated the ena PMD with new features and improvements, including:
+
+  * Added network interface metrics which can be read using xstats.
+
 * **Updated Broadcom bnxt driver.**
 
   Updated the Broadcom bnxt driver with new features and improvements, including:
@@ -147,6 +162,9 @@ New Features
   * Added support for RSS hash level selection.
   * Updated HWRM structures to 1.10.1.70 version.
   * Added TRUFLOW support for Stingray devices.
+  * Added support for representors on MAIA cores of SR.
+  * Added support for VXLAN decap offload using rte_flow.
+  * Added support to indicate native rte_flow API thread safety.
 
 * **Updated Cisco enic driver.**
 
@@ -160,12 +178,55 @@ New Features
   Added the FEC PMD which provides functions for query FEC capabilities and
   current FEC mode from device. Also, PMD for configuring FEC mode is also provided.
 
+* **Updated Intel iavf driver.**
+
+  Updated iavf PMD with new features and improvements, including:
+
+  * Added support for flexible descriptor metadata extraction.
+  * Added support for outer IP hash of GTPC and GTPU.
+  * Added support of AVX512 instructions in Rx and Tx path.
+  * Added support for up to 256 queue pairs per VF.
+
+* **Updated Intel ice driver.**
+
+  * Used write combining stores.
+  * Added ACL filter support for Intel DCF.
+
+* **Updated Mellanox mlx5 driver.**
+
+  Updated Mellanox mlx5 driver with new features and improvements, including:
+
+  * Added vectorized Multi-Packet Rx Queue burst.
+  * Added support for 2 new miniCQE formats: Flow Tag and L3/L4 header.
+  * Added support for PMD level multiple-thread flow insertion.
+  * Added support for matching on fragmented/non-fragmented IPv4/IPv6 packets.
+  * Added support for QinQ packets matching.
+  * Added support for the new VLAN fields ``has_vlan`` in the Ethernet item
+    and ``has_more_vlan`` in the VLAN item.
+  * Updated the supported timeout for Age action to the maximal value supported
+    by rte_flow API.
+  * Added support of Age action query.
+  * Added support of multi-ports hairpin.
+
+  Updated Mellanox mlx5 vDPA driver:
+
+  * Added support of vDPA VirtQ error handling.
+
 * **Updated Solarflare network PMD.**
 
   Updated the Solarflare ``sfc_efx`` driver with changes including:
 
   * Added SR-IOV PF support
-  * Added Alveo SN1000 SmartNICs (EF100 architecture) support
+  * Added Alveo SN1000 SmartNICs (EF100 architecture) support including
+    flow API transfer rules for switch HW offload
+  * Added ARMv8 support
+  * Claimed flow API native thread safety
+
+* **Added Wangxun txgbe PMD.**
+
+  Added a new PMD driver for Wangxun 10 Gigabit Ethernet NICs.
+
+  See the :doc:`../nics/txgbe` for more details.
 
 * **Updated Virtio driver.**
 
@@ -181,10 +242,6 @@ New Features
 
   Updated the Intel ixgbe driver to use write combining stores.
 
-* **Updated Intel ice driver.**
-
-  Updated the Intel ice driver to use write combining stores.
-
 * **Updated Intel qat driver.**
 
   Updated the Intel qat driver to use write combining stores.
@@ -228,6 +285,7 @@ New Features
 
 * **Updated the aesni_mb crypto PMD.**
 
+  * Added support for intel-ipsec-mb version 0.55.
   * Added support for AES-ECB 128, 192 and 256.
   * Added support for ZUC-EEA3/EIA3 algorithms.
   * Added support for SNOW3G-UEA2/UIA2 algorithms.
@@ -286,6 +344,16 @@ New Features
   Added performance tuning arguments to allow tuning the scheduler for
   better throughtput in high core count use cases.
 
+* **Added a new driver for the Intel Dynamic Load Balancer v1.0 device.**
+
+  Added the new ``dlb`` eventdev driver for the Intel DLB V1.0 device. See the
+  :doc:`../eventdevs/dlb` eventdev guide for more details on this new driver.
+
+* **Added a new driver for the Intel Dynamic Load Balancer v2.0 device.**
+
+  Added the new ``dlb2`` eventdev driver for the Intel DLB V2.0 device. See the
+  :doc:`../eventdevs/dlb2` eventdev guide for more details on this new driver.
+
 * **Updated ioat rawdev driver**
 
   The ioat rawdev driver has been updated and enhanced. Changes include:
@@ -325,6 +393,10 @@ New Features
   * Added new ``RTE_ACL_CLASSIFY_AVX512X32`` vector implementation,
     which can process up to 32 flows in parallel. Requires AVX512 support.
 
+* **Added AVX512 lookup implementation for FIB.**
+
+  Added a AVX512 lookup functions implementation into FIB and FIB6 libraries.
+
 * **Added support to update subport bandwidth dynamically.**
 
    * Added new API ``rte_sched_port_subport_profile_add`` to add new
@@ -345,6 +417,12 @@ New Features
   * Replaced ``--scalar`` command-line option with ``--alg=<value>``, to allow
     the user to select the desired classify method.
 
+* **Updated vhost sample application.**
+
+  Added vhost asynchronous APIs support, which demonstrated how the application
+  leverage IOAT DMA channel with vhost asynchronous APIs.
+  See the :doc:`../sample_app_ug/vhost` for more details.
+
 
 Removed Items
 -------------
@@ -369,6 +447,9 @@ Removed Items
 
 * Removed Python 2 support since it was EOL'd in January 2020.
 
+* Removed TEP termination sample application.
+
+
 API Changes
 -----------
 
@@ -395,6 +476,12 @@ API Changes
   ``RTE_LCORE_FOREACH_SLAVE`` is replaced with
   ``RTE_LCORE_FOREACH_WORKER``.
 
+* eal: The definitions related to including and excluding devices
+  has been changed from blacklist/whitelist to block/allow list.
+  There are compatibility macros and command line mapping to accept
+  the old values but applications and scripts are strongly encouraged
+  to migrate to the new names.
+
 * eal: The ``rte_logs`` struct and global symbol was made private
   and is no longer part of the API.
 
@@ -426,6 +513,16 @@ API Changes
   the structures ``rte_mbuf`` and ``rte_mbuf_ext_shared_info``.
   The field ``refcnt`` is remaining from the old unions.
 
+* mbuf: Removed the unioned fields ``userdata`` and ``udata64``
+  from the structure ``rte_mbuf``. It is replaced with dynamic fields.
+
+* mbuf: Removed the field ``seqn`` from the structure ``rte_mbuf``.
+  It is replaced with dynamic fields.
+
+* mbuf: Removed the field ``timestamp`` from the structure ``rte_mbuf``.
+  It is replaced with the dynamic field RTE_MBUF_DYNFIELD_TIMESTAMP_NAME
+  which was previously used only for Tx.
+
 * pci: Removed the ``rte_kernel_driver`` enum defined in rte_dev.h and
   replaced with a private enum in the PCI subsystem.
 
@@ -463,6 +560,13 @@ API Changes
   As the data of ``uint8_t`` will be truncated when queue number under
   a TC is greater than 256.
 
+* ethdev: Removed the legacy filter API, including
+  ``rte_eth_dev_filter_supported()`` and ``rte_eth_dev_filter_ctrl()``.
+
+* ethdev: Removed the legacy L2 tunnel configuration API, including
+  ``rte_eth_dev_l2_tunnel_eth_type_conf()`` and
+  ``rte_eth_dev_l2_tunnel_offload_set()``..
+
 * vhost: Moved vDPA APIs from experimental to stable.
 
 * vhost: Add a new function ``rte_vhost_crypto_driver_start`` to be called
@@ -533,6 +637,12 @@ API Changes
 
 * bpf: ``RTE_BPF_XTYPE_NUM`` has been dropped from ``rte_bpf_xtype``.
 
+* gso: Changed ``rte_gso_segment`` behaviour and return value:
+
+  * ``pkt`` is not saved to ``pkts_out[0]`` if not GSOed.
+  * Return 0 instead of 1 for the above case.
+  * ``pkt`` is not freed, no matter whether it is GSOed, leaving to the caller.
+
 * acl: ``RTE_ACL_CLASSIFY_NUM`` enum value has been removed.
   This enum value was not used inside DPDK, while it prevented to add new
   classify algorithms without causing an ABI breakage.