X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Frelease_19_08.rst;h=cbb27e8dc35c37a5a85037cdbaeebe07b8f424c4;hb=18f127add89649646e367590286430dc790320b0;hp=ad0ac4333fe6604569eb2574b29d0761bd6267f1;hpb=5f4ed3f058493552658e914815f58e784755a1b3;p=dpdk.git diff --git a/doc/guides/rel_notes/release_19_08.rst b/doc/guides/rel_notes/release_19_08.rst index ad0ac4333f..cbb27e8dc3 100644 --- a/doc/guides/rel_notes/release_19_08.rst +++ b/doc/guides/rel_notes/release_19_08.rst @@ -1,6 +1,8 @@ .. SPDX-License-Identifier: BSD-3-Clause Copyright 2019 The DPDK contributors +.. include:: + DPDK Release 19.08 ================== @@ -54,9 +56,22 @@ New Features Also, make sure to start the actual text at the margin. ========================================================= +* **EAL will now pick IOVA as VA mode as the default in most cases.** + + Previously, the preferred default IOVA mode was selected to be IOVA as PA. The + behavior has now been changed to handle IOVA mode detection in a more complex + manner, and will default to IOVA as VA in most cases. + +* **Added MCS lock.** + + MCS lock provides scalability by spinning on a CPU/thread local variable + which avoids expensive cache bouncing. + It provides fairness by maintaining a list of acquirers and passing + the lock to each CPU/thread in the order they acquired the lock. + * **Updated the EAL Pseudo-random Number Generator.** - The lrand48()-based rte_rand() function is replaced with a + The ``lrand48()`` based ``rte_rand()`` function is replaced with a DPDK-native combined Linear Feedback Shift Register (LFSR) pseudo-random number generator (PRNG). @@ -64,29 +79,57 @@ New Features higher-quality pseudo-random numbers (including full 64 bit support) and improved performance. - In addition, is extended with a new function - rte_rand_max() which supplies unbiased, bounded pseudo-random + In addition, ```` is extended with a new function + ``rte_rand_max()`` which supplies unbiased, bounded pseudo-random numbers. -* **Updated the bnxt PMD.** +* **Updated the Broadcom bnxt PMD.** - Updated the bnxt PMD. The major enhancements include: + Updated the Broadcom bnxt PMD. The major enhancements include: - * Performance optimizations in non-vector Tx path - * Added support for SSE vector mode - * Updated HWRM API to version 1.10.0.74 + * Performance optimizations in non-vector Tx path. + * Added support for SSE vector mode. + * Updated HWRM API to version 1.10.0.91. * **Added support for Broadcom NetXtreme-E BCM57500 Ethernet controllers.** - Added support to the bnxt PMD for the BCM57500 (a.k.a. "Thor") family + Added support to the Broadcom bnxt PMD for the BCM57500 (a.k.a. "Thor") family of Ethernet controllers. These controllers support link speeds up to 200Gbps, 50G PAM-4, and PCIe 4.0. -* **Updated the ice driver.** +* **Added Huawei hinic PMD.** - Updated ice driver with new features and improvements, including: + Added the new ``hinic`` net driver for Huawei Intelligent PCIE Network + Adapters based on the Huawei Ethernet Controller Hi1822. + See the :doc:`../nics/hinic` guide for more details on this new driver. + +* **Updated the Intel ice driver.** + + Updated the Intel ice driver with new features and improvements, including: * Enabled Tx outer/inner L3/L4 checksum offload. + * Enabled generic filter framework and supported switch filter. + * Supported UDP tunnel port add. + +* **Updated the Intel i40e driver.** + + Updated tje Intel i40e driver with new features and improvements, including: + + * Added support for MARK + RSS action in rte_flow (non-vector RX path only) + +* **Updated Mellanox mlx5 driver.** + + Updated Mellanox mlx5 driver with new features and improvements, including: + + * Updated the packet header modification feature. Added support of TCP header + sequence number and acknowledgment number modification. + * Added support for match on ICMP/ICMP6 code and type. + * Added support for matching on GRE's key and C,K,S present bits. + * Added support for IP-in-IP tunnel. + * Accelerated flows with count action creation and destroy. + * Accelerated flows counter query. + * Improved Tx datapath performance with enabled HW offloads. + * Added support for LRO. * **Updated Solarflare network PMD.** @@ -96,7 +139,7 @@ New Features * **Added memif PMD.** - Added the new Shared Memory Packet Interface (``memif``) PMD. + Added a new Shared Memory Packet Interface (``memif``) PMD. See the :doc:`../nics/memif` guide for more details on this new driver. * **Updated the AF_XDP PMD.** @@ -104,9 +147,79 @@ New Features Updated the AF_XDP PMD. The new features include: * Enabled zero copy through mbuf's external memory mechanism to achieve - high performance + higher performance. * Added multi-queue support to allow one af_xdp vdev with multiple netdev - queues + queues. + * Enabled "need_wakeup" feature which can provide efficient support for the + usecase where the application and driver executing on the same core. + +* **Enabled infinite Rx in the PCAP PMD.** + + Added an infinite Rx feature to the PCAP PMD which allows packets in the Rx + PCAP to be received repeatedly at a high rate. This can be useful for quick + performance testing of DPDK apps. + +* **Enabled receiving no packet in the PCAP PMD.** + + Added function to allow users to run the PCAP PMD without receiving any + packets on PCAP Rx. When the function is called, a dummy queue is created + for each Tx queue argument passed. + +* **Added a FPGA_LTE_FEC bbdev PMD.** + + Added a new ``fpga_lte_fec`` bbdev driver for the Intel\ |reg| FPGA PAC + (Programmable Acceleration Card) N3000. See the + :doc:`../bbdevs/fpga_lte_fec` BBDEV guide for more details on this new driver. + +* **Updated the TURBO_SW bbdev PMD.** + + Updated the ``turbo_sw`` bbdev driver with changes including: + + * Added option to build the driver with or without dependency of external + SDK libraries. + * Added support for 5GNR encode/decode operations. + +* **Updated the Intel QuickAssist Technology (QAT) symmetric crypto PMD.** + + Added support for digest-encrypted cases where digest is appended + to the data. + +* **Added the Intel QuickData Technology PMD.** + + Added a PMD for the Intel\ |reg| QuickData Technology, part of + Intel\ |reg| I/O Acceleration Technology `(Intel I/OAT) + `_, + which allows data copies to be done by hardware instead + of via software, reducing cycles spent copying large blocks of data in + applications. + +* **Added Marvell OCTEON TX2 drivers.** + + Added the new ``ethdev``, ``eventdev``, ``mempool``, ``eventdev Rx adapter``, + ``eventdev Tx adapter``, ``eventdev Timer adapter`` and ``rawdev DMA`` + drivers for various HW co-processors available in ``OCTEON TX2`` SoC. + + See :doc:`../platform/octeontx2` and driver information: + + * :doc:`../nics/octeontx2` + * :doc:`../mempool/octeontx2` + * :doc:`../eventdevs/octeontx2` + * :doc:`../rawdevs/octeontx2_dma` + +* **Introduced the Intel NTB PMD.** + + Added a PMD for Intel NTB (Non-transparent Bridge). This PMD implements + a handshake between two separate hosts and can share local memory for peer + host to directly access. + +* **Updated the IPSec library and IPsec Security Gateway application.** + + Added the following features to ``librte_ipsec``. Corresponding changes are + also added in the ``ipsec-secgw`` sample application. + + * ECN and DSCP field header reconstruction as per RFC4301. + * Transport mode with IPv6 extension headers. + * Support packets with multiple segments. * **Updated telemetry library for global metrics support.** @@ -115,8 +228,16 @@ New Features * **Added new telemetry mode for l3fwd-power application.** - Added telemetry mode to l3fwd-power application to report - application level busyness, empty and full polls of rte_eth_rx_burst(). + Added a telemetry mode to the ``l3fwd-power`` application to report + application level busyness, empty and full polls of ``rte_eth_rx_burst()``. + +* **Updated the pdump application.** + + Add support for pdump to exit with primary process. + +* **Updated test-compress-perf tool application.** + + Added a multiple cores feature to the compression perf tool application. Removed Items @@ -131,7 +252,7 @@ Removed Items Also, make sure to start the actual text at the margin. ========================================================= -* Removed KNI ethtool, CONFIG_RTE_KNI_KMOD_ETHTOOL, support. +* Removed KNI ethtool, ``CONFIG_RTE_KNI_KMOD_ETHTOOL``, support. * build: armv8 crypto extension is disabled. @@ -151,9 +272,51 @@ API Changes Also, make sure to start the actual text at the margin. ========================================================= +* The ``rte_mem_config`` structure has been made private. New accessor + ``rte_mcfg_*`` functions were introduced to provide replacement for direct + access to the shared mem config. + * The network structures, definitions and functions have been prefixed by ``rte_`` to resolve conflicts with libc headers. +* malloc: The function ``rte_malloc_set_limit()`` was never implemented. + It is deprecated and will be removed in a future release. + +* cryptodev: the ``uint8_t *data`` member of the ``key`` structure in the xforms + structure (``rte_crypto_cipher_xform``, ``rte_crypto_auth_xform``, and + ``rte_crypto_aead_xform``) have been changed to ``const uint8_t *data``. + +* eventdev: No longer marked as experimental. + + The eventdev functions are no longer marked as experimental, and have + become part of the normal DPDK API and ABI. Any future ABI changes will be + announced at least one release before the ABI change is made. There are no + ABI breaking changes planned. + +* ip_frag: The IP fragmentation library converts input mbuf into fragments + using input MTU size via the ``rte_ipv4_fragment_packet()`` interface. + Once fragmentation is done, each ``mbuf->ol_flags`` are set to enable IP + checksum H/W offload irrespective of the platform capability. + Cleared IP checksum H/W offload flag from the library. The application must + set this flag if it is supported by the platform and application wishes to + use it. + +* ip_frag: IP reassembly library converts the list of fragments into a + reassembled packet via ``rte_ipv4_frag_reassemble_packet()`` interface. + Once reassembly is done, ``mbuf->ol_flags`` are set to enable IP checksum H/W + offload irrespective of the platform capability. Cleared IP checksum H/W + offload flag from the library. The application must set this flag if it is + supported by the platform and application wishes to use it. + +* sched: Macros ``RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS`` and + ``RTE_SCHED_PIPE_PROFILES_PER_PORT`` are removed for flexible configuration + of pipe traffic classes and their queues size, and for runtime configuration + of the maximum number of pipe profiles, respectively. In addition, the + ``wrr_weights`` field of struct ``rte_sched_pipe_params`` is modified to be + used only for best-effort tc, and the ``qsize`` field of struct + ``rte_sched_port_params`` is changed to allow different sizes for each + queue. + ABI Changes ----------- @@ -170,6 +333,34 @@ ABI Changes Also, make sure to start the actual text at the margin. ========================================================= +* eventdev: Event based Rx adapter callback + + The mbuf pointer array in the event eth Rx adapter callback + has been replaced with an event array. Using + an event array allows the application to change attributes + of the events enqueued by the SW adapter. + + The callback can drop packets and populate + a callback argument with the number of dropped packets. + Add a Rx adapter stats field to keep track of the total + number of dropped packets. + +* cryptodev: New member in ``rte_cryptodev_config`` to allow applications to + disable features supported by the crypto device. Only the following features + would be allowed to be disabled this way, + + - ``RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO``. + - ``RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO``. + - ``RTE_CRYPTODEV_FF_SECURITY``. + + Disabling unused features would facilitate efficient usage of HW/SW offload. + +* bbdev: New operations and parameters have been added to support new 5GNR + operations. The bbdev ABI is still kept experimental. + +* rawdev: The driver names have been changed to ``librte_rawdev_*``. + Now they all have the same prefix, and same name with make and meson builds. + Shared Library Versions ----------------------- @@ -201,12 +392,12 @@ The libraries prepended with a plus sign were incremented in this version. librte_cfgfile.so.2 librte_cmdline.so.2 librte_compressdev.so.1 - librte_cryptodev.so.7 + + librte_cryptodev.so.8 librte_distributor.so.1 - librte_eal.so.10 + + librte_eal.so.11 librte_efd.so.1 librte_ethdev.so.12 - librte_eventdev.so.6 + + librte_eventdev.so.7 librte_flow_classify.so.1 librte_gro.so.1 librte_gso.so.1 @@ -241,7 +432,7 @@ The libraries prepended with a plus sign were incremented in this version. librte_rcu.so.1 librte_reorder.so.1 librte_ring.so.2 - librte_sched.so.2 + + librte_sched.so.3 librte_security.so.2 librte_stack.so.1 librte_table.so.3 @@ -263,6 +454,15 @@ Known Issues Also, make sure to start the actual text at the margin. ========================================================= +* **Unsuitable IOVA mode may be picked as the default.** + + Not all kernel drivers and not all devices support all IOVA modes. EAL will + attempt to pick a reasonable default based on a number of factors, but + there may be cases where the default is unsuitable. + + It is recommended to use the `--iova-mode` command-line parameter if the + default is not suitable. + Tested Platforms ---------------- @@ -283,3 +483,266 @@ Tested Platforms Also, make sure to start the actual text at the margin. ========================================================= +* Intel(R) platforms with Intel(R) NICs combinations + + * CPU + + * Intel(R) Atom(TM) CPU C3758 @ 2.20GHz + * Intel(R) Xeon(R) CPU D-1541 @ 2.10GHz + * Intel(R) Xeon(R) CPU D-1553N @ 2.30GHz + * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz + * Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz + * Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz + * Intel(R) Xeon(R) Gold 6139 CPU @ 2.30GHz + * Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz + * Intel(R) Xeon(R) Platinum 8280M CPU @ 2.70GHz + + * OS: + + * CentOS 7.6 + * Fedora 30 + * FreeBSD 12.0 + * Red Hat Enterprise Linux Server release 8.0 + * Red Hat Enterprise Linux Server release 7.6 + * Suse12SP3 + * Ubuntu 16.04 + * Ubuntu 16.10 + * Ubuntu 18.04 + * Ubuntu 19.04 + + * NICs: + + * Intel(R) 82599ES 10 Gigabit Ethernet Controller + + * Firmware version: 0x61bf0001 + * Device id (pf/vf): 8086:10fb / 8086:10ed + * Driver version: 5.6.1 (ixgbe) + + * Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T + + * Firmware version: 0x800003e7 + * Device id (pf/vf): 8086:15ad / 8086:15a8 + * Driver version: 5.1.0 (ixgbe) + + * Intel Corporation Ethernet Controller 10G X550T + + * Firmware version: 0x80000482 + * Device id (pf): 8086:1563 + * Driver version: 5.6.1 (ixgbe) + + * Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G) + + * Firmware version: 7.00 0x80004cdb + * Device id (pf/vf): 8086:1572 / 8086:154c + * Driver version: 2.9.21 (i40e) + + * Intel(R) Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G) + + * Firmware version: 4.10 0x80001a3c + * Device id (pf/vf): 8086:37d0 / 8086:37cd + * Driver version: 2.9.21 (i40e) + + * Intel(R) Ethernet Converged Network Adapter XXV710-DA2 (2x25G) + + * Firmware version: 7.00 0x80004cf8 + * Device id (pf/vf): 8086:158b / 8086:154c + * Driver version: 2.9.21 (i40e) + + * Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G) + + * Firmware version: 7.00 0x80004c97 + * Device id (pf/vf): 8086:1583 / 8086:154c + * Driver version: 2.9.21 (i40e) + + * Intel(R) Corporation I350 Gigabit Network Connection + + * Firmware version: 1.63, 0x80000cbc + * Device id (pf/vf): 8086:1521 / 8086:1520 + * Driver version: 5.4.0-k (igb) + + * Intel Corporation I210 Gigabit Network Connection + + * Firmware version: 3.25, 0x800006eb + * Device id (pf): 8086:1533 + * Driver version: 5.4.0-k(igb) + +* Intel(R) platforms with Mellanox(R) NICs combinations + + * CPU: + + * Intel(R) Xeon(R) Gold 6154 CPU @ 3.00GHz + * Intel(R) Xeon(R) CPU E5-2697A v4 @ 2.60GHz + * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz + * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz + * Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz + * Intel(R) Xeon(R) CPU E5-2640 @ 2.50GHz + * Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz + + * OS: + + * 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 19.04 + * Ubuntu 18.10 + * Ubuntu 18.04 + * Ubuntu 16.04 + * SUSE Linux Enterprise Server 15 + + * OFED: + + * MLNX_OFED 4.6-1.0.1.1 + * MLNX_OFED 4.6-4.1.2.0 + + * NICs: + + * Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2x40G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1007 + * Firmware version: 2.42.5000 + + * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * Firmware version: 12.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * Firmware version: 12.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * Firmware version: 12.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * Firmware version: 12.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * Firmware version: 12.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G) + + * Host interface: PCI Express 3.0 x16 + * Device ID: 15b3:1013 + * Firmware version: 12.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * Firmware version: 12.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * Firmware version: 12.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G) + + * Host interface: PCI Express 3.0 x16 + * Device ID: 15b3:1013 + * Firmware version: 12.25.6406 and above + * Firmware version: 12.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G) + + * Host interface: PCI Express 3.0 x16 + * Device ID: 15b3:1013 + * Firmware version: 12.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G) + + * Host interface: PCI Express 3.0 x16 + * Device ID: 15b3:1013 + * Firmware version: 12.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1015 + * Firmware version: 14.25.6406 and above + + * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1015 + * Firmware version: 14.25.6406 and above + + * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G) + + * Host interface: PCI Express 3.0 x16 + * Device ID: 15b3:1017 + * Firmware version: 16.25.6406 and above + + * Mellanox(R) ConnectX(R)-5 Ex EN 100G MCX516A-CDAT (2x100G) + + * Host interface: PCI Express 4.0 x16 + * Device ID: 15b3:1019 + * Firmware version: 16.25.6406 and above + +* Mellanox(R) BlueField SmartNIC + + * Mellanox(R) BlueField SmartNIC MT416842 (2x25G) + + * Host interface: PCI Express 3.0 x16 + * Device ID: 15b3:a2d2 + * Firmware version: 18.25.6600 + + * SoC Arm cores running OS: + + * CentOS Linux release 7.5.1804 (AltArch) + * MLNX_OFED 4.6-3.5.8.0 + + * DPDK application running on Arm cores inside SmartNIC + +* IBM Power 9 platforms with Mellanox(R) NICs combinations + + * CPU: + + * POWER9 2.2 (pvr 004e 1202) 2300MHz + + * OS: + + * Ubuntu 18.04.1 LTS (Bionic Beaver) + + * NICs: + + * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G) + + * Host interface: PCI Express 3.0 x16 + * Device ID: 15b3:1017 + * Firmware version: 16.25.6406 + + * OFED: + + * MLNX_OFED 4.6-4.1.2.0 + +* ARMv8 SoC combinations from Marvell (with integrated NICs) + + * SoC: + + * CN83xx, CN96xx, CNF95xx, CN93xx + + * OS (Based on Marvell OCTEON TX SDK 10.0): + + * Arch Linux + * Buildroot 2018.11 + * Ubuntu 16.04.1 LTS + * Ubuntu 16.10 + * Ubuntu 18.04.1 + * Ubuntu 19.04