1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright 2020 The DPDK contributors 3 4.. include:: <isonum.txt> 5 6DPDK Release 20.08 7================== 8 9New Features 10------------ 11 12* **Added non-EAL threads registration API.** 13 14 Added a new API to register non-EAL threads as lcores. This can be used by 15 applications to have its threads known to DPDK without suffering from the 16 non-EAL previous limitations in terms of performance. 17 18* **rte_*mb APIs are updated to use the DMB instruction for ARMv8.** 19 20 ARMv8 memory model has been strengthened to require other-multi-copy 21 atomicity. This allows for using the DMB instruction instead of DSB for IO 22 barriers. The rte_*mb APIs, for ARMv8 platforms, have changed to use the DMB 23 instruction to reflect this. 24 25* **Added support for RTS and HTS modes into mempool ring driver.** 26 27 Added the ability to select new ring synchronisation modes: 28 ``relaxed tail sync (ring_mt_rts)`` and ``head/tail sync (ring_mt_hts)`` 29 via the mempool ops API. 30 31* **Added the support for vfio-pci new VF token interface.** 32 33 From Linux 5.7, vfio-pci supports to bind both SR-IOV PF and the created 34 VFs, where it uses a shared VF token (UUID) to represent the collaboration 35 between PF and VFs. The DPDK PCI driver has been updated to gain the access 36 to the PF and VFs devices by appending the VF token parameter. 37 38* **Added the RegEx Library, a generic RegEx service library.** 39 40 Added the RegEx library which provides an API for offload of regular 41 expressions search operations to hardware or software accelerator devices. 42 43 Added Mellanox RegEx PMD, allowing to offload RegEx searches. 44 45* **Added vhost async data path APIs.** 46 47 4 new APIs have been added to enable vhost async data path, including: 48 49 * Async device channel register/unregister APIs. 50 * Async packets enqueue/completion APIs (only split ring was implemented). 51 52* **Added vDPA device APIs to query virtio queue statistics.** 53 54 Added new vDPA APIs to query virtio queue statistics, to get their names and 55 to reset them. 56 57* **Updated Mellanox mlx5 vDPA driver.** 58 59 Updated Mellanox mlx5 vDPA driver with new features, including: 60 61 * Added support for virtio queue statistics. 62 * Added support for MTU update. 63 64* **Added eCPRI protocol support in rte_flow.** 65 66 The ``ECPRI`` item has been added to support eCPRI packet offloading for 67 5G network. 68 69* **Introduced send packet scheduling based on timestamps.** 70 71 Added a new mbuf dynamic field and flag to provide a timestamp on which 72 packet transmitting can be synchronized. A device Tx offload flag has been 73 added to indicate the PMD supports send scheduling. 74 75* **Updated PCAP driver.** 76 77 Updated PCAP driver with new features and improvements, including: 78 79 * Support software Tx nanosecond timestamps precision. 80 81* **Updated Broadcom bnxt driver.** 82 83 Updated the Broadcom bnxt driver with new features and improvements, including: 84 85 * Added support for VF representors. 86 * Added support for multiple devices. 87 * Added support for new resource manager API. 88 * Added support for VXLAN encap/decap. 89 * Added support for rte_flow_query for COUNT action. 90 * Added support for rx_burst_mode_get and tx_burst_mode_get. 91 * Added vector mode support for ARM CPUs. 92 * Added support for VLAN push and pop actions. 93 * Added support for NAT action items. 94 * Added TruFlow hash API for common hash uses across TruFlow core functions. 95 96* **Updated Cisco enic driver.** 97 98 * Added support for VLAN push and pop flow actions. 99 100* **Updated Hisilicon hns3 driver.** 101 102 * Added support for 200G speed rate. 103 * Added support for copper media type. 104 * Added support for keeping CRC. 105 * Added support for LRO. 106 * Added support for setting VF PVID by PF driver. 107 108* **Updated Intel ice driver.** 109 110 Updated the Intel ice driver with new features and improvements, including: 111 112 * Added support for DCF datapath configuration. 113 * Added support for more PPPoE packet type for switch filter. 114 * Added RSS support for IPv6 32bit, 48bit, 64bit prefix. 115 * Added RSS support for GTPU, L2TP, ESP, AH, PFCP and PPPoE. 116 * Added support for FDIR filter by GTPU outer IPv4 and IPv6. 117 118* **Updated Intel iavf driver.** 119 120 Updated iavf PMD with new features and improvements, including: 121 122 * Added support for FDIR filter by GTPU outer IPv4 and IPv6. 123 * Added IPv6 RSS support for GTPU. 124 125* **Updated Intel i40e driver.** 126 127 Updated i40e PMD with new features and improvements, including: 128 129 * Supported cloud filter for IPv4/6_TCP/UDP/SCTP with SRC port only or DST port only. 130 * Re-implemented ``get_fdir_info`` and ``get_fdir_stat`` in private API. 131 * Re-implemented ``set_gre_key_len`` in private API. 132 * Added support for flow query RSS. 133 134* **Updated Intel ixgbe driver.** 135 136 Updated the Intel ixgbe driver with new features and improvements, including: 137 138 * Re-implemented ``get_fdir_info`` and ``get_fdir_stat`` in private API. 139 140* **Updated Marvell octeontx2 ethdev PMD.** 141 142 Updated Marvell octeontx2 driver with cn98xx support. 143 144* **Updated Mellanox mlx5 net driver and common layer.** 145 146 Updated Mellanox mlx5 driver with new features and improvements, including: 147 148 * Added mlx5 PCI layer to share a PCI device among multiple PMDs. 149 * Added support for eCPRI protocol offloading. 150 * Added devargs options ``reclaim_mem_mode``, ``sys_mem_en``, 151 ``lacp_by_user`` and ``decap_en``. 152 153* **Updated NXP dpaa ethdev PMD.** 154 155 Updated the NXP dpaa ethdev with new features and improvements, including: 156 157 * Added support for link status and interrupt. 158 * Added support to use datapath APIs from non-EAL pthread. 159 160* **Updated NXP dpaa2 ethdev PMD.** 161 162 Updated the NXP dpaa2 ethdev with new features and improvements, including: 163 164 * Added support to use datapath APIs from non-EAL pthread. 165 * Added support for dynamic flow management. 166 167* **Added DOCSIS protocol to rte_security.** 168 169 Added support for combined crypto and CRC operations for the DOCSIS protocol 170 to ``rte_security`` API. 171 172* **Updated the AESNI MB crypto PMD.** 173 174 Added support for lookaside protocol offload for DOCSIS through the 175 ``rte_security`` API. 176 177* **Updated the QuickAssist Technology (QAT) PMD.** 178 179 * Added support for lookaside protocol offload in QAT crypto PMD 180 for DOCSIS through the ``rte_security`` API. 181 * Added Chacha20-Poly1305 AEAD algorithm in QAT crypto PMD. 182 * Improved handling of multi process in QAT crypto and compression PMDs. 183 * Added support for Intel GEN2 QuickAssist device 200xx 184 (PF device id 0x18ee, VF device id 0x18ef). 185 186* **Updated the OCTEON TX2 crypto PMD.** 187 188 * Added Chacha20-Poly1305 AEAD algorithm support in OCTEON TX2 crypto PMD. 189 190 * Updated the OCTEON TX2 crypto PMD to support ``rte_security`` lookaside 191 protocol offload for IPsec. 192 193* **Added support for BPF_ABS/BPF_IND load instructions.** 194 195 Added support for two BPF non-generic instructions: 196 ``(BPF_ABS | <size> | BPF_LD)`` and ``(BPF_IND | <size> | BPF_LD)`` 197 which are used to access packet data in a safe manner. Currently JIT support 198 for these instructions is implemented for x86 only. 199 200* **Added new testpmd forward mode.** 201 202 Added new ``5tswap`` forward mode to testpmd. 203 the ``5tswap`` swaps source and destination in layers 2,3,4 204 for ipv4 and ipv6 in L3 and UDP and TCP in L4. 205 206* **Added flow performance test application.** 207 208 Added new application to test ``rte_flow`` performance, including: 209 210 * Measure ``rte_flow`` insertion rate. 211 * Measure ``rte_flow`` deletion rate. 212 * Dump ``rte_flow`` memory consumption. 213 * Measure packet per second forwarding. 214 215* **Added --portmap command line parameter to l2fwd example.** 216 217 Added new command line option ``--portmap="(port, port)[,(port, port)]"`` to 218 pass forwarding port details. 219 See the :doc:`../sample_app_ug/l2_forward_real_virtual` for more 220 details of this parameter usage. 221 222* **Updated ipsec-secgw sample application.** 223 224 Added ``rte_flow`` based rules, which allows hardware parsing and steering 225 of ingress packets to specific NIC queues. 226 See the :doc:`../sample_app_ug/ipsec_secgw` for more details. 227 228 229Removed Items 230------------- 231 232* Removed ``RTE_KDRV_NONE`` based PCI device driver probing. 233 234 235API Changes 236----------- 237 238* ``rte_page_sizes`` enumeration is replaced with ``RTE_PGSIZE_xxx`` defines. 239 240* vhost: The API of ``rte_vhost_host_notifier_ctrl`` was changed to be per 241 queue and not per device, a qid parameter was added to the arguments list. 242 243 244ABI Changes 245----------- 246 247* No ABI change that would break compatibility with 19.11. 248 249 250Known Issues 251------------ 252 253* **mlx5 PMD does not work on Power 9 with OFED 5.1-0.6.6.0.** 254 255 Consider using the newer OFED releases, the previous 256 OFED 5.0-2.1.8.0, or upstream rdma-core library v29 and above. 257 258 259Tested Platforms 260---------------- 261 262* Intel\ |reg| platforms with Intel\ |reg| NICs combinations 263 264 * CPU 265 266 * Intel\ |reg| Atom\ |trade| CPU C3758 @ 2.20GHz 267 * Intel\ |reg| Atom\ |trade| CPU C3858 @ 2.00GHz 268 * Intel\ |reg| Atom\ |trade| CPU C3958 @ 2.00GHz 269 * Intel\ |reg| Xeon\ |reg| CPU D-1541 @ 2.10GHz 270 * Intel\ |reg| Xeon\ |reg| CPU D-1553N @ 2.30GHz 271 * Intel\ |reg| Xeon\ |reg| CPU E5-2680 0 @ 2.70GHz 272 * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz 273 * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v3 @ 2.30GHz 274 * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @ 2.20GHz 275 * Intel\ |reg| Xeon\ |reg| Gold 5218N CPU @ 2.30GHz 276 * Intel\ |reg| Xeon\ |reg| Gold 6139 CPU @ 2.30GHz 277 * Intel\ |reg| Xeon\ |reg| Gold 6252N CPU @ 2.30GHz 278 * Intel\ |reg| Xeon\ |reg| Platinum 8180 CPU @ 2.50GHz 279 * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz 280 281 * OS: 282 283 * CentOS 7.7 284 * CentOS 8.0 285 * CentOS 8.2 286 * Fedora 32 287 * FreeBSD 12.1 288 * OpenWRT 19.07 289 * Red Hat Enterprise Linux Server release 8.2 290 * Suse15 SP1 291 * Ubuntu 16.04 292 * Ubuntu 18.04 293 * Ubuntu 20.04 294 295 * NICs: 296 297 * Intel\ |reg| 82599ES 10 Gigabit Ethernet Controller 298 299 * Firmware version: 0x61bf0001 300 * Device id (pf/vf): 8086:10fb / 8086:10ed 301 * Driver version: 5.7.1 (ixgbe) 302 303 * Intel\ |reg| Corporation Ethernet Connection X552/X557-AT 10GBASE-T 304 305 * Firmware version: 0x800003e7 306 * Device id (pf/vf): 8086:15ad / 8086:15a8 307 * Driver version: 5.1.0-k (ixgbe) 308 309 * Intel\ |reg| Corporation Ethernet Controller 10G X550T 310 311 * Firmware version: 0x80000482 312 * Device id (pf): 8086:1563 313 * Driver version: 5.7.1 (ixgbe) 314 315 * Intel\ |reg| Ethernet Converged Network Adapter X710-DA4 (4x10G) 316 317 * Firmware version: 7.20 0x800079e8 1.2585.0 318 * Device id (pf/vf): 8086:1572 / 8086:154c 319 * Driver version: 2.12.6 (i40e) 320 321 * Intel\ |reg| Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G) 322 323 * Firmware version: 4.11 0x80001def 1.1999.0 324 * Device id (pf/vf): 8086:37d0 / 8086:37cd 325 * Driver version: 2.12.6 (i40e) 326 327 * Intel\ |reg| Corporation Ethernet Connection X722 for 10GBASE-T (2x10G) 328 329 * Firmware version: 4.10 0x80001a7a 330 * Device id (pf/vf): 8086:37d2 / 8086:37cd 331 * Driver version: 2.12.6 (i40e) 332 333 * Intel\ |reg| Ethernet Converged Network Adapter XXV710-DA2 (2x25G) 334 335 * Firmware version: 7.30 0x800080a2 1.2658.0 336 * Device id (pf/vf): 8086:158b / 8086:154c 337 * Driver version: 2.12.6 (i40e) 338 339 * Intel\ |reg| Ethernet Converged Network Adapter XL710-QDA2 (2X40G) 340 341 * Firmware version: 7.30 0x800080ab 1.2658.0 342 * Device id (pf/vf): 8086:1583 / 8086:154c 343 * Driver version: 2.12.6 (i40e) 344 345 * Intel\ |reg| Corporation I350 Gigabit Network Connection 346 347 * Firmware version: 1.63, 0x80000cbc 348 * Device id (pf/vf): 8086:1521 / 8086:1520 349 * Driver version: 5.4.0-k (igb) 350 351 * Intel\ |reg| Corporation I210 Gigabit Network Connection 352 353 * Firmware version: 3.25, 0x800006eb 354 * Device id (pf): 8086:1533 355 * Driver version: 5.4.0-k (igb) 356 357 * Intel\ |reg| Ethernet Controller 10-Gigabit X540-AT2 358 359 * Firmware version: 0x800005f9 360 * Device id (pf): 8086:1528 361 * Driver version: 5.1.0-k (ixgbe) 362 363 * Intel\ |reg| Ethernet Converged Network Adapter X710-T2L 364 365 * Firmware version: 7.30 0x80008061 1.2585.0 366 * Device id (pf): 8086:15ff 367 * Driver version: 2.12.6(i40e) 368 369* Intel\ |reg| platforms with Mellanox\ |reg| NICs combinations 370 371 * CPU: 372 373 * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz 374 * Intel\ |reg| Xeon\ |reg| CPU E5-2697A v4 @ 2.60GHz 375 * Intel\ |reg| Xeon\ |reg| CPU E5-2697 v3 @ 2.60GHz 376 * Intel\ |reg| Xeon\ |reg| CPU E5-2680 v2 @ 2.80GHz 377 * Intel\ |reg| Xeon\ |reg| CPU E5-2670 0 @ 2.60GHz 378 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v4 @ 2.20GHz 379 * Intel\ |reg| Xeon\ |reg| CPU E5-2640 @ 2.50GHz 380 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 0 @ 2.00GHz 381 * Intel\ |reg| Xeon\ |reg| CPU E5-2620 v4 @ 2.10GHz 382 383 * OS: 384 385 * Red Hat Enterprise Linux release 8.2 (Ootpa) 386 * Red Hat Enterprise Linux Server release 7.8 (Maipo) 387 * Red Hat Enterprise Linux Server release 7.6 (Maipo) 388 * Red Hat Enterprise Linux Server release 7.5 (Maipo) 389 * Red Hat Enterprise Linux Server release 7.4 (Maipo) 390 * Red Hat Enterprise Linux Server release 7.3 (Maipo) 391 * Red Hat Enterprise Linux Server release 7.2 (Maipo) 392 * Ubuntu 20.04 393 * Ubuntu 18.04 394 * Ubuntu 16.04 395 * SUSE Enterprise Linux 15 SP2 396 * SUSE Enterprise Linux 12 SP4 397 398 * OFED: 399 400 * MLNX_OFED 5.0-2.1.8.0 401 * MLNX_OFED 5.1-0.6.6.0 and above 402 403 * upstream kernel: 404 405 * Linux 5.8.0-rc6 and above 406 407 * rdma-core: 408 409 * rdma-core-30.0-1 and above 410 411 * NICs: 412 413 * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCC_Ax (2x40G) 414 415 * Host interface: PCI Express 3.0 x8 416 * Device ID: 15b3:1007 417 * Firmware version: 2.42.5000 418 419 * Mellanox\ |reg| ConnectX\ |reg|-3 Pro 40G MCX354A-FCCT (2x40G) 420 421 * Host interface: PCI Express 3.0 x8 422 * Device ID: 15b3:1007 423 * Firmware version: 2.42.5000 424 425 * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 25G MCX4121A-ACAT (2x25G) 426 427 * Host interface: PCI Express 3.0 x8 428 * Device ID: 15b3:1015 429 * Firmware version: 14.28.1002 and above 430 431 * Mellanox\ |reg| ConnectX\ |reg|-4 Lx 50G MCX4131A-GCAT (1x50G) 432 433 * Host interface: PCI Express 3.0 x8 434 * Device ID: 15b3:1015 435 * Firmware version: 14.28.1002 and above 436 437 * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX516A-CCAT (2x100G) 438 439 * Host interface: PCI Express 3.0 x16 440 * Device ID: 15b3:1017 441 * Firmware version: 16.28.1002 and above 442 443 * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-ECAT (2x100G) 444 445 * Host interface: PCI Express 3.0 x16 446 * Device ID: 15b3:1017 447 * Firmware version: 16.28.1002 and above 448 449 * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-EDAT (2x100G) 450 451 * Host interface: PCI Express 3.0 x16 452 * Device ID: 15b3:1017 453 * Firmware version: 16.28.1002 and above 454 455 * Mellanox\ |reg| ConnectX\ |reg|-5 Ex EN 100G MCX516A-CDAT (2x100G) 456 457 * Host interface: PCI Express 4.0 x16 458 * Device ID: 15b3:1019 459 * Firmware version: 16.28.1002 and above 460 461 * Mellanox\ |reg| ConnectX\ |reg|-6 Dx EN 100G MCX623106AN-CDAT (2x100G) 462 463 * Host interface: PCI Express 4.0 x16 464 * Device ID: 15b3:101d 465 * Firmware version: 22.28.1002 and above 466 467* Mellanox\ |reg| BlueField\ |reg| SmartNIC 468 469 * Mellanox\ |reg| BlueField\ |reg|-2 SmartNIC MT41686 - MBF2H332A-AEEOT (2x25G) 470 471 * Host interface: PCI Express 3.0 x16 472 * Device ID: 15b3:a2d2 473 * Firmware version: 24.28.1002 474 475 * Embedded software: 476 477 * CentOS Linux release 7.6.1810 (AltArch) 478 * MLNX_OFED 5.1-0.6.2 479 * DPDK application running on Arm cores 480 481* IBM Power 9 platforms with Mellanox\ |reg| NICs combinations 482 483 * CPU: 484 485 * POWER9 2.2 (pvr 004e 1202) 2300MHz 486 487 * OS: 488 489 * Red Hat Enterprise Linux Server release 7.6 490 491 * NICs: 492 493 * Mellanox\ |reg| ConnectX\ |reg|-5 100G MCX556A-ECAT (2x100G) 494 495 * Host interface: PCI Express 4.0 x16 496 * Device ID: 15b3:1017 497 * Firmware version: 16.28.1002 498 499 * Mellanox\ |reg| ConnectX\ |reg|-6 Dx 100G MCX623106AN-CDAT (2x100G) 500 501 * Host interface: PCI Express 4.0 x16 502 * Device ID: 15b3:101d 503 * Firmware version: 22.28.1002 504 505 * OFED: 506 507 * MLNX_OFED 5.0-2.1.8.0 508 509* Intel\ |reg| platforms with Broadcom\ |reg| NICs combinations 510 511 * CPU: 512 513 * Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz 514 * Intel\ |reg| Xeon\ |reg| CPU E5-2667 v3 @ 3.20GHz 515 * Intel\ |reg| Xeon\ |reg| CPU E5-2650 v2 @ 2.60GHz 516 * Intel\ |reg| Xeon\ |reg| Gold 6142 CPU @ 2.60GHz 517 * Intel\ |reg| Xeon\ |reg| Silver 4110 CPU @ 2.10GHz 518 519 * OS: 520 521 * Red Hat Enterprise Linux Server release 8.1 522 * Red Hat Enterprise Linux Server release 7.6 523 * Red Hat Enterprise Linux Server release 7.5 524 * Ubuntu 16.04 525 * Centos 8.1 526 * Centos 7.7 527 528 * upstream kernel: 529 530 * Linux 5.3.4 531 532 * NICs: 533 534 * Broadcom\ |reg| NetXtreme-E\ |reg| Series P225p (2x25G) 535 536 * Host interface: PCI Express 3.0 x8 537 * Firmware version: 214.4.81.0 and above 538 539 * Broadcom\ |reg| NetXtreme-E\ |reg| Series P425p (4x25G) 540 541 * Host interface: PCI Express 3.0 x16 542 * Firmware version: 216.4.259.0 and above 543 544 * Broadcom\ |reg| NetXtreme-E\ |reg| Series P2100G (2x100G) 545 546 * Host interface: PCI Express 3.0 x16 547 * Firmware version: 216.1.259.0 and above 548 549 * Broadcom\ |reg| NetXtreme-E\ |reg| Series P425p (4x25G) 550 551 * Host interface: PCI Express 4.0 x16 552 * Firmware version: 216.1.259.0 and above 553 554 * Broadcom\ |reg| NetXtreme-E\ |reg| Series P2100G (2x100G) 555 556 * Host interface: PCI Express 4.0 x16 557 * Firmware version: 216.1.259.0 and above 558 559* Broadcom\ |reg| NetXtreme-S\ |reg| Series SmartNIC 560 561 * Broadcom\ |reg| NetXtreme-S\ |reg| Series PS225-H16 SmartNIC (2x25G) 562 563 * Host interface: PCI Express 3.0 x8 564 * Firmware version: 217.0.59.0 565 566 * Embedded software: 567 568 * Broadcom Yocto Linux 569 * Kernel version: 4.14.174 570 * DPDK application running on 8 Arm Cortex-A72 cores 571