get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 114944,
    "url": "https://patches.dpdk.org/api/patches/114944/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20220812191827.3187441-13-ivan.malov@oktetlabs.ru/",
    "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": "<20220812191827.3187441-13-ivan.malov@oktetlabs.ru>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220812191827.3187441-13-ivan.malov@oktetlabs.ru",
    "date": "2022-08-12T19:18:26",
    "name": "[12/13] ethdev: remove deprecated flow item PHY PORT",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "23738e496835488774562458f0215fac6fe28b6d",
    "submitter": {
        "id": 869,
        "url": "https://patches.dpdk.org/api/people/869/?format=api",
        "name": "Ivan Malov",
        "email": "Ivan.Malov@oktetlabs.ru"
    },
    "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/20220812191827.3187441-13-ivan.malov@oktetlabs.ru/mbox/",
    "series": [
        {
            "id": 24302,
            "url": "https://patches.dpdk.org/api/series/24302/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=24302",
            "date": "2022-08-12T19:18:15",
            "name": "ethdev: proceed with flow subsystem rework",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/24302/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/114944/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/114944/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 9E58CA0543;\n\tFri, 12 Aug 2022 21:19:42 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 4574542C66;\n\tFri, 12 Aug 2022 21:18:41 +0200 (CEST)",
            "from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113])\n by mails.dpdk.org (Postfix) with ESMTP id 6A43A40A7F\n for <dev@dpdk.org>; Fri, 12 Aug 2022 21:18:32 +0200 (CEST)",
            "from bree.oktetlabs.ru (bree.oktetlabs.ru [192.168.34.5])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by shelob.oktetlabs.ru (Postfix) with ESMTPS id 1467CC9;\n Fri, 12 Aug 2022 22:18:32 +0300 (MSK)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 1467CC9",
        "Authentication-Results": "shelob.oktetlabs.ru/1467CC9; dkim=none;\n dkim-atps=neutral",
        "From": "Ivan Malov <ivan.malov@oktetlabs.ru>",
        "To": "dev@dpdk.org",
        "Cc": "Ori Kam <orika@nvidia.com>, Eli Britstein <elibr@nvidia.com>,\n Ilya Maximets <i.maximets@ovn.org>, Thomas Monjalon <thomas@monjalon.net>,\n Stephen Hemminger <stephen@networkplumber.org>,\n Jerin Jacob <jerinj@marvell.com>,\n Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,\n Aman Singh <aman.deep.singh@intel.com>,\n Yuying Zhang <yuying.zhang@intel.com>,\n Ajit Khaparde <ajit.khaparde@broadcom.com>,\n Somnath Kotur <somnath.kotur@broadcom.com>,\n Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>,\n Ferruh Yigit <ferruh.yigit@xilinx.com>, Matan Azrad <matan@nvidia.com>,\n Viacheslav Ovsiienko <viacheslavo@nvidia.com>",
        "Subject": "[PATCH 12/13] ethdev: remove deprecated flow item PHY PORT",
        "Date": "Fri, 12 Aug 2022 22:18:26 +0300",
        "Message-Id": "<20220812191827.3187441-13-ivan.malov@oktetlabs.ru>",
        "X-Mailer": "git-send-email 2.30.2",
        "In-Reply-To": "<20220812191827.3187441-1-ivan.malov@oktetlabs.ru>",
        "References": "<20220812191827.3187441-1-ivan.malov@oktetlabs.ru>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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"
    },
    "content": "Such deprecation was commenced in DPDK 21.11.\nSince then, no parties have objected. Remove.\n\nThe patch breaks ABI.\n\nSigned-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>\nReviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>\n---\n app/test-pmd/cmdline_flow.c                   | 24 ------\n doc/guides/nics/features/bnxt.ini             |  1 -\n doc/guides/nics/features/cxgbe.ini            |  1 -\n doc/guides/nics/features/default.ini          |  1 -\n doc/guides/nics/features/mlx5.ini             |  1 -\n doc/guides/nics/features/sfc.ini              |  1 -\n doc/guides/nics/sfc_efx.rst                   |  2 -\n doc/guides/prog_guide/rte_flow.rst            | 45 -----------\n doc/guides/rel_notes/release_22_11.rst        |  3 +\n doc/guides/testpmd_app_ug/testpmd_funcs.rst   |  4 -\n drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c |  4 -\n drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      | 75 -------------------\n drivers/net/bnxt/tf_ulp/ulp_rte_parser.h      |  5 --\n drivers/net/cxgbe/cxgbe_flow.c                | 32 --------\n drivers/net/sfc/sfc_mae.c                     | 69 -----------------\n lib/ethdev/rte_flow.c                         |  1 -\n lib/ethdev/rte_flow.h                         | 56 --------------\n 17 files changed, 3 insertions(+), 322 deletions(-)",
    "diff": "diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c\nindex 31b906178c..758c1f0efa 100644\n--- a/app/test-pmd/cmdline_flow.c\n+++ b/app/test-pmd/cmdline_flow.c\n@@ -249,8 +249,6 @@ enum index {\n \tITEM_INVERT,\n \tITEM_ANY,\n \tITEM_ANY_NUM,\n-\tITEM_PHY_PORT,\n-\tITEM_PHY_PORT_INDEX,\n \tITEM_PORT_ID,\n \tITEM_PORT_ID_ID,\n \tITEM_MARK,\n@@ -1275,7 +1273,6 @@ static const enum index next_item[] = {\n \tITEM_VOID,\n \tITEM_INVERT,\n \tITEM_ANY,\n-\tITEM_PHY_PORT,\n \tITEM_PORT_ID,\n \tITEM_MARK,\n \tITEM_RAW,\n@@ -1345,12 +1342,6 @@ static const enum index item_any[] = {\n \tZERO,\n };\n \n-static const enum index item_phy_port[] = {\n-\tITEM_PHY_PORT_INDEX,\n-\tITEM_NEXT,\n-\tZERO,\n-};\n-\n static const enum index item_port_id[] = {\n \tITEM_PORT_ID_ID,\n \tITEM_NEXT,\n@@ -3450,21 +3441,6 @@ static const struct token token_list[] = {\n \t\t.next = NEXT(item_any, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_any, num)),\n \t},\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_PHY_PORT_INDEX] = {\n-\t\t.name = \"index\",\n-\t\t.help = \"physical port index\",\n-\t\t.next = NEXT(item_phy_port, NEXT_ENTRY(COMMON_UNSIGNED),\n-\t\t\t     item_param),\n-\t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_phy_port, index)),\n-\t},\n \t[ITEM_PORT_ID] = {\n \t\t.name = \"port_id\",\n \t\t.help = \"match traffic from/to a given DPDK port ID\",\ndiff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini\nindex 860a0a8cf6..c05bcff909 100644\n--- a/doc/guides/nics/features/bnxt.ini\n+++ b/doc/guides/nics/features/bnxt.ini\n@@ -63,7 +63,6 @@ ipv6                 = Y\n gre                  = Y\n icmp                 = Y\n icmp6                = Y\n-phy_port             = Y\n port_id              = Y\n port_representor     = Y\n represented_port     = Y\ndiff --git a/doc/guides/nics/features/cxgbe.ini b/doc/guides/nics/features/cxgbe.ini\nindex 3f11cc2ac0..295816ab9d 100644\n--- a/doc/guides/nics/features/cxgbe.ini\n+++ b/doc/guides/nics/features/cxgbe.ini\n@@ -39,7 +39,6 @@ Usage doc            = Y\n eth                  = Y\n ipv4                 = Y\n ipv6                 = Y\n-phy_port             = Y\n tcp                  = Y\n udp                  = Y\n vlan                 = Y\ndiff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini\nindex 8fbe1de46a..7ed5bd8cb9 100644\n--- a/doc/guides/nics/features/default.ini\n+++ b/doc/guides/nics/features/default.ini\n@@ -122,7 +122,6 @@ mpls                 =\n nsh                  =\n nvgre                =\n pfcp                 =\n-phy_port             =\n port_id              =\n port_representor     =\n ppp                  =\ndiff --git a/doc/guides/nics/features/mlx5.ini b/doc/guides/nics/features/mlx5.ini\nindex e056516deb..e5974063c8 100644\n--- a/doc/guides/nics/features/mlx5.ini\n+++ b/doc/guides/nics/features/mlx5.ini\n@@ -76,7 +76,6 @@ mark                 = Y\n meta                 = Y\n mpls                 = Y\n nvgre                = Y\n-phy_port             = Y\n port_id              = Y\n tag                  = Y\n tcp                  = Y\ndiff --git a/doc/guides/nics/features/sfc.ini b/doc/guides/nics/features/sfc.ini\nindex 363fc6d0ec..3dac105e35 100644\n--- a/doc/guides/nics/features/sfc.ini\n+++ b/doc/guides/nics/features/sfc.ini\n@@ -47,7 +47,6 @@ ipv4                 = Y\n ipv6                 = Y\n mark                 = P\n nvgre                = Y\n-phy_port             = Y\n port_id              = Y\n port_representor     = Y\n pppoed               = Y\ndiff --git a/doc/guides/nics/sfc_efx.rst b/doc/guides/nics/sfc_efx.rst\nindex 0e0088b09f..6eca86e96f 100644\n--- a/doc/guides/nics/sfc_efx.rst\n+++ b/doc/guides/nics/sfc_efx.rst\n@@ -198,8 +198,6 @@ Supported pattern items (***transfer*** rules):\n \n - PORT_ID (cannot repeat; conflicts with other traffic source items)\n \n-- PHY_PORT (cannot repeat; conflicts with other traffic source items)\n-\n - ETH\n \n - VLAN (double-tagging is supported)\ndiff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst\nindex 85bf2bf123..9cf4261494 100644\n--- a/doc/guides/prog_guide/rte_flow.rst\n+++ b/doc/guides/prog_guide/rte_flow.rst\n@@ -535,44 +535,6 @@ Usage example, matching non-TCPv4 packets only:\n    | 4     | END      |\n    +-------+----------+\n \n-Item: ``PHY_PORT``\n-^^^^^^^^^^^^^^^^^^\n-\n-This item is deprecated. Consider:\n- - `Item: PORT_REPRESENTOR`_\n- - `Item: REPRESENTED_PORT`_\n-\n-Matches traffic originating from (ingress) or going to (egress) a physical\n-port of the underlying device.\n-\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-specific to each device, they are not necessarily indexed from zero and may\n-not be contiguous.\n-\n-As a device property, the list of allowed values as well as the value\n-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_phy_port:\n-\n-.. table:: PHY_PORT\n-\n-   +----------+-----------+--------------------------------+\n-   | Field    | Subfield  | Value                          |\n-   +==========+===========+================================+\n-   | ``spec`` | ``index`` | physical port index            |\n-   +----------+-----------+--------------------------------+\n-   | ``last`` | ``index`` | upper range value              |\n-   +----------+-----------+--------------------------------+\n-   | ``mask`` | ``index`` | zeroed to match any port index |\n-   +----------+-----------+--------------------------------+\n-\n Item: ``PORT_ID``\n ^^^^^^^^^^^^^^^^^\n \n@@ -586,11 +548,6 @@ port ID.\n Normally only supported if the port ID in question is known by the\n underlying PMD and related to the device the flow rule is created against.\n \n-This must not be confused with `Item: PHY_PORT`_ which refers to the\n-physical port of a device, whereas `Item: PORT_ID`_ refers to a ``struct\n-rte_eth_dev`` object on the application side (also known as \"port\n-representor\" depending on the kind of underlying device).\n-\n - Default ``mask`` matches the specified DPDK port ID.\n \n .. _table_rte_flow_item_port_id:\n@@ -2056,8 +2013,6 @@ This action is deprecated. Consider:\n Directs matching traffic to a given physical port index of the underlying\n device.\n \n-See `Item: PHY_PORT`_.\n-\n .. _table_rte_flow_action_phy_port:\n \n .. table:: PHY_PORT\ndiff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst\nindex cf3d6e4efb..343f40a041 100644\n--- a/doc/guides/rel_notes/release_22_11.rst\n+++ b/doc/guides/rel_notes/release_22_11.rst\n@@ -82,6 +82,9 @@ Removed Items\n * ethdev: removed ``RTE_FLOW_ITEM_TYPE_VF``;\n   use ``RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT``.\n \n+* ethdev: removed ``RTE_FLOW_ITEM_TYPE_PHY_PORT``;\n+  use ``RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT``.\n+\n \n API Changes\n -----------\ndiff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst\nindex 17049e59f8..b9c2d7a6fe 100644\n--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst\n+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst\n@@ -3665,10 +3665,6 @@ This section lists supported pattern items and their attributes, if any.\n \n   - ``num {unsigned}``: number of layers covered.\n \n-- ``phy_port``: match traffic from/to a specific physical port.\n-\n-  - ``index {unsigned}``: physical port index.\n-\n - ``port_id``: match traffic from/to a given DPDK port ID.\n \n   - ``id {unsigned}``: DPDK port ID.\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c b/drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c\nindex 23081fc99b..66cd2fba7e 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c\n@@ -260,10 +260,6 @@ struct bnxt_ulp_rte_hdr_info ulp_hdr_info[] = {\n \t.hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,\n \t.proto_hdr_func          = ulp_rte_item_any_handler\n \t},\n-\t[RTE_FLOW_ITEM_TYPE_PHY_PORT] = {\n-\t.hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,\n-\t.proto_hdr_func          = ulp_rte_phy_port_hdr_handler\n-\t},\n \t[RTE_FLOW_ITEM_TYPE_PORT_ID] = {\n \t.hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,\n \t.proto_hdr_func          = ulp_rte_port_hdr_handler\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c\nindex 38799840dd..3faafcf788 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c\n@@ -571,81 +571,6 @@ ulp_rte_port_hdr_handler(const struct rte_flow_item *item,\n \treturn ulp_rte_parser_svif_set(params, ifindex, mask, item_dir);\n }\n \n-/* Function to handle the parsing of RTE Flow item phy port Header. */\n-int32_t\n-ulp_rte_phy_port_hdr_handler(const struct rte_flow_item *item,\n-\t\t\t     struct ulp_rte_parser_params *params)\n-{\n-\tconst struct rte_flow_item_phy_port *port_spec = item->spec;\n-\tconst struct rte_flow_item_phy_port *port_mask = item->mask;\n-\tuint16_t mask = 0;\n-\tint32_t rc = BNXT_TF_RC_ERROR;\n-\tuint16_t svif;\n-\tenum bnxt_ulp_direction_type dir;\n-\tstruct ulp_rte_hdr_field *hdr_field;\n-\n-\t/* Copy the rte_flow_item for phy port into hdr_field */\n-\tif (!port_spec) {\n-\t\tBNXT_TF_DBG(ERR, \"ParseErr:Phy Port id is not valid\\n\");\n-\t\treturn rc;\n-\t}\n-\tif (!port_mask) {\n-\t\tBNXT_TF_DBG(ERR, \"ParseErr:Phy Port mask is not valid\\n\");\n-\t\treturn rc;\n-\t}\n-\tmask = port_mask->index;\n-\n-\t/* Update the match port type */\n-\tULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_MATCH_PORT_TYPE,\n-\t\t\t    BNXT_ULP_INTF_TYPE_PHY_PORT);\n-\n-\t/* Compute the Hw direction */\n-\tbnxt_ulp_rte_parser_direction_compute(params);\n-\n-\t/* Direction validation */\n-\tdir = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_DIRECTION);\n-\tif (dir == BNXT_ULP_DIR_EGRESS) {\n-\t\tBNXT_TF_DBG(ERR,\n-\t\t\t    \"Parse Err:Phy ports are valid only for ingress\\n\");\n-\t\treturn BNXT_TF_RC_PARSE_ERR;\n-\t}\n-\n-\t/* Get the physical port details from port db */\n-\trc = ulp_port_db_phy_port_svif_get(params->ulp_ctx, port_spec->index,\n-\t\t\t\t\t   &svif);\n-\tif (rc) {\n-\t\tBNXT_TF_DBG(ERR, \"Failed to get port details\\n\");\n-\t\treturn BNXT_TF_RC_PARSE_ERR;\n-\t}\n-\n-\t/* Update the SVIF details */\n-\tsvif = rte_cpu_to_be_16(svif);\n-\thdr_field = &params->hdr_field[BNXT_ULP_PROTO_HDR_FIELD_SVIF_IDX];\n-\tmemcpy(hdr_field->spec, &svif, sizeof(svif));\n-\tmemcpy(hdr_field->mask, &mask, sizeof(mask));\n-\thdr_field->size = sizeof(svif);\n-\tULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SVIF_FLAG,\n-\t\t\t    rte_be_to_cpu_16(svif));\n-\tif (!mask) {\n-\t\tuint32_t port_id = 0;\n-\t\tuint16_t phy_port = 0;\n-\n-\t\t/* Validate the control port */\n-\t\tport_id = ULP_COMP_FLD_IDX_RD(params,\n-\t\t\t\t\t      BNXT_ULP_CF_IDX_DEV_PORT_ID);\n-\t\tif (ulp_port_db_phy_port_get(params->ulp_ctx,\n-\t\t\t\t\t     port_id, &phy_port) ||\n-\t\t    (uint16_t)port_spec->index != phy_port) {\n-\t\t\tBNXT_TF_DBG(ERR, \"Mismatch of control and phy_port\\n\");\n-\t\t\treturn BNXT_TF_RC_PARSE_ERR;\n-\t\t}\n-\t\tULP_BITMAP_SET(params->hdr_bitmap.bits,\n-\t\t\t       BNXT_ULP_HDR_BIT_SVIF_IGNORE);\n-\t\tmemset(hdr_field->mask, 0xFF, sizeof(mask));\n-\t}\n-\treturn BNXT_TF_RC_SUCCESS;\n-}\n-\n /* Function to handle the update of proto header based on field values */\n static void\n ulp_rte_l2_proto_type_update(struct ulp_rte_parser_params *param,\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h\nindex 0e246abbd8..5a9b056b16 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h\n+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h\n@@ -85,11 +85,6 @@ int32_t\n ulp_rte_port_hdr_handler(const struct rte_flow_item *item,\n \t\t\t struct ulp_rte_parser_params *params);\n \n-/* Function to handle the parsing of RTE Flow item port Header. */\n-int32_t\n-ulp_rte_phy_port_hdr_handler(const struct rte_flow_item *item,\n-\t\t\t     struct ulp_rte_parser_params *params);\n-\n /* Function to handle the RTE item Ethernet Header. */\n int32_t\n ulp_rte_eth_hdr_handler(const struct rte_flow_item *item,\ndiff --git a/drivers/net/cxgbe/cxgbe_flow.c b/drivers/net/cxgbe/cxgbe_flow.c\nindex 8b4efc697b..d383334415 100644\n--- a/drivers/net/cxgbe/cxgbe_flow.c\n+++ b/drivers/net/cxgbe/cxgbe_flow.c\n@@ -208,31 +208,6 @@ ch_rte_parsetype_eth(const void *dmask, const struct rte_flow_item *item,\n \treturn 0;\n }\n \n-static int\n-ch_rte_parsetype_port(const void *dmask, const struct rte_flow_item *item,\n-\t\t      struct ch_filter_specification *fs,\n-\t\t      struct rte_flow_error *e)\n-{\n-\tconst struct rte_flow_item_phy_port *val = item->spec;\n-\tconst struct rte_flow_item_phy_port *umask = item->mask;\n-\tconst struct rte_flow_item_phy_port *mask;\n-\n-\tmask = umask ? umask : (const struct rte_flow_item_phy_port *)dmask;\n-\n-\tif (!val)\n-\t\treturn 0; /* Wildcard, match all physical ports */\n-\n-\tif (val->index > 0x7)\n-\t\treturn rte_flow_error_set(e, EINVAL, RTE_FLOW_ERROR_TYPE_ITEM,\n-\t\t\t\t\t  item,\n-\t\t\t\t\t  \"port index up to 0x7 is supported\");\n-\n-\tif (val->index || (umask && umask->index))\n-\t\tCXGBE_FILL_FS(val->index, mask->index, iport);\n-\n-\treturn 0;\n-}\n-\n static int\n ch_rte_parsetype_vlan(const void *dmask, const struct rte_flow_item *item,\n \t\t      struct ch_filter_specification *fs,\n@@ -926,13 +901,6 @@ static struct chrte_fparse parseitem[] = {\n \t\t}\n \t},\n \n-\t[RTE_FLOW_ITEM_TYPE_PHY_PORT] = {\n-\t\t.fptr = ch_rte_parsetype_port,\n-\t\t.dmask = &(const struct rte_flow_item_phy_port){\n-\t\t\t.index = 0x7,\n-\t\t}\n-\t},\n-\n \t[RTE_FLOW_ITEM_TYPE_VLAN] = {\n \t\t.fptr = ch_rte_parsetype_vlan,\n \t\t.dmask = &(const struct rte_flow_item_vlan){\ndiff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c\nindex 06de659ee2..4ddb63cbe5 100644\n--- a/drivers/net/sfc/sfc_mae.c\n+++ b/drivers/net/sfc/sfc_mae.c\n@@ -1628,63 +1628,6 @@ sfc_mae_rule_parse_item_ethdev_based(const struct rte_flow_item *item,\n \treturn 0;\n }\n \n-static int\n-sfc_mae_rule_parse_item_phy_port(const struct rte_flow_item *item,\n-\t\t\t\t struct sfc_flow_parse_ctx *ctx,\n-\t\t\t\t struct rte_flow_error *error)\n-{\n-\tstruct sfc_mae_parse_ctx *ctx_mae = ctx->mae;\n-\tconst struct rte_flow_item_phy_port supp_mask = {\n-\t\t.index = 0xffffffff,\n-\t};\n-\tconst void *def_mask = &rte_flow_item_phy_port_mask;\n-\tconst struct rte_flow_item_phy_port *spec = NULL;\n-\tconst struct rte_flow_item_phy_port *mask = NULL;\n-\tefx_mport_sel_t mport_v;\n-\tint rc;\n-\n-\tif (ctx_mae->match_mport_set) {\n-\t\treturn rte_flow_error_set(error, ENOTSUP,\n-\t\t\t\tRTE_FLOW_ERROR_TYPE_ITEM, item,\n-\t\t\t\t\"Can't handle multiple traffic source items\");\n-\t}\n-\n-\trc = sfc_flow_parse_init(item,\n-\t\t\t\t (const void **)&spec, (const void **)&mask,\n-\t\t\t\t (const void *)&supp_mask, def_mask,\n-\t\t\t\t sizeof(struct rte_flow_item_phy_port), error);\n-\tif (rc != 0)\n-\t\treturn rc;\n-\n-\tif (mask->index != supp_mask.index) {\n-\t\treturn rte_flow_error_set(error, EINVAL,\n-\t\t\t\tRTE_FLOW_ERROR_TYPE_ITEM, item,\n-\t\t\t\t\"Bad mask in the PHY_PORT pattern item\");\n-\t}\n-\n-\t/* If \"spec\" is not set, could be any physical port */\n-\tif (spec == NULL)\n-\t\treturn 0;\n-\n-\trc = efx_mae_mport_by_phy_port(spec->index, &mport_v);\n-\tif (rc != 0) {\n-\t\treturn rte_flow_error_set(error, rc,\n-\t\t\t\tRTE_FLOW_ERROR_TYPE_ITEM, item,\n-\t\t\t\t\"Failed to convert the PHY_PORT index\");\n-\t}\n-\n-\trc = efx_mae_match_spec_mport_set(ctx_mae->match_spec, &mport_v, NULL);\n-\tif (rc != 0) {\n-\t\treturn rte_flow_error_set(error, rc,\n-\t\t\t\tRTE_FLOW_ERROR_TYPE_ITEM, item,\n-\t\t\t\t\"Failed to set MPORT for the PHY_PORT\");\n-\t}\n-\n-\tctx_mae->match_mport_set = B_TRUE;\n-\n-\treturn 0;\n-}\n-\n /*\n  * Having this field ID in a field locator means that this\n  * locator cannot be used to actually set the field at the\n@@ -2478,18 +2421,6 @@ static const struct sfc_flow_item sfc_flow_items[] = {\n \t\t.ctx_type = SFC_FLOW_PARSE_CTX_MAE,\n \t\t.parse = sfc_mae_rule_parse_item_ethdev_based,\n \t},\n-\t{\n-\t\t.type = RTE_FLOW_ITEM_TYPE_PHY_PORT,\n-\t\t.name = \"PHY_PORT\",\n-\t\t/*\n-\t\t * In terms of RTE flow, this item is a META one,\n-\t\t * and its position in the pattern is don't care.\n-\t\t */\n-\t\t.prev_layer = SFC_FLOW_ITEM_ANY_LAYER,\n-\t\t.layer = SFC_FLOW_ITEM_ANY_LAYER,\n-\t\t.ctx_type = SFC_FLOW_PARSE_CTX_MAE,\n-\t\t.parse = sfc_mae_rule_parse_item_phy_port,\n-\t},\n \t{\n \t\t.type = RTE_FLOW_ITEM_TYPE_ETH,\n \t\t.name = \"ETH\",\ndiff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c\nindex 65c74687e3..e7ccdb772e 100644\n--- a/lib/ethdev/rte_flow.c\n+++ b/lib/ethdev/rte_flow.c\n@@ -97,7 +97,6 @@ static const struct rte_flow_desc_data rte_flow_desc_item[] = {\n \tMK_FLOW_ITEM(VOID, 0),\n \tMK_FLOW_ITEM(INVERT, 0),\n \tMK_FLOW_ITEM(ANY, sizeof(struct rte_flow_item_any)),\n-\tMK_FLOW_ITEM(PHY_PORT, sizeof(struct rte_flow_item_phy_port)),\n \tMK_FLOW_ITEM(PORT_ID, sizeof(struct rte_flow_item_port_id)),\n \tMK_FLOW_ITEM(RAW, sizeof(struct rte_flow_item_raw)),\n \tMK_FLOW_ITEM(ETH, sizeof(struct rte_flow_item_eth)),\ndiff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h\nindex 0a98db9c1c..066e8c8a99 100644\n--- a/lib/ethdev/rte_flow.h\n+++ b/lib/ethdev/rte_flow.h\n@@ -188,20 +188,6 @@ enum rte_flow_item_type {\n \t */\n \tRTE_FLOW_ITEM_TYPE_ANY,\n \n-\t/**\n-\t * @deprecated\n-\t * @see RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR\n-\t * @see RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT\n-\t *\n-\t * [META]\n-\t *\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_phy_port.\n-\t */\n-\tRTE_FLOW_ITEM_TYPE_PHY_PORT,\n-\n \t/**\n \t * @deprecated\n \t * @see RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR\n@@ -686,41 +672,6 @@ static const struct rte_flow_item_any rte_flow_item_any_mask = {\n };\n #endif\n \n-/**\n- * @deprecated\n- * @see RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR\n- * @see RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT\n- *\n- * RTE_FLOW_ITEM_TYPE_PHY_PORT\n- *\n- * Matches traffic originating from (ingress) or going to (egress) a\n- * physical port of the underlying device.\n- *\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- * (port_id) when those are not under DPDK control. Possible values are\n- * specific to each device, they are not necessarily indexed from zero and\n- * may not be contiguous.\n- *\n- * As a device property, the list of allowed values as well as the value\n- * associated with a port_id should be retrieved by other means.\n- *\n- * A zeroed mask can be used to match any port index.\n- */\n-struct rte_flow_item_phy_port {\n-\tuint32_t index; /**< Physical port index. */\n-};\n-\n-/** Default mask for RTE_FLOW_ITEM_TYPE_PHY_PORT. */\n-#ifndef __cplusplus\n-static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask = {\n-\t.index = 0x00000000,\n-};\n-#endif\n-\n /**\n  * @deprecated\n  * @see RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR\n@@ -734,11 +685,6 @@ static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask = {\n  * Normally only supported if the port ID in question is known by the\n  * underlying PMD and related to the device the flow rule is created\n  * against.\n- *\n- * This must not be confused with @p PHY_PORT which refers to the physical\n- * port of a device, whereas @p PORT_ID refers to a struct rte_eth_dev\n- * object on the application side (also known as \"port representor\"\n- * depending on the kind of underlying device).\n  */\n struct rte_flow_item_port_id {\n \tuint32_t id; /**< DPDK port ID. */\n@@ -3023,8 +2969,6 @@ struct rte_flow_action_vf {\n  *\n  * Directs packets to a given physical port index of the underlying\n  * device.\n- *\n- * @see RTE_FLOW_ITEM_TYPE_PHY_PORT\n  */\n struct rte_flow_action_phy_port {\n \tuint32_t original:1; /**< Use original port index if possible. */\n",
    "prefixes": [
        "12/13"
    ]
}