doc: add tested Intel platforms with Intel NICs
[dpdk.git] / doc / guides / rel_notes / release_19_11.rst
index f429ea4..7e65772 100644 (file)
@@ -56,45 +56,78 @@ New Features
      Also, make sure to start the actual text at the margin.
      =========================================================
 
-* **FreeBSD now supports `--base-virtaddr` EAL option.**
+* **Added support for --base-virtaddr EAL option to FreeBSD.**
 
-  FreeBSD version now also supports setting base virtual address for mapping
-  pages and resources into its address space.
+  The FreeBSD version of DPDK now also supports setting base virtual address
+  for mapping pages and resources into its address space.
 
 * **Added Lock-free Stack for aarch64.**
 
-  The lock-free stack implementation is enabled for aarch64 platforms.
+  Enabled the lock-free stack implementation for aarch64 platforms.
 
-* **Changed mempool allocation behaviour.**
+* **Extended pktmbuf mempool private structure.**
 
-  Objects are no longer across pages by default.
-  It may consume more memory when using small memory pages.
+  rte_pktmbuf_pool_private structure was extended to include flags field
+  for future compatibility.
+  As per 19.11 release this field is reserved and should be set to 0
+  by the user.
 
-* **Added support of dynamic fields and flags in mbuf.**
++* **Changed mempool allocation behavior.**
+
+  Changed the mempool allocation behaviour so that objects no longer cross
+  pages by default. Note, this may consume more memory when using small memory
+  pages.
+
+* **Added support for dynamic fields and flags in mbuf.**
 
   This new feature adds the ability to dynamically register some room
   for a field or a flag in the mbuf structure. This is typically used
   for specific offload features, where adding a static field or flag
   in the mbuf is not justified.
 
-* **Added hairpin queue.**
+* **Added support for hairpin queues.**
 
-  On supported NICs, we can now setup haipin queue which will offload packets
-  from the wire, backto the wire.
+  On supported NICs, we can now setup hairpin queues which will offload packets
+  from the wire, back to the wire.
 
 * **Added flow tag in rte_flow.**
 
-  SET_TAG action and TAG item have been added to support transient flow tag.
+  The ``SET_TAG`` action and ``TAG`` item have been added to support transient
+  flow tag.
 
-* **Updated the enic driver.**
+* **Extended metadata support in rte_flow.**
 
-  * Added support for Geneve with options offload.
-  * Added flow API implementation based on VIC Flow Manager API.
+  Flow metadata has been extended to both Rx and Tx.
+
+  * Tx metadata can also be set by SET_META action of rte_flow.
+  * Rx metadata is delivered to the host via a dynamic field of ``rte_mbuf``
+    with ``PKT_RX_DYNF_METADATA``.
+
+* **Added ethdev API to set supported packet types.**
+
+  * Added new API ``rte_eth_dev_set_ptypes`` which allows an application to
+    inform a PMD about a reduced range of packet types to handle.
+  * This scheme will allow PMDs to avoid lookup of internal ptype table on Rx
+    and thereby improve Rx performance if the application wishes to do so.
+
+* **Added Rx offload flag to enable or disable RSS update.**
+
+  * Added new Rx offload flag ``DEV_RX_OFFLOAD_RSS_HASH`` which can be used to
+    enable/disable PMDs write to ``rte_mbuf::hash::rss``.
+  * PMDs notify the validity of ``rte_mbuf::hash:rss`` to the application
+    by enabling ``PKT_RX_RSS_HASH`` flag in ``rte_mbuf::ol_flags``.
+
+* **Added Rx/Tx packet burst mode "get" API.**
+
+  Added two new functions ``rte_eth_rx_burst_mode_get`` and
+  ``rte_eth_tx_burst_mode_get`` that allow an application
+  to retrieve the mode information about Rx/Tx packet burst
+  such as Scalar or Vector, and Vector technology like AVX2.
 
 * **Added Hisilicon hns3 PMD.**
 
   Added the new ``hns3`` net driver for the inbuilt Hisilicon Network
-  Subsystem 3(HNS3) network engine found in the Hisilicon Kunpeng 920 SoC.
+  Subsystem 3 (HNS3) network engine found in the Hisilicon Kunpeng 920 SoC.
   See the :doc:`../nics/hns3` guide for more details on this new driver.
 
 * **Added NXP PFE PMD.**
@@ -102,6 +135,21 @@ New Features
   Added the new PFE driver for the NXP LS1012A platform. See the
   :doc:`../nics/pfe` NIC driver guide for more details on this new driver.
 
