ethdev: add represented port action to flow API
[dpdk.git] / doc / guides / rel_notes / release_21_11.rst
index 0dbf924..81e5d9c 100644 (file)
@@ -62,16 +62,47 @@ New Features
   * Added bus-level parsing of the devargs syntax.
   * Kept compatibility with the legacy syntax as parsing fallback.
 
+* **Updated EAL hugetlbfs mount handling for Linux.**
+
+  * Modified to allow ``--huge-dir`` option to specify a sub-directory
+    within a hugetlbfs mountpoint.
+
+* **Added dmadev library.**
+
+  * Added a DMA device framework for management and provision of
+    hardware and software DMA devices.
+  * Added generic API which support a number of different DMA
+    operations.
+  * Added multi-process support.
+
+* **Added support to get all MAC addresses of a device.**
+
+  Added ``rte_eth_macaddrs_get`` to allow user to retrieve all Ethernet
+  addresses assigned to given ethernet port.
+
 * **Added new RSS offload types for IPv4/L4 checksum in RSS flow.**
 
   Added macros ETH_RSS_IPV4_CHKSUM and ETH_RSS_L4_CHKSUM, now IPv4 and
   TCP/UDP/SCTP header checksum field can be used as input set for RSS.
 
+* **Added ethdev support to control delivery of Rx metadata from the HW to the PMD.**
+
+  A new API, ``rte_eth_rx_metadata_negotiate()``, was added.
+  The following parts of Rx metadata were defined:
+
+  * ``RTE_ETH_RX_METADATA_USER_FLAG``
+  * ``RTE_ETH_RX_METADATA_USER_MARK``
+  * ``RTE_ETH_RX_METADATA_TUNNEL_ID``
+
 * **Updated af_packet ethdev driver.**
 
   * Default VLAN strip behavior was changed. VLAN tag won't be stripped
     unless ``DEV_RX_OFFLOAD_VLAN_STRIP`` offload is enabled.
 
+* **Updated AF_XDP PMD.**
+
+  * Disabled secondary process support.
+
 * **Updated Broadcom bnxt PMD.**
 
   * Added flow offload support for Thor.
@@ -101,6 +132,19 @@ New Features
   * Added support for Inline IPsec for CN9K event mode and CN10K
     poll mode and event mode.
 
+* **Updated Mellanox mlx5 driver.**
+
+  Updated the Mellanox mlx5 driver with new features and improvements, including:
+
+  * Added implicit mempool registration to avoid data path hiccups (opt-out).
+  * Added NIC offloads for the PMD on Windows (TSO, VLAN strip, CRC keep).
+
+* **Updated Solarflare network PMD.**
+
+  Updated the Solarflare ``sfc_efx`` driver with changes including:
+
+  * Added port representors support on SN1000 SmartNICs
+
 * **Updated Marvell cnxk crypto PMD.**
 
   * Added AES-CBC SHA1-HMAC support in lookaside protocol (IPsec) for CN10K.
@@ -109,6 +153,7 @@ New Features
   * Added support for lookaside protocol (IPsec) offload for CN9K.
   * Added support for ZUC algorithm with 256-bit key length for CN10K.
   * Added support for CN98xx dual block.
+  * Added inner checksum support in lookaside protocol (IPsec) for CN10K.
 
 * **Added support for event crypto adapter on Marvell CN10K and CN9K.**
 
@@ -118,10 +163,12 @@ New Features
 
   * Added DES-CBC, AES-XCBC-MAC, AES-CMAC and non-HMAC algo support.
   * Added PDCP short MAC-I support.
+  * Added raw vector datapath API support.
 
 * **Updated NXP dpaa2_sec crypto PMD.**
 
   * Added PDCP short MAC-I support.
+  * Added raw vector datapath API support.
 
 * **Updated the ACC100 bbdev PMD.**
 
@@ -131,6 +178,19 @@ New Features
 
   Added support for more comprehensive CRC options.
 
+* **Added NXP LA12xx baseband PMD.**
+
+  * Added a new baseband PMD driver for NXP LA12xx Software defined radio.
+  * See the :doc:`../bbdevs/la12xx` for more details.
+
+* **Updated IPsec library.**
+
+  * Added support for more AEAD algorithms AES_CCM, CHACHA20_POLY1305
+    and AES_GMAC.
+  * Added support for NAT-T / UDP encapsulated ESP.
+  * Added support for SA telemetry.
+  * Added support for setting a non default starting ESN value.
+
 * **Added multi-process support for testpmd.**
 
   Added command-line options to specify total number of processes and
@@ -140,6 +200,7 @@ New Features
 
   * Added support for asymmetric crypto throughput performance measurement.
     Only modex is supported for now.
+  * Added support for lookaside IPsec protocol offload throughput measurement.
 
 * **Added lookaside protocol (IPsec) tests in dpdk-test.**
 
@@ -151,6 +212,7 @@ New Features
   * Added tests to validate packets soft expiry.
   * Added tests to validate packets hard expiry.
   * Added tests to verify tunnel header verification in IPsec inbound.
+  * Added tests to verify inner checksum.
 
 
 Removed Items
@@ -172,6 +234,9 @@ Removed Items
   blacklist/whitelist are removed. Users must use the new
   block/allow list arguments.
 
