1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright 2020 The DPDK contributors 3 4.. include:: <isonum.txt> 5 6DPDK Release 21.02 7================== 8 9.. note:: 10 11 A **dependency** has been added for building DPDK on Linux or FreeBSD: 12 the Python module **pyelftools** (version **0.22** or greater), 13 often packaged as python3-pyelftools, is required. 14 15 If not available as a distribution package, it can be installed with:: 16 17 pip3 install pyelftools 18 19 20New Features 21------------ 22 23* **Added new ethdev API for PMD power management.** 24 25 Added ``rte_eth_get_monitor_addr()``, to be used in conjunction with 26 ``rte_power_monitor()`` to enable automatic power management for PMDs. 27 28* **Added Ethernet PMD power management helper API.** 29 30 A new helper API has been added to make using Ethernet PMD power management 31 easier for the user: ``rte_power_ethdev_pmgmt_queue_enable()``. Three power 32 management schemes are supported initially: 33 34 * Power saving based on UMWAIT instruction (x86 only) 35 * Power saving based on ``rte_pause()`` (generic) or TPAUSE instruction (x86 only) 36 * Power saving based on frequency scaling through the ``librte_power`` library 37 38* **Added GENEVE TLV option in rte_flow.** 39 40 Added support for matching and raw encap/decap of GENEVE TLV option. 41 42* **Added support for Modify field action in the flow API.** 43 44 Added "modify" action support to rte_flow to perform various operations on 45 any arbitrary header field (as well as mark, metadata or tag values): 46 ``RTE_FLOW_ACTION_TYPE_MODIFY_FIELD``. 47 Supported operations are: overwriting a field with the content from 48 another field, addition and subtraction using an immediate value. 49 50* **Updated Broadcom bnxt driver.** 51 52 Updated the Broadcom bnxt driver with fixes and improvements, including: 53 54 * Added support for Stingray2 device. 55 56* **Updated Cisco enic driver.** 57 58 * Added support for 64B completion queue entries. 59 60* **Updated Hisilicon hns3 driver.** 61 62 * Added support for traffic management. 63 64* **Updated Intel i40e driver.** 65 66 * Added Intel i40e support on Windows. 67 68* **Updated Intel ice driver.** 69 70 Updated the Intel ice driver with new features and improvements, including: 71 72 * Added Double VLAN support for DCF switch QinQ filtering. 73 * Added support for UDP dynamic port assignment for eCPRI tunnels in DCF. 74 75* **Updated Intel iavf driver.** 76 77 Updated iavf PMD with new features and improvements, including: 78 79 * Added support for FDIR/RSS packet steering for eCPRI flow. 80 * Added support for FDIR TCP/UDP pattern without input set. 81 82* **Updated Mellanox mlx5 driver.** 83 84 Updated the Mellanox mlx5 driver with new features and improvements, including: 85 86 * Introduced basic support on Windows. 87 * Added GTP PDU session container matching and raw encap/decap. 88 * Added support for a RSS action in the sample sub-actions list. 89 * Added support for E-Switch mirroring and jump action in the same flow. 90 * Added support to handle the modify action in correct order regarding the 91 mirroring action on E-Switch. 92 * Enlarged the number of flow priorities to 21844 (0 - 21843) for ingress or 93 egress flow groups greater than 0 and for any transfer flow group. 94 * Added support for the Tx mbuf fast free offload. 95 * Added support for flow modify field action. 96 97* **Updated the Pensando ionic driver.** 98 99 Updated the Pensando ionic driver with new features and improvements, including: 100 101 * Fixed bugs related to link autonegotiation. 102 * Fixed bugs related to port start/stop and queue start/stop. 103 * Added support for probing the supported queue versions. Note that 104 extremely old (pre-1.0) firmware will no longer be usable with the PMD. 105 * Removed unused code. 106 * Reduced device startup time. 107 108* **Updated Wangxun txgbe driver.** 109 110 Updated the Wangxun txgbe driver with new features and improvements, including: 111 112 * Add support for generic flow API. 113 * Add support for traffic manager. 114 * Add support for IPsec. 115 116* **Updated GSO support.** 117 118 * Added inner UDP/IPv4 support for VXLAN IPv4 GSO. 119 120* **Added enqueue and dequeue callback APIs for cryptodev library.** 121 122 The Cryptodev library has been enhanced with enqueue and dequeue callback APIs to 123 enable applications to add/remove user callbacks which get called 124 for every enqueue/dequeue operation. 125 126* **Updated the OCTEON TX2 crypto PMD.** 127 128 * Updated the OCTEON TX2 crypto PMD lookaside protocol offload for IPsec with 129 ESN and anti-replay support. 130 * Updated the OCTEON TX2 crypto PMD with CN98xx support. 131 * Added support for aes-cbc sha1-hmac cipher combination in OCTEON TX2 crypto 132 PMD lookaside protocol offload for IPsec. 133 * Added support for aes-cbc sha256-128-hmac cipher combination in OCTEON TX2 134 crypto PMD lookaside protocol offload for IPsec. 135 136* **Added mlx5 compress PMD.** 137 138 Added a new compress PMD for BlueField-2 adapters. 139 140 See the :doc:`../compressdevs/mlx5` for more details. 141 142* **Added python script to run crypto perf tests and graph the results.** 143 144 A new Python script has been added to automate running crypto performance 145 tests and output graphed results to PDF files. 146 See the :doc:`../tools/cryptoperf` guide for more details. 147 148* **Added Windows support to pmdinfogen.** 149 150 PMD information strings were added for Windows as well as for other OS. 151 Extracting them from Windows DLL is not yet supported. 152 The build-time tool pmdinfogen was rewritten in Python, 153 thus libelf dependency was replaced with pyelftools as new build dependency. 154 155* **Added support for build-time checking of header includes.** 156 157 A new build option ``check_includes`` has been added, which, when enabled, 158 will perform build-time checking on DPDK public header files, to ensure none 159 are missing dependent header includes. This feature, disabled by default, is 160 intended for use by developers contributing to the DPDK SDK itself, and is 161 integrated into the build scripts and automated CI for patch contributions. 162 163 164Removed Items 165------------- 166 167* The internal header files ``rte_ethdev_driver.h``, ``rte_ethdev_vdev.h`` and 168 ``rte_ethdev_pci.h`` are no longer installed as part of the DPDK 169 ``ninja install`` action and are renamed to ``ethdev_driver.h``, 170 ``ethdev_vdev.h`` and ``ethdev_pci.h`` respectively in the source tree, to 171 reflect the fact that they are non-public headers. 172 173* The internal header files ``rte_eventdev_pmd.h``, ``rte_eventdev_pmd_vdev.h`` 174 and ``rte_eventdev_pmd_pci.h`` are no longer installed as part of the DPDK 175 ``ninja install`` action and are renamed to ``eventdev_pmd.h``, 176 ``eventdev_pmd_vdev.h`` and ``eventdev_pmd_pci.h`` respectively in the source 177 tree, to reflect the fact that they are non-public headers. 178 179* Removed support for NetXtreme devices belonging to ``BCM573xx and 180 BCM5740x`` families. Specifically the support for the following Broadcom 181 PCI device IDs ``0x16c8, 0x16c9, 0x16ca, 0x16ce, 0x16cf, 0x16df, 0x16d0,`` 182 ``0x16d1, 0x16d2, 0x16d4, 0x16d5, 0x16e7, 0x16e8, 0x16e9`` has been removed. 183 184* The ``check-includes.sh`` script for checking DPDK header files has been 185 removed, being replaced by the ``check_includes`` build option described 186 above. 187 188 189API Changes 190----------- 191 192* config: Removed the old macros, included in ``rte_config.h``, 193 to indicate which DPDK libraries and drivers are built. 194 The new macros are generated by meson in a standardized format: 195 ``RTE_LIB_<NAME>`` and ``RTE_<CLASS>_<NAME>``, where ``NAME`` is 196 the upper-case component name, e.g. ``EAL``, ``ETHDEV``, ``VIRTIO``, 197 and ``CLASS`` is the upper-case driver class, e.g. ``NET``, ``CRYPTO``. 198 199* cryptodev: The structure ``rte_cryptodev`` has been updated with pointers 200 for adding enqueue and dequeue callbacks. 201 202 203ABI Changes 204----------- 205 206* No ABI change that would break compatibility with 20.11. 207 208* The experimental function ``rte_telemetry_init`` has been removed from the 209 public API and is now an internal-only function. Where telemetry library is 210 available, it is called automatically from ``rte_eal_init()`` and so no end 211 application need use it. 212 213 214Tested Platforms 215---------------- 216 217* Intel\ |reg| platforms with Intel\ |reg| NICs combinations 218 219 * CPU 220 221 * Intel\ |reg| Atom\ |trade| CPU C3758 @ 2.20GHz 222 * Intel\ |reg| Atom\ |trade| CPU C3858 @ 2.00GHz 223 * Intel\ |reg| Atom\ |trade| CPU C3958 @ 2.00GHz 224 * Intel\ |reg| Xeon\ |reg| CPU D-1541 @ 2.10GHz 225 * Intel\ |reg| Xeon\ |reg| CPU D-1553N @ 2.30GHz 226 * Intel\ |reg| Xeon\ |reg| CPU E5-2680 0 @ 2.70GHz 227 * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz 228 * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v3 @ 2.30GHz 229 * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @ 2.20GHz 230 * Intel\ |reg| Xeon\ |reg| Gold 5218N CPU @ 2.30GHz 231 * Intel\ |reg| Xeon\ |reg| Gold 6139 CPU @ 2.30GHz 232 * Intel\ |reg| Xeon\ |reg| Gold 6252N CPU @ 2.30GHz 233 * Intel\ |reg| Xeon\ |reg| Platinum 8180 CPU @ 2.50GHz 234 * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz 235 236 * OS: 237 238 * CentOS 8.3 239 * CentOS Stream 8 240 * Fedora 33 241 * FreeBSD 12.1 242 * OpenWRT 19.07.4 243 * Red Hat Enterprise Linux Server release 8.3 244 * Suse 15 SP2 245 * Ubuntu 20.04 246 * Ubuntu 20.10 247 248 * NICs: 249 250 * Intel\ |reg| Ethernet Controller E810-C for SFP (4x25G) 251 252 * Firmware version: 2.40 253 * Device id (pf/vf): 8086:1593 / 8086:1889 254 * Driver version: 1.4.5 (ice) 255 * OS Default DDP: 1.3.21.0 256 * COMMS DDP: 1.3.25.0 257 * Wireless Edge DDP: 1.3.1.0 258 259 * Intel\ |reg| Ethernet Controller E810-C for QSFP (2x100G) 260 261 * Firmware version: 2.40 262 * Device id (pf/vf): 8086:1592 / 8086:1889 263 * Driver version: 1.4.5 (ice) 264 * OS Default DDP: 1.3.21.0 265 * COMMS DDP: 1.3.25.0 266 * Wireless Edge DDP: 1.3.1.0 267 268 * Intel\ |reg| 82599ES 10 Gigabit Ethernet Controller 269 270 * Firmware version: 0x61bf0001 271 * Device id (pf/vf): 8086:10fb / 8086:10ed 272 * Driver version: 5.10.2 (ixgbe) 273 274 * Intel\ |reg| Corporation Ethernet Connection X552/X557-AT 10GBASE-T 275 276 * Firmware version: 0x800003e7 277 * Device id (pf/vf): 8086:15ad / 8086:15a8 278 * Driver version: 5.1.0-k (ixgbe) 279 280 * Intel\ |reg| Corporation Ethernet Controller 10G X550T 281 282 * Firmware version: 0x80000482 283 * Device id (pf): 8086:1563 284 * Driver version: 5.10.2 (ixgbe) 285 286 * Intel\ |reg| Ethernet Converged Network Adapter X710-DA4 (4x10G) 287 288 * Firmware version: 8.00 0x80008b82 1.2766.0 289 * Device id (pf/vf): 8086:1572 / 8086:154c 290 * Driver version: 2.14.13 (i40e) 291 292 * Intel\ |reg| Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G) 293 294 * Firmware version: 5.00 0x800023c3 1.2766.0 295 * Device id (pf/vf): 8086:37d0 / 8086:37cd 296 * Driver version: 2.14.13 (i40e) 297 298 * Intel\ |reg| Corporation Ethernet Connection X722 for 10GBASE-T (2x10G) 299 300 * Firmware version: 4.10 0x80001a7a 301 * Device id (pf/vf): 8086:37d2 / 8086:37cd 302 * Driver version: 2.14.13 (i40e) 303 304 * Intel\ |reg| Ethernet Converged Network Adapter XXV710-DA2 (2x25G) 305 306 * Firmware version: 8.00 0x80008c1a 1.2766.0 307 * Device id (pf/vf): 8086:158b / 8086:154c 308 * Driver version: 2.14.13 (i40e) 309 310 * Intel\ |reg| Ethernet Converged Network Adapter XL710-QDA2 (2X40G) 311 312 * Firmware version: 8.00 0x80008b82 1.2766.0 313 * Device id (pf/vf): 8086:1583 / 8086:154c 314 * Driver version: 2.14.13 (i40e) 315 316 * Intel\ |reg| Corporation I350 Gigabit Network Connection 317 318 * Firmware version: 1.63, 0x80000cbc 319 * Device id (pf/vf): 8086:1521 / 8086:1520 320 * Driver version: 5.6.0-k (igb) 321 322 * Intel\ |reg| Corporation I210 Gigabit Network Connection 323 324 * Firmware version: 3.25, 0x800006eb 325 * Device id (pf): 8086:1533 326 * Driver version: 5.6.0-k (igb) 327 328 * Intel\ |reg| Ethernet Controller 10-Gigabit X540-AT2 329 330 * Firmware version: 0x800005f9 331 * Device id (pf): 8086:1528 332 * Driver version: 5.1.0-k (ixgbe) 333 334 * Intel\ |reg| Ethernet Converged Network Adapter X710-T2L 335 336 * Firmware version: 8.00 0x80008d10 1.2766.0 337 * Device id (pf): 8086:15ff 338 * Driver version: 2.14.13 (i40e) 339 340* Intel\ |reg| platforms with Mellanox\ |reg| NICs combinations 341 342 * CPU: 343 344 * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz 345 * Intel\ |reg| Xeon\ |reg| CPU E5-2697A v4 @ 2.60GHz 346 * Intel\ |reg| Xeon\ |reg| CPU E5-2697 v3 @ 2.60GHz 347 * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz 348 * Intel\ |reg| Xeon\ |reg| CPU E5-2670 0 @ 2.60GHz 349 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v4 @ 2.20GHz 350 * Intel\ |reg| Xeon\ |reg| CPU E5-2640 @ 2.50GHz 351 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 0 @ 2.00GHz 352 * Intel\ |reg| Xeon\ |reg| CPU E5-2620 v4 @ 2.10GHz 353 354 * OS: 355 356 * Red Hat Enterprise Linux release 8.2 (Ootpa) 357 * Red Hat Enterprise Linux Server release 7.8 (Maipo) 358 * Red Hat Enterprise Linux Server release 7.6 (Maipo) 359 * Red Hat Enterprise Linux Server release 7.5 (Maipo) 360 * Red Hat Enterprise Linux Server release 7.4 (Maipo) 361 * Red Hat Enterprise Linux Server release 7.3 (Maipo) 362 * Red Hat Enterprise Linux Server release 7.2 (Maipo) 363 * Ubuntu 20.04 364 * Ubuntu 18.04 365 * Ubuntu 16.04 366 * SUSE Enterprise Linux 15 SP2 367 * SUSE Enterprise Linux 12 SP4 368 369 * OFED: 370 371 * MLNX_OFED 5.2-2.2.0.0 and above 372 * MLNX_OFED 5.1-2.5.8.0 373 374 * upstream kernel: 375 376 * Linux 5.11.0-rc7 and above 377 378 * rdma-core: 379 380 * rdma-core-33.1-1 and above 381 382 * NICs: 383 384 * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCC_Ax (2x40G) 385 386 * Host interface: PCI Express 3.0 x8 387 * Device ID: 15b3:1007 388 * Firmware version: 2.42.5000 389 390 * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCCT (2x40G) 391 392 * Host interface: PCI Express 3.0 x8 393 * Device ID: 15b3:1007 394 * Firmware version: 2.42.5000 395 396 * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 25G MCX4121A-ACAT (2x25G) 397 398 * Host interface: PCI Express 3.0 x8 399 * Device ID: 15b3:1015 400 * Firmware version: 14.29.2002 and above 401 402 * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 50G MCX4131A-GCAT (1x50G) 403 404 * Host interface: PCI Express 3.0 x8 405 * Device ID: 15b3:1015 406 * Firmware version: 14.29.2002 and above 407 408 * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX516A-CCAT (2x100G) 409 410 * Host interface: PCI Express 3.0 x16 411 * Device ID: 15b3:1017 412 * Firmware version: 16.29.2002 and above 413 414 * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-ECAT (2x100G) 415 416 * Host interface: PCI Express 3.0 x16 417 * Device ID: 15b3:1017 418 * Firmware version: 16.29.2002 and above 419 420 * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-EDAT (2x100G) 421 422 * Host interface: PCI Express 3.0 x16 423 * Device ID: 15b3:1017 424 * Firmware version: 16.29.2002 and above 425 426 * Mellanox\ |reg| ConnectX\ |reg|-5 Ex EN 100G MCX516A-CDAT (2x100G) 427 428 * Host interface: PCI Express 4.0 x16 429 * Device ID: 15b3:1019 430 * Firmware version: 16.29.2002 and above 431 432 * Mellanox\ |reg| ConnectX\ |reg|-6 Dx EN 100G MCX623106AN-CDAT (2x100G) 433 434 * Host interface: PCI Express 4.0 x16 435 * Device ID: 15b3:101d 436 * Firmware version: 22.29.2002 and above 437 438 * Mellanox\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G) 439 440 * Host interface: PCI Express 4.0 x8 441 * Device ID: 15b3:101f 442 * Firmware version: 26.29.2002 and above 443 444* Mellanox\ |reg| BlueField\ |reg| SmartNIC 445 446 * Mellanox\ |reg| BlueField\ |reg|-2 SmartNIC MT41686 - MBF2H332A-AEEOT (2x25G) 447 448 * Host interface: PCI Express 3.0 x16 449 * Device ID: 15b3:a2d2 450 * Firmware version: 24.29.2002 and above 451 452 * Embedded software: 453 454 * CentOS Linux release 7.6.1810 (AltArch) 455 * MLNX_OFED 5.2-2.2.0 and above 456 * DPDK application running on Arm cores 457 458* Intel\ |reg| platforms with Broadcom\ |reg| NICs combinations 459 460 * CPU: 461 462 * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz 463 * Intel\ |reg| Xeon\ |reg| CPU E5-2667 v3 @ 3.20GHz 464 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v2 @ 2.60GHz 465 * Intel\ |reg| Xeon\ |reg| Gold 6142 CPU @ 2.60GHz 466 * Intel\ |reg| Xeon\ |reg| CPU E3-1270 v3 @ 3.50GHz 467 * Intel\ |reg| Xeon\ |reg| Gold 6134M CPU @ 3.20GHz 468 469 * OS: 470 471 * Red Hat Enterprise Linux Server release 8.1 472 * Red Hat Enterprise Linux Server release 7.6 473 * Centos 8.1 474 * Centos 7.8 475 * Centos 7.7 476 477 * upstream kernel: 478 479 * Linux 5.3.4 480 481 * NICs: 482 483 * Broadcom\ |reg| NetXtreme-E\ |reg| Series P225p (2x25G) 484 485 * Host interface: PCI Express 3.0 x8 486 * Firmware version: 214.4.114.0 and above 487 488 * Broadcom\ |reg| NetXtreme-E\ |reg| Series P425p (4x25G) 489 490 * Host interface: PCI Express 3.0 x16 491 * Firmware version: 218.0.124.0 and above 492 493 * Broadcom\ |reg| NetXtreme-E\ |reg| Series P2100G (2x100G) 494 495 * Host interface: PCI Express 3.0 x16 496 * Firmware version: 218.0.124.0 and above 497 498 * Broadcom\ |reg| NetXtreme-E\ |reg| Series P425p (4x25G) 499 500 * Host interface: PCI Express 4.0 x16 501 * Firmware version: 218.0.124.0 and above 502 503 * Broadcom\ |reg| NetXtreme-E\ |reg| Series P2100G (2x100G) 504 505 * Host interface: PCI Express 4.0 x16 506 * Firmware version: 218.0.124.0 and above 507 508* Broadcom\ |reg| NetXtreme-S\ |reg| Series SmartNIC 509 510 * Broadcom\ |reg| NetXtreme-S\ |reg| Series PS225-H16 SmartNIC (2x25G) 511 512 * Host interface: PCI Express 3.0 x8 513 * Firmware version: 218.1.143.0 514 515 * Embedded software: 516 517 * Broadcom Yocto Linux 518 * Kernel version: 4.14.196 519 * DPDK application running on 8 Arm Cortex-A72 cores 520 521* NXP ARMv8 SoCs (with integrated NICs) 522 523 * SoC: 524 525 * LX2xxx, LS2xxx, LS10xx 526 527 * OS (based on NXP LSDK-20.04): 528 529 * Kernel version: 4.19.90 530 * Kernel version: 5.4.47 531 * Ubuntu 18.04 532