[13/13] ethdev: remove deprecated flow action PHY PORT

Message ID 20220812191827.3187441-14-ivan.malov@oktetlabs.ru (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series ethdev: proceed with flow subsystem rework |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/intel-Testing success Testing PASS

Commit Message

Ivan Malov Aug. 12, 2022, 7:18 p.m. UTC
  Such deprecation was commenced in DPDK 21.11.
Since then, no parties have objected. Remove.

The patch breaks ABI.

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
 app/test-pmd/cmdline_flow.c                   | 35 -------------
 doc/guides/nics/features/bnxt.ini             |  1 -
 doc/guides/nics/features/cxgbe.ini            |  1 -
 doc/guides/nics/features/default.ini          |  1 -
 doc/guides/nics/features/dpaa2.ini            |  1 -
 doc/guides/nics/features/sfc.ini              |  1 -
 doc/guides/nics/sfc_efx.rst                   |  2 -
 doc/guides/prog_guide/rte_flow.rst            | 22 ---------
 doc/guides/rel_notes/release_22_11.rst        |  5 ++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst   |  5 --
 drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c |  4 --
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      | 49 -------------------
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.h      |  5 --
 drivers/net/cxgbe/cxgbe_flow.c                |  6 ---
 drivers/net/dpaa2/dpaa2_flow.c                | 13 +----
 drivers/net/sfc/sfc_mae.c                     | 36 --------------
 lib/ethdev/rte_flow.c                         |  1 -
 lib/ethdev/rte_flow.h                         | 28 -----------
 18 files changed, 6 insertions(+), 210 deletions(-)
  

Comments

Ori Kam Aug. 22, 2022, 5:33 a.m. UTC | #1
Hi Ivan,

> -----Original Message-----
> From: Ivan Malov <ivan.malov@oktetlabs.ru>
> Sent: Friday, 12 August 2022 22:18
> Subject: [PATCH 13/13] ethdev: remove deprecated flow action PHY PORT
> 
> Such deprecation was commenced in DPDK 21.11.
> Since then, no parties have objected. Remove.
> 
> The patch breaks ABI.
> 
> Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> ---

Acked-by: Ori Kam <orika@nvidia.com>
Best,
Ori
  

Patch

diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 758c1f0efa..80f4c0bbef 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -487,9 +487,6 @@  enum index {
 	ACTION_VF,
 	ACTION_VF_ORIGINAL,
 	ACTION_VF_ID,
-	ACTION_PHY_PORT,
-	ACTION_PHY_PORT_ORIGINAL,
-	ACTION_PHY_PORT_INDEX,
 	ACTION_PORT_ID,
 	ACTION_PORT_ID_ORIGINAL,
 	ACTION_PORT_ID_ID,
@@ -1799,7 +1796,6 @@  static const enum index next_action[] = {
 	ACTION_RSS,
 	ACTION_PF,
 	ACTION_VF,
-	ACTION_PHY_PORT,
 	ACTION_PORT_ID,
 	ACTION_METER,
 	ACTION_METER_COLOR,
@@ -1893,13 +1889,6 @@  static const enum index action_vf[] = {
 	ZERO,
 };
 
-static const enum index action_phy_port[] = {
-	ACTION_PHY_PORT_ORIGINAL,
-	ACTION_PHY_PORT_INDEX,
-	ACTION_NEXT,
-	ZERO,
-};
-
 static const enum index action_port_id[] = {
 	ACTION_PORT_ID_ORIGINAL,
 	ACTION_PORT_ID_ID,
@@ -5240,30 +5229,6 @@  static const struct token token_list[] = {
 		.args = ARGS(ARGS_ENTRY(struct rte_flow_action_vf, id)),
 		.call = parse_vc_conf,
 	},
-	[ACTION_PHY_PORT] = {
-		.name = "phy_port",
-		.help = "direct packets to physical port index",
-		.priv = PRIV_ACTION(PHY_PORT,
-				    sizeof(struct rte_flow_action_phy_port)),
-		.next = NEXT(action_phy_port),
-		.call = parse_vc,
-	},
-	[ACTION_PHY_PORT_ORIGINAL] = {
-		.name = "original",
-		.help = "use original port index if possible",
-		.next = NEXT(action_phy_port, NEXT_ENTRY(COMMON_BOOLEAN)),
-		.args = ARGS(ARGS_ENTRY_BF(struct rte_flow_action_phy_port,
-					   original, 1)),
-		.call = parse_vc_conf,
-	},
-	[ACTION_PHY_PORT_INDEX] = {
-		.name = "index",
-		.help = "physical port index",
-		.next = NEXT(action_phy_port, NEXT_ENTRY(COMMON_UNSIGNED)),
-		.args = ARGS(ARGS_ENTRY(struct rte_flow_action_phy_port,
-					index)),
-		.call = parse_vc_conf,
-	},
 	[ACTION_PORT_ID] = {
 		.name = "port_id",
 		.help = "direct matching traffic to a given DPDK port ID",
diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini
index c05bcff909..b2d54f06aa 100644
--- a/doc/guides/nics/features/bnxt.ini
+++ b/doc/guides/nics/features/bnxt.ini
@@ -82,7 +82,6 @@  of_push_vlan         = Y
 of_set_vlan_pcp      = Y
 of_set_vlan_vid      = Y
 pf                   = Y
-phy_port             = Y
 port_id              = Y
 port_representor     = Y
 represented_port     = Y
diff --git a/doc/guides/nics/features/cxgbe.ini b/doc/guides/nics/features/cxgbe.ini
index 295816ab9d..a9dbcd0573 100644
--- a/doc/guides/nics/features/cxgbe.ini
+++ b/doc/guides/nics/features/cxgbe.ini
@@ -51,7 +51,6 @@  of_pop_vlan          = Y
 of_push_vlan         = Y
 of_set_vlan_pcp      = Y
 of_set_vlan_vid      = Y
-phy_port             = Y
 queue                = Y
 set_ipv4_dst         = Y
 set_ipv4_src         = Y
diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini
index 7ed5bd8cb9..f7192cb0da 100644
--- a/doc/guides/nics/features/default.ini
+++ b/doc/guides/nics/features/default.ini
@@ -170,7 +170,6 @@  of_set_vlan_pcp      =
 of_set_vlan_vid      =
 passthru             =
 pf                   =
-phy_port             =
 port_id              =
 port_representor     =
 queue                =
diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini
index 53148ad467..cedc234f26 100644
--- a/doc/guides/nics/features/dpaa2.ini
+++ b/doc/guides/nics/features/dpaa2.ini
@@ -45,7 +45,6 @@  vlan                 = Y
 
 [rte_flow actions]
 drop                 = Y
-phy_port             = Y
 port_id              = Y
 queue                = Y
 represented_port     = Y
diff --git a/doc/guides/nics/features/sfc.ini b/doc/guides/nics/features/sfc.ini
index 3dac105e35..f5ac644278 100644
--- a/doc/guides/nics/features/sfc.ini
+++ b/doc/guides/nics/features/sfc.ini
@@ -70,7 +70,6 @@  of_push_vlan         = Y
 of_set_vlan_pcp      = Y
 of_set_vlan_vid      = Y
 pf                   = Y
-phy_port             = Y
 port_id              = Y
 port_representor     = Y
 represented_port     = Y
diff --git a/doc/guides/nics/sfc_efx.rst b/doc/guides/nics/sfc_efx.rst
index 6eca86e96f..fcad671da2 100644
--- a/doc/guides/nics/sfc_efx.rst
+++ b/doc/guides/nics/sfc_efx.rst
@@ -244,8 +244,6 @@  Supported actions (***transfer*** rules):
 
 - MARK
 
-- PHY_PORT
-
 - PF
 
 - VF
diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
index 9cf4261494..becf7c29c9 100644
--- a/doc/guides/prog_guide/rte_flow.rst
+++ b/doc/guides/prog_guide/rte_flow.rst
@@ -2003,28 +2003,6 @@  rule or if packets are not addressed to a VF in the first place.
    | ``id``       | VF ID                          |
    +--------------+--------------------------------+
 
-Action: ``PHY_PORT``
-^^^^^^^^^^^^^^^^^^^^
-
-This action is deprecated. Consider:
- - `Action: PORT_REPRESENTOR`_
- - `Action: REPRESENTED_PORT`_
-
-Directs matching traffic to a given physical port index of the underlying
-device.
-
-.. _table_rte_flow_action_phy_port:
-
-.. table:: PHY_PORT
-
-   +--------------+-------------------------------------+
-   | Field        | Value                               |
-   +==============+=====================================+
-   | ``original`` | use original port index if possible |
-   +--------------+-------------------------------------+
-   | ``index``    | physical port index                 |
-   +--------------+-------------------------------------+
-
 Action: ``PORT_ID``
 ^^^^^^^^^^^^^^^^^^^
 This action is deprecated. Consider:
diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst
index 343f40a041..a7a2bf2c60 100644
--- a/doc/guides/rel_notes/release_22_11.rst
+++ b/doc/guides/rel_notes/release_22_11.rst
@@ -85,6 +85,9 @@  Removed Items
 * ethdev: removed ``RTE_FLOW_ITEM_TYPE_PHY_PORT``;
   use ``RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT``.
 
+* ethdev: removed ``RTE_FLOW_ACTION_TYPE_PHY_PORT``;
+  use ``RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT``.
+
 
 API Changes
 -----------
@@ -133,6 +136,8 @@  ABI Changes
 
 * ethdev: enum ``RTE_FLOW_ITEM`` was affected by deprecation procedure.
 
+* ethdev: enum ``RTE_FLOW_ACTION`` was affected by deprecation procedure.
+
 
 Known Issues
 ------------
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index b9c2d7a6fe..710d69ddca 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -4014,11 +4014,6 @@  This section lists supported actions and their attributes, if any.
   - ``original {boolean}``: use original VF ID if possible.
   - ``id {unsigned}``: VF ID.
 
-- ``phy_port``: direct packets to physical port index.
-
-  - ``original {boolean}``: use original port index if possible.
-  - ``index {unsigned}``: physical port index.
-
 - ``port_id``: direct matching traffic to a given DPDK port ID.
 
   - ``original {boolean}``: use original DPDK port ID if possible.
diff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c b/drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c
index 66cd2fba7e..042425ff5c 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c
+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c
@@ -61,10 +61,6 @@  struct bnxt_ulp_rte_act_info ulp_act_info[] = {
 	.act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
 	.proto_act_func          = ulp_rte_vf_act_handler
 	},
-	[RTE_FLOW_ACTION_TYPE_PHY_PORT] = {
-	.act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
-	.proto_act_func          = ulp_rte_phy_port_act_handler
-	},
 	[RTE_FLOW_ACTION_TYPE_PORT_ID] = {
 	.act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
 	.proto_act_func          = ulp_rte_port_act_handler
diff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c
index 3faafcf788..1be649a16c 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c
+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c
@@ -2255,55 +2255,6 @@  ulp_rte_port_act_handler(const struct rte_flow_action *act_item,
 	return ulp_rte_parser_act_port_set(param, ifindex, act_dir);
 }
 
-/* Function to handle the parsing of RTE Flow action phy_port. */
-int32_t
-ulp_rte_phy_port_act_handler(const struct rte_flow_action *action_item,
-			     struct ulp_rte_parser_params *prm)
-{
-	const struct rte_flow_action_phy_port *phy_port;
-	uint32_t pid;
-	int32_t rc;
-	uint16_t pid_s;
-	enum bnxt_ulp_direction_type dir;
-
-	phy_port = action_item->conf;
-	if (!phy_port) {
-		BNXT_TF_DBG(ERR,
-			    "ParseErr: Invalid Argument\n");
-		return BNXT_TF_RC_PARSE_ERR;
-	}
-
-	if (phy_port->original) {
-		BNXT_TF_DBG(ERR,
-			    "Parse Err:Port Original not supported\n");
-		return BNXT_TF_RC_PARSE_ERR;
-	}
-	dir = ULP_COMP_FLD_IDX_RD(prm, BNXT_ULP_CF_IDX_DIRECTION);
-	if (dir != BNXT_ULP_DIR_EGRESS) {
-		BNXT_TF_DBG(ERR,
-			    "Parse Err:Phy ports are valid only for egress\n");
-		return BNXT_TF_RC_PARSE_ERR;
-	}
-	/* Get the physical port details from port db */
-	rc = ulp_port_db_phy_port_vport_get(prm->ulp_ctx, phy_port->index,
-					    &pid_s);
-	if (rc) {
-		BNXT_TF_DBG(ERR, "Failed to get port details\n");
-		return -EINVAL;
-	}
-
-	pid = pid_s;
-	pid = rte_cpu_to_be_32(pid);
-	memcpy(&prm->act_prop.act_details[BNXT_ULP_ACT_PROP_IDX_VPORT],
-	       &pid, BNXT_ULP_ACT_PROP_SZ_VPORT);
-
-	/* Update the action port set bit */
-	ULP_COMP_FLD_IDX_WR(prm, BNXT_ULP_CF_IDX_ACT_PORT_IS_SET, 1);
-	ULP_COMP_FLD_IDX_WR(prm, BNXT_ULP_CF_IDX_ACT_PORT_TYPE,
-			    BNXT_ULP_INTF_TYPE_PHY_PORT);
-	return BNXT_TF_RC_SUCCESS;
-}
-
 /* Function to handle the parsing of RTE Flow action pop vlan. */
 int32_t
 ulp_rte_of_pop_vlan_act_handler(const struct rte_flow_action *a __rte_unused,
diff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h
index 5a9b056b16..f59b10e88b 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h
+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h
@@ -194,11 +194,6 @@  int32_t
 ulp_rte_port_act_handler(const struct rte_flow_action *act_item,
 			 struct ulp_rte_parser_params *params);
 
-/* Function to handle the parsing of RTE Flow action phy_port. */
-int32_t
-ulp_rte_phy_port_act_handler(const struct rte_flow_action *action_item,
-			     struct ulp_rte_parser_params *params);
-
 /* Function to handle the parsing of RTE Flow action pop vlan. */
 int32_t
 ulp_rte_of_pop_vlan_act_handler(const struct rte_flow_action *action_item,
diff --git a/drivers/net/cxgbe/cxgbe_flow.c b/drivers/net/cxgbe/cxgbe_flow.c
index d383334415..d66672a9e6 100644
--- a/drivers/net/cxgbe/cxgbe_flow.c
+++ b/drivers/net/cxgbe/cxgbe_flow.c
@@ -598,7 +598,6 @@  ch_rte_parse_atype_switch(const struct rte_flow_action *a,
 	const struct rte_flow_action_set_ipv4 *ipv4;
 	const struct rte_flow_action_set_ipv6 *ipv6;
 	const struct rte_flow_action_set_tp *tp_port;
-	const struct rte_flow_action_phy_port *port;
 	const struct rte_flow_action_set_mac *mac;
 	int item_index;
 	u16 tmp_vlan;
@@ -645,10 +644,6 @@  ch_rte_parse_atype_switch(const struct rte_flow_action *a,
 	case RTE_FLOW_ACTION_TYPE_OF_POP_VLAN:
 		fs->newvlan = VLAN_REMOVE;
 		break;
-	case RTE_FLOW_ACTION_TYPE_PHY_PORT:
-		port = (const struct rte_flow_action_phy_port *)a->conf;
-		fs->eport = port->index;
-		break;
 	case RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC:
 		item_index = cxgbe_get_flow_item_index(items,
 						       RTE_FLOW_ITEM_TYPE_IPV4);
@@ -836,7 +831,6 @@  cxgbe_rtef_parse_actions(struct rte_flow *flow,
 			goto action_switch;
 		case RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN:
 		case RTE_FLOW_ACTION_TYPE_OF_POP_VLAN:
-		case RTE_FLOW_ACTION_TYPE_PHY_PORT:
 		case RTE_FLOW_ACTION_TYPE_MAC_SWAP:
 		case RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC:
 		case RTE_FLOW_ACTION_TYPE_SET_IPV4_DST:
diff --git a/drivers/net/dpaa2/dpaa2_flow.c b/drivers/net/dpaa2/dpaa2_flow.c
index 25616b0035..df06c3862e 100644
--- a/drivers/net/dpaa2/dpaa2_flow.c
+++ b/drivers/net/dpaa2/dpaa2_flow.c
@@ -83,7 +83,6 @@  static const
 enum rte_flow_action_type dpaa2_supported_action_type[] = {
 	RTE_FLOW_ACTION_TYPE_END,
 	RTE_FLOW_ACTION_TYPE_QUEUE,
-	RTE_FLOW_ACTION_TYPE_PHY_PORT,
 	RTE_FLOW_ACTION_TYPE_PORT_ID,
 	RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT,
 	RTE_FLOW_ACTION_TYPE_RSS
@@ -92,7 +91,6 @@  enum rte_flow_action_type dpaa2_supported_action_type[] = {
 static const
 enum rte_flow_action_type dpaa2_supported_fs_action_type[] = {
 	RTE_FLOW_ACTION_TYPE_QUEUE,
-	RTE_FLOW_ACTION_TYPE_PHY_PORT,
 	RTE_FLOW_ACTION_TYPE_PORT_ID,
 	RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT,
 };
@@ -3281,17 +3279,11 @@  static inline struct rte_eth_dev *
 dpaa2_flow_redirect_dev(struct dpaa2_dev_priv *priv,
 	const struct rte_flow_action *action)
 {
-	const struct rte_flow_action_phy_port *phy_port;
 	const struct rte_flow_action_port_id *port_id;
 	int idx = -1;
 	struct rte_eth_dev *dest_dev;
 
-	if (action->type == RTE_FLOW_ACTION_TYPE_PHY_PORT) {
-		phy_port = (const struct rte_flow_action_phy_port *)
-					action->conf;
-		if (!phy_port->original)
-			idx = phy_port->index;
-	} else if (action->type == RTE_FLOW_ACTION_TYPE_PORT_ID) {
+	if (action->type == RTE_FLOW_ACTION_TYPE_PORT_ID) {
 		port_id = (const struct rte_flow_action_port_id *)
 					action->conf;
 		if (!port_id->original)
@@ -3345,7 +3337,6 @@  dpaa2_flow_verify_action(
 			}
 			break;
 		case RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT:
-		case RTE_FLOW_ACTION_TYPE_PHY_PORT:
 		case RTE_FLOW_ACTION_TYPE_PORT_ID:
 			if (!dpaa2_flow_redirect_dev(priv, &actions[j])) {
 				DPAA2_PMD_ERR("Invalid port id of action");
@@ -3523,7 +3514,6 @@  dpaa2_generic_flow_set(struct rte_flow *flow,
 		switch (actions[j].type) {
 		case RTE_FLOW_ACTION_TYPE_QUEUE:
 		case RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT:
-		case RTE_FLOW_ACTION_TYPE_PHY_PORT:
 		case RTE_FLOW_ACTION_TYPE_PORT_ID:
 			memset(&action, 0, sizeof(struct dpni_fs_action_cfg));
 			flow->action = actions[j].type;
@@ -4098,7 +4088,6 @@  int dpaa2_flow_destroy(struct rte_eth_dev *dev,
 	switch (flow->action) {
 	case RTE_FLOW_ACTION_TYPE_QUEUE:
 	case RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT:
-	case RTE_FLOW_ACTION_TYPE_PHY_PORT:
 	case RTE_FLOW_ACTION_TYPE_PORT_ID:
 		if (priv->num_rx_tc > 1) {
 			/* Remove entry from QoS table first */
diff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c
index 4ddb63cbe5..421bb6da95 100644
--- a/drivers/net/sfc/sfc_mae.c
+++ b/drivers/net/sfc/sfc_mae.c
@@ -3463,36 +3463,6 @@  sfc_mae_rule_parse_action_count(struct sfc_adapter *sa,
 	return rc;
 }
 
-static int
-sfc_mae_rule_parse_action_phy_port(struct sfc_adapter *sa,
-				   const struct rte_flow_action_phy_port *conf,
-				   efx_mae_actions_t *spec)
-{
-	efx_mport_sel_t mport;
-	uint32_t phy_port;
-	int rc;
-
-	if (conf->original != 0)
-		phy_port = efx_nic_cfg_get(sa->nic)->enc_assigned_port;
-	else
-		phy_port = conf->index;
-
-	rc = efx_mae_mport_by_phy_port(phy_port, &mport);
-	if (rc != 0) {
-		sfc_err(sa, "failed to convert phys. port ID %u to m-port selector: %s",
-			phy_port, strerror(rc));
-		return rc;
-	}
-
-	rc = efx_mae_action_set_populate_deliver(spec, &mport);
-	if (rc != 0) {
-		sfc_err(sa, "failed to request action DELIVER with m-port selector 0x%08x: %s",
-			mport.sel, strerror(rc));
-	}
-
-	return rc;
-}
-
 static int
 sfc_mae_rule_parse_action_pf_vf(struct sfc_adapter *sa,
 				const struct rte_flow_action_vf *vf_conf,
@@ -3626,7 +3596,6 @@  static const char * const action_names[] = {
 	[RTE_FLOW_ACTION_TYPE_COUNT] = "COUNT",
 	[RTE_FLOW_ACTION_TYPE_FLAG] = "FLAG",
 	[RTE_FLOW_ACTION_TYPE_MARK] = "MARK",
-	[RTE_FLOW_ACTION_TYPE_PHY_PORT] = "PHY_PORT",
 	[RTE_FLOW_ACTION_TYPE_PF] = "PF",
 	[RTE_FLOW_ACTION_TYPE_VF] = "VF",
 	[RTE_FLOW_ACTION_TYPE_PORT_ID] = "PORT_ID",
@@ -3745,11 +3714,6 @@  sfc_mae_rule_parse_action(struct sfc_adapter *sa,
 			custom_error = B_TRUE;
 		}
 		break;
-	case RTE_FLOW_ACTION_TYPE_PHY_PORT:
-		SFC_BUILD_SET_OVERFLOW(RTE_FLOW_ACTION_TYPE_PHY_PORT,
-				       bundle->actions_mask);
-		rc = sfc_mae_rule_parse_action_phy_port(sa, action->conf, spec);
-		break;
 	case RTE_FLOW_ACTION_TYPE_PF:
 		SFC_BUILD_SET_OVERFLOW(RTE_FLOW_ACTION_TYPE_PF,
 				       bundle->actions_mask);
diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c
index e7ccdb772e..eeb9398e77 100644
--- a/lib/ethdev/rte_flow.c
+++ b/lib/ethdev/rte_flow.c
@@ -188,7 +188,6 @@  static const struct rte_flow_desc_data rte_flow_desc_action[] = {
 	MK_FLOW_ACTION(RSS, sizeof(struct rte_flow_action_rss)),
 	MK_FLOW_ACTION(PF, 0),
 	MK_FLOW_ACTION(VF, sizeof(struct rte_flow_action_vf)),
-	MK_FLOW_ACTION(PHY_PORT, sizeof(struct rte_flow_action_phy_port)),
 	MK_FLOW_ACTION(PORT_ID, sizeof(struct rte_flow_action_port_id)),
 	MK_FLOW_ACTION(METER, sizeof(struct rte_flow_action_meter)),
 	MK_FLOW_ACTION(SECURITY, sizeof(struct rte_flow_action_security)),
diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
index 066e8c8a99..8c33e84ee8 100644
--- a/lib/ethdev/rte_flow.h
+++ b/lib/ethdev/rte_flow.h
@@ -2224,18 +2224,6 @@  enum rte_flow_action_type {
 	 */
 	RTE_FLOW_ACTION_TYPE_VF,
 
-	/**
-	 * @deprecated
-	 * @see RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR
-	 * @see RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
-	 *
-	 * Directs packets to a given physical port index of the underlying
-	 * device.
-	 *
-	 * See struct rte_flow_action_phy_port.
-	 */
-	RTE_FLOW_ACTION_TYPE_PHY_PORT,
-
 	/**
 	 * @deprecated
 	 * @see RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR
@@ -2960,22 +2948,6 @@  struct rte_flow_action_vf {
 	uint32_t id; /**< VF ID. */
 };
 
-/**
- * @deprecated
- * @see RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR
- * @see RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
- *
- * RTE_FLOW_ACTION_TYPE_PHY_PORT
- *
- * Directs packets to a given physical port index of the underlying
- * device.
- */
-struct rte_flow_action_phy_port {
-	uint32_t original:1; /**< Use original port index if possible. */
-	uint32_t reserved:31; /**< Reserved, must be zero. */
-	uint32_t index; /**< Physical port index. */
-};
-
 /**
  * @deprecated
  * @see RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR