ethdev: remove deprecated flow action physical 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>
This commit is contained in:
Ivan Malov 2022-08-12 22:18:27 +03:00 committed by Thomas Monjalon
parent 5e3779b7ab
commit 235558fe94
18 changed files with 6 additions and 210 deletions

View File

@ -488,9 +488,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,
@ -1800,7 +1797,6 @@ static const enum index next_action[] = {
ACTION_RSS,
ACTION_PF,
ACTION_VF,
ACTION_PHY_PORT,
ACTION_PORT_ID,
ACTION_METER,
ACTION_METER_COLOR,
@ -1894,13 +1890,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,
@ -5241,30 +5230,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",

View File

@ -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

View File

@ -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

View File

@ -170,7 +170,6 @@ of_set_vlan_pcp =
of_set_vlan_vid =
passthru =
pf =
phy_port =
port_id =
port_representor =
queue =

View File

@ -45,7 +45,6 @@ vlan = Y
[rte_flow actions]
drop = Y
phy_port = Y
port_id = Y
queue = Y
represented_port = Y

View File

@ -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

View File

@ -244,8 +244,6 @@ Supported actions (***transfer*** rules):
- MARK
- PHY_PORT
- PF
- VF

View File

@ -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:

View File

@ -89,6 +89,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
-----------
@ -221,6 +224,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
------------

View File

@ -3807,11 +3807,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.

View File

@ -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

View File

@ -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,

View File

@ -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,

View File

@ -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:

View File

@ -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 */

View File

@ -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);

View File

@ -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)),

View File

@ -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