X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Frelease_16_11.rst;h=a2bfbcd70e1db7fe307351a46f6182be63d28738;hb=c75542ae42000062b55cb03643575cd13b66aeaf;hp=27c0daec5f4b178d11eea09abfab45adacb37f60;hpb=ae20c0735c1accac4b18e6af8875752e6b5c006f;p=dpdk.git diff --git a/doc/guides/rel_notes/release_16_11.rst b/doc/guides/rel_notes/release_16_11.rst index 27c0daec5f..a2bfbcd70e 100644 --- a/doc/guides/rel_notes/release_16_11.rst +++ b/doc/guides/rel_notes/release_16_11.rst @@ -1,185 +1,228 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2016 The DPDK contributors + DPDK Release 16.11 ================== -.. **Read this first.** - - The text below explains how to update the release notes. - - Use proper spelling, capitalization and punctuation in all sections. - - Variable and config names should be quoted as fixed width text: ``LIKE_THIS``. - - Build the docs and view the output file to ensure the changes are correct:: - - make doc-guides-html - - firefox build/doc/html/guides/rel_notes/release_16_11.html - - New Features ------------ -.. This section should contain new features added in this release. Sample format: +* **Added software parser for packet type.** - * **Add a title in the past tense with a full stop.** + * Added a new function ``rte_pktmbuf_read()`` to read the packet data from an + mbuf chain, linearizing if required. + * Added a new function ``rte_net_get_ptype()`` to parse an Ethernet packet + in an mbuf chain and retrieve its packet type from software. + * Added new functions ``rte_get_ptype_*()`` to dump a packet type as a string. - Add a short 1-2 sentence description in the past tense. The description - should be enough to allow someone scanning the release notes to understand - the new feature. +* **Improved offloads support in mbuf.** - If the feature adds a lot of sub-features you can use a bullet list like this. + * Added a new function ``rte_raw_cksum_mbuf()`` to process the checksum of + data embedded in an mbuf chain. + * Added new Rx checksum flags in mbufs to describe more states: unknown, + good, bad, or not present (useful for virtual drivers). This modification + was done for IP and L4. + * Added a new Rx LRO mbuf flag, used when packets are coalesced. This + flag indicates that the segment size of original packets is known. - * Added feature foo to do something. - * Enhanced feature bar to do something else. +* **Added vhost-user dequeue zero copy support.** - Refer to the previous release notes for examples. + The copy in the dequeue path is avoided in order to improve the performance. + In the VM2VM case, the boost is quite impressive. The bigger the packet size, + the bigger performance boost you may get. However, for the VM2NIC case, there + are some limitations, so the boost is not as impressive as the VM2VM case. + It may even drop quite a bit for small packets. - This section is a comment. Make sure to start the actual text at the margin. + For that reason, this feature is disabled by default. It can be enabled when + the ``RTE_VHOST_USER_DEQUEUE_ZERO_COPY`` flag is set. Check the VHost section + of the Programming Guide for more information. * **Added vhost-user indirect descriptors support.** - If indirect descriptor feature is negotiated, each packet sent by the guest - will take exactly one slot in the enqueue virtqueue. Without the feature, in - current version, even 64 bytes packets take two slots with Virtio PMD on guest + If the indirect descriptor feature is enabled, each packet sent by the guest + will take exactly one slot in the enqueue virtqueue. Without this feature, as in + the current version, even 64 bytes packets take two slots with Virtio PMD on guest side. - The main impact is better performance for 0% packet loss use-cases, as it + The main impact is better performance for 0% packet loss use cases, as it behaves as if the virtqueue size was enlarged, so more packets can be buffered - in case of system perturbations. On the downside, small performance degradation - is measured when running micro-benchmarks. + in the case of system perturbations. On the downside, small performance degradations + were measured when running micro-benchmarks. * **Added vhost PMD xstats.** - Added extended statistics to vhost PMD from per port perspective. + Added extended statistics to vhost PMD from a per port perspective. + +* **Supported offloads with virtio.** + + Added support for the following offloads in virtio: + + * Rx/Tx checksums. + * LRO. + * TSO. * **Added virtio NEON support for ARM.** + Added NEON support for ARM based virtio. + * **Updated the ixgbe base driver.** Updated the ixgbe base driver, including the following changes: - * add X550em_a 10G PHY support - * support flow control auto negotiation for X550em_a 1G PHY - * add X550em_a FW ALEF support - * increase mailbox version to ixgbe_mbox_api_13 - * add two MAC ops for Hyper-V support + * Added X550em_a 10G PHY support. + * Added support for flow control auto negotiation for X550em_a 1G PHY. + * Added X550em_a FW ALEF support. + * Increased mailbox version to ``ixgbe_mbox_api_13``. + * Added two MAC operations for Hyper-V support. -* **Updated the QAT PMD.** +* **Added APIs for VF management to the ixgbe PMD.** - The QAT PMD was updated with following support: + Eight new APIs have been added to the ixgbe PMD for VF management from the PF. + The declarations for the API's can be found in ``rte_pmd_ixgbe.h``. - * MD5_HMAC algorithm - * SHA224-HMAC algorithm - * SHA384-HMAC algorithm - * KASUMI (F8 and F9) algorithm - * NULL algorithm - * C62XX device +* **Updated the enic driver.** + * Added update to use interrupt for link status checking instead of polling. + * Added more flow director modes on UCS Blade with firmware version >= 2.0(13e). + * Added full support for MTU update. + * Added support for the ``rte_eth_rx_queue_count`` function. -Resolved Issues ---------------- +* **Updated the mlx5 driver.** -.. This section should contain bug fixes added to the relevant sections. Sample format: + * Added support for RSS hash results. + * Added several performance improvements. + * Added several bug fixes. - * **code/section Fixed issue in the past tense with a full stop.** +* **Updated the QAT PMD.** - Add a short 1-2 sentence description of the resolved issue in the past tense. - The title should contain the code/lib section like a commit message. - Add the entries in alphabetic order in the relevant sections below. + The QAT PMD was updated with additional support for: - This section is a comment. Make sure to start the actual text at the margin. + * MD5_HMAC algorithm. + * SHA224-HMAC algorithm. + * SHA384-HMAC algorithm. + * GMAC algorithm. + * KASUMI (F8 and F9) algorithm. + * 3DES algorithm. + * NULL algorithm. + * C3XXX device. + * C62XX device. +* **Added openssl PMD.** -EAL -~~~ + A new crypto PMD has been added, which provides several ciphering and hashing algorithms. + All cryptography operations use the Openssl library crypto API. +* **Updated the IPsec example.** -Drivers -~~~~~~~ + Updated the IPsec example with the following support: + + * Configuration file support. + * AES CBC IV generation with cipher forward function. + * AES GCM/CTR mode. + +* **Added support for new gcc -march option.** + The GCC 4.9 ``-march`` option supports the Intel processor code names. + The config option ``RTE_MACHINE`` can be used to pass code names to the compiler via the ``-march`` flag. -Libraries -~~~~~~~~~ +Drivers +~~~~~~~ -Examples -~~~~~~~~ +* **enic: Fixed several flow director issues.** +* **enic: Fixed inadvertent setting of L4 checksum ptype on ICMP packets.** -Other -~~~~~ +* **enic: Fixed high driver overhead when servicing Rx queues beyond the first.** Known Issues ------------ -.. This section should contain new known issues in this release. Sample format: +* **L3fwd-power app does not work properly when Rx vector is enabled.** - * **Add title in present tense with full stop.** + The L3fwd-power app doesn't work properly with some drivers in vector mode + since the queue monitoring works differently between scalar and vector modes + leading to incorrect frequency scaling. In addition, L3fwd-power application + requires the mbuf to have correct packet type set but in some drivers the + vector mode must be disabled for this. - Add a short 1-2 sentence description of the known issue in the present - tense. Add information on any known workarounds. + Therefore, in order to use L3fwd-power, vector mode should be disabled + via the config file. - This section is a comment. Make sure to start the actual text at the margin. +* **Digest address must be supplied for crypto auth operation on QAT PMD.** + The cryptodev API specifies that if the rte_crypto_sym_op.digest.data field, + and by inference the digest.phys_addr field which points to the same location, + is not set for an auth operation the driver is to understand that the digest + result is located immediately following the region over which the digest is + computed. The QAT PMD doesn't correctly handle this case and reads and writes + to an incorrect location. -API Changes ------------ + Callers can workaround this by always supplying the digest virtual and + physical address fields in the rte_crypto_sym_op for an auth operation. -.. This section should contain API changes. Sample format: - * Add a short 1-2 sentence description of the API change. Use fixed width - quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense. +API Changes +----------- - This section is a comment. Make sure to start the actual text at the margin. +* The driver naming convention has been changed to make them more + consistent. It especially impacts ``--vdev`` arguments. For example + ``eth_pcap`` becomes ``net_pcap`` and ``cryptodev_aesni_mb_pmd`` becomes + ``crypto_aesni_mb``. -* The driver names have been changed. It especially impacts ``--vdev`` arguments. - Examples: ``eth_pcap`` becomes ``net_pcap`` - and ``cryptodev_aesni_mb_pmd`` becomes ``crypto_aesni_mb``. + For backward compatibility an alias feature has been enabled to support the + original names. -* The log history is removed. +* The log history has been removed. * The ``rte_ivshmem`` feature (including library and EAL code) has been removed in 16.11 because it had some design issues which were not planned to be fixed. - -ABI Changes ------------ - -.. This section should contain ABI changes. Sample format: - - * Add a short 1-2 sentence description of the ABI change that was announced in - the previous releases and made in this release. Use fixed width quotes for - ``rte_function_names`` or ``rte_struct_names``. Use the past tense. - - This section is a comment. Make sure to start the actual text at the margin. - +* The ``file_name`` data type of ``struct rte_port_source_params`` and + ``struct rte_port_sink_params`` is changed from ``char *`` to ``const char *``. + +* **Improved device/driver hierarchy and generalized hotplugging.** + + The device and driver relationship has been restructured by introducing generic + classes. This paves the way for having PCI, VDEV and other device types as + instantiated objects rather than classes in themselves. Hotplugging has also + been generalized into EAL so that Ethernet or crypto devices can use the + common infrastructure. + + * Removed ``pmd_type`` as a way of segregation of devices. + * Moved ``numa_node`` and ``devargs`` into ``rte_driver`` from + ``rte_pci_driver``. These can now be used by any instantiated object of + ``rte_driver``. + * Added ``rte_device`` class and all PCI and VDEV devices inherit from it + * Renamed devinit/devuninit handlers to probe/remove to make it more + semantically correct with respect to the device <=> driver relationship. + * Moved hotplugging support to EAL. Hereafter, PCI and vdev can use the + APIs ``rte_eal_dev_attach`` and ``rte_eal_dev_detach``. + * Renamed helpers and support macros to make them more synonymous + with their device types + (e.g. ``PMD_REGISTER_DRIVER`` => ``RTE_PMD_REGISTER_PCI``). + * Device naming functions have been generalized from ethdev and cryptodev + to EAL. ``rte_eal_pci_device_name`` has been introduced for obtaining + unique device name from PCI Domain-BDF description. + * Virtual device registration APIs have been added: ``rte_eal_vdrv_register`` + and ``rte_eal_vdrv_unregister``. Shared Library Versions ----------------------- -.. Update any library version updated in this release and prepend with a ``+`` - sign, like this: - - libethdev.so.4 - librte_acl.so.2 - + librte_cfgfile.so.2 - librte_cmdline.so.2 - - - The libraries prepended with a plus sign were incremented in this version. .. code-block:: diff - libethdev.so.4 librte_acl.so.2 librte_cfgfile.so.2 librte_cmdline.so.2 - librte_cryptodev.so.1 + + librte_cryptodev.so.2 librte_distributor.so.1 + librte_eal.so.3 + + librte_ethdev.so.5 librte_hash.so.2 librte_ip_frag.so.1 librte_jobstats.so.1 @@ -189,6 +232,7 @@ The libraries prepended with a plus sign were incremented in this version. librte_mbuf.so.2 librte_mempool.so.2 librte_meter.so.1 + librte_net.so.1 librte_pdump.so.1 librte_pipeline.so.3 librte_pmd_bond.so.1 @@ -206,47 +250,230 @@ The libraries prepended with a plus sign were incremented in this version. Tested Platforms ---------------- -.. This section should contain a list of platforms that were tested with this release. +#. SuperMicro 1U + + - BIOS: 1.0c + - Processor: Intel(R) Atom(TM) CPU C2758 @ 2.40GHz + +#. SuperMicro 1U + + - BIOS: 1.0a + - Processor: Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz + - Onboard NIC: Intel(R) X552/X557-AT (2x10G) + + - Firmware-version: 0x800001cf + - Device ID (PF/VF): 8086:15ad /8086:15a8 + + - kernel driver version: 4.2.5 (ixgbe) + +#. SuperMicro 2U + + - BIOS: 1.0a + - Processor: Intel(R) Xeon(R) CPU E5-4667 v3 @ 2.00GHz + +#. Intel(R) Server board S2600GZ + + - BIOS: SE5C600.86B.02.02.0002.122320131210 + - Processor: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz + +#. Intel(R) Server board W2600CR + + - BIOS: SE5C600.86B.02.01.0002.082220131453 + - Processor: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz + +#. Intel(R) Server board S2600CWT - The format is: + - BIOS: SE5C610.86B.01.01.0009.060120151350 + - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz - #. Platform name. +#. Intel(R) Server board S2600WTT - * Platform details. - * Platform details. + - BIOS: SE5C610.86B.01.01.0005.101720141054 + - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz - This section is a comment. Make sure to start the actual text at the margin. +#. Intel(R) Server board S2600WTT + + - BIOS: SE5C610.86B.11.01.0044.090120151156 + - Processor: Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz + +#. Intel(R) Server board S2600WTT + + - Processor: Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz + +#. Intel(R) Server + + - Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz + +#. IBM(R) Power8(R) + + - Machine type-model: 8247-22L + - Firmware FW810.21 (SV810_108) + - Processor: POWER8E (raw), AltiVec supported Tested NICs ----------- -.. This section should contain a list of NICs that were tested with this release. +#. Intel(R) Ethernet Controller X540-AT2 - The format is: + - Firmware version: 0x80000389 + - Device id (pf): 8086:1528 + - Driver version: 3.23.2 (ixgbe) - #. NIC name. +#. Intel(R) 82599ES 10 Gigabit Ethernet Controller - * NIC details. - * NIC details. + - Firmware version: 0x61bf0001 + - Device id (pf/vf): 8086:10fb / 8086:10ed + - Driver version: 4.0.1-k (ixgbe) - This section is a comment. Make sure to start the actual text at the margin. +#. Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T + - Firmware version: 0x800001cf + - Device id (pf/vf): 8086:15ad / 8086:15a8 + - Driver version: 4.2.5 (ixgbe) -Tested OSes ------------ +#. Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G) + + - Firmware version: 5.05 + - Device id (pf/vf): 8086:1572 / 8086:154c + - Driver version: 1.5.23 (i40e) + +#. Intel(R) Ethernet Converged Network Adapter X710-DA2 (2x10G) + + - Firmware version: 5.05 + - Device id (pf/vf): 8086:1572 / 8086:154c + - Driver version: 1.5.23 (i40e) + +#. Intel(R) Ethernet Converged Network Adapter XL710-QDA1 (1x40G) + + - Firmware version: 5.05 + - Device id (pf/vf): 8086:1584 / 8086:154c + - Driver version: 1.5.23 (i40e) + +#. Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G) + + - Firmware version: 5.05 + - Device id (pf/vf): 8086:1583 / 8086:154c + - Driver version: 1.5.23 (i40e) + +#. Intel(R) Corporation I350 Gigabit Network Connection + + - Firmware version: 1.48, 0x800006e7 + - Device id (pf/vf): 8086:1521 / 8086:1520 + - Driver version: 5.2.13-k (igb) + +#. Intel(R) Ethernet Multi-host Controller FM10000 + + - Firmware version: N/A + - Device id (pf/vf): 8086:15d0 + - Driver version: 0.17.0.9 (fm10k) + +#. Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 12.17.1010 + +#. Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 12.17.1010 -.. This section should contain a list of OSes that were tested with this release. - The format is as follows, in alphabetical order: +#. Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G) - * CentOS 7.0 - * Fedora 23 - * Fedora 24 - * FreeBSD 10.3 - * Red Hat Enterprise Linux 7.2 - * SUSE Enterprise Linux 12 - * Ubuntu 15.10 - * Ubuntu 16.04 LTS - * Wind River Linux 8 + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 12.17.1010 + +#. Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 12.17.1010 + +#. Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 12.17.1010 + +#. Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G) + + * Host interface: PCI Express 3.0 x16 + * Device ID: 15b3:1013 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 12.17.1010 + +#. Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 12.17.1010 + +#. Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1013 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 12.17.1010 + +#. Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G) + + * Host interface: PCI Express 3.0 x16 + * Device ID: 15b3:1013 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 12.17.1010 + +#. Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G) + + * Host interface: PCI Express 3.0 x16 + * Device ID: 15b3:1013 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 12.17.1010 + +#. Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G) + + * Host interface: PCI Express 3.0 x16 + * Device ID: 15b3:1013 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 12.17.1010 + +#. Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1015 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 14.17.1010 + +#. Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G) + + * Host interface: PCI Express 3.0 x8 + * Device ID: 15b3:1015 + * MLNX_OFED: 3.4-1.0.0.0 + * Firmware version: 14.17.1010 + + +Tested OSes +----------- - This section is a comment. Make sure to start the actual text at the margin. +* CentOS 7.2 +* Fedora 23 +* Fedora 24 +* FreeBSD 10.3 +* FreeBSD 11 +* Red Hat Enterprise Linux Server release 6.7 (Santiago) +* Red Hat Enterprise Linux Server release 7.0 (Maipo) +* Red Hat Enterprise Linux Server release 7.2 (Maipo) +* SUSE Enterprise Linux 12 +* Wind River Linux 6.0.0.26 +* Wind River Linux 8 +* Ubuntu 14.04 +* Ubuntu 15.04 +* Ubuntu 16.04