build: fix meson check for binutils 2.30
[dpdk.git] / doc / guides / nics / ena.rst
index 073b35a..9f0a650 100644 (file)
@@ -1,6 +1,6 @@
 .. BSD LICENSE
 
 .. BSD LICENSE
 
-    Copyright (c) 2015-2016 Amazon.com, Inc. or its affiliates.
+    Copyright (c) 2015-2018 Amazon.com, Inc. or its affiliates.
     All rights reserved.
 
     Redistribution and use in source and binary forms, with or without
     All rights reserved.
 
     Redistribution and use in source and binary forms, with or without
@@ -113,10 +113,6 @@ Configuration information
    * **CONFIG_RTE_LIBRTE_ENA_PMD** (default y): Enables or disables inclusion
      of the ENA PMD driver in the DPDK compilation.
 
    * **CONFIG_RTE_LIBRTE_ENA_PMD** (default y): Enables or disables inclusion
      of the ENA PMD driver in the DPDK compilation.
 
-
-   * **CONFIG_RTE_LIBRTE_ENA_DEBUG_INIT** (default y): Enables or disables debug
-     logging of device initialization within the ENA PMD driver.
-
    * **CONFIG_RTE_LIBRTE_ENA_DEBUG_RX** (default n): Enables or disables debug
      logging of RX logic within the ENA PMD driver.
 
    * **CONFIG_RTE_LIBRTE_ENA_DEBUG_RX** (default n): Enables or disables debug
      logging of RX logic within the ENA PMD driver.
 
@@ -168,30 +164,37 @@ section of :ref:`the DPDK documentation <linux_gsg>` or refer to *DPDK Release N
 Supported features
 ------------------
 
 Supported features
 ------------------
 
+* MTU configuration
 * Jumbo frames up to 9K
 * Jumbo frames up to 9K
-* Port Hardware Statistics
 * IPv4/TCP/UDP checksum offload
 * TSO offload
 * Multiple receive and transmit queues
 * IPv4/TCP/UDP checksum offload
 * TSO offload
 * Multiple receive and transmit queues
-* RSS
+* RSS hash
+* RSS indirection table configuration
 * Low Latency Queue for Tx
 * Low Latency Queue for Tx
-
-Unsupported features
---------------------
-
-The features supported by the device and not yet supported by this PMD include:
-
-* Asynchronous Event Notification Queue (AENQ)
+* Basic and extended statistics
+* LSC event notification
+* Watchdog (requires handling of timers in the application)
+* Device reset upon failure
 
 Prerequisites
 -------------
 
 #. Prepare the system as recommended by DPDK suite.  This includes environment
 
 Prerequisites
 -------------
 
 #. Prepare the system as recommended by DPDK suite.  This includes environment
-   variables, hugepages configuration, tool-chains and configuration
+   variables, hugepages configuration, tool-chains and configuration.
 
 
-#. Insert igb_uio kernel module using the command 'modprobe igb_uio'
+#. ENA PMD can operate with ``vfio-pci`` or ``igb_uio`` driver.
 
 
-#. Bind the intended ENA device to igb_uio module
+#. Insert ``vfio-pci`` or ``igb_uio`` kernel module using the command
+   ``modprobe vfio-pci`` or ``modprobe igb_uio`` respectively.
+
+#. For ``vfio-pci`` users only:
+   Please make sure that ``IOMMU`` is enabled in your system,
+   or use ``vfio`` driver in ``noiommu`` mode::
+
+     echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode
+
+#. Bind the intended ENA device to ``vfio-pci`` or ``igb_uio`` module.
 
 
 At this point the system should be ready to run DPDK applications. Once the
 
 
 At this point the system should be ready to run DPDK applications. Once the
@@ -200,52 +203,26 @@ application runs to completion, the ENA can be detached from igb_uio if necessar
 Usage example
 -------------
 
 Usage example
 -------------
 
-This section demonstrates how to launch **testpmd** with Amazon ENA
-devices managed by librte_pmd_ena.
-
-#. Load the kernel modules:
-
-   .. code-block:: console
-
-      modprobe uio
-      insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
-
-   .. note::
-
-      Currently Amazon ENA PMD driver depends on igb_uio user space I/O kernel module
-
-#. Mount and request huge pages:
-
-   .. code-block:: console
-
-      mount -t hugetlbfs nodev /mnt/hugepages
-      echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
-
-#. Bind UIO driver to ENA device (using provided by DPDK binding tool):
-
-   .. code-block:: console
-
-      ./tools/dpdk-devbind.py --bind=igb_uio 0000:02:00.1
-
-#. Start testpmd with basic parameters:
+Follow instructions available in the document
+:ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>` to launch
+**testpmd** with Amazon ENA devices managed by librte_pmd_ena.
 
 
-   .. code-block:: console
+Example output:
 
 
-      ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -- -i
+.. code-block:: console
 
 
-   Example output:
+   [...]
+   EAL: PCI device 0000:00:06.0 on NUMA socket -1
+   EAL:   Invalid NUMA socket, default to 0
+   EAL:   probe driver: 1d0f:ec20 net_ena
 
 
-   .. code-block:: console
+   Interactive-mode selected
+   testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=171456, size=2176, socket=0
+   testpmd: preferred mempool ops selected: ring_mp_mc
+   Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.
+   Configuring Port 0 (socket 0)
+   Port 0: 00:00:00:11:00:01
+   Checking link statuses...
 
 
-      [...]
-      EAL: PCI device 0000:02:00.1 on NUMA socket -1
-      EAL:   probe driver: 1d0f:ec20 rte_ena_pmd
-      EAL:   PCI memory mapped at 0x7f9b6c400000
-      PMD: eth_ena_dev_init(): Initializing 0:2:0.1
-      Interactive-mode selected
-      Configuring Port 0 (socket 0)
-      Port 0: 00:00:00:11:00:01
-      Checking link statuses...
-      Port 0 Link Up - speed 10000 Mbps - full-duplex
-      Done
-      testpmd>
+   Done
+   testpmd>