get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 3088,
    "url": "https://patches.dpdk.org/api/patches/3088/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1423470639-15744-15-git-send-email-mukawa@igel.co.jp/",
    "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": "<1423470639-15744-15-git-send-email-mukawa@igel.co.jp>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1423470639-15744-15-git-send-email-mukawa@igel.co.jp",
    "date": "2015-02-09T08:30:37",
    "name": "[dpdk-dev,v7,14/14] doc: Add port hotplug framework section to programmers guide",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "0823c32aab43a05ad2b600b148f96d7526c5e344",
    "submitter": {
        "id": 64,
        "url": "https://patches.dpdk.org/api/people/64/?format=api",
        "name": "Tetsuya Mukawa",
        "email": "mukawa@igel.co.jp"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1423470639-15744-15-git-send-email-mukawa@igel.co.jp/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/3088/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/3088/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 887EC6A95;\n\tMon,  9 Feb 2015 09:31:26 +0100 (CET)",
            "from mail-pa0-f42.google.com (mail-pa0-f42.google.com\n\t[209.85.220.42]) by dpdk.org (Postfix) with ESMTP id E7D207EEF\n\tfor <dev@dpdk.org>; Mon,  9 Feb 2015 09:31:19 +0100 (CET)",
            "by mail-pa0-f42.google.com with SMTP id bj1so32442482pad.1\n\tfor <dev@dpdk.org>; Mon, 09 Feb 2015 00:31:19 -0800 (PST)",
            "from localhost.localdomain (napt.igel.co.jp. [219.106.231.132])\n\tby mx.google.com with ESMTPSA id\n\tpp9sm15497875pbb.65.2015.02.09.00.31.17\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tMon, 09 Feb 2015 00:31:18 -0800 (PST)"
        ],
        "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=zjLSHEfXjCsFnmLCdiqhLpy60sm3zXwUicl0LTZj6zw=;\n\tb=g6hE5PLn+OYvEMdW+u9IwzLHU9EamB4lZCR6JqaeDNYAx/IpSO4RObcscHQOEIF9k5\n\tD+6/asJOyktW6qPBxCKH0b41O4R6pyVHDVNY1MNPN/e221YsslnihCRAwahlN0upW2+K\n\tnFsN/ILDsG8JlBYHrdAA9dTYP1cCfzz51qaRO8extxKbxsSWX5oT1xCgpln+7qnrTTg2\n\tcymbRufGUtQTelJh/CeaVfw/XZI/La6XjPj5mlmLA6+YyPOt+nnjCeXztwIe7eWoMgZJ\n\tt9ZAaxYb9Yq3Tvg3Uzj5+0hQeFmZ61fM5TbJF6aGz8XATNyQDnVR97meB6IKkJKi9Y42\n\tCLTA==",
        "X-Gm-Message-State": "ALoCoQn3QN3PndA5E8p6JR76lXSHxGFXvMFgUeWK9Tr1K22qBXKwvpRd7zMHoK+/dv6gYqCCWnqL",
        "X-Received": "by 10.70.15.196 with SMTP id z4mr26470892pdc.20.1423470679208;\n\tMon, 09 Feb 2015 00:31:19 -0800 (PST)",
        "From": "Tetsuya Mukawa <mukawa@igel.co.jp>",
        "To": "dev@dpdk.org",
        "Date": "Mon,  9 Feb 2015 17:30:37 +0900",
        "Message-Id": "<1423470639-15744-15-git-send-email-mukawa@igel.co.jp>",
        "X-Mailer": "git-send-email 1.9.1",
        "In-Reply-To": "<1423470639-15744-1-git-send-email-mukawa@igel.co.jp>",
        "References": "<1422763322-13742-4-git-send-email-mukawa@igel.co.jp>\n\t<1423470639-15744-1-git-send-email-mukawa@igel.co.jp>",
        "Subject": "[dpdk-dev] [PATCH v7 14/14] doc: Add port hotplug framework section\n\tto programmers 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": "This patch adds a new section for describing port hotplug framework.\n\nSigned-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>\n---\n doc/guides/prog_guide/index.rst                  |   1 +\n doc/guides/prog_guide/port_hotplug_framework.rst | 110 +++++++++++++++++++++++\n 2 files changed, 111 insertions(+)\n create mode 100644 doc/guides/prog_guide/port_hotplug_framework.rst",
    "diff": "diff --git a/doc/guides/prog_guide/index.rst b/doc/guides/prog_guide/index.rst\nindex 8d86dd4..428b76b 100644\n--- a/doc/guides/prog_guide/index.rst\n+++ b/doc/guides/prog_guide/index.rst\n@@ -70,6 +70,7 @@ Programmer's Guide\n     packet_classif_access_ctrl\n     packet_framework\n     vhost_lib\n+    port_hotplug_framework\n     source_org\n     dev_kit_build_system\n     dev_kit_root_make_help\ndiff --git a/doc/guides/prog_guide/port_hotplug_framework.rst b/doc/guides/prog_guide/port_hotplug_framework.rst\nnew file mode 100644\nindex 0000000..355ae28\n--- /dev/null\n+++ b/doc/guides/prog_guide/port_hotplug_framework.rst\n@@ -0,0 +1,110 @@\n+..  BSD LICENSE\n+    Copyright(c) 2015 IGEL Co.,Ltd. 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 IGEL Co.,Ltd. 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+Port Hotplug Framework\n+======================\n+\n+The Port Hotplug Framework provides DPDK applications with the ability to\n+attach and detach ports at runtime. Because the framework depends on PMD\n+implementation, the ports that PMDs cannot handle are out of scope of this\n+framework. Furthermore, after detaching a port from a DPDK application, the\n+framework doesn't provide a way for removing the devices from the system.\n+For the ports backed by a physical NIC, the kernel will need to support PCI\n+Hotplug feature.\n+\n+Overview\n+--------\n+\n+The basic requirements of the Port Hotplug Framework are:\n+\n+*       DPDK applications that use the Port Hotplug Framework must manage their\n+        own ports.\n+\n+        The Port Hotplug Framework is implemented to allow DPDK applications to\n+        manage ports. For example, when DPDK applications call the port attach\n+        function, the attached port number is returned. DPDK applications can\n+        also detach the port by port number.\n+\n+*       Kernel support is needed for attaching or detaching physical device\n+        ports.\n+\n+        To attach new physical device ports, the device will be recognized by\n+        userspace driver I/O framework in kernel at first. Then DPDK\n+        applications can call the Port Hotplug functions to attach the ports.\n+        For detaching, steps are vice versa.\n+\n+*       Before detaching, they must be stopped and closed.\n+\n+        DPDK applications must call \"rte_eth_dev_stop()\" and\n+        \"rte_eth_dev_close()\" APIs before detaching ports. These functions will\n+        start finalization sequence of the PMDs.\n+\n+*       The framework doesn't affect legacy DPDK applications behavior.\n+\n+        If the Port Hotplug functions aren't called, all legacy DPDK apps can\n+        still work without modifications.\n+\n+Port Hotplug API overview\n+-------------------------\n+\n+*       Attaching a port\n+\n+        \"rte_eal_dev_attach()\" API attaches a port to DPDK application, and\n+        returns the attached port number. Before calling the API, the device\n+        should be recognized by an userspace driver I/O framework. The API\n+        receives a pci address like \"0000:01:00.0\" or a virtual device name\n+        like \"eth_pcap0,iface=eth0\". In the case of virtual device name, the\n+        format is the same as the general \"--vdev\" option of DPDK.\n+\n+*       Detaching a port\n+\n+        \"rte_eal_dev_detach()\" API detaches a port from DPDK application, and\n+        returns a pci address of the detached device or a virtual device name\n+        of the device.\n+\n+Reference\n+---------\n+\n+        \"testpmd\" supports the Port Hotplug Framework.\n+\n+Limitations\n+-----------\n+\n+*       The Port Hotplug APIs are not thread safe.\n+\n+*       The framework can only be enabled with Linux. BSD is not supported.\n+\n+*       To detach a port, the port should be backed by a device that igb_uio\n+        manages. VFIO is not supported.\n+\n+*       Not all PMDs support detaching feature.\n+        To know whether a PMD can support detaching, search for the\n+        \"RTE_PCI_DRV_DETACHABLE\" flag in PMD implementation. If the flag is\n+        defined in the PMD, detaching is supported.\n",
    "prefixes": [
        "dpdk-dev",
        "v7",
        "14/14"
    ]
}