+* **Updated Broadcom bnxt driver.**
+
+  Updated Broadcom bnxt driver with new features and improvements, including:
+
+  * Added support for hot firmware upgrade.
+  * Added support for error recovery.
+  * Added support for querying and using COS classification in hardware.
+  * Added LRO support Thor devices.
+  * Update HWRM API to version 1.10.1.6
+
+* **Updated the enic driver.**
+
+  * Added support for Geneve with options offload.
+  * Added flow API implementation based on VIC Flow Manager API.
+
 * **Updated iavf PMD.**
 
   Enable AVX2 data path for iavf PMD.
@@ -122,13 +170,6 @@ New Features
 
   Added support for the ``RTE_ETH_DEV_CLOSE_REMOVE`` flag.
 
-* **Added RX/TX packet burst mode get API.**
-
-  Added two new functions ``rte_eth_rx_burst_mode_get`` and
-  ``rte_eth_tx_burst_mode_get`` that allow an application
-  to retrieve the mode information about RX/TX packet burst
-  such as Scalar or Vector, and Vector technology like AVX2.
-
 * **Updated the Intel ice driver.**
 
   Updated the Intel ice driver with new features and improvements, including:
@@ -143,11 +184,7 @@ New Features
     - Supported new packet type like PPPoE for switch filter.
   * Supported input set change and symmetric hash by rte_flow RSS action.
   * Added support for GTP Tx checksum offload.
-
-* **Added cryptodev asymmetric session-less operation.**
-
-  Added session-less option to cryptodev asymmetric structure. It works the same
-  way as symmetric crypto, corresponding xform is used directly by the crypto op.
+  * Added new device IDs to support E810_XXV devices.
 
 * **Updated the Huawei hinic driver.**
 
@@ -156,7 +193,7 @@ New Features
   * Enabled SR-IOV - Partially supported at this point, VFIO only.
   * Supported VLAN filter and VLAN offload.
   * Supported Unicast MAC filter and Multicast MAC filter.
-  * Supported Flow director for LACP, VRRP, BGP and so on.
+  * Supported Flow API for LACP, VRRP, BGP and so on.
   * Supported FW version get.
 
 * **Updated Mellanox mlx5 driver.**
@@ -169,35 +206,56 @@ New Features
   * Added support for VLAN set VID offload command.
   * Added support for matching on packets withe Geneve tunnel header.
   * Added hairpin support.
+  * Added ConnectX6-DX support.
+  * Flow engine selected based on RDMA Core library version.
+    DV flow engine selected if version is rdma-core-24.0 or higher.
+    Verbs flow engine selected otherwise.
 
 * **Updated the AF_XDP PMD.**
 
   Updated the AF_XDP PMD. The new features include:
 
   * Enabled zero copy between application mempools and UMEM by enabling the
-    XDP_UMEM_UNALIGNED_CHUNKS UMEM flag.
+    ``XDP_UMEM_UNALIGNED_CHUNKS UMEM`` flag.
+
+* **Added cryptodev asymmetric session-less operation.**
+
+  Added a session-less option to the cryptodev asymmetric structure. It works
+  the same way as symmetric crypto, and the corresponding transform is used
+  directly by the crypto operation.
 
 * **Added Marvell NITROX symmetric crypto PMD.**
 
   Added a symmetric crypto PMD for Marvell NITROX V security processor.
-  See the :doc:`../cryptodevs/nitrox` guide for more details on this new
+  See the :doc:`../cryptodevs/nitrox` guide for more details on this new PMD.
 
 * **Added asymmetric support to Marvell OCTEON TX crypto PMD.**
 
-  Added support for asymmetric operations in Marvell OCTEON TX cypto PMD.
+  Added support for asymmetric operations to Marvell OCTEON TX crypto PMD.
   Supports RSA and modexp operations.
 
-* **Added Marvell OCTEON TX2 crypto PMD**
+* **Added Marvell OCTEON TX2 crypto PMD.**
 
-  Added a new PMD driver for h/w crypto offload block on ``OCTEON TX2`` SoC.
+  Added a new PMD driver for hardware crypto offload block on ``OCTEON TX2``
+  SoC.
 
   See :doc:`../cryptodevs/octeontx2` for more details
 
 * **Updated NXP crypto PMDs for PDCP support.**
 
