get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 77544,
    "url": "http://patches.dpdk.org/api/patches/77544/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1600012140-70151-2-git-send-email-bingz@nvidia.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": "<1600012140-70151-2-git-send-email-bingz@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1600012140-70151-2-git-send-email-bingz@nvidia.com",
    "date": "2020-09-13T15:48:57",
    "name": "[RFC,v2,1/4] ethdev: add support for flow item transmit queue",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "83f8b32fabb73d47f564b61166bb73dce446ea8d",
    "submitter": {
        "id": 1976,
        "url": "http://patches.dpdk.org/api/people/1976/?format=api",
        "name": "Bing Zhao",
        "email": "bingz@nvidia.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1600012140-70151-2-git-send-email-bingz@nvidia.com/mbox/",
    "series": [
        {
            "id": 12169,
            "url": "http://patches.dpdk.org/api/series/12169/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12169",
            "date": "2020-09-13T15:48:56",
            "name": "introduce support for hairpin between two ports",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/12169/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/77544/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/77544/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 2E3C7A04C9;\n\tSun, 13 Sep 2020 17:49:26 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 0C2811C012;\n\tSun, 13 Sep 2020 17:49:26 +0200 (CEST)",
            "from git-send-mailer.rdmz.labs.mlnx (unknown [37.142.13.130])\n by dpdk.org (Postfix) with ESMTP id 8A87EE07\n for <dev@dpdk.org>; Sun, 13 Sep 2020 17:49:24 +0200 (CEST)"
        ],
        "From": "Bing Zhao <bingz@nvidia.com>",
        "To": "thomas@monjalon.net, orika@nvidia.com, ferruh.yigit@intel.com,\n arybchenko@solarflare.com",
        "Cc": "dev@dpdk.org",
        "Date": "Sun, 13 Sep 2020 23:48:57 +0800",
        "Message-Id": "<1600012140-70151-2-git-send-email-bingz@nvidia.com>",
        "X-Mailer": "git-send-email 2.5.5",
        "In-Reply-To": "<1600012140-70151-1-git-send-email-bingz@nvidia.com>",
        "References": "\n <CY4PR1201MB0072A4383E611EB8B65D89A6D0240@CY4PR1201MB0072.namprd12.prod.outlook.com>\n <1600012140-70151-1-git-send-email-bingz@nvidia.com>",
        "Subject": "[dpdk-dev] [RFC PATCH v2 1/4] ethdev: add support for flow item\n\ttransmit queue",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "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": "New rte_flow_item_tx_queue is introduced to support matching on the\ntraffic from a specific transmit queue. This is only for the egress\ndirection. For ingress, the receive queue index will be part of the\nactions with ACTION QUEUE or RSS and there is no needs to match.\n\nBy adding this flow item, it will be easy for the application to\ncreate some wildcard rules to distribute the egress traffic for the\nfurther handling.\n\nNormally, all the traffic from software to wire will have the same\nwildcard rule. If the packets need to be handled in different ways,\npackets' headers and metadata, etc. will be used for matching.\n\nBut in some cases, for example:\n1. Packets from different TX queues will have different next common\n   behaviors.\n2. Hairpin TX traffic should have different behavior from software\n   egress traffic.\nMatching on the TX queue will help to reduce the rules number and\nsimplify the rules management.\n\nThe support for this new item will be decided by the PMD driver and\nthe capacity of the NIC.\n\nSigned-off-by: Bing Zhao <bingz@nvidia.com>\n---\n lib/librte_ethdev/rte_flow.c |  1 +\n lib/librte_ethdev/rte_flow.h | 30 ++++++++++++++++++++++++++++++\n 2 files changed, 31 insertions(+)",
    "diff": "diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c\nindex f8fdd68..4600e27 100644\n--- a/lib/librte_ethdev/rte_flow.c\n+++ b/lib/librte_ethdev/rte_flow.c\n@@ -96,6 +96,7 @@ static const struct rte_flow_desc_data rte_flow_desc_item[] = {\n \tMK_FLOW_ITEM(L2TPV3OIP, sizeof(struct rte_flow_item_l2tpv3oip)),\n \tMK_FLOW_ITEM(PFCP, sizeof(struct rte_flow_item_pfcp)),\n \tMK_FLOW_ITEM(ECPRI, sizeof(struct rte_flow_item_ecpri)),\n+\tMK_FLOW_ITEM(TX_QUEUE, sizeof(struct rte_flow_item_tx_queue)),\n };\n \n /** Generate flow_action[] entry. */\ndiff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h\nindex da8bfa5..264755a 100644\n--- a/lib/librte_ethdev/rte_flow.h\n+++ b/lib/librte_ethdev/rte_flow.h\n@@ -537,6 +537,13 @@ enum rte_flow_item_type {\n \t */\n \tRTE_FLOW_ITEM_TYPE_ECPRI,\n \n+\t/**\n+\t * Matches TX queue ID of a specific port for egress traffic.\n+\t *\n+\t * See struct rte_flow_item_tx_queue.\n+\t */\n+\tRTE_FLOW_ITEM_TYPE_TX_QUEUE,\n+\n };\n \n /**\n@@ -1580,6 +1587,29 @@ static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask = {\n #endif\n \n /**\n+ * @warning\n+ * @b EXPERIMENTAL: this structure may change without prior notice\n+ *\n+ * RTE_FLOW_ITEM_TYPE_TX_QUEUE\n+ *\n+ * Match egress traffic originating from a TX queue of a port. Port refers to\n+ * a struct rte_eth_dev object on the application side and the transmit queue\n+ * index must be in the range [0, nb_tx_queue - 1] previously supplied to\n+ * rte_eth_dev_configure(). Normally only supported if the TX queue ID is known\n+ * by the underlying PMD.\n+ */\n+struct rte_flow_item_tx_queue {\n+\tuint32_t queue; /**< DPDK TX queue ID of a specific port. */\n+};\n+\n+/** Default mask for RTE_FLOW_ITEM_TYPE_TX_QUEUE. */\n+#ifndef __cplusplus\n+static const struct rte_flow_item_tx_queue rte_flow_item_tx_queue_mask = {\n+\t.queue = 0xffffffff,\n+};\n+#endif\n+\n+/**\n  * Matching pattern item definition.\n  *\n  * A pattern is formed by stacking items starting from the lowest protocol\n",
    "prefixes": [
        "RFC",
        "v2",
        "1/4"
    ]
}