X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fnics%2Fena.rst;h=9f0a6509f719c79a11997032fb6fb4dacf4b8c75;hb=566b4d7a968fa454ff7deab7c43216712878af30;hp=c2d6b85a2929d0ac1eb3aec4e5e1cef5132d9850;hpb=35b09d76f89e7d5a4f38a2926cf6915028ed1e56;p=dpdk.git diff --git a/doc/guides/nics/ena.rst b/doc/guides/nics/ena.rst index c2d6b85a29..9f0a6509f7 100644 --- a/doc/guides/nics/ena.rst +++ b/doc/guides/nics/ena.rst @@ -1,6 +1,6 @@ .. 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 @@ -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_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. @@ -168,30 +164,37 @@ section of :ref:`the DPDK documentation ` or refer to *DPDK Release N Supported features ------------------ +* MTU configuration * Jumbo frames up to 9K -* Port Hardware Statistics * IPv4/TCP/UDP checksum offload * TSO offload * Multiple receive and transmit queues -* RSS +* RSS hash +* RSS indirection table configuration * 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 - 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 @@ -200,52 +203,26 @@ application runs to completion, the ENA can be detached from igb_uio if necessar 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 - - ./usertools/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 ` to launch +**testpmd** with Amazon ENA devices managed by librte_pmd_ena. - .. code-block:: console +Example output: - ./x86_64-native-linuxapp-gcc/app/testpmd -l 0-3 -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 : 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>