DPDK Release 21.02
==================
-.. **Read this first.**
+.. note::
- The text in the sections below explains how to update the release notes.
+ A **dependency** has been added for building DPDK on Linux or FreeBSD:
+ the Python module **pyelftools** (version **0.22** or greater),
+ often packaged as python3-pyelftools, is required.
- Use proper spelling, capitalization and punctuation in all sections.
+ If not available as a distribution package, it can be installed with::
- 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_21_02.html
+ pip3 install pyelftools
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 new ethdev API for PMD power management.**
Added ``rte_eth_get_monitor_addr()``, to be used in conjunction with
Added support for matching and raw encap/decap of GENEVE TLV option.
-* **Added support of modify field action in the flow API.**
+* **Added support for Modify field action in the flow API.**
- Added modify action support to perform various operations on
+ Added "modify" action support to rte_flow to perform various operations on
any arbitrary header field (as well as mark, metadata or tag values):
``RTE_FLOW_ACTION_TYPE_MODIFY_FIELD``.
Supported operations are: overwriting a field with the content from
* **Updated Cisco enic driver.**
- * Added support for 64B completion queue entries
+ * Added support for 64B completion queue entries.
+
+* **Updated Hisilicon hns3 driver.**
+
+ * Added support for traffic management.
+
+* **Updated Intel i40e driver.**
+
+ * Added Intel i40e support on Windows.
* **Updated Intel ice driver.**
+ Updated the Intel ice driver with new features and improvements, including:
+
* Added Double VLAN support for DCF switch QinQ filtering.
+ * Added support for UDP dynamic port assignment for eCPRI tunnels in DCF.
+
+* **Updated Intel iavf driver.**
+
+ Updated iavf PMD with new features and improvements, including:
+
+ * Added support for FDIR/RSS packet steering for eCPRI flow.
+ * Added support for FDIR TCP/UDP pattern without input set.
* **Updated Mellanox mlx5 driver.**
* Introduced basic support on Windows.
* Added GTP PDU session container matching and raw encap/decap.
- * Added support for RSS action in the sample sub-actions list.
+ * Added support for a RSS action in the sample sub-actions list.
+ * Added support for E-Switch mirroring and jump action in the same flow.
+ * Added support to handle the modify action in correct order regarding the
+ mirroring action on E-Switch.
+ * Enlarged the number of flow priorities to 21844 (0 - 21843) for ingress or
+ egress flow groups greater than 0 and for any transfer flow group.
+ * Added support for the Tx mbuf fast free offload.
+ * Added support for flow modify field action.
+
+* **Updated the Pensando ionic driver.**
+
+ Updated the Pensando ionic driver with new features and improvements, including:
+
+ * Fixed bugs related to link autonegotiation.
+ * Fixed bugs related to port start/stop and queue start/stop.
+ * Added support for probing the supported queue versions. Note that
+ extremely old (pre-1.0) firmware will no longer be usable with the PMD.
+ * Removed unused code.
+ * Reduced device startup time.
* **Updated Wangxun txgbe driver.**
* Added inner UDP/IPv4 support for VXLAN IPv4 GSO.
-* **Added enqueue & dequeue callback APIs for cryptodev library.**
+* **Added enqueue and dequeue callback APIs for cryptodev library.**
- Cryptodev library is added with enqueue & dequeue callback APIs to
- enable applications to add/remove user callbacks which gets called
+ The Cryptodev library has been enhanced with enqueue and dequeue callback APIs to
+ enable applications to add/remove user callbacks which get called
for every enqueue/dequeue operation.
* **Updated the OCTEON TX2 crypto PMD.**
* **Added mlx5 compress PMD.**
- Added a new compress PMD driver for Bluefield 2 adapters.
+ Added a new compress PMD for Bluefield 2 adapters.
See the :doc:`../compressdevs/mlx5` for more details.
+* **Added python script to run crypto perf tests and graph the results.**
+
+ A new Python script has been added to automate running crypto performance
+ tests and output graphed results to PDF files.
+ See the :doc:`../tools/cryptoperf` guide for more details.
+
+* **Added Windows support to pmdinfogen.**
+
+ PMD information strings were added for Windows as well as for other OS.
+ Extracting them from Windows DLL is not yet supported.
+ The build-time tool pmdinfogen was rewritten in Python,
+ thus libelf dependency was replaced with pyelftools as new build dependency.
+
+* **Added support for build-time checking of header includes.**
+
+ A new build option ``check_includes`` has been added, which, when enabled,
+ will perform build-time checking on DPDK public header files, to ensure none
+ are missing dependent header includes. This feature, disabled by default, is
+ intended for use by developers contributing to the DPDK SDK itself, and is
+ integrated into the build scripts and automated CI for patch contributions.
+
Removed Items
-------------
-.. This section should contain removed items in this release. Sample format:
+* The internal header files ``rte_ethdev_driver.h``, ``rte_ethdev_vdev.h`` and
+ ``rte_ethdev_pci.h`` are no longer installed as part of the DPDK
+ ``ninja install`` action and are renamed to ``ethdev_driver.h``,
+ ``ethdev_vdev.h`` and ``ethdev_pci.h`` respectively in the source tree, to
+ reflect the fact that they are non-public headers.
- * 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.
- =======================================================
+* The internal header files ``rte_eventdev_pmd.h``, ``rte_eventdev_pmd_vdev.h``
+ and ``rte_eventdev_pmd_pci.h`` are no longer installed as part of the DPDK
+ ``ninja install`` action and are renamed to ``eventdev_pmd.h``,
+ ``eventdev_pmd_vdev.h`` and ``eventdev_pmd_pci.h`` respectively in the source
+ tree, to reflect the fact that they are non-public headers.
* Removed support for NetXtreme devices belonging to ``BCM573xx and
BCM5740x`` families. Specifically the support for the following Broadcom
PCI device IDs ``0x16c8, 0x16c9, 0x16ca, 0x16ce, 0x16cf, 0x16df, 0x16d0,``
``0x16d1, 0x16d2, 0x16d4, 0x16d5, 0x16e7, 0x16e8, 0x16e9`` has been removed.
-API Changes
------------
-
-.. This section should contain API changes. Sample format:
+* The ``check-includes.sh`` script for checking DPDK header files has been
+ removed, being replaced by the ``check_includes`` build option described
+ above.
- * 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.
- =======================================================
+API Changes
+-----------
* config: Removed the old macros, included in ``rte_config.h``,
to indicate which DPDK libraries and drivers are built.
ABI Changes
-----------
-.. This section should contain ABI changes. Sample format:
+* No ABI change that would break compatibility with 20.11.
+
+* The experimental function ``rte_telemetry_init`` has been removed from the
+ public API and is now an internal-only function. Where telemetry library is
+ available, it is called automatically from ``rte_eal_init()`` and so no end
+ application need use it.
- * 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 20.11.
+* Intel\ |reg| platforms with Intel\ |reg| NICs combinations
+ * CPU
-Known Issues
-------------
+ * Intel\ |reg| Atom\ |trade| CPU C3758 @ 2.20GHz
+ * Intel\ |reg| Atom\ |trade| CPU C3858 @ 2.00GHz
+ * Intel\ |reg| Atom\ |trade| CPU C3958 @ 2.00GHz
+ * Intel\ |reg| Xeon\ |reg| CPU D-1541 @ 2.10GHz
+ * Intel\ |reg| Xeon\ |reg| CPU D-1553N @ 2.30GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2680 0 @ 2.70GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v3 @ 2.30GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @ 2.20GHz
+ * Intel\ |reg| Xeon\ |reg| Gold 5218N CPU @ 2.30GHz
+ * Intel\ |reg| Xeon\ |reg| Gold 6139 CPU @ 2.30GHz
+ * Intel\ |reg| Xeon\ |reg| Gold 6252N CPU @ 2.30GHz
+ * Intel\ |reg| Xeon\ |reg| Platinum 8180 CPU @ 2.50GHz
+ * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz
-.. This section should contain new known issues in this release. Sample format:
+ * OS:
- * **Add title in present tense with full stop.**
+ * CentOS 8.3
+ * CentOS Stream 8
+ * Fedora 33
+ * FreeBSD 12.1
+ * OpenWRT 19.07.4
+ * Red Hat Enterprise Linux Server release 8.3
+ * Suse 15 SP2
+ * Ubuntu 20.04
+ * Ubuntu 20.10
- Add a short 1-2 sentence description of the known issue
- in the present tense. Add information on any known workarounds.
+ * NICs:
- This section is a comment. Do not overwrite or remove it.
- Also, make sure to start the actual text at the margin.
- =======================================================
+ * Intel\ |reg| Ethernet Controller E810-C for SFP (4x25G)
+ * Firmware version: 2.40
+ * Device id (pf/vf): 8086:1593 / 8086:1889
+ * Driver version: 1.4.5 (ice)
+ * OS Default DDP: 1.3.21.0
+ * COMMS DDP: 1.3.25.0
+ * Wireless Edge DDP: 1.3.1.0
-Tested Platforms
-----------------
+ * Intel\ |reg| Ethernet Controller E810-C for QSFP (2x100G)
+
+ * Firmware version: 2.40
+ * Device id (pf/vf): 8086:1592 / 8086:1889
+ * Driver version: 1.4.5 (ice)
+ * OS Default DDP: 1.3.21.0
+ * COMMS DDP: 1.3.25.0
+ * Wireless Edge DDP: 1.3.1.0
+
+ * Intel\ |reg| 82599ES 10 Gigabit Ethernet Controller
+
+ * Firmware version: 0x61bf0001
+ * Device id (pf/vf): 8086:10fb / 8086:10ed
+ * Driver version: 5.10.2 (ixgbe)
+
+ * Intel\ |reg| Corporation Ethernet Connection X552/X557-AT 10GBASE-T
+
+ * Firmware version: 0x800003e7
+ * Device id (pf/vf): 8086:15ad / 8086:15a8
+ * Driver version: 5.1.0-k (ixgbe)
+
+ * Intel\ |reg| Corporation Ethernet Controller 10G X550T
+
+ * Firmware version: 0x80000482
+ * Device id (pf): 8086:1563
+ * Driver version: 5.10.2 (ixgbe)
+
+ * Intel\ |reg| Ethernet Converged Network Adapter X710-DA4 (4x10G)
+
+ * Firmware version: 8.00 0x80008b82 1.2766.0
+ * Device id (pf/vf): 8086:1572 / 8086:154c
+ * Driver version: 2.14.13 (i40e)
+
+ * Intel\ |reg| Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G)
+
+ * Firmware version: 5.00 0x800023c3 1.2766.0
+ * Device id (pf/vf): 8086:37d0 / 8086:37cd
+ * Driver version: 2.14.13 (i40e)
+
+ * Intel\ |reg| Corporation Ethernet Connection X722 for 10GBASE-T (2x10G)
+
+ * Firmware version: 4.10 0x80001a7a
+ * Device id (pf/vf): 8086:37d2 / 8086:37cd
+ * Driver version: 2.14.13 (i40e)
+
+ * Intel\ |reg| Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
+
+ * Firmware version: 8.00 0x80008c1a 1.2766.0
+ * Device id (pf/vf): 8086:158b / 8086:154c
+ * Driver version: 2.14.13 (i40e)
+
+ * Intel\ |reg| Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
+
+ * Firmware version: 8.00 0x80008b82 1.2766.0
+ * Device id (pf/vf): 8086:1583 / 8086:154c
+ * Driver version: 2.14.13 (i40e)
+
+ * Intel\ |reg| Corporation I350 Gigabit Network Connection
+
+ * Firmware version: 1.63, 0x80000cbc
+ * Device id (pf/vf): 8086:1521 / 8086:1520
+ * Driver version: 5.6.0-k (igb)
+
+ * Intel\ |reg| Corporation I210 Gigabit Network Connection
+
+ * Firmware version: 3.25, 0x800006eb
+ * Device id (pf): 8086:1533
+ * Driver version: 5.6.0-k (igb)
+
+ * Intel\ |reg| Ethernet Controller 10-Gigabit X540-AT2
+
+ * Firmware version: 0x800005f9
+ * Device id (pf): 8086:1528
+ * Driver version: 5.1.0-k (ixgbe)
+
+ * Intel\ |reg| Ethernet Converged Network Adapter X710-T2L
+
+ * Firmware version: 8.00 0x80008d10 1.2766.0
+ * Device id (pf): 8086:15ff
+ * Driver version: 2.14.13 (i40e)
+
+* Intel\ |reg| platforms with Mellanox\ |reg| NICs combinations
+
+ * CPU:
+
+ * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2697A v4 @ 2.60GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2697 v3 @ 2.60GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2670 0 @ 2.60GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v4 @ 2.20GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2640 @ 2.50GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2650 0 @ 2.00GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2620 v4 @ 2.10GHz
+
+ * OS:
+
+ * Red Hat Enterprise Linux release 8.2 (Ootpa)
+ * Red Hat Enterprise Linux Server release 7.8 (Maipo)
+ * Red Hat Enterprise Linux Server release 7.6 (Maipo)
+ * Red Hat Enterprise Linux Server release 7.5 (Maipo)
+ * Red Hat Enterprise Linux Server release 7.4 (Maipo)
+ * Red Hat Enterprise Linux Server release 7.3 (Maipo)
+ * Red Hat Enterprise Linux Server release 7.2 (Maipo)
+ * Ubuntu 20.04
+ * Ubuntu 18.04
+ * Ubuntu 16.04
+ * SUSE Enterprise Linux 15 SP2
+ * SUSE Enterprise Linux 12 SP4
+
+ * OFED:
+
+ * MLNX_OFED 5.2-2.2.0.0 and above
+ * MLNX_OFED 5.1-2.5.8.0
+
+ * upstream kernel:
+
+ * Linux 5.11.0-rc7 and above
+
+ * rdma-core:
+
+ * rdma-core-33.1-1 and above
+
+ * NICs:
+
+ * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCC_Ax (2x40G)
+
+ * Host interface: PCI Express 3.0 x8
+ * Device ID: 15b3:1007
+ * Firmware version: 2.42.5000
+
+ * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCCT (2x40G)
+
+ * Host interface: PCI Express 3.0 x8
+ * Device ID: 15b3:1007
+ * Firmware version: 2.42.5000
+
+ * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 25G MCX4121A-ACAT (2x25G)
+
+ * Host interface: PCI Express 3.0 x8
+ * Device ID: 15b3:1015
+ * Firmware version: 14.29.2002 and above
+
+ * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 50G MCX4131A-GCAT (1x50G)
+
+ * Host interface: PCI Express 3.0 x8
+ * Device ID: 15b3:1015
+ * Firmware version: 14.29.2002 and above
+
+ * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX516A-CCAT (2x100G)
+
+ * Host interface: PCI Express 3.0 x16
+ * Device ID: 15b3:1017
+ * Firmware version: 16.29.2002 and above
+
+ * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-ECAT (2x100G)
+
+ * Host interface: PCI Express 3.0 x16
+ * Device ID: 15b3:1017
+ * Firmware version: 16.29.2002 and above
+
+ * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-EDAT (2x100G)
+
+ * Host interface: PCI Express 3.0 x16
+ * Device ID: 15b3:1017
+ * Firmware version: 16.29.2002 and above
+
+ * Mellanox\ |reg| ConnectX\ |reg|-5 Ex EN 100G MCX516A-CDAT (2x100G)
+
+ * Host interface: PCI Express 4.0 x16
+ * Device ID: 15b3:1019
+ * Firmware version: 16.29.2002 and above
+
+ * Mellanox\ |reg| ConnectX\ |reg|-6 Dx EN 100G MCX623106AN-CDAT (2x100G)
+
+ * Host interface: PCI Express 4.0 x16
+ * Device ID: 15b3:101d
+ * Firmware version: 22.29.2002 and above
+
+ * Mellanox\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G)
+
+ * Host interface: PCI Express 4.0 x8
+ * Device ID: 15b3:101f
+ * Firmware version: 26.29.2002 and above
+
+* Mellanox\ |reg| BlueField\ |reg| SmartNIC
+
+ * Mellanox\ |reg| BlueField\ |reg| 2 SmartNIC MT41686 - MBF2H332A-AEEOT (2x25G)
+
+ * Host interface: PCI Express 3.0 x16
+ * Device ID: 15b3:a2d2
+ * Firmware version: 24.29.2002 and above
+
+ * Embedded software:
+
+ * CentOS Linux release 7.6.1810 (AltArch)
+ * MLNX_OFED 5.2-2.2.0 and above
+ * DPDK application running on Arm cores
+
+* Intel\ |reg| platforms with Broadcom\ |reg| NICs combinations
+
+ * CPU:
+
+ * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2667 v3 @ 3.20GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v2 @ 2.60GHz
+ * Intel\ |reg| Xeon\ |reg| Gold 6142 CPU @ 2.60GHz
+ * Intel\ |reg| Xeon\ |reg| CPU E3-1270 v3 @ 3.50GHz
+ * Intel\ |reg| Xeon\ |reg| Gold 6134M CPU @ 3.20GHz
+
+ * OS:
+
+ * Red Hat Enterprise Linux Server release 8.1
+ * Red Hat Enterprise Linux Server release 7.6
+ * Centos 8.1
+ * Centos 7.8
+ * Centos 7.7
+
+ * upstream kernel:
+
+ * Linux 5.3.4
+
+ * NICs:
+
+ * Broadcom\ |reg| NetXtreme-E\ |reg| Series P225p (2x25G)
+
+ * Host interface: PCI Express 3.0 x8
+ * Firmware version: 214.4.114.0 and above
+
+ * Broadcom\ |reg| NetXtreme-E\ |reg| Series P425p (4x25G)
+
+ * Host interface: PCI Express 3.0 x16
+ * Firmware version: 218.0.124.0 and above
+
+ * Broadcom\ |reg| NetXtreme-E\ |reg| Series P2100G (2x100G)
+
+ * Host interface: PCI Express 3.0 x16
+ * Firmware version: 218.0.124.0 and above
+
+ * Broadcom\ |reg| NetXtreme-E\ |reg| Series P425p (4x25G)
+
+ * Host interface: PCI Express 4.0 x16
+ * Firmware version: 218.0.124.0 and above
+
+ * Broadcom\ |reg| NetXtreme-E\ |reg| Series P2100G (2x100G)
+
+ * Host interface: PCI Express 4.0 x16
+ * Firmware version: 218.0.124.0 and above
+
+* Broadcom\ |reg| NetXtreme-S\ |reg| Series SmartNIC
+
+ * Broadcom\ |reg| NetXtreme-S\ |reg| Series PS225-H16 SmartNIC (2x25G)
+
+ * Host interface: PCI Express 3.0 x8
+ * Firmware version: 218.1.143.0
+
+ * Embedded software:
+
+ * Broadcom Yocto Linux
+ * Kernel version: 4.14.196
+ * DPDK application running on 8 Arm Cortex-A72 cores
-.. This section should contain a list of platforms that were tested
- with this release.
+* NXP ARMv8 SoCs (with integrated NICs)
- The format is:
+ * SoC:
- * <vendor> platform with <vendor> <type of devices> combinations
+ * LX2xxx, LS2xxx, LS10xx
- * List of CPU
- * List of OS
- * List of devices
- * Other relevant details...
+ * OS (based on NXP LSDK-20.04):
- This section is a comment. Do not overwrite or remove it.
- Also, make sure to start the actual text at the margin.
- =======================================================
+ * Kernel version: 4.19.90
+ * Kernel version: 5.4.47
+ * Ubuntu 18.04