doc: fix release notes for 16.11
[dpdk.git] / doc / guides / rel_notes / release_16_11.rst
index 26cdd62..8c9ec65 100644 (file)
@@ -42,7 +42,7 @@ New Features
   * 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 by software.
+    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.
 
 * **Improved offloads support in mbuf.**
@@ -52,84 +52,108 @@ New Features
   * 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
+  * 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 vhost-user dequeue zero copy support**
+* **Added vhost-user dequeue zero copy support.**
 
-  The copy in dequeue path is saved, which is meant to improve the performance.
+  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 VM2NIC case, there
-  are some limitations, yet the boost is not that impressive as VM2VM case.
+  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.
 
-  For such reason, this feature is disabled by default. It can be enabled when
-  ``RTE_VHOST_USER_DEQUEUE_ZERO_COPY`` flag is given. Check the vhost section
-  at programming guide for more information.
+  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
   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 per port perspective.
 
 * **Supported offloads with virtio.**
 
-  * Rx/Tx checksums
-  * LRO
-  * TSO
+  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.
+
+* **Added APIs for VF management to the ixgbe PMD.**
+
+  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``.
+
+* **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.
+
+* **Updated the mlx5 driver.**
+
+  * Added support for RSS hash results.
+  * Added several performance improvements.
+  * Added several bug fixes.
 
 * **Updated the QAT PMD.**
 
-  The QAT PMD was updated with following support:
+  The QAT PMD was updated with additional support for:
+
+  * MD5_HMAC algorithm.
+  * SHA224-HMAC algorithm.
+  * SHA384-HMAC algorithm.
+  * GMAC algorithm.
+  * KASUMI (F8 and F9) algorithm.
+  * 3DES algorithm.
+  * NULL algorithm.
+  * C3XXX device.
+  * C62XX device.
 
-  * 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.**
 
-* **Added libcrypto PMD.**
+  A new crypto PMD has been added, which provides several ciphering and hashing algorithms.
+  All cryptography operations use the Openssl library crypto API.
 
-  A new crypto PMD has been added, which provides several ciphering and hashing.
-  All cryptography operations are using Openssl library crypto API.
+* **Updated the IPsec example.**
 
-* **Updated the IPsec example with following support:**
+  Updated the IPsec example with the following support:
 
-  * configuration file
-  * AES CBC IV generation with cipher forward function
-  * AES GCM/CTR mode
+  * 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 as ``-march`` flag.
+  The config option ``RTE_MACHINE`` can be used to pass code names to the compiler via the ``-march`` flag.
 
 
 Resolved Issues
@@ -146,25 +170,16 @@ Resolved Issues
    This section is a comment. Make sure to start the actual text at the margin.
 
 
-EAL
-~~~
-
-
 Drivers
 ~~~~~~~
 
+* **enic: Fixed several flow director issues.**
 
-Libraries
-~~~~~~~~~
-
+* **enic: Fixed inadvertent setting of L4 checksum ptype on ICMP packets.**
 
-Examples
-~~~~~~~~
+* **enic: Fixed high driver overhead when servicing Rx queues beyond the first.**
 
 
-Other
-~~~~~
-
 
 Known Issues
 ------------
@@ -178,6 +193,29 @@ Known Issues
 
    This section is a comment. Make sure to start the actual text at the margin.
 
+* **L3fwd-power app does not work properly when Rx vector is enabled.**
+
+  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.
+
+  Therefore, in order to use L3fwd-power, vector mode should be disabled
+  via the config file.
+
+* **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.
+
+  Callers can workaround this by always supplying the digest virtual and
+  physical address fields in the rte_crypto_sym_op for an auth operation.
+
 
 API Changes
 -----------
@@ -189,17 +227,47 @@ API Changes
 
    This section is a comment. Make sure to start the actual text at the margin.
 
-* 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``.
+* 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``.
+
+  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.
 
 * The ``file_name`` data type of ``struct rte_port_source_params`` and
-  ``struct rte_port_sink_params`` is changed from `char *`` to ``const char *``.
+  ``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``.
 
 
 ABI Changes
@@ -232,13 +300,13 @@ 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
@@ -248,6 +316,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
@@ -276,6 +345,66 @@ Tested Platforms
 
    This section is a comment. Make sure to start the actual text at the margin.
 
+#. 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
+
+   - BIOS: SE5C610.86B.01.01.0009.060120151350
+   - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
+
+#. Intel(R) Server board S2600WTT
+
+   - BIOS: SE5C610.86B.01.01.0005.101720141054
+   - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
+
+#. 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
 -----------
@@ -291,6 +420,151 @@ Tested NICs
 
    This section is a comment. Make sure to start the actual text at the margin.
 
+#. Intel(R) Ethernet Controller X540-AT2
+
+   - Firmware version: 0x80000389
+   - Device id (pf): 8086:1528
+   - Driver version: 3.23.2 (ixgbe)
+
+#. Intel(R) 82599ES 10 Gigabit Ethernet Controller
+
+   - Firmware version: 0x61bf0001
+   - Device id (pf/vf): 8086:10fb / 8086:10ed
+   - Driver version: 4.0.1-k (ixgbe)
+
+#. 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)
+
+#. 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
+
+#. Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
+
+   * 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
 -----------
@@ -309,3 +583,18 @@ Tested OSes
    * Wind River Linux 8
 
    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