get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 15555,
    "url": "http://patchwork.dpdk.org/api/patches/15555/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/1472629812-4397-5-git-send-email-christian.ehrhardt@canonical.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<1472629812-4397-5-git-send-email-christian.ehrhardt@canonical.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1472629812-4397-5-git-send-email-christian.ehrhardt@canonical.com",
    "date": "2016-08-31T07:50:12",
    "name": "[dpdk-dev,v2,4/4] doc: add basic invocation info for dpdk-devbind",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "5a2ae775a43c9a9e180e531676c05a37d16e7148",
    "submitter": {
        "id": 382,
        "url": "http://patchwork.dpdk.org/api/people/382/?format=api",
        "name": "Christian Ehrhardt",
        "email": "christian.ehrhardt@canonical.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/1472629812-4397-5-git-send-email-christian.ehrhardt@canonical.com/mbox/",
    "series": [],
    "comments": "http://patchwork.dpdk.org/api/patches/15555/comments/",
    "check": "pending",
    "checks": "http://patchwork.dpdk.org/api/patches/15555/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 AC2C15398;\n\tWed, 31 Aug 2016 09:50:27 +0200 (CEST)",
            "from youngberry.canonical.com (youngberry.canonical.com\n\t[91.189.89.112]) by dpdk.org (Postfix) with ESMTP id 8DF6F2BD2\n\tfor <dev@dpdk.org>; Wed, 31 Aug 2016 09:50:20 +0200 (CEST)",
            "from 1.general.paelzer.uk.vpn ([10.172.196.172]\n\thelo=localhost.localdomain)\n\tby youngberry.canonical.com with esmtpsa\n\t(TLS1.0:RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.76) (envelope-from <christian.ehrhardt@canonical.com>)\n\tid 1bf0Hs-00011w-Ah; Wed, 31 Aug 2016 07:50:20 +0000"
        ],
        "From": "Christian Ehrhardt <christian.ehrhardt@canonical.com>",
        "To": "christian.ehrhardt@canonical.com, thomas.monjalon@6wind.com, dev@dpdk.org",
        "Date": "Wed, 31 Aug 2016 09:50:12 +0200",
        "Message-Id": "<1472629812-4397-5-git-send-email-christian.ehrhardt@canonical.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1472629812-4397-1-git-send-email-christian.ehrhardt@canonical.com>",
        "References": "<CAATJJ0KZFhcho1ne3outTrh1VFELvmbuO1=hvRySeOXudTxRtg@mail.gmail.com>\n\t<1472629812-4397-1-git-send-email-christian.ehrhardt@canonical.com>",
        "Subject": "[dpdk-dev] [PATCH v2 4/4] doc: add basic invocation info for\n\tdpdk-devbind",
        "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": "This summarizes the \"how to call dpdk-pmdinfo\" in one place to be\npicked up by html/pdf/man-page docs.\n\nThat knowledge was available before but spread in various docs along\nexamples (which are great and have to be kept) as well as in the\n--usage/--help option of the tool itself.\n\nAs a root only program in sbin it should belong to section 8\n\"8   System administration commands (usually only for root)\"\n\nSigned-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>\n---\n doc/guides/conf.py           |   4 +-\n doc/guides/tools/devbind.rst | 143 +++++++++++++++++++++++++++++++++++++++++++\n doc/guides/tools/index.rst   |   1 +\n mk/rte.sdkinstall.mk         |   5 ++\n 4 files changed, 152 insertions(+), 1 deletion(-)\n create mode 100644 doc/guides/tools/devbind.rst",
    "diff": "diff --git a/doc/guides/conf.py b/doc/guides/conf.py\nindex c45c4be..149bcdb 100644\n--- a/doc/guides/conf.py\n+++ b/doc/guides/conf.py\n@@ -113,7 +113,9 @@ man_pages = [(\"testpmd_app_ug/run_app\", \"testpmd\",\n              (\"tools/proc_info\", \"dpdk-procinfo\",\n               \"access dpdk port stats and memory info\", \"\", 1),\n              (\"tools/pmdinfo\", \"dpdk-pmdinfo\",\n-              \"dump a PMDs hardware support info\", \"\", 1)]\n+              \"dump a PMDs hardware support info\", \"\", 1),\n+             (\"tools/devbind\", \"dpdk-devbind\",\n+              \"check device status and bind/unbind them from drivers\", \"\", 8)]\n \n ######## :numref: fallback ########\n # The following hook functions add some simple handling for the :numref:\ndiff --git a/doc/guides/tools/devbind.rst b/doc/guides/tools/devbind.rst\nnew file mode 100644\nindex 0000000..18a8059\n--- /dev/null\n+++ b/doc/guides/tools/devbind.rst\n@@ -0,0 +1,143 @@\n+\n+..  BSD LICENSE\n+    Copyright(c) 2016 Canonical Limited. 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+\n+dpdk-devbind Application\n+========================\n+\n+The ``dpdk-devbind`` tool is a Data Plane Development Kit (DPDK) tool that helps binding and unbinding devices from specific drivers.\n+As well as checking their status in that regard.\n+\n+\n+Running the Application\n+-----------------------\n+\n+The tool has a number of command line options:\n+\n+.. code-block:: console\n+\n+   dpdk-devbind [options] DEVICE1 DEVICE2 ....\n+\n+OPTIONS\n+-------\n+\n+* ``--help, --usage``\n+\n+        Display usage information and quit\n+\n+* ``-s, --status``\n+\n+        Print the current status of all known network interfaces.\n+        For each device, it displays the PCI domain, bus, slot and function,\n+        along with a text description of the device. Depending upon whether the\n+        device is being used by a kernel driver, the ``igb_uio`` driver, or no\n+        driver, other relevant information will be displayed:\n+        - the Linux interface name e.g. ``if=eth0``\n+        - the driver being used e.g. ``drv=igb_uio``\n+        - any suitable drivers not currently using that device e.g. ``unused=igb_uio``\n+        NOTE: if this flag is passed along with a bind/unbind option, the\n+        status display will always occur after the other operations have taken\n+        place.\n+\n+* ``-b driver, --bind=driver``\n+\n+        Select the driver to use or \"none\" to unbind the device\n+\n+* ``-u, --unbind``\n+\n+        Unbind a device (Equivalent to ``-b none``)\n+\n+* ``--force``\n+\n+        By default, devices which are used by Linux - as indicated by having\n+        routes in the routing table - cannot be modified. Using the ``--force``\n+        flag overrides this behavior, allowing active links to be forcibly\n+        unbound.\n+        WARNING: This can lead to loss of network connection and should be used\n+        with caution.\n+\n+\n+.. warning::\n+\n+    Due to the way VFIO works, there are certain limitations to which devices can be used with VFIO.\n+    Mainly it comes down to how IOMMU groups work.\n+    Any Virtual Function device can be used with VFIO on its own, but physical devices will require either all ports bound to VFIO,\n+    or some of them bound to VFIO while others not being bound to anything at all.\n+\n+    If your device is behind a PCI-to-PCI bridge, the bridge will then be part of the IOMMU group in which your device is in.\n+    Therefore, the bridge driver should also be unbound from the bridge PCI device for VFIO to work with devices behind the bridge.\n+\n+.. warning::\n+\n+    While any user can run the ``dpdk-devbind.py`` script to view the status of the network ports,\n+    binding or unbinding network ports requires root privileges.\n+\n+\n+Examples\n+--------\n+\n+To display current device status::\n+\n+   dpdk-devbind --status\n+\n+To bind eth1 from the current driver and move to use igb_uio::\n+\n+   dpdk-devbind --bind=igb_uio eth1\n+\n+To unbind 0000:01:00.0 from using any driver::\n+\n+   dpdk-devbind -u 0000:01:00.0\n+\n+To bind 0000:02:00.0 and 0000:02:00.1 to the ixgbe kernel driver::\n+\n+   dpdk-devbind -b ixgbe 02:00.0 02:00.1\n+\n+To check status of all network ports, assign one to the igb_uio driver and check status again::\n+\n+   # Check the status of the available devices.\n+   dpdk-devbind --status\n+   Network devices using DPDK-compatible driver\n+   ============================================\n+   <none>\n+\n+   Network devices using kernel driver\n+   ===================================\n+   0000:0a:00.0 '82599ES 10-Gigabit' if=eth2 drv=ixgbe unused=\n+\n+\n+   # Bind the device to igb_uio.\n+   sudo dpdk-devbind -b igb_uio 0000:0a:00.0\n+\n+\n+   # Recheck the status of the devices.\n+   dpdk-devbind --status\n+   Network devices using DPDK-compatible driver\n+   ============================================\n+   0000:0a:00.0 '82599ES 10-Gigabit' drv=igb_uio unused=\ndiff --git a/doc/guides/tools/index.rst b/doc/guides/tools/index.rst\nindex 80f2115..cbe98b2 100644\n--- a/doc/guides/tools/index.rst\n+++ b/doc/guides/tools/index.rst\n@@ -38,4 +38,5 @@ Tool User Guides\n     proc_info\n     pdump\n     pmdinfo\n+    devbind\n \ndiff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk\nindex 533d369..b1faf28 100644\n--- a/mk/rte.sdkinstall.mk\n+++ b/mk/rte.sdkinstall.mk\n@@ -139,6 +139,11 @@ ifneq ($(wildcard $O/doc/man/*/*.1),)\n \t$(Q)$(call rte_mkdir,     $(DESTDIR)$(mandir)/man1)\n \t$(Q)cp -a $O/doc/man/*/*.1 $(DESTDIR)$(mandir)/man1\n endif\n+ifneq ($(wildcard $O/doc/man/*/*.8),)\n+\t$(Q)$(call rte_mkdir,     $(DESTDIR)$(mandir))\n+\t$(Q)$(call rte_mkdir,     $(DESTDIR)$(mandir)/man8)\n+\t$(Q)cp -a $O/doc/man/*/*.8 $(DESTDIR)$(mandir)/man8\n+endif\n \n install-kmod:\n ifneq ($(wildcard $O/kmod/*),)\n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "4/4"
    ]
}