1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright 2021 The DPDK contributors 3 4.. include:: <isonum.txt> 5 6DPDK Release 21.05 7================== 8 9New Features 10------------ 11 12* **Added support for GCC 11 and clang 12.** 13 14 Added support for building with GCC 11.1.1 and clang 12.0.0. 15 16* **Added support for Alpine Linux with musl libc.** 17 18 Added initial support for building DPDK, without modification, 19 on Alpine Linux using musl libc and busybox. 20 21* **Added phase-fair lock.** 22 23 Added support for a Phase-fair lock. This provides fairness guarantees. 24 It has two ticket pools, one for readers and one for writers. 25 26* **Added support for Marvell CN10K SoC drivers.** 27 28 Added Marvell CN10K SoC support. Marvell CN10K SoCs are based on the Octeon 10 29 family of ARM64 processors with the ARM Neoverse N2 core with accelerators for 30 packet processing, timers, cryptography, etc. 31 32 * Added common/cnxk driver consisting of a common API to be used by 33 net, crypto and event PMDs. 34 * Added mempool/cnxk driver which provides the support for the integrated 35 mempool device. 36 * Added event/cnxk driver which provides the support for the integrated event 37 device. 38 39* **Added enhanced ethdev representor syntax.** 40 41 * Introduced representor type of VF, SF and PF. 42 * Added support for sub-function and multi-host in representor syntax:: 43 44 representor=# [0,2-4] /* Legacy VF compatible. */ 45 representor=[[c#]pf#]vf# c1pf2vf3 /* VF 3 on PF 2 of controller 1. */ 46 representor=[[c#]pf#]sf# sf[0,2-1023] /* 1023 SFs. */ 47 representor=[c#]pf# c2pf[0,1] /* 2 PFs on controller 2. */ 48 49* **Added queue state in queried Rx/Tx queue info.** 50 51 * Added new field ``queue_state`` to the ``rte_eth_rxq_info`` structure to 52 provide the indicated Rx queue state. 53 * Added new field ``queue_state`` to the ``rte_eth_txq_info`` structure to 54 provide the indicated Tx queue state. 55 56* **Updated meter API.** 57 58 * Added packet mode in the meter profile parameters data structures 59 to support metering traffic by packet per second (PPS), 60 in addition to the initial bytes per second (BPS) mode (value 0). 61 * Added support for pre-defined meter policy via flow action list per color. 62 63* **Added packet integrity match to flow rules.** 64 65 * Added ``RTE_FLOW_ITEM_TYPE_INTEGRITY`` flow item. 66 * Added ``rte_flow_item_integrity`` data structure. 67 68* **Added TCP connection tracking offload in flow API.** 69 70 * Added conntrack item and action for stateful connection offload. 71 72* **Updated Amazon ENA PMD.** 73 74 The new driver version (v2.3.0) introduced bug fixes and improvements, 75 including: 76 77 * Changed ``memcpy()`` mapping to the dpdk-optimized version. 78 * Updated ena_com (HAL) to the latest version. 79 * Added indication of the RSS hash presence in the mbuf. 80 81* **Updated Arkville PMD.** 82 83 Updated Arkville net driver with new features and improvements, including: 84 85 * Generalized passing meta data between PMD and FPGA, allowing up to 20 86 bytes of user specified information in RX and TX paths. 87 88 * Updated dynamic PMD extensions API using standardized names. 89 90 * Added support for new Atomic Rules PCI device IDs ``0x100f, 0x1010, 0x1017, 91 0x1018, 0x1019``. 92 93* **Updated Broadcom bnxt driver.** 94 95 * Updated HWRM structures to 1.10.2.15 version. 96 97* **Updated Hisilicon hns3 driver.** 98 99 * Added support for module EEPROM dumping. 100 * Added support for freeing Tx mbuf on demand. 101 * Added support for copper port in Kunpeng930. 102 * Added support for runtime config to select IO burst function. 103 * Added support for outer UDP checksum in Kunpeng930. 104 * Added support for query Tx descriptor status. 105 * Added support for query Rx descriptor status. 106 * Added support for IEEE 1588 PTP. 107 108* **Updated Intel iavf driver.** 109 110 Updated the Intel iavf driver with new features and improvements, including: 111 112 * Added flow filter to support GTPU inner L3/L4 field matching. 113 * In AVX512 code, added the new RX and TX paths to use the HW offload 114 features. When the HW offload features are configured to be used, the 115 offload paths are chosen automatically. In parallel the support for HW 116 offload features was removed from the legacy AVX512 paths. 117 118* **Updated Intel ice driver.** 119 120 * Added Intel ice support on Windows. 121 * Added GTPU TEID support for DCF switch filter. 122 * Added flow priority support for DCF switch filter. 123 124* **Updated Marvell OCTEON TX2 ethdev driver.** 125 126 * Added support for flow action port id. 127 128* **Updated Mellanox mlx5 driver.** 129 130 Updated the Mellanox mlx5 driver with new features and improvements, including: 131 132 * Added support for matching on packet integrity status. 133 * Added support for VXLAN and NVGRE encap as sample actions. 134 * Added support for flow COUNT action handle. 135 * Support push VLAN on ingress traffic and pop VLAN on egress traffic in E-Switch mode. 136 * Added support for pre-defined meter policy API. 137 * Added support for ASO (Advanced Steering Operation) meter. 138 * Added support for ASO metering by PPS (packet per second). 139 * Added support for the monitor policy of Power Management API. 140 * Added support for connection tracking. 141 * Added support for Sub-Function representors. 142 143* **Updated NXP DPAA driver.** 144 145 * Added support for shared ethernet interface. 146 * Added support for external buffers in Tx. 147 148* **Updated NXP DPAA2 driver.** 149 150 * Added support for traffic management. 151 * Added support for configurable Tx confirmation. 152 * Added support for external buffers in Tx. 153 154* **Updated Wangxun txgbe driver.** 155 156 * Added support for txgbevf PMD. 157 * Support device arguments to handle AN training for backplane NICs. 158 * Added support for VXLAN-GPE. 159 160* **Enabled vmxnet3 PMD on Windows.** 161 162* **Enabled libpcap-based PMD on Windows.** 163 164 Enabled libpcap-based PMD support on Windows. 165 A libpcap distribution, such as Npcap or WinPcap, is required to run the PMD. 166 167* **Updated the AF_XDP driver.** 168 169 * Added support for preferred busy polling. 170 171* **Added support for vhost async packed ring data path.** 172 173 Added packed ring support for async vhost. 174 175* **Added support of multiple data-units in the cryptodev API.** 176 177 The cryptodev library has been enhanced to allow operations on multiple 178 data-units for the AES-XTS algorithm. The data-unit length should be set in the 179 transformation. A capability for it was added too. 180 181* **Added a cryptodev feature flag to support cipher wrapped keys.** 182 183 A new feature flag has been added to allow applications to provide 184 cipher wrapped keys in session xforms. 185 186* **Updated the OCTEON TX crypto PMD.** 187 188 * Added support for ``DIGEST_ENCRYPTED`` mode in the OCTEON TX crypto PMD. 189 190* **Updated the OCTEON TX2 crypto PMD.** 191 192 * Added support for ``DIGEST_ENCRYPTED`` mode in OCTEON TX2 crypto PMD. 193 * Added support in lookaside protocol offload mode for IPsec with 194 UDP encapsulation support for NAT Traversal. 195 * Added support in lookaside protocol offload mode for IPsec with 196 IPv4 transport mode. 197 198* **Updated Intel QuickAssist compression PMD.** 199 200 * The compression is now available on all QAT GEN3 devices 201 that support it in hardware. 202 203* **Updated Mellanox RegEx PMD.** 204 205 * Added support for multi-segments mbuf. 206 207* **Introduced period timer mode in eventdev timer adapter.** 208 209 * Added support for periodic timer mode in eventdev timer adapter. 210 * Added support for periodic timer mode in octeontx2 event device driver. 211 212* **Added event device vector capability.** 213 214 * Added the ``rte_event_vector`` data structure which is capable of holding 215 multiple ``uintptr_t`` of the same flow thereby allowing applications 216 to vectorize their pipelines and also reduce the complexity of pipelining 217 the events across multiple stages. 218 * This also reduced the scheduling overhead on a event device. 219 220* **Enhanced crypto adapter forward mode.** 221 222 * Added ``rte_event_crypto_adapter_enqueue()`` API to enqueue events to the 223 crypto adapter if forward mode is supported by the driver. 224 * Added support for crypto adapter forward mode in octeontx2 event and crypto 225 device driver. 226 227* **Updated Intel DLB2 driver.** 228 229 * Added support for the DLB v2.5 device. 230 231* **Added Predictable RSS functionality to the Toeplitz hash library.** 232 233 Added feature for finding collisions of the Toeplitz hash function - 234 the hash function used in NICs to spread the traffic among the queues. 235 It can be used to get predictable mapping of the flows. 236 237* **Updated testpmd.** 238 239 * Added a command line option to configure forced speed for an Ethernet port: 240 ``dpdk-testpmd -- --eth-link-speed N``. 241 * Added command to show link flow control info: 242 ``show port (port_id) flow_ctrl``. 243 * Added command to display Rx queue used descriptor count: 244 ``show port (port_id) rxq (queue_id) desc used count``. 245 * Added command to cleanup a Tx queue's mbuf on a port: 246 ``port cleanup (port_id) txq (queue_id) (free_cnt)``. 247 * Added command to dump internal representation information of a single flow: 248 ``flow dump (port_id) rule (rule_id)``. 249 * Added commands to create and delete meter policy: 250 ``add port meter policy (port_id) (policy_id) ...``. 251 * Added commands to construct conntrack context and relevant indirect 252 action handle creation, update for conntrack action as well as conntrack 253 item matching. 254 * Added commands for action meter color to color the packet to reflect 255 the meter color result: 256 ``color type (green|yellow|red)``. 257 258* **Added support for the FIB lookup method in the l3fwd example app.** 259 260 Added support to the l3fwd application to support 261 the Forwarding Information Base (FIB) lookup method. 262 Previously l3fwd only supported the LPM and Exact Match lookup methods. 263 264* **Updated the ipsec-secgw sample application.** 265 266 * Updated the ``ipsec-secgw`` sample application with UDP encapsulation 267 support for NAT Traversal. 268 269* **Added sub-testsuite support.** 270 271 * The unit test suite struct now supports having both a nested 272 list of sub-testsuites, and a list of testcases as before. 273 274 275Removed Items 276------------- 277 278* Removed support for Intel DLB V1 hardware. This is not a broad market device, 279 and existing customers already obtain the source code directly from Intel. 280 281 282API Changes 283----------- 284 285* eal: The experimental TLS API added in ``rte_thread.h`` has been renamed 286 from ``rte_thread_tls_*`` to ``rte_thread_*`` to avoid naming redundancy 287 and confusion with the transport layer security term. 288 289* pci: The value ``PCI_ANY_ID`` is marked as deprecated 290 and can be replaced with ``RTE_PCI_ANY_ID``. 291 292* ethdev: Added a ``rte_flow`` pointer parameter to the function 293 ``rte_flow_dev_dump()`` allowing dumping of a single flow. 294 295* cryptodev: The experimental raw data path API for dequeue 296 ``rte_cryptodev_raw_dequeue_burst`` got a new parameter 297 ``max_nb_to_dequeue`` to provide flexible control on dequeue. 298 299* ethdev: The experimental flow API for shared action has been generalized 300 as a flow action handle used in rules through an indirect action. 301 The functions ``rte_flow_shared_action_*`` manipulating the action object 302 are replaced with ``rte_flow_action_handle_*``. 303 The action ``RTE_FLOW_ACTION_TYPE_SHARED`` is deprecated and can be 304 replaced with ``RTE_FLOW_ACTION_TYPE_INDIRECT``. 305 306* ethdev: The experimental function ``rte_mtr_policer_actions_update()``, 307 the enum ``rte_mtr_policer_action``, and the struct members 308 ``policer_action_recolor_supported`` and ``policer_action_drop_supported`` 309 have been removed. 310 311* vhost: The vhost library currently populates received mbufs from a virtio 312 driver with Tx offload flags while not filling Rx offload flags. 313 While this behavior is arguable, it is kept untouched. 314 A new flag ``RTE_VHOST_USER_NET_COMPLIANT_OL_FLAGS`` has been added to ask 315 for a behavior compliant with the mbuf offload API. 316 317* stack: Lock-free ``rte_stack`` no longer silently ignores push and pop when 318 it's not supported on the current platform. Instead ``rte_stack_create()`` 319 fails and ``rte_errno`` is set to ``ENOTSUP``. 320 321* raw/ioat: The experimental function ``rte_ioat_completed_ops()`` now 322 supports two additional parameters, ``status`` and ``num_unsuccessful``, 323 to allow the reporting of errors from hardware when performing copy 324 operations. 325 326 327ABI Changes 328----------- 329 330* No ABI change that would break compatibility with 20.11. 331 332* The experimental function ``rte_telemetry_legacy_register`` has been 333 removed from the public API and is now an internal-only function. This 334 function was already marked as internal in the API documentation for it, 335 and was not for use by external applications. 336 337 338Tested Platforms 339---------------- 340 341* Intel\ |reg| platforms with Intel\ |reg| NICs combinations 342 343 * CPU 344 345 * Intel\ |reg| Atom\ |trade| CPU C3758 @ 2.20GHz 346 * Intel\ |reg| Atom\ |trade| CPU C3958 @ 2.00GHz 347 * Intel\ |reg| Xeon\ |reg| CPU D-1541 @ 2.10GHz 348 * Intel\ |reg| Xeon\ |reg| CPU D-1553N @ 2.30GHz 349 * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz 350 * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v3 @ 2.30GHz 351 * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @ 2.20GHz 352 * Intel\ |reg| Xeon\ |reg| Gold 6140M CPU @ 2.30GHz 353 * Intel\ |reg| Xeon\ |reg| Gold 6139 CPU @ 2.30GHz 354 * Intel\ |reg| Xeon\ |reg| Gold 6252N CPU @ 2.30GHz 355 * Intel\ |reg| Xeon\ |reg| Platinum 8180 CPU @ 2.50GHz 356 * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz 357 358 * OS: 359 360 * CentOS 8.3 361 * CentOS Stream 8 362 * Fedora 33 363 * FreeBSD 12.1 364 * OpenWRT 19.07.4 365 * Red Hat Enterprise Linux Server release 8.3 366 * Suse 15 SP2 367 * Ubuntu 20.04 368 * Ubuntu 21.04 369 370 * NICs: 371 372 * Intel\ |reg| Ethernet Controller E810-C for SFP (4x25G) 373 374 * Firmware version: 3.00 375 * Device id (pf/vf): 8086:1593 / 8086:1889 376 * Driver version: 1.6.0 (ice) 377 * OS Default DDP: 1.3.26.0 378 * COMMS DDP: 1.3.30.0 379 * Wireless Edge DDP: 1.3.6.0 380 381 * Intel\ |reg| Ethernet Controller E810-C for QSFP (2x100G) 382 383 * Firmware version: 3.00 384 * Device id (pf/vf): 8086:1592 / 8086:1889 385 * Driver version: 1.6.0 (ice) 386 * OS Default DDP: 1.3.26.0 387 * COMMS DDP: 1.3.30.0 388 * Wireless Edge DDP: 1.3.6.0 389 390 * Intel\ |reg| 82599ES 10 Gigabit Ethernet Controller 391 392 * Firmware version: 0x61bf0001 393 * Device id (pf/vf): 8086:10fb / 8086:10ed 394 * Driver version: 5.1.0-k (ixgbe) 395 396 * Intel\ |reg| Corporation Ethernet Connection X552/X557-AT 10GBASE-T 397 398 * Firmware version: 0x800003e7 399 * Device id (pf/vf): 8086:15ad / 8086:15a8 400 * Driver version: 5.1.0-k (ixgbe) 401 402 * Intel\ |reg| Corporation Ethernet Controller 10G X550T 403 404 * Firmware version: 0x8000113b 405 * Device id (pf): 8086:1563 406 * Driver version: 5.11.3 (ixgbe) 407 408 * Intel\ |reg| Ethernet Converged Network Adapter X710-DA4 (4x10G) 409 410 * Firmware version: 8.30 0x8000a49d 1.2926.0 411 * Device id (pf/vf): 8086:1572 / 8086:154c 412 * Driver version: 2.15.9 (i40e) 413 414 * Intel\ |reg| Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G) 415 416 * Firmware version: 5.30 0x80002a29 1.2527.0 417 * Device id (pf/vf): 8086:37d0 / 8086:37cd 418 * Driver version: 2.15.9 (i40e) 419 420 * Intel\ |reg| Corporation Ethernet Connection X722 for 10GBASE-T (2x10G) 421 422 * Firmware version: 4.10 0x80001a7a 423 * Device id (pf/vf): 8086:37d2 / 8086:37cd 424 * Driver version: 2.15.9 (i40e) 425 426 * Intel\ |reg| Ethernet Converged Network Adapter XXV710-DA2 (2x25G) 427 428 * Firmware version: 8.30 0x8000a485 1.2926.0 429 * Device id (pf/vf): 8086:158b / 8086:154c 430 * Driver version: 2.15.9 (i40e) 431 432 * Intel\ |reg| Ethernet Converged Network Adapter XL710-QDA2 (2X40G) 433 434 * Firmware version: 8.30 0x8000a4ae 1.2926.0 435 * Device id (pf/vf): 8086:1583 / 8086:154c 436 * Driver version: 2.15.9 (i40e) 437 438 * Intel\ |reg| Corporation I350 Gigabit Network Connection 439 440 * Firmware version: 1.63, 0x80001001 441 * Device id (pf/vf): 8086:1521 / 8086:1520 442 * Driver version: 4.18.0-277.el8.x86_64 (igb) 443 444 * Intel\ |reg| Corporation I210 Gigabit Network Connection 445 446 * Firmware version: 3.25, 0x800006eb 447 * Device id (pf): 8086:1533 448 * Driver version: 5.5.2 (igb) 449 450 * Intel\ |reg| Ethernet Controller 10-Gigabit X540-AT2 451 452 * Firmware version: 0x800005f9 453 * Device id (pf): 8086:1528 454 * Driver version: 4.18.0-277.el8.x86_64 (ixgbe) 455 456 * Intel\ |reg| Ethernet Converged Network Adapter X710-T2L 457 458 * Firmware version: 8.30 0x8000a489 1.2926.0 459 * Device id (pf): 8086:15ff 460 * Driver version: 2.15.9 (i40e) 461 462* Intel\ |reg| platforms with Mellanox\ |reg| NICs combinations 463 464 * CPU: 465 466 * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz 467 * Intel\ |reg| Xeon\ |reg| CPU E5-2697A v4 @ 2.60GHz 468 * Intel\ |reg| Xeon\ |reg| CPU E5-2697 v3 @ 2.60GHz 469 * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz 470 * Intel\ |reg| Xeon\ |reg| CPU E5-2670 0 @ 2.60GHz 471 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v4 @ 2.20GHz 472 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v3 @ 2.30GHz 473 * Intel\ |reg| Xeon\ |reg| CPU E5-2640 @ 2.50GHz 474 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 0 @ 2.00GHz 475 * Intel\ |reg| Xeon\ |reg| CPU E5-2620 v4 @ 2.10GHz 476 477 * OS: 478 479 * Red Hat Enterprise Linux release 8.2 (Ootpa) 480 * Red Hat Enterprise Linux Server release 7.8 (Maipo) 481 * Red Hat Enterprise Linux Server release 7.6 (Maipo) 482 * Red Hat Enterprise Linux Server release 7.5 (Maipo) 483 * Red Hat Enterprise Linux Server release 7.4 (Maipo) 484 * Red Hat Enterprise Linux Server release 7.3 (Maipo) 485 * Red Hat Enterprise Linux Server release 7.2 (Maipo) 486 * Ubuntu 20.04 487 * Ubuntu 18.04 488 * Ubuntu 16.04 489 * SUSE Enterprise Linux 15 SP2 490 * SUSE Enterprise Linux 12 SP4 491 492 * OFED: 493 494 * MLNX_OFED 5.3-1.0.0.1 and above 495 * MLNX_OFED 5.2-2.2.0.0 496 497 * upstream kernel: 498 499 * Linux 5.13.0-rc1 and above 500 501 * rdma-core: 502 503 * rdma-core-35.0-1 and above 504 505 * NICs: 506 507 * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCC_Ax (2x40G) 508 509 * Host interface: PCI Express 3.0 x8 510 * Device ID: 15b3:1007 511 * Firmware version: 2.42.5000 512 513 * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCCT (2x40G) 514 515 * Host interface: PCI Express 3.0 x8 516 * Device ID: 15b3:1007 517 * Firmware version: 2.42.5000 518 519 * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 25G MCX4121A-ACAT (2x25G) 520 521 * Host interface: PCI Express 3.0 x8 522 * Device ID: 15b3:1015 523 * Firmware version: 14.30.1004 and above 524 525 * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 50G MCX4131A-GCAT (1x50G) 526 527 * Host interface: PCI Express 3.0 x8 528 * Device ID: 15b3:1015 529 * Firmware version: 14.30.1004 and above 530 531 * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX516A-CCAT (2x100G) 532 533 * Host interface: PCI Express 3.0 x16 534 * Device ID: 15b3:1017 535 * Firmware version: 16.30.1004 and above 536 537 * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-ECAT (2x100G) 538 539 * Host interface: PCI Express 3.0 x16 540 * Device ID: 15b3:1017 541 * Firmware version: 16.30.1004 and above 542 543 * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-EDAT (2x100G) 544 545 * Host interface: PCI Express 3.0 x16 546 * Device ID: 15b3:1017 547 * Firmware version: 16.30.1004 and above 548 549 * Mellanox\ |reg| ConnectX\ |reg|-5 Ex EN 100G MCX516A-CDAT (2x100G) 550 551 * Host interface: PCI Express 4.0 x16 552 * Device ID: 15b3:1019 553 * Firmware version: 16.30.1004 and above 554 555 * Mellanox\ |reg| ConnectX\ |reg|-6 Dx EN 100G MCX623106AN-CDAT (2x100G) 556 557 * Host interface: PCI Express 4.0 x16 558 * Device ID: 15b3:101d 559 * Firmware version: 22.30.1004 and above 560 561 * Mellanox\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G) 562 563 * Host interface: PCI Express 4.0 x8 564 * Device ID: 15b3:101f 565 * Firmware version: 26.30.1004 and above 566 567* Mellanox\ |reg| BlueField\ |reg| SmartNIC 568 569 * Mellanox\ |reg| BlueField\ |reg|-2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G) 570 571 * Host interface: PCI Express 3.0 x16 572 * Device ID: 15b3:a2d2 573 * Firmware version: 24.30.1004 and above 574 575 * Embedded software: 576 577 * CentOS Linux release 8.2.2004 (Core) 578 * MLNX_OFED 5.3-1.0.0 and above 579 * DPDK application running on Arm cores 580