.. SPDX-License-Identifier: BSD-3-Clause
   Copyright 2019 The DPDK contributors

.. include:: <isonum.txt>

MLNX DPDK Release 19.11
=======================

.. **Read this first.**

   The text in the sections below explains how to update the release notes.

   Use proper spelling, capitalization and punctuation in all sections.

   Variable and config names should be quoted as fixed width text:
   ``LIKE_THIS``.

   Build the docs and view the output file to ensure the changes are correct::

      make doc-guides-html

      xdg-open build/doc/html/guides/rel_notes/release_20_02.html


New Features
------------

.. This section should contain new features added in this release.
   Sample format:

   * **Add a title in the past tense with a full stop.**

     Add a short 1-2 sentence description in the past tense.
     The description should be enough to allow someone scanning
     the release notes to understand the new feature.

     If the feature adds a lot of sub-features you can use a bullet list
     like this:

     * Added feature foo to do something.
     * Enhanced feature bar to do something else.

     Refer to the previous release notes for examples.

     Suggested order in release notes items:
     * Core libs (EAL, mempool, ring, mbuf, buses)
     * Device abstraction libs and PMDs
       - ethdev (lib, PMDs)
       - cryptodev (lib, PMDs)
       - eventdev (lib, PMDs)
       - etc
     * Other libs
     * Apps, Examples, Tools (if significant)

     This section is a comment. Do not overwrite or remove it.
     Also, make sure to start the actual text at the margin.
     =========================================================

* **Added Wait Until Equal API.**

  A new API has been added to wait for a memory location to be updated with a
  16-bit, 32-bit, 64-bit value.

* **Added mbuf pool with pinned external memory.**

  Added support of mbuf with data buffer allocated in an external device memory.

* **Added flow aging support.**

  Added flow aging support to detect and report aged-out flows, including:

  * Added new action: ``RTE_FLOW_ACTION_TYPE_AGE`` to set the timeout
    and the application flow context for each flow.
  * Added new event: ``RTE_ETH_EVENT_FLOW_AGED`` for the driver to report
    that there are new aged-out flows.
  * Added new query: ``rte_flow_get_aged_flows`` to get the aged-out flows
    contexts from the port.

* **ethdev: Added a new value to link speed for 200Gbps**

* **Updated Mellanox mlx5 driver.**

  Updated Mellanox mlx5 driver with new features and improvements, including:

  * Added support for the mbufs with external pinned buffers.
  * Added support for RSS using L3/L4 source/destination only.
  * Added support for matching on GTP tunnel header item.
  * Added support for IPv4/IPv6 DSCP rewrite action.
  * Added support for creating Relaxed Ordering Memory Regions.
  * Added support for jumbo frame size (9K MTU) in Multi-Packet RQ mode.
  * Optimized the memory consumption of flow. 
  * Added support for flow aging based on hardware counter.
  * Added support for configuring Hairpin queue data buffer size.
  * Removed flow rules caching for memory saving and compliance with ethdev API.
  * Added support for flow pattern with wildcard VLAN item (without VID value).
  * Updated support for matching on GTP header, added match on GTP flags.

* **Added vDPA device APIs to query virtio queue statistics.**

     A new 3 APIs has been added to query virtio queue statistics, to get their
     names and to reset them by a vDPA device.

* **Add new vDPA PMD based on Mellanox devices**

  Added a new Mellanox vDPA  (``mlx5_vdpa``) PMD.
  See the :doc:`../vdpadevs/mlx5` guide for more details on this driver.

* **Updated Mellanox mlx5 vDPA driver.**

  Updated Mellanox mlx5 vDPA driver with new features, including:

  * Added support for virtio queue statistics.
  * Added support for MTU update.

* **Updated testpmd application.**

  * Added a new cmdline option ``--rx-mq-mode`` which can be used to test PMD's
    behaviour on handling Rx mq mode.
  * Added new PMD devarg ``reclaim_mem_mode``.
  * Added new devarg ``lacp_by_user``.

* **Added new testpmd forward mode.**

  Added new ``5tswap`` forward mode to testpmd.
  the  ``5tswap`` swaps source and destination in layers 2,3,4
  for ipv4 and ipv6 in L3 and UDP and TCP in L4.

* **Added flow performance test application.**

  Added new application to test ``rte_flow`` performance, including:

  * Measure ``rte_flow`` insertion rate.
  * Measure ``rte_flow`` deletion rate.
  * Dump ``rte_flow`` memory consumption.
  * Measure packet per second forwarding.


Removed Items
-------------

.. This section should contain removed items in this release. Sample format:

   * Add a short 1-2 sentence description of the removed item
     in the past tense.

   This section is a comment. Do not overwrite or remove it.
   Also, make sure to start the actual text at the margin.
   =========================================================


API Changes
-----------

.. This section should contain API changes. Sample format:

   * sample: Add a short 1-2 sentence description of the API change
     which was announced in the previous releases and made in this release.
     Start with a scope label like "ethdev:".
     Use fixed width quotes for ``function_names`` or ``struct_names``.
     Use the past tense.

   This section is a comment. Do not overwrite or remove it.
   Also, make sure to start the actual text at the margin.
   =========================================================

* vhost: The API of ``rte_vhost_host_notifier_ctrl`` was changed to be per
  queue and not per device, a qid parameter was added to the arguments list.


ABI Changes
-----------

.. This section should contain ABI changes. Sample format:

   * sample: Add a short 1-2 sentence description of the ABI change
     which was announced in the previous releases and made in this release.
     Start with a scope label like "ethdev:".
     Use fixed width quotes for ``function_names`` or ``struct_names``.
     Use the past tense.

   This section is a comment. Do not overwrite or remove it.
   Also, make sure to start the actual text at the margin.
   =========================================================

* No change, kept ABI v20. MLNX DPDK 19.11 is compatible with DPDK 19.11.


Known Issues
------------

.. This section should contain new known issues in this release. Sample format:

   * **Add title in present tense with full stop.**

     Add a short 1-2 sentence description of the known issue
     in the present tense. Add information on any known workarounds.

   This section is a comment. Do not overwrite or remove it.
   Also, make sure to start the actual text at the margin.
   =========================================================


Tested Platforms
----------------

.. This section should contain a list of platforms that were tested
   with this release.

   The format is:

   * <vendor> platform with <vendor> <type of devices> combinations

     * List of CPU
     * List of OS
     * List of devices
     * Other relevant details...

   This section is a comment. Do not overwrite or remove it.
   Also, make sure to start the actual text at the margin.
   =========================================================