-  PDCP support is added to DPAA_SEC and DPAA2_SEC PMDs using rte_security APIs.
-  Support is added for all sequence number sizes for control and user plane.
-  Test application is updated for unit testing.
+  Added PDCP support to the DPAA_SEC and DPAA2_SEC PMDs using rte_security
+  APIs.  Support has been added for all sequence number sizes for control and
+  user plane.  Test and test-crypto-perf applications have been updated for
+  unit testing.
+
+* **Updated the AESNI-MB PMD.**
+
+  * Added support for intel-ipsec-mb version 0.53.
+
+* **Updated the AESNI-GCM PMD.**
+
+  * Added support for intel-ipsec-mb version 0.53.
+  * Added support for in-place chained mbufs with AES-GCM algorithm.
 
 * **Enabled Single Pass GCM acceleration on QAT GEN3.**
 
@@ -209,7 +267,8 @@ New Features
 * **Updated the Intel QuickAssist Technology (QAT) asymmetric crypto PMD.**
 
   * Added support for asymmetric session-less operations.
-  * Added support for RSA algorithm with pair (n, d) private key representation.
+  * Added support for RSA algorithm with pair ``(n, d)`` private key
+    representation.
   * Added support for RSA algorithm with quintuple private key representation.
 
 * **Updated the Intel QuickAssist Technology (QAT) compression PMD.**
@@ -219,19 +278,19 @@ New Features
 
 * **Added external buffers support for dpdk-test-compress-perf tool.**
 
-  Added a command line option to dpdk-test-compress-perf tool to allocate
-  and use memory zones as external buffers instead of keeping the data directly
-  in mbuf areas.
+  Added a command line option to the ``dpdk-test-compress-perf`` tool to
+  allocate and use memory zones as external buffers instead of keeping the
+  data directly in mbuf areas.
 
 * **Updated the IPSec library.**
 
-  * Added SA Database API to ``librte_ipsec``. A new test-sad application is also
-    introduced to evaluate and perform custom functional and performance tests
-    for IPsec SAD implementation.
+  * Added Security Associations (SA) Database API to ``librte_ipsec``. A new
+    test-sad application has also been introduced to evaluate and perform
+    custom functional and performance tests for an IPsec SAD implementation.
 
   * Support fragmented packets in inline crypto processing mode with fallback
-    ``lookaside-none`` session. Corresponding changes are also added in IPsec
-    Security Gateway application.
+    ``lookaside-none`` session. Corresponding changes are also added in the
+    IPsec Security Gateway application.
 
 * **Introduced FIFO for NTB PMD.**
 
@@ -245,19 +304,21 @@ New Features
 
 * **Added RIB and FIB (Routing/Forwarding Information Base) libraries.**
 
-  RIB and FIB can replace the LPM (Longest Prefix Match) library
-  with better control plane (RIB) performance.
-  The data plane (FIB) can be extended with new algorithms.
+  Added Routing and Forwarding Information Base (RIB/FIB) libraries. RIB and
+  FIB can replace the LPM (Longest Prefix Match) library with better control
+  plane (RIB) performance. The data plane (FIB) can be extended with new
+  algorithms.
 
-* **Updated testpmd.**
+* **Updated testpmd with a command for ptypes.**
 
   * Added a console command to testpmd app, ``show port (port_id) ptypes`` which
     gives ability to print port supported ptypes in different protocol layers.
+  * Packet type detection disabled by default for the supported PMDs.
 
-* **Added new example l2fwd-event application.**
+* **Added new l2fwd-event sample application.**
 
-  Added an example application `l2fwd-event` that adds event device support to
-  traditional l2fwd example. It demonstrates usage of poll and event mode IO
+  Added an example application ``l2fwd-event`` that adds event device support to
+  the traditional l2fwd example. It demonstrates usage of poll and event mode IO
   mechanism under a single application.
 
 * **Added build support for Link Time Optimization.**
@@ -265,10 +326,22 @@ New Features
   LTO is an optimization technique used by the compiler to perform whole
   program analysis and optimization at link time.  In order to do that
   compilers store their internal representation of the source code that
-  the linker uses at the final stage of compilation process.
+  the linker uses at the final stage of the compilation process.
 
   See :doc:`../prog_guide/lto` for more information:
 
