-+--------------------------------+--------------------------------------------------------------------------------------+
-| Title | Cannot set link speed on Intel® 40G ethernet controller |
-| | |
-+================================+======================================================================================+
-| Reference # | IXA00386379 |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
-| Description | On Intel® 40G Ethernet Controller: |
-| | |
-| | It cannot set the link to specific speed. |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
-| Implication | The link speed cannot be changed forcedly, though it can be configured by |
-| | application. |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
-| Resolution/ Workaround | None |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
-| Affected Environment/ Platform | All |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
-| Driver/Module | Poll Mode Driver (PMD) |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
-
-Stopping the port does not down the link on Intel® 40G ethernet controller
---------------------------------------------------------------------------
-
-+--------------------------------+--------------------------------------------------------------------------------------+
-| Title | Stopping the port does not down the link on Intel® 40G ethernet controller |
-| | |
-+================================+======================================================================================+
-| Reference # | IXA00386380 |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
-| Description | On Intel® 40G Ethernet Controller: |
-| | |
-| | Stopping the port does not really down the port link. |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
-| Implication | The port link will be still up after stopping the port. |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
-| Resolution/ Workaround | None |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
-| Affected Environment/ Platform | All |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
-| Driver/Module | Poll Mode Driver (PMD) |
-| | |
-+--------------------------------+--------------------------------------------------------------------------------------+
+**Description**:
+ On Intel® 40G Ethernet Controller you cannot set the link to specific speed.
+
+**Implication**:
+ The link speed cannot be changed forcibly, though it can be configured by application.
+
+**Resolution/Workaround**:
+ None
+
+**Affected Environment/Platform**:
+ All.
+
+**Driver/Module**:
+ Poll Mode Driver (PMD).
+
+
+Devices bound to igb_uio with VT-d enabled do not work on Linux kernel 3.15-3.17
+--------------------------------------------------------------------------------
+
+**Description**:
+ When VT-d is enabled (``iommu=pt intel_iommu=on``), devices are 1:1 mapped.
+ In the Linux kernel unbinding devices from drivers removes that mapping which result in IOMMU errors.
+ Introduced in Linux `kernel 3.15 commit
+ <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/iommu/intel-iommu.c?id=816997d03bca9fabcee65f3481eb0297103eceb7>`_,
+ solved in Linux `kernel 3.18 commit
+ <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/iommu/intel-iommu.c?id=1196c2fb0407683c2df92d3d09f9144d42830894>`_.
+
+**Implication**:
+ Devices will not be allowed to access memory, resulting in following kernel errors::
+
+ dmar: DRHD: handling fault status reg 2
+ dmar: DMAR:[DMA Read] Request device [02:00.0] fault addr a0c58000
+ DMAR:[fault reason 02] Present bit in context entry is clear
+
+**Resolution/Workaround**:
+ Use earlier or later kernel versions, or avoid driver binding on boot by blacklisting the driver modules.
+ I.e., in the case of ``ixgbe``, we can pass the kernel command line option: ``modprobe.blacklist=ixgbe``.
+ This way we do not need to unbind the device to bind it to igb_uio.
+
+**Affected Environment/Platform**:
+ Linux systems with kernel versions 3.15 to 3.17.
+
+**Driver/Module**:
+ ``igb_uio`` module.
+
+
+VM power manager may not work on systems with more than 64 cores
+----------------------------------------------------------------
+
+**Description**:
+ When using VM power manager on a system with more than 64 cores, VM(s) should not use cores 64 or higher.
+
+**Implication**:
+ VM power manager should not be used with VM(s) that are using cores 64 or above.
+
+**Resolution/Workaround**:
+ Do not use cores 64 or above.
+
+**Affected Environment/Platform**:
+ Platforms with more than 64 cores.
+
+**Driver/Module**:
+ VM power manager application.
+
+
+DPDK may not build on some Intel CPUs using clang < 3.7.0
+---------------------------------------------------------
+
+**Description**:
+ When compiling DPDK with an earlier version than 3.7.0 of clang, CPU flags are not detected on some Intel platforms
+ such as Intel Broadwell/Skylake (and possibly future CPUs), and therefore compilation fails due to missing intrinsics.
+
+**Implication**:
+ DPDK will not build when using a clang version < 3.7.0.
+
+**Resolution/Workaround**:
+ Use clang 3.7.0 or higher, or gcc.
+
+**Affected Environment/Platform**:
+ Platforms with Intel Broadwell/Skylake using an old clang version.
+
+**Driver/Module**:
+ Environment Abstraction Layer (EAL).
+
+
+The last EAL argument is replaced by the program name in argv[]
+---------------------------------------------------------------
+
+**Description**:
+ The last EAL argument is replaced by program name in ``argv[]`` after ``eal_parse_args`` is called.
+ This is the intended behavior but it causes the pointer to the last EAL argument to be lost.
+
+**Implication**:
+ If the last EAL argument in ``argv[]`` is generated by a malloc function, changing it will cause memory
+ issues when freeing the argument.
+
+**Resolution/Workaround**:
+ An application should not consider the value in ``argv[]`` as unchanged.
+
+**Affected Environment/Platform**:
+ ALL.
+
+**Driver/Module**:
+ Environment Abstraction Layer (EAL).
+
+
+I40e VF may not receive packets in the promiscuous mode
+-------------------------------------------------------
+
+**Description**:
+ Promiscuous mode is not supported by the DPDK i40e VF driver when using the
+ i40e Linux kernel driver as host driver.
+
+**Implication**:
+ The i40e VF does not receive packets when the destination MAC address is unknown.
+
+**Resolution/Workaround**:
+ Use a explicit destination MAC address that matches the VF.
+
+**Affected Environment/Platform**:
+ All.
+
+**Driver/Module**:
+ Poll Mode Driver (PMD).
+
+
+uio pci generic module bind failed in X710/XL710/XXV710
+-------------------------------------------------------
+
+**Description**:
+ The ``uio_pci_generic`` module is not supported by XL710, since the errata of XL710
+ states that the Interrupt Status bit is not implemented. The errata is the item #71
+ from the `xl710 controller spec
+ <http://www.intel.com/content/www/us/en/embedded/products/networking/xl710-10-40-controller-spec-update.html>`_.
+ The hw limitation is the same as other X710/XXV710 NICs.
+
+**Implication**:
+ When use ``--bind=uio_pci_generic``, the ``uio_pci_generic`` module probes device and check the Interrupt
+ Status bit. Since it is not supported by X710/XL710/XXV710, it return a *failed* value. The statement
+ that these products don’t support INTx masking, is indicated in the related `linux kernel commit
+ <https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/drivers/pci/quirks.c?id=8bcf4525c5d43306c5fd07e132bc8650e3491aec>`_.
+
+**Resolution/Workaround**:
+ Do not bind the ``uio_pci_generic`` module in X710/XL710/XXV710 NICs.
+
+**Affected Environment/Platform**:
+ All.
+
+**Driver/Module**:
+ Poll Mode Driver (PMD).
+
+
+virtio tx_burst() function cannot do TSO on shared packets
+----------------------------------------------------------
+
+**Description**:
+ The standard TX function of virtio driver does not manage shared
+ packets properly when doing TSO. These packets should be read-only
+ but the driver modifies them.
+
+ When doing TSO, the virtio standard expects that the L4 checksum is
+ set to the pseudo header checksum in the packet data, which is
+ different than the DPDK API. The driver patches the L4 checksum to
+ conform to the virtio standard, but this solution is invalid when
+ dealing with shared packets (clones), because the packet data should
+ not be modified.
+
+**Implication**:
+ In this situation, the shared data will be modified by the driver,
+ potentially causing race conditions with the other users of the mbuf
+ data.
+
+**Resolution/Workaround**:
+ The workaround in the application is to ensure that the network
+ headers in the packet data are not shared.
+
+**Affected Environment/Platform**:
+ Virtual machines running a virtio driver.
+
+**Driver/Module**:
+ Poll Mode Driver (PMD).