doc: add ABI policy changes to release notes
[dpdk.git] / doc / guides / rel_notes / release_19_11.rst
index ccbdca1..8ef16cb 100644 (file)
@@ -65,6 +65,13 @@ New Features
 
   The lock-free stack implementation is enabled for aarch64 platforms.
 
 
   The lock-free stack implementation is enabled for aarch64 platforms.
 
+* **Extended pktmbuf mempool private structure.**
+
+  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.
+
 * **Changed mempool allocation behaviour.**
 
   Objects are no longer across pages by default.
 * **Changed mempool allocation behaviour.**
 
   Objects are no longer across pages by default.
@@ -82,6 +89,32 @@ New Features
   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 haipin queue which will offload packets
   from the wire, backto the wire.
 
+* **Added flow tag in rte_flow.**
+
+  SET_TAG action and TAG item have been added to support transient flow tag.
+
+* **Extended metadata support in rte_flow.**
+
+  Flow metadata is extended to both Rx and Tx.
+
+  * Tx metadata can also be set by SET_META action of rte_flow.
+  * Rx metadata is delivered to 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`` that allows an application to
+    inform PMD about reduced range of packet types to handle.
+  * This scheme will allow PMDs to avoid lookup to internal ptype table on Rx
+    and thereby improve Rx performance if application wishes 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`.
+
 * **Updated the enic driver.**
 
   * Added support for Geneve with options offload.
 * **Updated the enic driver.**
 
   * Added support for Geneve with options offload.
@@ -98,6 +131,16 @@ 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.
 
   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 iavf PMD.**
 
   Enable AVX2 data path for iavf PMD.
 * **Updated iavf PMD.**
 
   Enable AVX2 data path for iavf PMD.
@@ -124,8 +167,6 @@ New Features
   ``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.
   ``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.
-  Another new function ``rte_eth_burst_mode_option_name`` is
-  provided for burst mode options stringification.
 
 * **Updated the Intel ice driver.**
 
 
 * **Updated the Intel ice driver.**
 
@@ -141,6 +182,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.
     - 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 new device IDs to support E810_XXV devices.
 
 * **Added cryptodev asymmetric session-less operation.**
 
 
 * **Added cryptodev asymmetric session-less operation.**
 
@@ -154,7 +196,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.
   * 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.**
   * Supported FW version get.
 
 * **Updated Mellanox mlx5 driver.**
@@ -166,6 +208,11 @@ New Features
   * Added support for VLAN set PCP offload command.
   * Added support for VLAN set VID offload command.
   * Added support for matching on packets withe Geneve tunnel header.
   * Added support for VLAN set PCP offload command.
   * 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.**
 
@@ -194,7 +241,16 @@ New Features
 
   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.
 
   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.
+  Test and test-crypto-perf applications are 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.
+  * Supported in-place chained mbufs on AES-GCM algorithm.
 
 * **Enabled Single Pass GCM acceleration on QAT GEN3.**
 
 
 * **Enabled Single Pass GCM acceleration on QAT GEN3.**
 
@@ -250,6 +306,7 @@ New Features
 
   * Added a console command to testpmd app, ``show port (port_id) ptypes`` which
     gives ability to print port supported ptypes in different protocol layers.
 
   * 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 example l2fwd-event application.**
 
@@ -266,6 +323,18 @@ New Features
 
   See :doc:`../prog_guide/lto` for more information:
 
 
   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 above 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
 -------------
 
 Removed Items
 -------------
@@ -279,6 +348,11 @@ Removed Items
    Also, make sure to start the actual text at the margin.
    =========================================================
 
    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|
 * Removed duplicated set of commands for Rx offload configuration from testpmd::
 
     port config all crc-strip|scatter|rx-cksum|rx-timestamp|
@@ -376,6 +450,21 @@ API Changes
 * ethdev: changed ``rte_eth_dev_owner_delete`` return value from ``void`` to
   ``int`` to provide a way to report various error conditions.
 
 * ethdev: changed ``rte_eth_dev_owner_delete`` return value from ``void`` to
   ``int`` to provide a way to report various error conditions.
 
+* ethdev: The deprecated function ``rte_eth_dev_count`` was removed.
+  The function ``rte_eth_dev_count_avail`` is a drop-in replacement.
+  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 the minor compatibility issue for applications in case of 32-bit values
+  supported.
+
+* ethdev: the tx_metadata mbuf field is moved to dymanic 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
 * 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
@@ -402,6 +491,12 @@ ABI Changes
    Also, make sure to start the actual text at the margin.
    =========================================================
 
    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
 * 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
@@ -416,6 +511,14 @@ ABI Changes
 * 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.
 
 * 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
 -----------------------
 
 Shared Library Versions
 -----------------------