doc: add l3fwd-graph application user guide
[dpdk.git] / doc / guides / rel_notes / release_20_05.rst
index 1dfcfcc..c287cb4 100644 (file)
@@ -56,19 +56,193 @@ New Features
      Also, make sure to start the actual text at the margin.
      =========================================================
 
+* **Added Trace Library and Tracepoints**
+
+  A native implementation of ``common trace format(CTF)`` based trace library
+  has been added to provide the ability to add tracepoints in
+  application/library to get runtime trace/debug information for control and
+  fast APIs with minimum impact on fast path performance.
+  Typical trace overhead is ~20 cycles and instrumentation overhead is 1 cycle.
+  Added tracepoints in ``EAL``, ``ethdev``, ``cryptodev``, ``eventdev`` and
+  ``mempool`` libraries for important functions.
+
+* **Added new API for rte_ring.**
+
+  * New synchronization modes for rte_ring.
+
+  Introduced new optional MT synchronization modes for rte_ring:
+  Relaxed Tail Sync (RTS) mode and Head/Tail Sync (HTS) mode.
+  With these mode selected, rte_ring shows significant improvements for
+  average enqueue/dequeue times on overcommitted systems.
+
+  * Added peek style API for rte_ring.
+
+  For rings with producer/consumer in RTE_RING_SYNC_ST, RTE_RING_SYNC_MT_HTS
+  mode, provide an ability to split enqueue/dequeue operation into two phases
+  (enqueue/dequeue start; enqueue/dequeue finish). That allows user to inspect
+  objects in the ring without removing them from it (aka MT safe peek).
+
+* **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.
+
+* **Updated Amazon ena driver.**
+
+  Updated ena PMD with new features and improvements, including:
+
+  * Added support for large LLQ (Low-latency queue) headers.
+  * Added Tx drops as new extended driver statistic.
+  * Added support for accelerated LLQ mode.
+  * Handling of the 0 length descriptors on the Rx path.
+
+* **Updated Intel i40e driver.**
+
+  Updated i40e PMD with new features and improvements, including:
+
+  * Enable MAC address as FDIR input set for ipv4-other, ipv4-udp and ipv4-tcp.
+  * Added support for RSS using L3/L4 source/destination only.
+  * Added support for setting hash function in rte flow.
+
+* **Updated the Intel iavf driver.**
+
+  Update the Intel iavf driver with new features and improvements, including:
+
+  * Added generic filter support.
+  * Added advanced iavf with FDIR capability.
+  * Added advanced RSS configuration for VFs.
+
+* **Updated the Intel ice driver.**
+
+  Updated the Intel ice driver with new features and improvements, including:
+
+  * Added support for DCF (Device Config Function) feature.
+  * Added switch filter support for intel DCF.
+
+* **Updated Marvell OCTEON TX2 ethdev driver.**
+
+  Updated Marvell OCTEON TX2 ethdev driver with traffic manager support with
+  below features.
+
+  * Hierarchial Scheduling with DWRR and SP.
+  * Single rate - Two color, Two rate - Three color shaping.
+
 * **Updated Mellanox mlx5 driver.**
 
   Updated Mellanox mlx5 driver with new features and improvements, including:
 
   * Added support for matching on IPv4 Time To Live and IPv6 Hop Limit.
+  * 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.
+
+* **Updated the AESNI MB crypto PMD.**
+
+  * Added support for intel-ipsec-mb version 0.54.
+  * Updated the AESNI MB PMD with AES-256 DOCSIS algorithm.
+  * Added support for synchronous Crypto burst API.
 
-* **Added event mode to ipsec-secgw application.**
+* **Updated the AESNI GCM crypto PMD.**
 
