doc: add ABI policy changes to release notes
[dpdk.git] / doc / guides / rel_notes / release_19_11.rst
index a009bc0..8ef16cb 100644 (file)
@@ -65,6 +65,18 @@ New Features
 
   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.
+  It may consume more memory when using small memory pages.
+
 * **Added support of dynamic fields and flags in mbuf.**
 
   This new feature adds the ability to dynamically register some room
@@ -72,6 +84,37 @@ New Features
   for specific offload features, where adding a static field or flag
   in the mbuf is not justified.
 
+* **Added hairpin queue.**
+
+  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.
@@ -88,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.
 
+* **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.
@@ -114,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.
-  Another new function ``rte_eth_burst_mode_option_name`` is
-  provided for burst mode options stringification.
 
 * **Updated the Intel ice driver.**
 
@@ -131,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.
+  * Added new device IDs to support E810_XXV devices.
 
 * **Added cryptodev asymmetric session-less operation.**
 
@@ -144,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.
-  * 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.**
@@ -156,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 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.**
 
@@ -184,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.
-  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.**
 
@@ -212,9 +278,13 @@ New Features
 
 * **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 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.
+
+  * Support fragmented packets in inline crypto processing mode with fallback
+    ``lookaside-none`` session. Corresponding changes are also added in IPsec
+    Security Gateway application.
 
 * **Introduced FIFO for NTB PMD.**
 
@@ -236,6 +306,34 @@ 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.
+  * Packet type detection disabled by default for the supported PMDs.
+
+* **Added new example l2fwd-event 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
+  mechanism under a single application.
+
+* **Added build support for Link Time Optimization.**
+
+  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.
+
+  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
@@ -250,6 +348,11 @@ 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|
@@ -273,6 +376,9 @@ Removed Items
   * Quota and Watermark
   * vhost-scsi
 
+* Removed arm64-dpaa2-* build config. arm64-dpaa-* can now build for both
+  dpaa and dpaa2 platforms.
+
 
 API Changes
 -----------
@@ -303,6 +409,11 @@ API Changes
 * mem: hid the internal ``malloc_heap`` structure and the
   ``rte_malloc_heap.h`` header.
 
+* vfio: removed ``rte_vfio_dma_map`` and ``rte_vfio_dma_unmap`` that have
+  been marked as deprecated in release 19.05.
+  ``rte_vfio_container_dma_map`` and ``rte_vfio_container_dma_unmap`` can
+  be used as substitutes.
+
 * pci: removed the following functions deprecated since dpdk v17.11:
 
   - ``eal_parse_pci_BDF`` replaced by ``rte_pci_addr_parse``
@@ -339,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: 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
@@ -365,12 +491,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
+  based ``rte_ipsec_sa_prm`` structure to security library based structure
+  ``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
 -----------------------
@@ -414,7 +562,7 @@ The libraries prepended with a plus sign were incremented in this version.
      librte_gso.so.1
      librte_hash.so.2
      librte_ip_frag.so.1
-     librte_ipsec.so.1
+   + librte_ipsec.so.2
      librte_jobstats.so.1
      librte_kni.so.2
      librte_kvargs.so.1
@@ -445,7 +593,7 @@ The libraries prepended with a plus sign were incremented in this version.
      librte_reorder.so.1
      librte_ring.so.2
    + librte_sched.so.4
-     librte_security.so.2
+   + librte_security.so.3
      librte_stack.so.1
      librte_table.so.3
      librte_timer.so.1