Also, make sure to start the actual text at the margin.
=========================================================
-* **Added Trace Library and Tracepoints**
+* **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 a native implementation of the "common trace format" (CTF) based trace
+ library. This allows the user add tracepoints in an 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 APIs for RCU defer queue.**
+* **Added APIs for RCU defer queues.**
- Added APIs to create and delete defer queue. Additional APIs are provided
+ Added APIs to create and delete defer queues. Additional APIs are provided
to enqueue a deleted resource and reclaim the resource in the future.
- These APIs help the application use lock-free data structures with
+ These APIs help an application use lock-free data structures with
less effort.
* **Added new API for rte_ring.**
- * New synchronization modes for rte_ring.
+ * Introduced 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.
+ Introduced new optional MT synchronization modes for ``rte_ring``:
+ Relaxed Tail Sync (RTS) mode and Head/Tail Sync (HTS) mode.
+ With these modes selected, ``rte_ring`` shows significant improvements for
+ average enqueue/dequeue times on overcommitted systems.
- * Added peek style API for rte_ring.
+ * 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).
+ For rings with producer/consumer in ``RTE_RING_SYNC_ST``, ``RTE_RING_SYNC_MT_HTS``
+ mode, provide the ability to split enqueue/dequeue operation into two phases
+ (enqueue/dequeue start and enqueue/dequeue finish). This allows the user to inspect
+ objects in the ring without removing them (aka MT safe peek).
* **Added flow aging support.**
* 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**
+* **ethdev: Added a new value to link speed for 200Gbps.**
-* **Updated Amazon ena driver.**
+ Added a new ethdev value to for link speeds of 200Gbps.
- Updated ena PMD with new features and improvements, including:
+* **Updated the Amazon ena driver.**
+
+ Updated the 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 Tx drops as a new extended driver statistic.
* Added support for accelerated LLQ mode.
* Handling of the 0 length descriptors on the Rx path.
+* **Updated Broadcom bnxt driver.**
+
+ Updated the 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.
+
* **Updated Hisilicon hns3 driver.**
Updated Hisilicon hns3 driver with new features and improvements, including:
- * Added support for TSO
- * Added support for configuring promiscuous and allmulticast mode for VF
+ * Added support for TSO.
+ * Added support for configuring promiscuous and allmulticast mode for VF.
+
+* **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 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.
+ * Enabled 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 ice driver with new features and improvements, including:
* Added support for DCF (Device Config Function) feature.
- * Added switch filter support for intel DCF.
+ * 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.
+ Updated Marvell OCTEON TX2 ethdev driver with traffic manager support,
+ including:
- * Hierarchial Scheduling with DWRR and SP.
+ * Hierarchical Scheduling with DWRR and SP.
* Single rate - Two color, Two rate - Three color shaping.
* **Updated Mellanox mlx5 driver.**
* Added support for configuring Hairpin queue data buffer size.
* Added support for jumbo frame size (9K MTU) in Multi-Packet RQ mode.
* Removed flow rules caching for memory saving and compliance with ethdev API.
- * Optimized the memory consumption of flow.
- * Added support for flow aging based on hardware counter.
- * Added support for flow pattern with wildcard VLAN item (without VID value).
- * Updated support for matching on GTP header, added match on GTP flags.
+ * Optimized the memory consumption of flows.
+ * Added support for flow aging based on hardware counters.
+ * Added support for flow patterns with wildcard VLAN items (without VID value).
+ * Updated support for matching on GTP headers, added match on GTP flags.
* **Added Chacha20-Poly1305 algorithm to Cryptodev API.**
- Chacha20-Poly1305 AEAD algorithm can now be supported in Cryptodev.
+ Added support for Chacha20-Poly1305 AEAD algorithm in Cryptodev.
* **Updated the AESNI MB crypto PMD.**
* **Updated the AESNI GCM crypto PMD.**
- * Added support for intel-ipsec-mb version 0.54.
+ Added support for intel-ipsec-mb version 0.54.
* **Updated the ZUC crypto PMD.**
* **Updated the SNOW3G crypto PMD.**
- * Added support for intel-ipsec-mb version 0.54.
+ Added support for intel-ipsec-mb version 0.54.
* **Updated the KASUMI crypto PMD.**
- * 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 intel-ipsec-mb version 0.54.
- * Added support for host based flow table management
- * Added flow counters to extended stats
- * Added PCI function stats to extended stats
+* **Updated the QuickAssist Technology (QAT) Crypto PMD.**
-* **Added handling of mixed crypto algorithms in QAT PMD for GEN2.**
+ * 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).
+ 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 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 support for plain SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512
+ hashes to QAT PMD.
-* **Added AES-GCM/GMAC J0 support to QAT PMD.**
+ * Added AES-GCM/GMAC J0 support to QAT PMD.
- Added support for AES-GCM/GMAC J0 to Intel QuickAssist Technology PMD. User can
- use this feature by passing zero length IV in appropriate xform. For more
- info please refer to rte_crypto_sym.h J0 comments.
+ Added support for AES-GCM/GMAC J0 to Intel QuickAssist Technology PMD. The
+ user can use this feature by passing a zero length IV in the appropriate
+ xform. For more information refer to the doxygen comments in
+ ``rte_crypto_sym.h`` for ``J0``.
-* **Updated the QAT PMD for AES-256 DOCSIS.**
+ * Updated the QAT PMD for AES-256 DOCSIS.
- Added AES-256 DOCSIS algorithm support to QAT PMD.
+ Added AES-256 DOCSIS algorithm support to the QAT PMD.
-* **Added QAT intermediate buffer too small handling in QAT compression PMD.**
+* **Updated the QuickAssist Technology (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
+ Added special buffer handling when the internal QAT intermediate buffer is
+ too small for the 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.
+ dynamic compression requests (which are 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 cases 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 support for large size code blocks which do not fit in one mbuf
+ segment.
* **Added Intel FPGA_5GNR_FEC bbdev PMD.**
accurate load balancing.
* Improved behavior on high-core count systems.
* Reduced latency in low-load situations.
- * Extended DSW xstats with migration- and load-related statistics.
+ * Extended DSW xstats with migration and load-related statistics.
-* **Updated ipsec-secgw sample application with following features.**
+* **Updated ipsec-secgw sample application.**
- * 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 the ``ipsec-secgw`` sample application with the following features:
- * Updated ipsec-secgw application to support key sizes for AES-192-CBC,
- AES-192-GCM, AES-256-GCM algorithms.
+ * Updated the 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 only supports inline IPsec protocol offload.
- * Added IPsec inbound load-distribution support for ipsec-secgw application
- using NIC load distribution feature(Flow Director).
+ * Updated the application to support key sizes for AES-192-CBC, AES-192-GCM,
+ AES-256-GCM algorithms.
+
+ * Added IPsec inbound load-distribution support for the application using
+ NIC load distribution feature (Flow Director).
* **Updated Telemetry Library.**
- The updated Telemetry library has many improvements on the original version
- to make it more accessible and scalable:
+ The updated Telemetry library has been significantly improved in relation to
+ the original version to make it more accessible and scalable:
- * It enables DPDK libraries and applications provide their own specific
- telemetry information, rather than being limited to what could be reported
- through the metrics library.
+ * It now enables DPDK libraries and applications to provide their own
+ specific telemetry information, rather than being limited to what could be
+ reported through the metrics library.
* It is no longer dependent on the external Jansson library, which allows
Telemetry be enabled by default.
* The socket handling has been simplified making it easier for clients to
connect and retrieve information.
-* **Added rte_graph library.**
+* **Added the rte_graph library.**
+
+ The Graph architecture abstracts the data processing functions as ``nodes``
+ and ``links`` them together to create a complex ``graph`` to enable
+ reusable/modular data processing functions. The graph library provides APIs
+ 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 the creation of a stats cluster to monitor
+ per graph and per node statistics.
- 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 the rte_node library.**
-* **Added rte_node library which consists of a set of packet processing nodes.**
+ Added the ``rte_node`` library that consists of nodes used by the
+ ``rte_graph`` library. Each node performs a specific packet processing
+ function based on the application configuration.
- 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:
+ 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
+ * Null node: A 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.
+ * IPv4 lookup node: Consists of IPv4 extract and LPM lookup node. Routes can
+ be configured by the application through the ``rte_node_ip4_route_add``
+ function.
+ * IPv4 rewrite node: Consists of IPv4 and Ethernet header rewrite
+ functionality that can be configured through the
+ ``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.
+ Added an example application ``l3fwd-graph``. This demonstrates the usage of
+ the graph library and node library for packet processing. In addition to the
+ library usage demonstration, this application can be used for performance
+ comparison of the existing ``l3fwd`` (static code without any nodes) with
+ the modular ``l3fwd-graph`` approach.
-* **Updated testpmd application.**
+* **Updated the 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 a new cmdline option ``--rx-mq-mode`` which can be used to test PMD's
+ behaviour on handling Rx mq mode.
* **Added support for GCC 10.**
Added support for building with GCC 10.1.
-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
-----------
=========================================================
* mempool: The API of ``rte_mempool_populate_iova()`` and
- ``rte_mempool_populate_virt()`` changed to return 0 instead of -EINVAL
+ ``rte_mempool_populate_virt()`` changed to return 0 instead of ``-EINVAL``
when there is not enough room to store one object.
* No ABI change that would break compatibility with DPDK 20.02 and 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
----------------