+* **Added IOVA as VA support for KNI.**
+
+  * Added IOVA = VA support for KNI. KNI can operate in IOVA = VA mode when
+    ``iova-mode=va`` EAL option is passed to the application or when bus IOVA
+    scheme is selected as RTE_IOVA_VA. This mode only works on Linux Kernel
+    versions >= 4.9.0.
+
+  * Due to IOVA to KVA address translations, based on the KNI use case there
+    can be a performance impact. For mitigation, forcing IOVA to PA via EAL
+    ``--iova-mode=pa`` option can be used, IOVA_DC bus iommu scheme can also
+    result in IOVA as PA.
+
 
 Removed Items
 -------------
@@ -282,13 +355,18 @@ Removed Items
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* Removed library-level ABI versions. These have been replaced with a single
+  project-level ABI version for non-experimental libraries and an ABI version of
+  ``0`` for experimental libraries. Review the :doc:`../contributing/abi_policy`
+  and :doc:`../contributing/abi_versioning` guides for more information.
+
 * Removed duplicated set of commands for Rx offload configuration from testpmd::
 
     port config all crc-strip|scatter|rx-cksum|rx-timestamp|
                     hw-vlan|hw-vlan-filter|hw-vlan-strip|hw-vlan-extend on|off
 
-  The testpmd commands set that can be used instead
-  in order to enable or disable Rx offloading on all Rx queues of a port is::
+  The testpmd command set that can be used instead in order to enable or
+  disable Rx offloading on all Rx queues of a port is::
 
     port config <port_id> rx_offload crc_strip|scatter|
                                      ipv4_cksum|udp_cksum|tcp_cksum|timestamp|
@@ -384,10 +462,21 @@ API Changes
   If the intent is to iterate over ports, ``RTE_ETH_FOREACH_*`` macros
   are better port iterators.
 
+* ethdev: ``RTE_FLOW_ITEM_TYPE_META`` data endianness altered to host one.
+  Due to the new dynamic metadata field in mbuf is host-endian either, there
+  is a minor compatibility issue for applications in case of 32-bit values
+  supported.
+
+* ethdev: the tx_metadata mbuf field is moved to dynamic one.
+  ``PKT_TX_METADATA`` flag is replaced with ``PKT_TX_DYNF_METADATA``.
+  ``DEV_TX_OFFLOAD_MATCH_METADATA`` offload flag is removed, now metadata
+  support in PMD is engaged on dynamic field registration.
+
 * event: The function ``rte_event_eth_tx_adapter_enqueue`` takes an additional
   input as ``flags``. Flag ``RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_SAME_DEST`` which
   has been introduced in this release is used when used when all the packets
-  enqueued in the tx adapter are destined for the same Ethernet port & Tx queue.
+  enqueued in the Tx adapter are destined for the same Ethernet port ans Tx
+  queue.
 
 * sched: The pipe nodes configuration parameters such as number of pipes,
   pipe queue sizes, pipe profiles, etc., are moved from port level structure
@@ -410,20 +499,34 @@ ABI Changes
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* policy: Please note the revisions to the :doc:`../contributing/abi_policy`
+  introducing major ABI versions, with DPDK 19.11 becoming the first major
+  version ``v20``. ABI changes to add new features continue to be permitted in
+  subsequent releases, with the condition that ABI compatibility with the major
+  ABI version is maintained.
+
 * net: The Ethernet address and other header definitions have changed
   attributes. They have been modified to be aligned on 2-byte boundaries.
   These changes should not impact normal usage because drivers naturally
   align the Ethernet header on receive and all known encapsulations
   preserve the alignment of the header.
 
-* security: The field ``replay_win_sz`` has been moved from ipsec library
+* security: The field ``replay_win_sz`` has been moved from the ipsec library
   based ``rte_ipsec_sa_prm`` structure to security library based structure
-  ``rte_security_ipsec_xform``, which specify the Anti replay window size
+  ``rte_security_ipsec_xform``, which specify the anti-replay window size
   to enable sequence replay attack handling.
 
 * ipsec: The field ``replay_win_sz`` has been removed from the structure
   ``rte_ipsec_sa_prm`` as it has been added to the security library.
 
+* ethdev: Added 32-bit fields for maximum LRO aggregated packet size, in
+  struct ``rte_eth_dev_info`` for the port capability and in struct
+  ``rte_eth_rxmode`` for the port configuration.
+  Application should use the new field in struct ``rte_eth_rxmode`` to configure
+  the requested size.
+  PMD should use the new field in struct ``rte_eth_dev_info`` to report the
+  supported port capability.
+
 
 Shared Library Versions
 -----------------------