+* mbuf: Removed offload flag ``PKT_RX_EIP_CKSUM_BAD``.
+  ``PKT_RX_OUTER_IP_CKSUM_BAD`` should be used as a replacement.
+
 * ethdev: Removed the port mirroring API. A more fine-grain flow API
   action ``RTE_FLOW_ACTION_TYPE_SAMPLE`` should be used instead.
   The structures ``rte_eth_mirror_conf`` and ``rte_eth_vlan_mirror`` and
@@ -179,6 +244,14 @@ Removed Items
   ``rte_eth_mirror_rule_reset`` along with the associated macros
   ``ETH_MIRROR_*`` are removed.
 
+* ethdev: Removed ``rte_eth_rx_descriptor_done`` API function and its
+  driver callback. It is replaced by the more complete function
+  ``rte_eth_rx_descriptor_status``.
+
+* ethdev: Removed deprecated ``shared`` attribute of the
+  ``struct rte_flow_action_count``. Shared counters should be managed
+  using indirect actions API (``rte_flow_action_handle_create`` etc).
+
 * i40e: Removed i40evf driver.
   iavf already became the default VF driver for i40e devices,
   so there is no need to maintain i40evf.
@@ -203,9 +276,27 @@ API Changes
   removed. Its usages have been replaced by a new function
   ``rte_kvargs_get_with_value()``.
 
+* mempool: Added ``RTE_MEMPOOL_F_NON_IO`` flag to give a hint to DPDK components
+  that objects from this pool will not be used for device IO (e.g. DMA).
+
+* mempool: The mempool flags ``MEMPOOL_F_*`` will be deprecated in the future.
+  Newly added flags with ``RTE_MEMPOOL_F_`` prefix should be used instead.
+
+* mempool: Helper macro ``MEMPOOL_HEADER_SIZE()`` is deprecated.
+  The replacement macro ``RTE_MEMPOOL_HEADER_SIZE()`` is internal only.
+
+* mempool: Macro to register mempool driver ``MEMPOOL_REGISTER_OPS()`` is
+  deprecated.  Use replacement ``RTE_MEMPOOL_REGISTER_OPS()``.
+
+* mempool: The mempool API macros ``MEMPOOL_PG_*`` are deprecated and
+  will be removed in DPDK 22.11.
+
 * net: Renamed ``s_addr`` and ``d_addr`` fields of ``rte_ether_hdr`` structure
   to ``src_addr`` and ``dst_addr``, respectively.
 
+* ethdev: Added items and actions ``PORT_REPRESENTOR``, ``REPRESENTED_PORT`` to
+  flow API.
+
 * cryptodev: The API rte_cryptodev_pmd_is_valid_dev is modified to
   rte_cryptodev_is_valid_dev as it can be used by the application as
   well as PMD to check whether the device is valid or not.
@@ -219,6 +310,17 @@ API Changes
   the crypto/security operation. This field will be used to communicate
   events such as soft expiry with IPsec in lookaside mode.
 
+* cryptodev: The field ``dataunit_len`` of the ``struct rte_crypto_cipher_xform``
+  moved to the end of the structure and extended to ``uint32_t``.
+
+* cryptodev: The structure ``rte_crypto_vec`` was updated to add ``tot_len``
+  field to support total buffer length to facilitate protocol offload case.
+
+* cryptodev: The structure ``rte_crypto_sym_vec`` was updated to add
+  ``dest_sgl`` to support out of place processing.
+
+* bbdev: Added device info related to data byte endianness processing.
+
 
 ABI Changes
 -----------
@@ -235,6 +337,18 @@ ABI Changes
    Also, make sure to start the actual text at the margin.
    =======================================================
 
+* ethdev: Input parameters for ``eth_rx_queue_count_t`` was changed.
+  Instead of pointer to ``rte_eth_dev`` and queue index, now it accepts pointer
+  to internal queue data as input parameter. While this change is transparent
+  to user, it still counts as an ABI change, as ``eth_rx_queue_count_t``
+  is used by  public inline function ``rte_eth_rx_queue_count``.
+
+* ethdev: Made ``rte_eth_dev``, ``rte_eth_dev_data``, ``rte_eth_rxtx_callback``
+  private data structures. ``rte_eth_devices[]`` can't be accessed directly
+  by user any more. While it is an ABI breakage, this change is intended
+  to be transparent for both users (no changes in user app is required) and
+  PMD developers (no changes in PMD is required).
+
 * security: ``rte_security_set_pkt_metadata`` and ``rte_security_get_userdata``
   routines used by inline outbound and inline inbound security processing were
   made inline and enhanced to do simple 64-bit set/get for PMDs that do not
@@ -258,6 +372,20 @@ ABI Changes
   ``rte_security_ipsec_xform`` to allow applications to configure SA soft
   and hard expiry limits. Limits can be either in number of packets or bytes.
 
+* security: The new options ``ip_csum_enable`` and ``l4_csum_enable`` were added
+  in structure ``rte_security_ipsec_sa_options`` to indicate whether inner
+  packet IPv4 header checksum and L4 checksum need to be offloaded to
+  security device.
+
+* security: A new structure ``esn`` was added in structure
+  ``rte_security_ipsec_xform`` to set an initial ESN value. This permits
+  application to start from an arbitrary ESN value for debug and SA lifetime
+  enforcement purposes.
+
+* security: A new structure ``udp`` was added in structure
+  ``rte_security_ipsec_xform`` to allow setting the source and destination ports
+  for UDP encapsulated IPsec traffic.
+
 * bbdev: Added capability related to more comprehensive CRC options,
   shifting values of the ``enum rte_bbdev_op_ldpcdec_flag_bitmasks``.