X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Frelease_19_08.rst;h=cbb27e8dc35c37a5a85037cdbaeebe07b8f424c4;hb=9311beeea4963d8b97330c20ff1736b006486c5d;hp=2edc04c376a98606e317ee2b7d0ceeeb6ceee31a;hpb=505f1fe426d306ed1b2d0636a2e9568660bc662a;p=dpdk.git diff --git a/doc/guides/rel_notes/release_19_08.rst b/doc/guides/rel_notes/release_19_08.rst index 2edc04c376..cbb27e8dc3 100644 --- a/doc/guides/rel_notes/release_19_08.rst +++ b/doc/guides/rel_notes/release_19_08.rst @@ -56,16 +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 bouncings. + 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). @@ -73,38 +79,44 @@ 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.91 + * 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. -* **Added hinic PMD.** +* **Added Huawei hinic PMD.** 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 ice driver.** +* **Updated the Intel ice driver.** - Updated ice driver with new features and improvements, including: + 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: @@ -114,9 +126,10 @@ New Features * 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. - * Accelerate flows with count action creation and destroy. - * Accelerate flows counter query. + * 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.** @@ -126,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.** @@ -134,31 +147,31 @@ 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 - * Enabled need_wakeup feature which can provide efficient support for case - that application and driver executing on the same core. + 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 which allows packets in the Rx PCAP of a PCAP - device to be received repeatedly at a high rate. This can be useful for quick + 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 on PCAP Rx.** +* **Enabled receiving no packet in the PCAP PMD.** - Added function to allow users to run without receiving any packets on PCAP Rx. - When function is called, a dummy queue is created for each Tx queue argument - passed. + 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 the new ``fpga_lte_fec`` bbdev driver for the Intel® FPGA PAC + 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 TURBO_SW bbdev PMD.** +* **Updated the TURBO_SW bbdev PMD.** Updated the ``turbo_sw`` bbdev driver with changes including: @@ -166,17 +179,17 @@ New Features SDK libraries. * Added support for 5GNR encode/decode operations. -* **Updated the QuickAssist Technology (QAT) symmetric crypto PMD.** +* **Updated the Intel QuickAssist Technology (QAT) symmetric crypto PMD.** Added support for digest-encrypted cases where digest is appended to the data. -* **Added Intel QuickData Technology PMD** +* **Added the Intel QuickData Technology PMD.** - The PMD for Intel\ |reg| QuickData Technology, part of + Added a PMD for the Intel\ |reg| QuickData Technology, part of Intel\ |reg| I/O Acceleration Technology `(Intel I/OAT) `_, - allows data copies to be done by hardware instead + which allows data copies to be done by hardware instead of via software, reducing cycles spent copying large blocks of data in applications. @@ -184,26 +197,29 @@ New Features Added the new ``ethdev``, ``eventdev``, ``mempool``, ``eventdev Rx adapter``, ``eventdev Tx adapter``, ``eventdev Timer adapter`` and ``rawdev DMA`` - drivers for various HW coprocessors available in ``OCTEON TX2`` SoC. + drivers for various HW co-processors available in ``OCTEON TX2`` SoC. - See :doc:`../platform/octeontx2` and driver informations: + See :doc:`../platform/octeontx2` and driver information: * :doc:`../nics/octeontx2` * :doc:`../mempool/octeontx2` * :doc:`../eventdevs/octeontx2` * :doc:`../rawdevs/octeontx2_dma` -* **Introduced NTB PMD.** +* **Introduced the Intel NTB PMD.** - Added a PMD for Intel NTB (Non-transparent Bridge). This PMD implemented - handshake between two separate hosts and can share local memory for peer + 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 IPSec library Header Reconstruction.** +* **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. - Updated the IPSec library with ECN and DSCP field header reconstruction - feature followed by RFC4301. The IPSec-secgw sample application is also - updated to support this feature by default. + * 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.** @@ -212,8 +228,8 @@ 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.** @@ -221,7 +237,7 @@ New Features * **Updated test-compress-perf tool application.** - Added multiple cores feature to compression perf tool application. + Added a multiple cores feature to the compression perf tool application. Removed Items @@ -236,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. @@ -256,17 +272,17 @@ API Changes Also, make sure to start the actual text at the margin. ========================================================= -* The ``rte_mem_config`` structure has been made private. The new accessor +* 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 - is deprecated and will be removed in a future release. +* 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 ``key`` structure in the xforms +* 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``. @@ -277,8 +293,8 @@ API Changes announced at least one release before the ABI change is made. There are no ABI breaking changes planned. -* ip_frag: IP fragmentation library converts input mbuf into fragments - using input MTU size via ``rte_ipv4_fragment_packet`` interface. +* 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 @@ -286,7 +302,7 @@ API Changes use it. * ip_frag: IP reassembly library converts the list of fragments into a - reassembled packet via ``rte_ipv4_frag_reassemble_packet`` interface. + 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 @@ -295,10 +311,11 @@ API Changes * 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 maximum number of pipe profiles, respectively. In addtion, wrr_weights - field of struct ``rte_sched_pipe_params`` is modifed to be used only for - best-effort tc, and qsize field of struct ``rte_sched_port_params`` is - changed to allow different size of the each queue. + 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 @@ -332,14 +349,17 @@ ABI Changes 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`` + - ``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 added to support new 5GNR operations. - The bbdev ABI is still kept experimental. +* 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 @@ -434,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 ---------------- @@ -454,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