@@ -539,3 +642,102 @@ Tested Platforms
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* Intel\ |reg| platforms with Intel\ |reg| NICs combinations
+
+  * CPU
+
+    * Intel\ |reg| Atom\ |trade| CPU C3758 @ 2.20GHz
+    * Intel\ |reg| Atom\ |trade| CPU C3858 @ 2.00GHz
+    * Intel\ |reg| Atom\ |trade| CPU C3958 @ 2.00GHz
+    * Intel\ |reg| Xeon\ |reg| CPU D-1541 @ 2.10GHz
+    * Intel\ |reg| Xeon\ |reg| CPU D-1553N @ 2.30GHz
+    * Intel\ |reg| Xeon\ |reg| CPU E5-2680 0 @ 2.70GHz
+    * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz
+    * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v3 @ 2.30GHz
+    * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @ 2.20GHz
+    * Intel\ |reg| Xeon\ |reg| Gold 6139 CPU @ 2.30GHz
+    * Intel\ |reg| Xeon\ |reg| Gold 6252N CPU @ 2.30GHz
+    * Intel\ |reg| Xeon\ |reg| Platinum 8180 CPU @ 2.50GHz
+    * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz
+
+  * OS:
+
+    * CentOS 7.6
+    * Fedora 30
+    * FreeBSD 12.0
+    * Red Hat Enterprise Linux Server release 8.0
+    * Red Hat Enterprise Linux Server release 7.6
+    * Suse12SP3
+    * Ubuntu 14.04
+    * Ubuntu 16.04
+    * Ubuntu 16.10
+    * Ubuntu 18.04
+    * Ubuntu 19.04
+
+  * NICs:
+
+    * Intel\ |reg| Corporation Ethernet Controller E810-C for SFP (2x25G)
+
+      * Firmware version: 1.02 0x80002084 1.2538.0/1.02 0x80002082 1.2538.0
+      * Device id (pf): 8086:1593
+      * Driver version: 0.12.25 (ice)
+
+    * Intel\ |reg| Corporation Ethernet Controller E810-C for SFP (2x100G)
+
+      * Firmware version: 1.02 0x80002081 1.2538.0
+      * Device id (pf): 8086:1592
+      * Driver version: 0.12.25 (ice)
+
+    * Intel\ |reg| 82599ES 10 Gigabit Ethernet Controller
+
+      * Firmware version: 0x61bf0001
+      * Device id (pf/vf): 8086:10fb / 8086:10ed
+      * Driver version: 5.6.1 (ixgbe)
+
+    * Intel\ |reg| Corporation Ethernet Connection X552/X557-AT 10GBASE-T
+
+      * Firmware version: 0x800003e7
+      * Device id (pf/vf): 8086:15ad / 8086:15a8
+      * Driver version: 5.1.0 (ixgbe)
+
+    * Intel\ |reg| Corporation Ethernet Controller 10G X550T
+
+      * Firmware version: 0x80000482
+      * Device id (pf): 8086:1563
+      * Driver version: 5.6.1 (ixgbe)
+
+    * Intel\ |reg| Ethernet Converged Network Adapter X710-DA4 (4x10G)
+
+      * Firmware version: 7.00 0x80004cdb
+      * Device id (pf/vf): 8086:1572 / 8086:154c
+      * Driver version: 2.9.21 (i40e)
+
+    * Intel\ |reg| Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G)
+
+      * Firmware version: 4.10 0x80001a3c
+      * Device id (pf/vf): 8086:37d0 / 8086:37cd
+      * Driver version: 2.9.21 (i40e)
+
+    * Intel\ |reg| Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
+
+      * Firmware version: 7.00 0x80004cf8
+      * Device id (pf/vf): 8086:158b / 8086:154c
+      * Driver version: 2.9.21 (i40e)
+
+    * Intel\ |reg| Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
+
+      * Firmware version: 7.00 0x80004c97
+      * Device id (pf/vf): 8086:1583 / 8086:154c
+      * Driver version: 2.9.21 (i40e)
+
+    * Intel\ |reg| Corporation I350 Gigabit Network Connection
+
+      * Firmware version: 1.63, 0x80000cbc
+      * Device id (pf/vf): 8086:1521 / 8086:1520
+      * Driver version: 5.4.0-k (igb)
+
+    * Intel\ |reg| Corporation I210 Gigabit Network Connection
+
+      * Firmware version: 3.25, 0x800006eb
+      * Device id (pf): 8086:1533
+      * Driver version: 5.4.0-k(igb)