Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/114944/?format=api
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 = ¶ms->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" ] }{ "id": 114944, "url": "