-  Updated ipsec-secgw application to add event based packet processing. The worker
-  thread(s) would receive events and submit them back to the event device after
-  the processing. This way, multicore scaling and HW assisted scheduling is achieved
-  by making use of the event device capabilities. The event mode currently supports
-  only inline IPsec protocol offload.
+  * Added support for intel-ipsec-mb version 0.54.
+
+* **Added a new driver for Intel Foxville I225 devices.**
+
+  Added the new ``igc`` net driver for Intel Foxville I225 devices. See the
+  :doc:`../nics/igc` NIC 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 host based flow table management
+  * Added flow counters to extended stats
+  * Added PCI function stats to extended stats
+
+* **Added handling of mixed crypto algorithms in QAT PMD for GEN2.**
+
+  Enabled handling of mixed algorithms in encrypted digest hash-cipher
+  (generation) and cipher-hash (verification) requests in QAT PMD
+  when running on GEN2 QAT hardware with particular firmware versions
+  (GEN3 support was added in DPDK 20.02).
+
+* **Added plain SHA-1,224,256,384,512 support to QAT PMD.**
+
+  Added support for plain SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 hashes
+  to QAT PMD.
+
+* **Added QAT intermediate buffer too small handling in QAT compression PMD.**
+
+  Added a special way of buffer handling when internal QAT intermediate buffer
+  is too small for Huffman dynamic compression operation. Instead of falling
+  back to fixed compression, the operation is now split into multiple smaller
+  dynamic compression requests (possible to execute on QAT) and their results
+  are then combined and copied into the output buffer. This is not possible if
+  any checksum calculation was requested - in such case the code falls back to
+  fixed compression as before.
+
+* **Updated the turbo_sw bbdev PMD.**
+
+  Supported large size code blocks which does not fit in one mbuf segment.
+
+* **Added Intel FPGA_5GNR_FEC bbdev PMD.**
+
+  Added a new ``fpga_5gnr_fec`` bbdev driver for the Intel\ |reg| FPGA PAC
+  (Programmable  Acceleration Card) N3000.  See the
+  :doc:`../bbdevs/fpga_5gnr_fec` BBDEV guide for more details on this new driver.
+
+* **Updated ipsec-secgw sample application with following features.**
+
+  * Updated ipsec-secgw application to add event based packet processing.
+    The worker thread(s) would receive events and submit them back to the
+    event device after the processing. This way, multicore scaling and HW
+    assisted scheduling is achieved by making use of the event device
+    capabilities. The event mode currently supports only inline IPsec
+    protocol offload.
+
+  * Updated ipsec-secgw application to support key sizes for AES-192-CBC,
+    AES-192-GCM, AES-256-GCM algorithms.
+
+  * Added IPsec inbound load-distribution support for ipsec-secgw application
+    using NIC load distribution feature(Flow Director).
+
+* **Added rte_graph library.**
+
+  Graph architecture abstracts the data processing functions as a ``node`` and
+  ``links`` them together to create a complex ``graph`` to enable reusable/modular
+  data processing functions. The graph library provides API to enable graph
+  framework operations such as create, lookup, dump and destroy on graph and node
+  operations such as clone, edge update, and edge shrink, etc.
+  The API also allows to create the stats cluster to monitor per graph and per node stats.
+
+* **Added rte_node library which consists of a set of packet processing nodes.**
+
+  The rte_node library that consists of nodes used by rte_graph library. Each
+  node performs a specific packet processing function based on application
+  configuration. The following nodes are added:
+
+  * Null node: Skeleton node that defines the general structure of a node.
+  * Ethernet device node: Consists of ethernet Rx/Tx nodes as well as ethernet
+    control APIs.
+  * IPv4 lookup node: Consists of ipv4 extract and lpm lookup node. Routes can
+    be configured by the application through ``rte_node_ip4_route_add`` function.
+  * IPv4 rewrite node: Consists of ipv4 and ethernet header rewrite functionality
+    that can be configured through ``rte_node_ip4_rewrite_add`` function.
+  * Packet drop node: Frees the packets received to their respective mempool.
+
+* **Added new l3fwd-graph sample application.**
+
+  Added an example application ``l3fwd-graph``. It demonstrates the usage of graph
+  library and node library for packet processing. In addition to the library usage
+  demonstration, this application can use for performance comparison with existing
+  ``l3fwd`` (The static code without any nodes) with the modular ``l3fwd-graph``
+  approach.
 
 
 Removed Items
@@ -99,6 +273,10 @@ API Changes
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* mempool: The API of ``rte_mempool_populate_iova()`` and
+  ``rte_mempool_populate_virt()`` changed to return 0 instead of -EINVAL
+  when there is not enough room to store one object.
+
 
 ABI Changes
 -----------