Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/7032/?format=api
http://patches.dpdk.org/api/patches/7032/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/1442018576-19981-5-git-send-email-rasesh.mody@qlogic.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": "<1442018576-19981-5-git-send-email-rasesh.mody@qlogic.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1442018576-19981-5-git-send-email-rasesh.mody@qlogic.com", "date": "2015-09-12T00:42:55", "name": "[dpdk-dev,4/5] doc: Add BNX2X PMD documentation", "commit_ref": null, "pull_url": null, "state": "changes-requested", "archived": true, "hash": "3ed90cc5289dbb0069dd48276d0d15117e132a32", "submitter": { "id": 325, "url": "http://patches.dpdk.org/api/people/325/?format=api", "name": "Rasesh Mody", "email": "rasesh.mody@qlogic.com" }, "delegate": null, "mbox": "http://patches.dpdk.org/project/dpdk/patch/1442018576-19981-5-git-send-email-rasesh.mody@qlogic.com/mbox/", "series": [], "comments": "http://patches.dpdk.org/api/patches/7032/comments/", "check": "pending", "checks": "http://patches.dpdk.org/api/patches/7032/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 CFACA8E81;\n\tSat, 12 Sep 2015 02:43:45 +0200 (CEST)", "from mx0a-0016ce01.pphosted.com (mx0a-0016ce01.pphosted.com\n\t[67.231.148.157]) by dpdk.org (Postfix) with ESMTP id A82AD8E81\n\tfor <dev@dpdk.org>; Sat, 12 Sep 2015 02:43:44 +0200 (CEST)", "from pps.filterd (m0045602.ppops.net [127.0.0.1])\n\tby mx0a-0016ce01.pphosted.com (8.15.0.59/8.15.0.59) with SMTP id\n\tt8C0hcBf018081 for <dev@dpdk.org>; Fri, 11 Sep 2015 17:43:43 -0700", "from avcashub1.qlogic.com (avcashub1.qlogic.com [198.70.193.115])\n\tby mx0a-0016ce01.pphosted.com with ESMTP id 1wqyhvsqr4-2\n\t(version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT)\n\tfor <dev@dpdk.org>; Fri, 11 Sep 2015 17:43:43 -0700", "from avluser05.qlc.com (10.1.113.115) by qlc.com (10.1.4.190) with\n\tMicrosoft SMTP Server id 14.3.235.1;\n\tFri, 11 Sep 2015 17:43:43 -0700", "(from rmody@localhost)\tby avluser05.qlc.com (8.14.4/8.14.4/Submit)\n\tid t8C0hhFb020871;\tFri, 11 Sep 2015 17:43:43 -0700" ], "X-Authentication-Warning": "avluser05.qlc.com: rmody set sender to\n\trasesh.mody@qlogic.com using -f", "From": "Rasesh Mody <rasesh.mody@qlogic.com>", "To": "<dev@dpdk.org>", "Date": "Fri, 11 Sep 2015 17:42:55 -0700", "Message-ID": "<1442018576-19981-5-git-send-email-rasesh.mody@qlogic.com>", "X-Mailer": "git-send-email 1.7.10.3", "In-Reply-To": "<1442018576-19981-1-git-send-email-rasesh.mody@qlogic.com>", "References": "<1442018576-19981-1-git-send-email-rasesh.mody@qlogic.com>", "MIME-Version": "1.0", "Content-Type": "text/plain", "X-Proofpoint-Virus-Version": "vendor=nai engine=5700 definitions=7921\n\tsignatures=670636", "X-Proofpoint-Spam-Details": "rule=notspam policy=default score=0 spamscore=0\n\tsuspectscore=1\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1507310000\n\tdefinitions=main-1509120011", "Cc": "sony.chacko@qlogic.com", "Subject": "[dpdk-dev] [PATCH 4/5] doc: Add BNX2X PMD 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": "From: Harish Patil <harish.patil@qlogic.com>\n\nSigned-off-by: Harish Patil <harish.patil@qlogic.com>\n---\n doc/guides/nics/bnx2x.rst | 324 +++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 324 insertions(+)\n create mode 100644 doc/guides/nics/bnx2x.rst", "diff": "diff --git a/doc/guides/nics/bnx2x.rst b/doc/guides/nics/bnx2x.rst\nnew file mode 100644\nindex 0000000..613a2b7\n--- /dev/null\n+++ b/doc/guides/nics/bnx2x.rst\n@@ -0,0 +1,324 @@\n+.. BSD LICENSE\n+ Copyright (c) 2015 QLogic Corporation\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 QLogic Corporation 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+BNX2X Poll Mode Driver\n+======================\n+\n+The BNX2X poll mode driver library (**librte_pmd_bnx2x**) implemements support\n+for **QLogic 578xx** 10/20 Gbps family of adapters as well as their virtual\n+functions (VF) in SR-IOV context. It is supported on several standard Linux\n+distros like Red Hat 7.x and SLES12 OS. It is compile-tested under FreeBSD OS.\n+\n+More information can be found at `QLogic Corporation's Official Website\n+<http://www.qlogic.com>`_.\n+\n+Supported Features\n+------------------\n+\n+BNX2X PMD has support for:\n+\n+- Base L2 features\n+- Unicast/multicast filtering\n+- Promiscuous mode\n+- Port hardware statistics\n+- SR-IOV VF\n+\n+Non-supported Features\n+----------------------\n+\n+The features not yet supported include:\n+\n+- TSS (Transmit Side Scaling)\n+- RSS (Receive Side Scaling)\n+- LRO/TSO offload\n+- Checksum offload\n+- SR-IOV PF\n+\n+Co-existence considerations\n+---------------------------\n+\n+- BCM578xx being a CNA can have both NIC and Storage personalities.\n+However, coexistence with storage protocol drivers (cnic, bnx2fc and\n+bnx2fi) is not supported on the same adapter. So storage personality\n+has to be disabled on that adapter when used in DPDK applications.\n+\n+- For SR-IOV case, bnx2x PMD will be used to bind to SR-IOV VF device and\n+linux native kernel driver (bnx2x) will be attached to SR-IOV PF.\n+\n+\n+Supported QLogic NICs\n+---------------------\n+\n+- 578xx\n+\n+Prerequisites\n+-------------\n+\n+- Requires firmware version **7.2.51.0**. It is inbox on most of the\n+ standard linux distros. If it is not available visit\n+ `QLogic Driver Download Center <http://driverdownloads.qlogic.com>`\n+ to get the required firmware.\n+\n+Pre-Installation Configuration\n+------------------------------\n+\n+Config File Options\n+~~~~~~~~~~~~~~~~~~~\n+\n+The following options can be modified in the ``.config`` file. Please note that\n+enabling debugging options may affect system performance.\n+\n+- ``CONFIG_RTE_LIBRTE_BNX2X_PMD`` (default **y**)\n+\n+ Toggle compilation of bnx2x driver.\n+\n+- ``CONFIG_RTE_LIBRTE_BNX2X_DEBUG`` (default **n**)\n+\n+ Toggle display of generic debugging messages.\n+\n+- ``CONFIG_RTE_LIBRTE_BNX2X_DEBUG_INIT`` (default **n**)\n+\n+ Toggle display of initialization related messages.\n+\n+- ``CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX`` (default **n**)\n+\n+ Toggle display of transmit fast path run-time messages.\n+\n+- ``CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX`` (default **n**)\n+\n+ Toggle display of receive fast path run-time messages.\n+\n+- ``CONFIG_RTE_LIBRTE_BNX2X_REG_ACCESS`` (default **n**)\n+\n+ Toggle display of register reads and writes.\n+\n+\n+.. _driver-compilation:\n+\n+Driver Compilation\n+~~~~~~~~~~~~~~~~~~\n+\n+To compile BNX2X PMD for Linux x86_64 gcc target, run the following \"make\"\n+command:\n+\n+.. code-block:: console\n+\n+ cd <DPDK-source-directory>\n+ make config T=x86_64-native-linuxapp-gcc install\n+\n+To compile BNX2X PMD for Linux x86_64 clang target, run the following \"make\"\n+command:\n+\n+.. code-block:: console\n+\n+ cd <DPDK-source-directory>\n+ make config T=x86_64-native-linuxapp-clang install\n+\n+To compile BNX2X PMD for FreeBSD x86_64 clang target, run the following \"gmake\"\n+command:\n+\n+.. code-block:: console\n+\n+ cd <DPDK-source-directory>\n+ gmake config T=x86_64-native-bsdapp-clang install\n+\n+Linux\n+-----\n+\n+.. _linux-installation:\n+\n+Linux Installation\n+~~~~~~~~~~~~~~~~~~\n+\n+Sample Application Notes\n+~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+This section demonstrates how to launch **testpmd** with QLogic 578xx\n+devices managed by librte_pmd_bnx2x in Linux operating system.\n+\n+#. Request huge pages:\n+\n+ .. code-block:: console\n+\n+ echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages/nr_hugepages\n+\n+#. Load igb_uio or vfio-pci driver:\n+\n+ .. code-block:: console\n+\n+ insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko\n+\n+ or\n+\n+ .. code-block:: console\n+\n+ modprobe vfio-pci\n+\n+#. Bind the QLogic adapters to igb_uio or vfio-pci loaded in the previous\n+ step:\n+\n+ .. code-block:: console\n+\n+ ./tools/dpdk_nic_bind.py --bind igb_uio 0000:84:00.0 0000:84:00.1\n+\n+ or\n+\n+ Setup VFIO permissions for regular users and then bind to vfio-pci:\n+\n+ .. code-block:: console\n+\n+ sudo chmod a+x /dev/vfio\n+\n+ sudo chmod 0666 /dev/vfio/*\n+\n+ ./tools/dpdk_nic_bind.py --bind vfio-pci 0000:84:00.0 0000:84: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:84:00.0 on NUMA socket 1\n+ EAL: probe driver: 14e4:168e rte_bnx2x_pmd\n+ EAL: PCI memory mapped at 0x7f14f6fe5000\n+ EAL: PCI memory mapped at 0x7f14f67e5000\n+ EAL: PCI memory mapped at 0x7f15fbd9b000\n+ EAL: PCI device 0000:84:00.1 on NUMA socket 1\n+ EAL: probe driver: 14e4:168e rte_bnx2x_pmd\n+ EAL: PCI memory mapped at 0x7f14f5fe5000\n+ EAL: PCI memory mapped at 0x7f14f57e5000\n+ EAL: PCI memory mapped at 0x7f15fbd4f000\n+ Interactive-mode selected\n+ Configuring Port 0 (socket 0)\n+ PMD: bnx2x_dev_tx_queue_setup(): fp[00] req_bd=512, thresh=512, usable_bd=1020, total_bd=1024, tx_pages=4\n+ PMD: bnx2x_dev_rx_queue_setup(): fp[00] req_bd=128, thresh=0, usable_bd=510, total_bd=512, rx_pages=1, cq_pages=8\n+ PMD: bnx2x_print_adapter_info():\n+ [...]\n+ Checking link statuses...\n+ Port 0 Link Up - speed 10000 Mbps - full-duplex\n+ Port 1 Link Up - speed 10000 Mbps - full-duplex\n+ Done\n+ testpmd>\n+\n+SR-IOV: Prerequistes and sample Application Notes\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+This section provides instructions to configure SR-IOV with Linux OS.\n+\n+#. Verify SR-IOV and ARI capabilities are enabled on the adapter using lspci:\n+\n+ .. code-block:: console\n+\n+ lspci -s <slot> -vvv\n+\n+ Example output:\n+\n+ .. code-block:: console\n+\n+ [...]\n+ Capabilities: [1b8 v1] Alternative Routing-ID Interpretation (ARI)\n+ [...]\n+ Capabilities: [1c0 v1] Single Root I/O Virtualization (SR-IOV)\n+ [...]\n+ Kernel driver in use: igb_uio\n+\n+#. Load the kernel module:\n+\n+ .. code-block:: console\n+\n+ modprobe bnx2x\n+\n+ Example output:\n+\n+ .. code-block:: console\n+\n+ systemd-udevd[4848]: renamed network interface eth0 to ens5f0\n+ systemd-udevd[4848]: renamed network interface eth1 to ens5f1\n+\n+#. Bring up the PF ports:\n+\n+ .. code-block:: console\n+\n+ ifconfig ens5f0 up\n+ ifconfig ens5f1 up\n+\n+#. Create VF device(s):\n+\n+ .. code-block:: console\n+\n+ Echo the number of VFs to be created into \"sriov_numvfs\" sysfs entry\n+ of the parent PF.\n+\n+ Example output:\n+\n+ .. code-block:: console\n+\n+ echo 2 > /sys/devices/pci0000:00/0000:00:03.0/0000:81:00.0/sriov_numvfs\n+\n+\n+#. Assign VF MAC address:\n+\n+ .. code-block:: console\n+\n+ Assign MAC address to the VF using iproute2 ulility. The syntax is:\n+ ip link set <PF iface> vf <VF id> mac <macaddr>\n+\n+ Example output:\n+\n+ .. code-block:: console\n+\n+ ip link set ens5f0 vf 0 mac 52:54:00:2f:9d:e8\n+\n+\n+#. PCI passthrough:\n+\n+ .. code-block:: console\n+\n+ The VF devices may be passthru'ed to the guest VM using virt-manager or virsh etc.\n+ bnx2x PMD should be used to bind the VF devices in the guest VM using the instructions\n+ outlined in Application notes.\n+\n+\n+FreeBSD\n+-------\n+\n+.. _freebsd-installation:\n+\n+FreeBSD Installation\n+~~~~~~~~~~~~~~~~~~~~\n+\n+Sample Application Notes\n+~~~~~~~~~~~~~~~~~~~~~~~~\n", "prefixes": [ "dpdk-dev", "4/5" ] }{ "id": 7032, "url": "