X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Frelease_20_05.rst;h=a38c6c673d4f86196c837779dd151fab36b7541f;hb=6bc987ecb860131eeb9cf97ab2ddb3775f028e9f;hp=105210b06e47a5f7cc742bbab421b6744df6a386;hpb=1075d9dc988a2c12cfd59a8d93a4f2d389c5f2de;p=dpdk.git diff --git a/doc/guides/rel_notes/release_20_05.rst b/doc/guides/rel_notes/release_20_05.rst index 105210b06e..a38c6c673d 100644 --- a/doc/guides/rel_notes/release_20_05.rst +++ b/doc/guides/rel_notes/release_20_05.rst @@ -6,88 +6,41 @@ DPDK Release 20.05 ================== -.. **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_05.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. +* **Added Trace Library and Tracepoints.** - If the feature adds a lot of sub-features you can use a bullet list - like this: + 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 feature foo to do something. - * Enhanced feature bar to do something else. +* **Added APIs for RCU defer queues.** - 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 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 APIs for RCU defer queue.** - - 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.** @@ -100,29 +53,51 @@ New Features * 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.** + + Added a new ethdev value to for link speeds of 200Gbps. -* **Updated Amazon ena driver.** +* **Updated the Amazon ena driver.** - Updated ena PMD with new features and improvements, including: + 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 Cisco enic driver.** + + Updated Cisco enic driver GENEVE tunneling support: + + * Added support to control GENEVE tunneling via UCSM/CIMC and removed devarg. + * Added GENEVE port number configuration. + * **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. @@ -139,14 +114,14 @@ New Features 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.** @@ -158,14 +133,14 @@ New Features * 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.** @@ -175,7 +150,7 @@ New Features * **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.** @@ -186,60 +161,51 @@ New Features * **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.** @@ -255,31 +221,32 @@ New Features 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.** -* **Updated ipsec-secgw sample application with following features.** + Updated the ``ipsec-secgw`` sample application with the 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 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. - * Updated ipsec-secgw application to support key sizes for AES-192-CBC, - AES-192-GCM, AES-256-GCM algorithms. + * 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 ipsec-secgw application - using NIC load distribution feature(Flow Director). + * 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. @@ -287,132 +254,119 @@ New Features * 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 ----------- -.. 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. - ========================================================= - * 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. ABI Changes ----------- -.. This section should contain ABI changes. Sample format: +* No ABI change that would break compatibility with DPDK 20.02 and 19.11. - * 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. - ========================================================= +Tested Platforms +---------------- -* No ABI change that would break compatibility with DPDK 20.02 and 19.11. +* Intel\ |reg| platforms with Broadcom\ |reg| NICs combinations + * CPU: -Known Issues ------------- + * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz + * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v2 @ 2.60GHz + * Intel\ |reg| Xeon\ |reg| CPU E5-2667 v3 @ 3.20GHz + * Intel\ |reg| Xeon\ |reg| Gold 6142 CPU @ 2.60GHz + * Intel\ |reg| Xeon\ |reg| Silver 4110 CPU @ 2.10GHz -.. This section should contain new known issues in this release. Sample format: + * OS: - * **Add title in present tense with full stop.** + * Red Hat Enterprise Linux Server release 8.1 + * Red Hat Enterprise Linux Server release 7.6 + * Red Hat Enterprise Linux Server release 7.5 + * Ubuntu 16.04 + * Centos 8.1 + * Centos 7.7 - Add a short 1-2 sentence description of the known issue - in the present tense. Add information on any known workarounds. + * upstream kernel: - This section is a comment. Do not overwrite or remove it. - Also, make sure to start the actual text at the margin. - ========================================================= + * Linux 5.3 + * NICs: -Tested Platforms ----------------- + * Broadcom\ |reg| NetXtreme-E\ |reg| Series P225p (2x25G) -.. This section should contain a list of platforms that were tested - with this release. + * Host interface: PCI Express 3.0 x8 + * Firmware version: 214.4.81.0 and above - The format is: + * Broadcom\ |reg| NetXtreme-E\ |reg| Series P425p (4x25G) - * platform with combinations + * Host interface: PCI Express 3.0 x16 + * Firmware version: 216.4.259.0 and above - * List of CPU - * List of OS - * List of devices - * Other relevant details... + * Broadcom\ |reg| NetXtreme-E\ |reg| Series P2100G (2x100G) - This section is a comment. Do not overwrite or remove it. - Also, make sure to start the actual text at the margin. - ========================================================= + * Host interface: PCI Express 3.0 x16 + * Firmware version: 216.1.259.0 and above + + * Broadcom\ |reg| NetXtreme-E\ |reg| Series P425p (4x25G) + + * Host interface: PCI Express 4.0 x16 + * Firmware version: 216.1.259.0 and above + + * Broadcom\ |reg| NetXtreme-E\ |reg| Series P2100G (2x100G) + + * Host interface: PCI Express 4.0 x16 + * Firmware version: 216.1.259.0 and above * Intel\ |reg| platforms with Intel\ |reg| NICs combinations @@ -638,3 +592,18 @@ Tested Platforms * OFED: * MLNX_OFED 5.0-2.1.8.0 + +* ARMv8 SoC combinations from Marvell (with integrated NICs) + + * SoC: + + * CN83xx, CN96xx, CN93xx + + * OS (Based on Marvell OCTEON TX SDK-10.3.2.0-PR12): + + * Arch Linux + * Buildroot 2018.11 + * Ubuntu 16.04.1 LTS + * Ubuntu 16.10 + * Ubuntu 18.04.1 + * Ubuntu 19.04