Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/9516/?format=api
https://patches.dpdk.org/api/patches/9516/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/1450048292-11548-1-git-send-email-johndale@cisco.com/", "project": { "id": 1, "url": "https://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": "<1450048292-11548-1-git-send-email-johndale@cisco.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1450048292-11548-1-git-send-email-johndale@cisco.com", "date": "2015-12-13T23:11:32", "name": "[dpdk-dev] doc: Enic PMD documentaion for Network Interface Controller Drivers Guide", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "96739decc74f29ee4e02894d7990cb3c9f893885", "submitter": { "id": 359, "url": "https://patches.dpdk.org/api/people/359/?format=api", "name": "John Daley (johndale)", "email": "johndale@cisco.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dpdk/patch/1450048292-11548-1-git-send-email-johndale@cisco.com/mbox/", "series": [], "comments": "https://patches.dpdk.org/api/patches/9516/comments/", "check": "pending", "checks": "https://patches.dpdk.org/api/patches/9516/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 CD37A58D4;\n\tMon, 14 Dec 2015 00:11:42 +0100 (CET)", "from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78])\n\tby dpdk.org (Postfix) with ESMTP id CDD7158CF\n\tfor <dev@dpdk.org>; Mon, 14 Dec 2015 00:11:40 +0100 (CET)", "from rcdn-core-9.cisco.com ([173.37.93.145])\n\tby rcdn-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t13 Dec 2015 23:11:39 +0000", "from cisco.com (savbu-usnic-a.cisco.com [10.193.184.48])\n\tby rcdn-core-9.cisco.com (8.14.5/8.14.5) with ESMTP id tBDNBd5g014315;\n\tSun, 13 Dec 2015 23:11:39 GMT", "by cisco.com (Postfix, from userid 392789)\n\tid F30913FAAD34; Sun, 13 Dec 2015 15:11:38 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n\td=cisco.com; i=@cisco.com; l=9945; q=dns/txt; s=iport;\n\tt=1450048301; x=1451257901;\n\th=from:to:cc:subject:date:message-id:mime-version:\n\tcontent-transfer-encoding;\n\tbh=z7UtsymMEZ3sWzXgGYEZyGDZ0OIcvwDrjQ7YeuZtqhY=;\n\tb=Y8I/n3bbsZEYNsu6rMK7wTkGHDFhGYHqPJ5/pyajnZ04fj/hy5Sg+ugV\n\tgNl55HkHcOwkKbkXiH2DQEudcmImZC+ZvENXUGnHPT2itFJHXgemTgC3I\n\ttn4rWLDWr9KTkFxUh/unpbiV4BJ6MlT92kCRis5c1GCYExHgjKZ5DrJ2m o=;", "X-IronPort-AV": "E=Sophos;i=\"5.20,424,1444694400\"; d=\"scan'208\";a=\"53162412\"", "From": "johndale <johndale@cisco.com>", "To": "dev@dpdk.org", "Date": "Sun, 13 Dec 2015 15:11:32 -0800", "Message-Id": "<1450048292-11548-1-git-send-email-johndale@cisco.com>", "X-Mailer": "git-send-email 2.4.3", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Cc": "johndale <johndale@cisco.com>", "Subject": "[dpdk-dev] [PATCH] doc: Enic PMD documentaion for Network Interface\n\tController Drivers Guide", "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: John Daley <johndale@cisco.com>\n---\n doc/guides/nics/enic.rst | 233 ++++++++++++++++++++++++++++++++++++++++++++++\n doc/guides/nics/index.rst | 1 +\n 2 files changed, 234 insertions(+)\n create mode 100644 doc/guides/nics/enic.rst", "diff": "diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst\nnew file mode 100644\nindex 0000000..9c1f493\n--- /dev/null\n+++ b/doc/guides/nics/enic.rst\n@@ -0,0 +1,233 @@\n+.. BSD LICENSE\n+ Copyright (c) 2015, Cisco Systems, Inc.\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+ 1. Redistributions of source code must retain the above copyright\n+ notice, this list of conditions and the following disclaimer.\n+\n+ 2. 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+\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\n+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n+ COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\n+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\n+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n+ POSSIBILITY OF SUCH DAMAGE.\n+\n+ENIC Poll Mode Driver\n+=====================\n+\n+ENIC PMD is the DPDK poll-mode driver for the Cisco System Inc. VIC Ethernet\n+NICs. These adapters are also referred to as vNICs below. If you are running\n+or would like to run DPDK software applications on Cisco UCS servers using\n+Cisco VIC adapters the following documentation is relevant.\n+\n+Version Information\n+-------------------\n+\n+The version of the ENIC PMD driver is 1.0.0.6 and will be printed by ENIC PMD\n+during the initialization.\n+\n+How to obtain ENIC PMD integrated DPDK\n+--------------------------------------\n+\n+ENIC PMD support is integrated into the DPDK suite. dpdk-<version>.tar.gz\n+should be downloaded from www.dpdk.org\n+\n+\n+Configuration information\n+-------------------------\n+\n+- **DPDK Configuration Parameters**\n+\n+ The following configuration options are available for the ENIC PMD:\n+\n+ - **CONFIG_RTE_LIBRTE_ENIC_PMD** (default y): Enables or disables inclusion\n+ of the ENIC PMD driver in the DPDK compilation.\n+\n+ - **CONFIG_RTE_LIBRTE_ENIC_DEBUG** (default n): Enables or disables debug\n+ logging within the ENIC PMD driver.\n+\n+- **vNIC Configuration Parameters**\n+\n+ - **Number of Queues**\n+\n+ The maximum number of receive and transmit queues are configurable on a per\n+ vNIC basis through the Cisco UCS Manager (CIMC or UCSM). These values\n+ should be configured to be greater than or equal to the nb_rx_q and nb_tx_q\n+ parameters expected to used in the call to the rte_eth_dev_configure()\n+ function.\n+\n+ - **Size of Queues**\n+\n+ Likewise, the number of receive and transmit descriptors are configurable on\n+ a per vNIC bases via the UCS Manager and should be greater than or equal to\n+ the nb_rx_desc and nb_tx_desc parameters expected to be used in the calls\n+ to rte_eth_rx_queue_setup() and rte_eth_tx_queue_setup() respectively.\n+\n+ - **Interrupts**\n+\n+ Only one interrupt per vNIC interface should be configured in the UCS\n+ manager regardless of the number receive/transmit queues. The ENIC PMD\n+ uses this interrupt to get information about errors in the fast path.\n+\n+Limitations\n+-----------\n+\n+- **VLAN 0 Priority Tagging**\n+\n+ If a vNIC is configured in TRUNK mode by the UCS manager, the adapter will\n+ priority tag egress packets according to 802.1Q if they were not already\n+ VLAN tagged by software. If the adapter is connected to a properly configured\n+ switch, there will be no unexpected behavior.\n+\n+ In test setups where an Ethernet port of a Cisco adapter in TRUNK mode is\n+ connected point-to-point to another adapter port or connected though a router\n+ instead of a switch, all ingress packets will be VLAN tagged. Programs such\n+ as l3fwd which do not account for VLAN tags in packets will misbehave. The\n+ solution is to enable VLAN stripping on ingress. The follow code fragment is\n+ example of how to accomplish this:\n+\n+.. code-block:: console\n+\n+ vlan_offload = rte_eth_dev_get_vlan_offload(port);\n+ vlan_offload |= ETH_VLAN_STRIP_OFFLOAD;\n+ rte_eth_dev_set_vlan_offload(port, vlan_offload);\n+\n+How to build the suite?\n+-----------------------\n+The build instructions for the DPDK suite should be followed. By default\n+the ENIC PMD library will be built into the DPDK library.\n+\n+Typically, a user would execute the following commands to build the suite\n+\n+.. code-block:: console\n+\n+ tar -xzf dpdk-<version>.tar.gz\n+ cd dpdk-<version>\n+ make install T=x86_64-native-linuxapp-gcc\n+\n+For configuring and using UIO and VFIO frameworks, please refer the\n+documentation that comes with DPDK suite.\n+\n+Supported Cisco VIC adapters\n+----------------------------\n+\n+ENIC PMD supports all recent generations of Cisco VIC adapters including:\n+\n+- VIC 1280\n+- VIC 1240\n+- VIC 1225\n+- VIC 1285\n+- VIC 1225T\n+- VIC 1227\n+- VIC 1227T\n+- VIC 1380\n+- VIC 1340\n+- VIC 1385\n+- VIC 1387\n+\n+- Flow director features are not supported on generation 1 Cisco VIC adapters\n+ (M81KR and P81E)\n+\n+Supported Operating Systems\n+---------------------------\n+Any Linux distribution fulfilling the conditions described in Dependencies\n+section of DPDK documentation.\n+\n+Supported features\n+------------------\n+- Unicast, multicast and broadcast transmission and reception\n+- Receive queue polling\n+- Port Hardware Statistics\n+- Hardware VLAN acceleration\n+- IP checksum offload\n+- Receive side VLAN stripping\n+- Multiple receive and transmit queues\n+- Flow Director ADD, UPDATE, DELETE, STATS operation support for IPV4 5-TUPLE\n+ flows\n+- Promiscuous mode\n+- Setting RX VLAN (supported via UCSM/CIMC only)\n+- VLAN filtering (supported via UCSM/CIMC only)\n+- Execution of application by unprivileged system users\n+- IPV4, IPV6 and TCP RSS hashing\n+\n+Known bugs and Unsupported features in this release\n+---------------------------------------------------\n+- Signature or flex byte based flow direction\n+- Drop feature of flow direction\n+- VLAN based flow direction\n+- non-IPV4 flow direction\n+- Setting of extended VLAN\n+- UDP RSS hashing\n+\n+Prerequisites\n+-------------\n+- Prepare the system as recommended by DPDK suite. This includes environment\n+ variables, hugepages configuration, tool-chains and configuration\n+- Insert vfio-pci kernel module using the command 'modprobe vfio-pci' if the\n+ user wants to use VFIO framework\n+- Insert uio kernel module using the command 'modprobe uio' if the user wants\n+ to use UIO framework\n+- DPDK suite should be configured based on the user's decision to use VFIO or\n+ UIO framework\n+- If the vNIC device(s) to be used is bound to the kernel mode Ethernet driver\n+ (enic), use 'ifconfig' to bring the interface down. The dpdk_nic_bind.py tool\n+ can then be used to unbind the device's bus id from the enic kernel mode\n+ driver.\n+- Bind the intended vNIC to vfio-pci in case the user wants ENIC PMD to use\n+ VFIO framework using dpdk_nic_bind.py.\n+- Bind the intended vNIC to igb_uio in case the user wants ENIC PMD to use\n+ UIO framework using dpdk_nic_bind.py.\n+\n+At this point the system should be ready to run DPDK applications. Once the\n+application runs to completion, the vNIC can be detached from vfio-pci or\n+igb_uio if necessary.\n+\n+Root privilege is required to bind and unbind vNICs to/from VFIO/UIO.\n+VFIO framework helps an unprivileged user to run the applications.\n+For an unprivileged user to run the applications on DPDK and ENIC PMD,\n+it may be necessary to increase the maximum locked memory of the user.\n+The following command could be used to do this.\n+\n+.. code-block:: console\n+\n+ sudo sh -c \"ulimit -l <value in Kilo Bytes>\"\n+\n+The value depends on the memory configuration of the application, DPDK and\n+PMD. Typically, the limit has to be raised to higher than 2GB.\n+e.g., 2621440\n+\n+The compilation of any unused drivers can be disabled using the\n+configuration file in config/ directory (e.g., config/common_linuxapp).\n+This would help in bringing down the time taken for building the\n+libraries and the initialization time of the application.\n+\n+Additional Reference\n+--------------------\n+- www.dpdk.org\n+- http://www.cisco.com/c/en/us/products/servers-unified-computing\n+- Intel® Data Plane Development Kit: Release Notes\n+- Intel® Data Plane Development Kit: Programmer's Guide\n+- Intel® Data Plane Development Kit Testpmd Application: Guide\n+\n+Contact Information\n+-------------------\n+Any questions or bugs should be reported to DPDK community or to the ENIC PMD\n+maintainers:\n+\n+- John Daley <johndale@cisco.com>\n+- Sujith Sankar <ssujith@cisco.com>\ndiff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst\nindex 54d2b2c..fa5e8b7 100644\n--- a/doc/guides/nics/index.rst\n+++ b/doc/guides/nics/index.rst\n@@ -43,6 +43,7 @@ Network Interface Controller Drivers\n bnx2x\n cxgbe\n e1000em\n+ enic\n ixgbe\n intel_vf\n mlx4\n", "prefixes": [ "dpdk-dev" ] }{ "id": 9516, "url": "