get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 37828,
    "url": "https://patches.dpdk.org/api/patches/37828/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20180410162022.9101-15-adrien.mazarguil@6wind.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": "<20180410162022.9101-15-adrien.mazarguil@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180410162022.9101-15-adrien.mazarguil@6wind.com",
    "date": "2018-04-10T16:37:04",
    "name": "[dpdk-dev,v3,14/16] ethdev: rename physical port item in flow API",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a20882ad74720c5f5d6bd5795dc6deb2433a4f34",
    "submitter": {
        "id": 165,
        "url": "https://patches.dpdk.org/api/people/165/?format=api",
        "name": "Adrien Mazarguil",
        "email": "adrien.mazarguil@6wind.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20180410162022.9101-15-adrien.mazarguil@6wind.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/37828/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/37828/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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id D95CA1BB78;\n\tTue, 10 Apr 2018 18:37:36 +0200 (CEST)",
            "from mail-wr0-f196.google.com (mail-wr0-f196.google.com\n\t[209.85.128.196]) by dpdk.org (Postfix) with ESMTP id 9741C1B03D\n\tfor <dev@dpdk.org>; Tue, 10 Apr 2018 18:37:18 +0200 (CEST)",
            "by mail-wr0-f196.google.com with SMTP id m13so13465670wrj.5\n\tfor <dev@dpdk.org>; Tue, 10 Apr 2018 09:37:18 -0700 (PDT)",
            "from 6wind.com (host.78.145.23.62.rev.coltfrance.com.\n\t[62.23.145.78]) by smtp.gmail.com with ESMTPSA id\n\tu44sm2925811wrb.67.2018.04.10.09.37.17\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tTue, 10 Apr 2018 09:37:17 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=6wind-com.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:subject:message-id:references:mime-version\n\t:content-disposition:in-reply-to;\n\tbh=3FQFP6oTpM0F0wtDx0gyjHYL5KUqJCYc3RvuhHbFrt8=;\n\tb=gP9+H2vIhXt3FcIelN7e9N7A6GNHTwDVElnprkCz8RD5v35Th4LyYqTNlQOYgl+iH0\n\t+we3nH0IwGjrCDbutRa8zFFvFMHHAqYi7t/DApTihrMQOXSvwnBcxUXUUNHDmC079auV\n\tgi3arN2mA5FGfT3rj9B8K3g+L6ep8+LNdLJhWTNG8hHyYq83Pof6QpuWK0EAMtnCN46p\n\tDA8vVP5GRDEsU6lDYdU4nWZO855h3aB9hLqkAFLv2FdOPXizM6LAfozk6fgqv9JpUZDn\n\tDLBzbDRrzq0PNKzEr8uCCe1RIo8GI/+jyIQfvN5q79McXsWWvc6NFFjPLP6iRznx13Le\n\tlJ9A==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:subject:message-id:references\n\t:mime-version:content-disposition:in-reply-to;\n\tbh=3FQFP6oTpM0F0wtDx0gyjHYL5KUqJCYc3RvuhHbFrt8=;\n\tb=meBocqR+ctsuEi+g6ELRivLzVIJjIhb38ebYgBAzioKyTdPx+X76p3KLKv/P2oWSck\n\tF6MSwFp5/FAiwxup6RsndY6zTICnDFM1G0AuDo5DwfjIdIUMaVT/L3SwbpqHjs/AKtll\n\t/EBxasX2/98bItJQn74FylV51V/n26WP44kS84UoR9zo1q+jNvQbbO4pc9rtvNZaxa5q\n\tjyhIujapJgd2NA1mWTLdMKshniOJGi/8J/AzHH9Vtwa5mgIs4bcUDOXJs1ljfYyQoL80\n\t7KTlce7oZfU7eN1JxuIilbQmbBp7wk345r/j8bM9xF5nttmDmqyQRpTUVC8di1VmOv34\n\tRGZA==",
        "X-Gm-Message-State": "ALQs6tDwpGqlx3Qfau7bA9O1fhUo7XPUy0LU5yuJpGN5BAer69glDQvA\n\tZL8/F/ga/UixB7E63zX+utjUeq6I",
        "X-Google-Smtp-Source": "AIpwx48R9jCSeURk5TjOTlvJIrSoIXx2/7nLEEi02Vz3EJ/XQ+fxPWiGxRpFixQqU2vIf9CErxQgUw==",
        "X-Received": "by 10.223.209.194 with SMTP id m2mr942223wri.214.1523378238211; \n\tTue, 10 Apr 2018 09:37:18 -0700 (PDT)",
        "Date": "Tue, 10 Apr 2018 18:37:04 +0200",
        "From": "Adrien Mazarguil <adrien.mazarguil@6wind.com>",
        "To": "Thomas Monjalon <thomas@monjalon.net>,\n\tFerruh Yigit <ferruh.yigit@intel.com>, dev@dpdk.org",
        "Message-ID": "<20180410162022.9101-15-adrien.mazarguil@6wind.com>",
        "References": "<20180406131736.19145-1-adrien.mazarguil@6wind.com>\n\t<20180410162022.9101-1-adrien.mazarguil@6wind.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=us-ascii",
        "Content-Disposition": "inline",
        "In-Reply-To": "<20180410162022.9101-1-adrien.mazarguil@6wind.com>",
        "X-Mailer": "git-send-email 2.11.0",
        "Subject": "[dpdk-dev] [PATCH v3 14/16] ethdev: rename physical port item in\n\tflow API",
        "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://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": "<https://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": "While RTE_FLOW_ITEM_TYPE_PORT refers to physical ports of the underlying\ndevice using specific identifiers, these are often confused with DPDK port\nIDs exposed to applications in the global name space.\n\nSince this pattern item is seldom used, rename it RTE_FLOW_ITEM_PHY_PORT\nfor better clarity.\n\nNo ABI impact.\n\nSigned-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>\n---\n app/test-pmd/cmdline_flow.c                 | 27 +++++++++++----------\n app/test-pmd/config.c                       |  2 +-\n doc/guides/prog_guide/rte_flow.rst          | 22 ++++++++---------\n doc/guides/testpmd_app_ug/testpmd_funcs.rst |  2 +-\n lib/librte_ether/rte_flow.c                 |  2 +-\n lib/librte_ether/rte_flow.h                 | 31 ++++++++++--------------\n 6 files changed, 41 insertions(+), 45 deletions(-)",
    "diff": "diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c\nindex af0631036..a0dbec119 100644\n--- a/app/test-pmd/cmdline_flow.c\n+++ b/app/test-pmd/cmdline_flow.c\n@@ -87,8 +87,8 @@ enum index {\n \tITEM_PF,\n \tITEM_VF,\n \tITEM_VF_ID,\n-\tITEM_PORT,\n-\tITEM_PORT_INDEX,\n+\tITEM_PHY_PORT,\n+\tITEM_PHY_PORT_INDEX,\n \tITEM_RAW,\n \tITEM_RAW_RELATIVE,\n \tITEM_RAW_SEARCH,\n@@ -441,7 +441,7 @@ static const enum index next_item[] = {\n \tITEM_ANY,\n \tITEM_PF,\n \tITEM_VF,\n-\tITEM_PORT,\n+\tITEM_PHY_PORT,\n \tITEM_RAW,\n \tITEM_ETH,\n \tITEM_VLAN,\n@@ -482,8 +482,8 @@ static const enum index item_vf[] = {\n \tZERO,\n };\n \n-static const enum index item_port[] = {\n-\tITEM_PORT_INDEX,\n+static const enum index item_phy_port[] = {\n+\tITEM_PHY_PORT_INDEX,\n \tITEM_NEXT,\n \tZERO,\n };\n@@ -1059,18 +1059,19 @@ static const struct token token_list[] = {\n \t\t.next = NEXT(item_vf, NEXT_ENTRY(UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_vf, id)),\n \t},\n-\t[ITEM_PORT] = {\n-\t\t.name = \"port\",\n-\t\t.help = \"device-specific physical port index to use\",\n-\t\t.priv = PRIV_ITEM(PORT, sizeof(struct rte_flow_item_port)),\n-\t\t.next = NEXT(item_port),\n+\t[ITEM_PHY_PORT] = {\n+\t\t.name = \"phy_port\",\n+\t\t.help = \"match traffic from/to a specific physical port\",\n+\t\t.priv = PRIV_ITEM(PHY_PORT,\n+\t\t\t\t  sizeof(struct rte_flow_item_phy_port)),\n+\t\t.next = NEXT(item_phy_port),\n \t\t.call = parse_vc,\n \t},\n-\t[ITEM_PORT_INDEX] = {\n+\t[ITEM_PHY_PORT_INDEX] = {\n \t\t.name = \"index\",\n \t\t.help = \"physical port index\",\n-\t\t.next = NEXT(item_port, NEXT_ENTRY(UNSIGNED), item_param),\n-\t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_port, index)),\n+\t\t.next = NEXT(item_phy_port, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_phy_port, index)),\n \t},\n \t[ITEM_RAW] = {\n \t\t.name = \"raw\",\ndiff --git a/app/test-pmd/config.c b/app/test-pmd/config.c\nindex 49ef87782..9f968919e 100644\n--- a/app/test-pmd/config.c\n+++ b/app/test-pmd/config.c\n@@ -960,7 +960,7 @@ static const struct {\n \tMK_FLOW_ITEM(ANY, sizeof(struct rte_flow_item_any)),\n \tMK_FLOW_ITEM(PF, 0),\n \tMK_FLOW_ITEM(VF, sizeof(struct rte_flow_item_vf)),\n-\tMK_FLOW_ITEM(PORT, sizeof(struct rte_flow_item_port)),\n+\tMK_FLOW_ITEM(PHY_PORT, sizeof(struct rte_flow_item_phy_port)),\n \tMK_FLOW_ITEM(RAW, sizeof(struct rte_flow_item_raw)),\n \tMK_FLOW_ITEM(ETH, sizeof(struct rte_flow_item_eth)),\n \tMK_FLOW_ITEM(VLAN, sizeof(struct rte_flow_item_vlan)),\ndiff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst\nindex a0a124aa2..4e053c24b 100644\n--- a/doc/guides/prog_guide/rte_flow.rst\n+++ b/doc/guides/prog_guide/rte_flow.rst\n@@ -195,8 +195,8 @@ When supported, this effectively enables an application to reroute traffic\n not necessarily intended for it (e.g. coming from or addressed to different\n physical ports, VFs or applications) at the device level.\n \n-It complements the behavior of some pattern items such as `Item: PORT`_ and\n-is meaningless without them.\n+It complements the behavior of some pattern items such as `Item: PHY_PORT`_\n+and is meaningless without them.\n \n When transferring flow rules, **ingress** and **egress** attributes\n (`Attribute: Traffic direction`_) keep their original meaning, as if\n@@ -583,15 +583,15 @@ separate entities, should be addressed through their own DPDK port IDs.\n    | ``mask`` | ``id``   | zeroed to match any VF ID |\n    +----------+----------+---------------------------+\n \n-Item: ``PORT``\n-^^^^^^^^^^^^^^\n+Item: ``PHY_PORT``\n+^^^^^^^^^^^^^^^^^^\n \n-Matches packets coming from the specified physical port of the underlying\n-device.\n+Matches traffic originating from (ingress) or going to (egress) a physical\n+port of the underlying device.\n \n-The first PORT item overrides the physical port normally associated with the\n-specified DPDK input port (port_id). This item can be provided several times\n-to match additional physical ports.\n+The first PHY_PORT item overrides the physical port normally associated with\n+the specified DPDK input port (port_id). This item can be provided several\n+times to match additional physical ports.\n \n Note that physical ports are not necessarily tied to DPDK input ports\n (port_id) when those are not under DPDK control. Possible values are\n@@ -603,9 +603,9 @@ associated with a port_id should be retrieved by other means.\n \n - Default ``mask`` matches any port index.\n \n-.. _table_rte_flow_item_port:\n+.. _table_rte_flow_item_phy_port:\n \n-.. table:: PORT\n+.. table:: PHY_PORT\n \n    +----------+-----------+--------------------------------+\n    | Field    | Subfield  | Value                          |\ndiff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst\nindex af37c3d82..a2bbd1930 100644\n--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst\n+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst\n@@ -3208,7 +3208,7 @@ This section lists supported pattern items and their attributes, if any.\n \n   - ``id {unsigned}``: VF ID.\n \n-- ``port``: device-specific physical port index to use.\n+- ``phy_port``: match traffic from/to a specific physical port.\n \n   - ``index {unsigned}``: physical port index.\n \ndiff --git a/lib/librte_ether/rte_flow.c b/lib/librte_ether/rte_flow.c\nindex 1f247d656..6d4d7f5ed 100644\n--- a/lib/librte_ether/rte_flow.c\n+++ b/lib/librte_ether/rte_flow.c\n@@ -38,7 +38,7 @@ static const struct rte_flow_desc_data rte_flow_desc_item[] = {\n \tMK_FLOW_ITEM(ANY, sizeof(struct rte_flow_item_any)),\n \tMK_FLOW_ITEM(PF, 0),\n \tMK_FLOW_ITEM(VF, sizeof(struct rte_flow_item_vf)),\n-\tMK_FLOW_ITEM(PORT, sizeof(struct rte_flow_item_port)),\n+\tMK_FLOW_ITEM(PHY_PORT, sizeof(struct rte_flow_item_phy_port)),\n \tMK_FLOW_ITEM(RAW, sizeof(struct rte_flow_item_raw)),\n \tMK_FLOW_ITEM(ETH, sizeof(struct rte_flow_item_eth)),\n \tMK_FLOW_ITEM(VLAN, sizeof(struct rte_flow_item_vlan)),\ndiff --git a/lib/librte_ether/rte_flow.h b/lib/librte_ether/rte_flow.h\nindex f3db2ec01..ed211a8eb 100644\n--- a/lib/librte_ether/rte_flow.h\n+++ b/lib/librte_ether/rte_flow.h\n@@ -84,7 +84,7 @@ struct rte_flow_attr {\n \t * applications) at the device level.\n \t *\n \t * It complements the behavior of some pattern items such as\n-\t * RTE_FLOW_ITEM_TYPE_PORT and is meaningless without them.\n+\t * RTE_FLOW_ITEM_TYPE_PHY_PORT and is meaningless without them.\n \t *\n \t * When transferring flow rules, ingress and egress attributes keep\n \t * their original meaning, as if processing traffic emitted or\n@@ -172,17 +172,12 @@ enum rte_flow_item_type {\n \t/**\n \t * [META]\n \t *\n-\t * Matches packets coming from the specified physical port of the\n-\t * underlying device.\n-\t *\n-\t * The first PORT item overrides the physical port normally\n-\t * associated with the specified DPDK input port (port_id). This\n-\t * item can be provided several times to match additional physical\n-\t * ports.\n+\t * Matches traffic originating from (ingress) or going to (egress) a\n+\t * physical port of the underlying device.\n \t *\n-\t * See struct rte_flow_item_port.\n+\t * See struct rte_flow_item_phy_port.\n \t */\n-\tRTE_FLOW_ITEM_TYPE_PORT,\n+\tRTE_FLOW_ITEM_TYPE_PHY_PORT,\n \n \t/**\n \t * Matches a byte string of a given length at a given offset.\n@@ -388,13 +383,13 @@ static const struct rte_flow_item_vf rte_flow_item_vf_mask = {\n #endif\n \n /**\n- * RTE_FLOW_ITEM_TYPE_PORT\n+ * RTE_FLOW_ITEM_TYPE_PHY_PORT\n  *\n- * Matches packets coming from the specified physical port of the underlying\n- * device.\n+ * Matches traffic originating from (ingress) or going to (egress) a\n+ * physical port of the underlying device.\n  *\n- * The first PORT item overrides the physical port normally associated with\n- * the specified DPDK input port (port_id). This item can be provided\n+ * The first PHY_PORT item overrides the physical port normally associated\n+ * with the specified DPDK input port (port_id). This item can be provided\n  * several times to match additional physical ports.\n  *\n  * Note that physical ports are not necessarily tied to DPDK input ports\n@@ -407,13 +402,13 @@ static const struct rte_flow_item_vf rte_flow_item_vf_mask = {\n  *\n  * A zeroed mask can be used to match any port index.\n  */\n-struct rte_flow_item_port {\n+struct rte_flow_item_phy_port {\n \tuint32_t index; /**< Physical port index. */\n };\n \n-/** Default mask for RTE_FLOW_ITEM_TYPE_PORT. */\n+/** Default mask for RTE_FLOW_ITEM_TYPE_PHY_PORT. */\n #ifndef __cplusplus\n-static const struct rte_flow_item_port rte_flow_item_port_mask = {\n+static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask = {\n \t.index = 0x00000000,\n };\n #endif\n",
    "prefixes": [
        "dpdk-dev",
        "v3",
        "14/16"
    ]
}