get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 94770,
    "url": "https://patches.dpdk.org/api/patches/94770/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210623173142.3803801-1-ferruh.yigit@intel.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": "<20210623173142.3803801-1-ferruh.yigit@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210623173142.3803801-1-ferruh.yigit@intel.com",
    "date": "2021-06-23T17:31:42",
    "name": "doc: note KNI alternatives and deprecation plan",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "ab0ec098cdfc401fe6a75287d1248d5a1e223ba3",
    "submitter": {
        "id": 324,
        "url": "https://patches.dpdk.org/api/people/324/?format=api",
        "name": "Ferruh Yigit",
        "email": "ferruh.yigit@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210623173142.3803801-1-ferruh.yigit@intel.com/mbox/",
    "series": [
        {
            "id": 17460,
            "url": "https://patches.dpdk.org/api/series/17460/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=17460",
            "date": "2021-06-23T17:31:42",
            "name": "doc: note KNI alternatives and deprecation plan",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/17460/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/94770/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/94770/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 813CBA0C42;\n\tWed, 23 Jun 2021 19:32:02 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id ECC8C40141;\n\tWed, 23 Jun 2021 19:32:01 +0200 (CEST)",
            "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n by mails.dpdk.org (Postfix) with ESMTP id 2CD314003F\n for <dev@dpdk.org>; Wed, 23 Jun 2021 19:32:00 +0200 (CEST)",
            "from fmsmga001.fm.intel.com ([10.253.24.23])\n by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 23 Jun 2021 10:31:58 -0700",
            "from silpixa00399752.ir.intel.com (HELO\n silpixa00399752.ger.corp.intel.com) ([10.237.222.27])\n by fmsmga001.fm.intel.com with ESMTP; 23 Jun 2021 10:31:56 -0700"
        ],
        "IronPort-SDR": [
            "\n nsrsP0A4KH6LnAb5w92rGq0IpclSbWftOl9VJHKPTRvqxTLfCULF81H06w/CIkWzc9gBjMe3vz\n MmnRql8UhJYA==",
            "\n JEFhq5Ah93V6uiuCazx6G9DEJ84y6d/sCTsLpD4ApcI2v9YHTrq+dTyMNW4YHZVTRRIfgHdZEz\n 1BGTwwOteLZQ=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10024\"; a=\"204305820\"",
            "E=Sophos;i=\"5.83,294,1616482800\"; d=\"scan'208\";a=\"204305820\"",
            "E=Sophos;i=\"5.83,294,1616482800\"; d=\"scan'208\";a=\"557048643\""
        ],
        "X-ExtLoop1": "1",
        "From": "Ferruh Yigit <ferruh.yigit@intel.com>",
        "To": "dev@dpdk.org,\n\tKeith Wiles <keith.wiles@intel.com>",
        "Cc": "Ferruh Yigit <ferruh.yigit@intel.com>,\n Stephen Hemminger <stephen@networkplumber.org>,\n Thomas Monjalon <thomas@monjalon.net>",
        "Date": "Wed, 23 Jun 2021 18:31:42 +0100",
        "Message-Id": "<20210623173142.3803801-1-ferruh.yigit@intel.com>",
        "X-Mailer": "git-send-email 2.31.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Add a note that KNI kernel module will be moved to dpdk-kmods git repo\nand there is a long term plan to deprecate it.\n\nAlso add some more details on the alternatives to KNI and cons of the\nKNI against these alternatives.\n\nSigned-off-by: Ferruh Yigit <ferruh.yigit@intel.com>\n---\n doc/guides/nics/tap.rst                       |  2 +\n .../prog_guide/kernel_nic_interface.rst       | 38 +++++++++++++++++--\n 2 files changed, 37 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst\nindex 3ce696b605d1..07315fe32422 100644\n--- a/doc/guides/nics/tap.rst\n+++ b/doc/guides/nics/tap.rst\n@@ -1,6 +1,8 @@\n ..  SPDX-License-Identifier: BSD-3-Clause\n     Copyright(c) 2016 Intel Corporation.\n \n+.. _TunTap_PMD:\n+\n Tun|Tap Poll Mode Driver\n ========================\n \ndiff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst\nindex 1ce03ec1a374..29f8c92fd9d6 100644\n--- a/doc/guides/prog_guide/kernel_nic_interface.rst\n+++ b/doc/guides/prog_guide/kernel_nic_interface.rst\n@@ -6,16 +6,48 @@\n Kernel NIC Interface\n ====================\n \n+.. Note::\n+\n+   KNI kernel module will be removed from main git repository to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_\n+   repository by the `DPDK technical board decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_.\n+   Also there is a `long term plan <https://mails.dpdk.org/archives/dev/2021-May/209026.html>`_ to deprecate the KNI.\n+\n+   :ref:`virtio_user_as_exceptional_path` alternative is preferred way for\n+   interfacing with Linux network stack as it is being in-kernel solution and\n+   similar performance expectations.\n+\n The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the Linux* control plane.\n \n-The benefits of using the DPDK KNI are:\n+KNI allows an interface with the kernel network stack and allows management of\n+DPDK ports using standard Linux net tools such as ``ethtool``, ``ifconfig`` and\n+``tcpdump``.\n+\n+Main use case of KNI is get/receive exception packets from/to Linux network\n+stack while main datapath IO is done bypassing the networking stack.\n+\n+There are other alternatives to KNI, all are available in the upstream Linux:\n+\n+#. :ref:`TunTap_PMD` as wrapper to `Linux tun/tap\n+   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_\n+\n+#. :ref:`virtio_user_as_exceptional_path`\n+\n+The benefits of using the DPDK KNI against alternatives are:\n \n *   Faster than existing Linux TUN/TAP interfaces\n     (by eliminating system calls and copy_to_user()/copy_from_user() operations.\n \n-*   Allows management of DPDK ports using standard Linux net tools such as ethtool, ifconfig and tcpdump.\n+The cons of the DPDK KNI are:\n+\n+* It is out-of-tree Linux kernel module and it can't be distributed as binary as\n+  part of OSV DPDK packages. This makes it harder to consume, although it is\n+  always possible to compile it from the source code.\n+\n+* As it shares memory between userspace and kernelspace, and kernel part\n+  directly uses input provided by userspace, it is not safe. This makes hard to\n+  upstream the module.\n \n-*   Allows an interface with the kernel network stack.\n+* Only a subset of control commands are supported by KNI.\n \n The components of an application using the DPDK Kernel NIC Interface are shown in :numref:`figure_kernel_nic_intf`.\n \n",
    "prefixes": []
}