get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/8531/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 8531,
    "url": "https://patches.dpdk.org/api/patches/8531/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1446467130-300-9-git-send-email-alejandro.lucero@netronome.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": "<1446467130-300-9-git-send-email-alejandro.lucero@netronome.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1446467130-300-9-git-send-email-alejandro.lucero@netronome.com",
    "date": "2015-11-02T12:25:28",
    "name": "[dpdk-dev,v5,8/9] nfp: adding nic guide",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "dc476529a126b97af1872201bb23b454c62d8ec0",
    "submitter": {
        "id": 270,
        "url": "https://patches.dpdk.org/api/people/270/?format=api",
        "name": "Alejandro Lucero",
        "email": "alejandro.lucero@netronome.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1446467130-300-9-git-send-email-alejandro.lucero@netronome.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/8531/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/8531/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 CBAFB9191;\n\tMon,  2 Nov 2015 13:25:37 +0100 (CET)",
            "from ubuntu (host217-39-174-19.in-addr.btopenworld.com\n\t[217.39.174.19]) by dpdk.org (Postfix) with SMTP id E17228E8B\n\tfor <dev@dpdk.org>; Mon,  2 Nov 2015 13:25:31 +0100 (CET)",
            "by ubuntu (Postfix, from userid 5466)\n\tid 440C2EA780; Mon,  2 Nov 2015 12:25:30 +0000 (GMT)"
        ],
        "From": "\"Alejandro.Lucero\" <alejandro.lucero@netronome.com>",
        "To": "dev@dpdk.org",
        "Date": "Mon,  2 Nov 2015 12:25:28 +0000",
        "Message-Id": "<1446467130-300-9-git-send-email-alejandro.lucero@netronome.com>",
        "X-Mailer": "git-send-email 1.7.9.5",
        "In-Reply-To": "<1446467130-300-1-git-send-email-alejandro.lucero@netronome.com>",
        "References": "<1446467130-300-1-git-send-email-alejandro.lucero@netronome.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "quoted-printable",
        "Subject": "[dpdk-dev] =?utf-8?q?=5BPATCH_v5_8/9=5D_nfp=3A_adding_nic_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": "From: \"Alejandro.Lucero\" <alejandro.lucero@netronome.com>\n\nSigned-off-by: Alejandro.Lucero <alejandro.lucero@netronome.com>\nSigned-off-by: Rolf.Neugebauer <rolf.neugebauer@netronome.com>\n---\n doc/guides/nics/index.rst |    1 +\n doc/guides/nics/nfp.rst   |  189 +++++++++++++++++++++++++++++++++++++++++++++\n 2 files changed, 190 insertions(+)\n create mode 100644 doc/guides/nics/nfp.rst",
    "diff": "diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst\nindex 2d4936d..1a7bffe 100644\n--- a/doc/guides/nics/index.rst\n+++ b/doc/guides/nics/index.rst\n@@ -46,6 +46,7 @@ Network Interface Controller Drivers\n     intel_vf\n     mlx4\n     mlx5\n+    nfp\n     virtio\n     vmxnet3\n     pcap_ring\ndiff --git a/doc/guides/nics/nfp.rst b/doc/guides/nics/nfp.rst\nnew file mode 100644\nindex 0000000..bb2afda\n--- /dev/null\n+++ b/doc/guides/nics/nfp.rst\n@@ -0,0 +1,189 @@\n+..  BSD LICENSE\n+    Copyright(c) 2015 Netronome Systems, Inc. All rights reserved.\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 Intel 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+NFP poll mode driver library\n+============================\n+\n+Netronome's sixth generation of flow processors pack 216 programmable\n+cores and over 100 hardware accelerators that uniquely combine packet,\n+flow, security and content processing in a single device that scales\n+up to 400 Gbps.\n+\n+This document explains how to use DPDK with the Netronome Poll Mode\n+Driver (PMD) supporting Netronome's Network Flow Processor 6xxx\n+(NFP-6xxx).\n+\n+Currently the driver supports virtual functions (VFs) only.\n+\n+Dependencies\n+------------\n+\n+Before using the Netronome's DPDK PMD some NFP-6xxx configuration,\n+which is not related to DPDK, is required. The system requires\n+installation of **Netronome's BSP (Board Support Package)** which includes\n+Linux drivers, programs and libraries.\n+\n+If you have a NFP-6xxx device you should already have the code and\n+documentation for doing this configuration. Contact\n+**support@netronome.com** to obtain the latest available firmware.\n+\n+The NFP Linux kernel drivers (including the required PF driver for the\n+NFP) are available on Github at\n+**https://github.com/Netronome/nfp-drv-kmods** along with build\n+instructions.\n+\n+Using Netronome´s NFP PMD requires to have the Netronome´s BSP module\n+loaded.\n+\n+Building the software\n+---------------------\n+\n+Netronome's PMD code is provided in the **drivers/net/nfp** directory.\n+This PMD is included as part of the DPDK **common_linuxapp configuration**\n+file, but it is not enabled by default. If it is enabled without a BSP\n+installed in the system, the compilation will fail.\n+\n+For enabling the PMD, just modifies the **common_linuxapp** file with:\n+\n+- **CONFIG_RTE_LIBRTE_NFP_PMD=y**\n+\n+Once DPDK is built all the DPDK apps and examples include support for\n+the NFP PMD.\n+\n+System configuration\n+--------------------\n+\n+Using the NFP PMD is not different to using other PMDs. Usual steps are:\n+\n+#. **Configure hugepages:** All major Linux distributions have the hugepages\n+   functionality enabled by default. By default this allows the system uses for\n+   working with transparent hugepages. But in this case some hugepages need to\n+   be created/reserved for use with the DPDK through the hugetlbfs file system.\n+   First the virtual file system need to be mounted:\n+\n+   .. code-block:: console\n+\n+      mount -t hugetlbfs none /mnt/hugetlbfs\n+\n+   The command uses the common mount point for this file system and it needs to\n+   be created if necessary.\n+\n+   Configuring hugepages is performed via sysfs:\n+\n+   .. code-block:: console\n+\n+      /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages\n+\n+   This sysfs file is used to specify the number of hugepages to reserve.\n+   For example:\n+\n+   .. code-block:: console\n+\n+      echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages\n+\n+   This will reserve 2GB of memory using 1024 2MB hugepages. The file may be\n+   read to see if the operation was performed correctly:\n+\n+   .. code-block:: console\n+\n+      cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages\n+\n+   The number of unused hugepages may also be inspected.\n+\n+   Before executing the DPDK app it should match the value of nr_hugepages.\n+\n+   .. code-block:: console\n+\n+      cat /sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages\n+\n+   The hugepages reservation should be performed at system initialisation and\n+   it is usual to use a kernel parameter for configuration. If the reservation\n+   is attempted on a busy system it will likely fail. Reserving memory for\n+   hugepages may be done adding the following to the grub kernel command line:\n+\n+   .. code-block:: console\n+\n+      default_hugepagesz=1M hugepagesz=2M hugepages=1024\n+\n+   This will reserve 2GBytes of memory using 2Mbytes huge pages.\n+\n+   Finally, for a NUMA system the allocation needs to be made on the correct\n+   NUMA node. In a DPDK app there is a master core which will (usually) perform\n+   memory allocation. It is important that some of the hugepages are reserved\n+   on the NUMA memory node where the network device is attached. This is because\n+   of a restriction in DPDK by which TX and RX descriptors rings must be created\n+   on the master code.\n+\n+   Per-node allocation of hugepages may be inspected and controlled using sysfs.\n+   For example:\n+\n+   .. code-block:: console\n+\n+      cat /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages\n+\n+   For a NUMA system there will be a specific hugepage directory per node\n+   allowing control of hugepage reservation. A common problem may occur when\n+   hugepages reservation is performed after the system has been working for\n+   some time. Configuration using the global sysfs hugepage interface will\n+   succeed but the per-node allocations may be unsatisfactory.\n+\n+   The number of hugepages that need to be reserved depends on how the app uses\n+   TX and RX descriptors, and packets mbufs.\n+\n+#. **Enable SR-IOV on the NFP-6xxx device:** The current NFP PMD works with\n+   Virtual Functions (VFs) on a NFP device. Make sure that one of the Physical\n+   Function (PF) drivers from the above Github repository is installed and\n+   loaded.\n+\n+   Virtual Functions need to be enabled before they can be used with the PMD.\n+   Before enabling the VFs it is useful to obtain information about the\n+   current NFP PCI device detected by the system:\n+\n+   .. code-block:: console\n+\n+      lspci -d19ee:\n+\n+   Now, for example, configure two virtual functions on a NFP-6xxx device\n+   whose PCI system identity is \"0000:03:00.0\":\n+\n+   .. code-block:: console\n+\n+      echo 2 > /sys/bus/pci/devices/0000:03:00.0/sriov_numvfs\n+\n+   The result of this command may be shown using lspci again:\n+\n+   .. code-block:: console\n+\n+      lspci -d19ee: -k\n+\n+   Two new PCI devices should appear in the output of the above command. The\n+   -k option shows the device driver, if any, that devices are bound to.\n+   Depending on the modules loaded at this point the new PCI devices may be\n+   bound to nfp_netvf driver.\n",
    "prefixes": [
        "dpdk-dev",
        "v5",
        "8/9"
    ]
}