Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/10955/?format=api
http://patches.dpdk.org/api/patches/10955/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/1456850801-3737-2-git-send-email-jan@semihalf.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<1456850801-3737-2-git-send-email-jan@semihalf.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1456850801-3737-2-git-send-email-jan@semihalf.com", "date": "2016-03-01T16:46:38", "name": "[dpdk-dev,v4,1/4] ena: Amazon ENA documentation", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "2a644a24129f0207c02013340328572e6e40da94", "submitter": { "id": 421, "url": "http://patches.dpdk.org/api/people/421/?format=api", "name": "Jan Medala", "email": "jan@semihalf.com" }, "delegate": { "id": 10, "url": "http://patches.dpdk.org/api/users/10/?format=api", "username": "bruce", "first_name": "Bruce", "last_name": "Richardson", "email": "bruce.richardson@intel.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/1456850801-3737-2-git-send-email-jan@semihalf.com/mbox/", "series": [], "comments": "http://patches.dpdk.org/api/patches/10955/comments/", "check": "pending", "checks": "http://patches.dpdk.org/api/patches/10955/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 90EF8AA35;\n\tTue, 1 Mar 2016 17:46:39 +0100 (CET)", "from mail-lf0-f52.google.com (mail-lf0-f52.google.com\n\t[209.85.215.52]) by dpdk.org (Postfix) with ESMTP id A70849620\n\tfor <dev@dpdk.org>; Tue, 1 Mar 2016 17:46:38 +0100 (CET)", "by mail-lf0-f52.google.com with SMTP id v124so24249130lff.0\n\tfor <dev@dpdk.org>; Tue, 01 Mar 2016 08:46:38 -0800 (PST)", "from anpa-dpdk-2.lab.semihalf.com (cardhu.semihalf.com.\n\t[213.17.239.108]) by smtp.gmail.com with ESMTPSA id\n\tm8sm4994426lfe.32.2016.03.01.08.46.37\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tTue, 01 Mar 2016 08:46:37 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=semihalf-com.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=SiJSzUBQ5e9wfwfxSEiY5xFKkmMq4lpwAGWxy/gGw+4=;\n\tb=hnWboZXYM5h/ovn4bASGGHVMbU690zjVlrxYKmmcGuJYZNbHMWYxS3+9H1QH1RNaOZ\n\t3fZgfHlFSyJ31/6wt1cs/pUSDJt6IZVF7tmxcSMzdidWTju4CpITjWz3ol5iQpcCXf9n\n\tazFnvO4fUAhjwbNQCbJYAZrTEuEUl2j2c8XDlO8ZD0YQISz3uQOrYVThOYEkfYOAqkrV\n\tOey4xg+1b7VUYOV/3IHcuvllgSzZHY8ai5E3IPGf01IdqquBgzEfYQKsw/BSlXpbt4EL\n\tolBWvFIjxA4l8CZ4ZbfCOjGcOf6yJtWlJJ2wleKNNmGRJkFzOU9FAXk2bseH/hv2+YlK\n\tikmw==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=SiJSzUBQ5e9wfwfxSEiY5xFKkmMq4lpwAGWxy/gGw+4=;\n\tb=jD26iIs1qxZ0OJiXXGJcGF71nk3liRW51vtQ5Uxg7ye9SO/5NiDOYX+PVu7WdUpiNk\n\tiPUN6c1TWDibSf8d2CkZIEdhB/d5qsSyGMfrd7L9HFudQYi5oxXuSWh6+icBJdI9glCO\n\t4BMRFTc3pxQK/obdjMN7kQg4OGWhXTbUE8oW1m2ONaNltDk8R0nMhczLhrSZEpObT7QQ\n\tPY0WSeLarNN6l9649QOC8C5Q+y0hOmpggMXV43RrFhiFJMPNfHcolMeQQzvsQIig02KT\n\t0Pt6sp8OpKKwQvL51uUo2xRG1L1jRiK0TP59pSteA/GRI40YcYIYaIaUF3M/ZGZNiY66\n\tWHfg==", "X-Gm-Message-State": "AD7BkJIGulhihLBs6nKbdkEoYooxu7QxV2bglKDi0dTPOAtRbNHn83+Xu6t+SOdMEHFcKw==", "X-Received": "by 10.25.163.199 with SMTP id m190mr8177871lfe.7.1456850798321; \n\tTue, 01 Mar 2016 08:46:38 -0800 (PST)", "From": "Jan Medala <jan@semihalf.com>", "To": "dev@dpdk.org", "Date": "Tue, 1 Mar 2016 17:46:38 +0100", "Message-Id": "<1456850801-3737-2-git-send-email-jan@semihalf.com>", "X-Mailer": "git-send-email 1.9.1", "In-Reply-To": "<1456850801-3737-1-git-send-email-jan@semihalf.com>", "References": "<1456850801-3737-1-git-send-email-jan@semihalf.com>", "Cc": "Evgeny Schemeilin <evgenys@amazon.com>, matua@amazon.com", "Subject": "[dpdk-dev] [PATCH v4 1/4] ena: Amazon ENA documentation", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "patches and discussions about DPDK <dev.dpdk.org>", "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://dpdk.org/ml/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "Signed-off-by: Evgeny Schemeilin <evgenys@amazon.com>\nSigned-off-by: Alexander Matushevsky <matua@amazon.com>\nSigned-off-by: Jan Medala <jan@semihalf.com>\nSigned-off-by: Jakub Palider <jpa@semihalf.com>\n---\n MAINTAINERS | 8 ++\n doc/guides/nics/ena.rst | 252 ++++++++++++++++++++++++++++++++++++++++++++++\n doc/guides/nics/index.rst | 1 +\n 3 files changed, 261 insertions(+)\n create mode 100644 doc/guides/nics/ena.rst", "diff": "diff --git a/MAINTAINERS b/MAINTAINERS\nindex 628bc05..d6a726d 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -261,6 +261,14 @@ Linux AF_PACKET\n M: John W. Linville <linville@tuxdriver.com>\n F: drivers/net/af_packet/\n \n+Amazon ena\n+M: Jan Medala <jan@semihalf.com>\n+M: Jakub Palider <jpa@semihalf.com>\n+M: Netanel Belgazal <netanel@amazon.com>\n+M: Evgeny Schemeilin <evgenys@amazon.com>\n+F: drivers/net/ena/\n+F: doc/guides/nics/ena.rst\n+\n Chelsio cxgbe\n M: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>\n F: drivers/net/cxgbe/\ndiff --git a/doc/guides/nics/ena.rst b/doc/guides/nics/ena.rst\nnew file mode 100644\nindex 0000000..11bd922\n--- /dev/null\n+++ b/doc/guides/nics/ena.rst\n@@ -0,0 +1,252 @@\n+.. BSD LICENSE\n+\n+ Copyright (c) 2015-2016 Amazon.com, Inc. or its affiliates.\n+ All rights reserved.\n+\n+ Redistribution and use in source and binary forms, with or without\n+ modification, are permitted provided that the following conditions\n+ are met:\n+\n+ * Redistributions of source code must retain the above copyright\n+ notice, this list of conditions and the following disclaimer.\n+ * Redistributions in binary form must reproduce the above copyright\n+ notice, this list of conditions and the following disclaimer in\n+ the documentation and/or other materials provided with the\n+ distribution.\n+ * Neither the name of Amazon.com, Inc. nor the names of its\n+ contributors may be used to endorse or promote products derived\n+ from this software without specific prior written permission.\n+\n+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+ \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+\n+ENA Poll Mode Driver\n+====================\n+\n+The ENA PMD is a DPDK poll-mode driver for the Amazon Elastic\n+Network Adapter (ENA) family.\n+\n+Overview\n+--------\n+\n+The ENA driver exposes a lightweight management interface with a\n+minimal set of memory mapped registers and an extendable command set\n+through an Admin Queue.\n+\n+The driver supports a wide range of ENA adapters, is link-speed\n+independent (i.e., the same driver is used for 10GbE, 25GbE, 40GbE,\n+etc.), and it negotiates and supports an extendable feature set.\n+\n+ENA adapters allow high speed and low overhead Ethernet traffic\n+processing by providing a dedicated Tx/Rx queue pair per CPU core.\n+\n+The ENA driver supports industry standard TCP/IP offload features such\n+as checksum offload and TCP transmit segmentation offload (TSO).\n+\n+Receive-side scaling (RSS) is supported for multi-core scaling.\n+\n+Some of the ENA devices support a working mode called Low-latency\n+Queue (LLQ), which saves several more microseconds.\n+\n+Management Interface\n+--------------------\n+\n+ENA management interface is exposed by means of:\n+\n+* Device Registers\n+* Admin Queue (AQ) and Admin Completion Queue (ACQ)\n+\n+ENA device memory-mapped PCIe space for registers (MMIO registers)\n+are accessed only during driver initialization and are not involved\n+in further normal device operation.\n+\n+AQ is used for submitting management commands, and the\n+results/responses are reported asynchronously through ACQ.\n+\n+ENA introduces a very small set of management commands with room for\n+vendor-specific extensions. Most of the management operations are\n+framed in a generic Get/Set feature command.\n+\n+The following admin queue commands are supported:\n+\n+* Create I/O submission queue\n+* Create I/O completion queue\n+* Destroy I/O submission queue\n+* Destroy I/O completion queue\n+* Get feature\n+* Set feature\n+* Get statistics\n+\n+Refer to ``ena_admin_defs.h`` for the list of supported Get/Set Feature\n+properties.\n+\n+Data Path Interface\n+-------------------\n+\n+I/O operations are based on Tx and Rx Submission Queues (Tx SQ and Rx\n+SQ correspondingly). Each SQ has a completion queue (CQ) associated\n+with it.\n+\n+The SQs and CQs are implemented as descriptor rings in contiguous\n+physical memory.\n+\n+Refer to ``ena_eth_io_defs.h`` for the detailed structure of the descriptor\n+\n+The driver supports multi-queue for both Tx and Rx.\n+\n+Configuration information\n+-------------------------\n+\n+**DPDK Configuration Parameters**\n+\n+ The following configuration options are available for the ENA PMD:\n+\n+ * **CONFIG_RTE_LIBRTE_ENA_PMD** (default y): Enables or disables inclusion\n+ of the ENA PMD driver in the DPDK compilation.\n+\n+\n+ * **CONFIG_RTE_LIBRTE_ENA_DEBUG_INIT** (default y): Enables or disables debug\n+ logging of device initialization within the ENA PMD driver.\n+\n+ * **CONFIG_RTE_LIBRTE_ENA_DEBUG_RX** (default n): Enables or disables debug\n+ logging of RX logic within the ENA PMD driver.\n+\n+ * **CONFIG_RTE_LIBRTE_ENA_DEBUG_TX** (default n): Enables or disables debug\n+ logging of TX logic within the ENA PMD driver.\n+\n+ * **CONFIG_RTE_LIBRTE_ENA_COM_DEBUG** (default n): Enables or disables debug\n+ logging of low level tx/rx logic in ena_com(base) within the ENA PMD driver.\n+\n+**ENA Configuration Parameters**\n+\n+ * **Number of Queues**\n+\n+ This is the requested number of queues upon initialization, however, the actual\n+ number of receive and transmit queues to be created will be the minimum between\n+ the maximal number supported by the device and number of queues requested.\n+\n+ * **Size of Queues**\n+\n+ This is the requested size of receive/transmit queues, while the actual size\n+ will be the minimum between the requested size and the maximal receive/transmit\n+ supported by the device.\n+\n+Building DPDK\n+-------------\n+\n+See the :ref:`DPDK Getting Started Guide for Linux <linux_gsg>` for\n+instructions on how to build DPDK.\n+\n+By default the ENA PMD library will be built into the DPDK library.\n+\n+For configuring and using UIO and VFIO frameworks, please also refer :ref:`the\n+documentation that comes with DPDK suite <linux_gsg>`.\n+\n+Supported ENA adapters\n+----------------------\n+\n+Current ENA PMD supports the following ENA adapters including:\n+\n+* ``1d0f:ec20`` - ENA VF\n+* ``1d0f:ec21`` - ENA VF with LLQ support\n+\n+Supported Operating Systems\n+---------------------------\n+\n+Any Linux distribution fulfilling the conditions described in ``System Requirements``\n+section of :ref:`the DPDK documentation <linux_gsg>` or refer to *DPDK Release Notes*.\n+\n+Supported features\n+------------------\n+\n+* Jumbo frames up to 9K\n+* Port Hardware Statistics\n+* IPv4/TCP/UDP checksum offload\n+* TSO offload\n+* Multiple receive and transmit queues\n+* RSS\n+* Low Latency Queue for Tx\n+\n+Unsupported features\n+--------------------\n+\n+The features supported by the device and not yet supported by this PMD include:\n+\n+* Asynchronous Event Notification Queue (AENQ)\n+\n+Prerequisites\n+-------------\n+\n+#. Prepare the system as recommended by DPDK suite. This includes environment\n+ variables, hugepages configuration, tool-chains and configuration\n+\n+#. Insert igb_uio kernel module using the command 'modprobe igb_uio'\n+\n+#. Bind the intended ENA device to igb_uio module\n+\n+\n+At this point the system should be ready to run DPDK applications. Once the\n+application runs to completion, the ENA can be detached from igb_uio if necessary.\n+\n+Usage example\n+-------------\n+\n+This section demonstrates how to launch **testpmd** with Amazon ENA\n+devices managed by librte_pmd_ena.\n+\n+#. Load the kernel modules:\n+\n+ .. code-block:: console\n+\n+ modprobe uio\n+ insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko\n+\n+ .. note::\n+\n+ Currently Amazon ENA PMD driver depends on igb_uio user space I/O kernel module\n+\n+#. Mount and request huge pages:\n+\n+ .. code-block:: console\n+\n+ mount -t hugetlbfs nodev /mnt/hugepages\n+ echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages\n+\n+#. Bind UIO driver to ENA device (using provided by DPDK binding tool):\n+\n+ .. code-block:: console\n+\n+ ./tools/dpdk_nic_bind.py --bind=igb_uio 0000:02:00.1\n+\n+#. Start testpmd with basic parameters:\n+\n+ .. code-block:: console\n+\n+ ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -- -i\n+\n+ Example output:\n+\n+ .. code-block:: console\n+\n+ [...]\n+ EAL: PCI device 0000:02:00.1 on NUMA socket -1\n+ EAL: probe driver: 1d0f:ec20 rte_ena_pmd\n+ EAL: PCI memory mapped at 0x7f9b6c400000\n+ PMD: eth_ena_dev_init(): Initializing 0:2:0.1\n+ Interactive-mode selected\n+ Configuring Port 0 (socket 0)\n+ Port 0: 00:00:00:11:00:01\n+ Checking link statuses...\n+ Port 0 Link Up - speed 10000 Mbps - full-duplex\n+ Done\n+ testpmd>\n+\ndiff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst\nindex 8618114..694b95b 100644\n--- a/doc/guides/nics/index.rst\n+++ b/doc/guides/nics/index.rst\n@@ -39,6 +39,7 @@ Network Interface Controller Drivers\n bnx2x\n cxgbe\n e1000em\n+ ena\n enic\n fm10k\n ixgbe\n", "prefixes": [ "dpdk-dev", "v4", "1/4" ] }{ "id": 10955, "url": "