ethdev: remove deprecated flow item PF

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:24 +03:00 committed by Thomas Monjalon
parent ce93daae36
commit 13f8de927a
17 changed files with 5 additions and 184 deletions

View File

@ -250,7 +250,6 @@ enum index {
ITEM_INVERT,
ITEM_ANY,
ITEM_ANY_NUM,
ITEM_PF,
ITEM_VF,
ITEM_VF_ID,
ITEM_PHY_PORT,
@ -1279,7 +1278,6 @@ static const enum index next_item[] = {
ITEM_VOID,
ITEM_INVERT,
ITEM_ANY,
ITEM_PF,
ITEM_VF,
ITEM_PHY_PORT,
ITEM_PORT_ID,
@ -3462,13 +3460,6 @@ static const struct token token_list[] = {
.next = NEXT(item_any, NEXT_ENTRY(COMMON_UNSIGNED), item_param),
.args = ARGS(ARGS_ENTRY(struct rte_flow_item_any, num)),
},
[ITEM_PF] = {
.name = "pf",
.help = "match traffic from/to the physical function",
.priv = PRIV_ITEM(PF, 0),
.next = NEXT(NEXT_ENTRY(ITEM_NEXT)),
.call = parse_vc,
},
[ITEM_VF] = {
.name = "vf",
.help = "match traffic from/to a virtual function ID",

View File

@ -63,7 +63,6 @@ ipv6 = Y
gre = Y
icmp = Y
icmp6 = Y
pf = Y
phy_port = Y
port_id = Y
port_representor = Y

View File

@ -39,7 +39,6 @@ Usage doc = Y
eth = Y
ipv4 = Y
ipv6 = Y
pf = Y
phy_port = Y
tcp = Y
udp = Y

View File

@ -121,7 +121,6 @@ meta =
mpls =
nsh =
nvgre =
pf =
pfcp =
phy_port =
port_id =

View File

@ -47,7 +47,6 @@ ipv4 = Y
ipv6 = Y
mark = P
nvgre = Y
pf = Y
phy_port = Y
port_id = Y
port_representor = Y

View File

@ -200,8 +200,6 @@ Supported pattern items (***transfer*** rules):
- PHY_PORT (cannot repeat; conflicts with other traffic source items)
- PF (cannot repeat; conflicts with other traffic source items)
- VF (cannot repeat; conflicts with other traffic source items)
- ETH

View File

@ -535,37 +535,6 @@ Usage example, matching non-TCPv4 packets only:
| 4 | END |
+-------+----------+
Item: ``PF``
^^^^^^^^^^^^
This item is deprecated. Consider:
- `Item: PORT_REPRESENTOR`_
- `Item: REPRESENTED_PORT`_
Matches traffic originating from (ingress) or going to (egress) the physical
function of the current device.
If supported, should work even if the physical function is not managed by
the application and thus not associated with a DPDK port ID.
- Can be combined with any number of `Item: VF`_ to match both PF and VF
traffic.
- ``spec``, ``last`` and ``mask`` must not be set.
.. _table_rte_flow_item_pf:
.. table:: PF
+----------+-------+
| Field | Value |
+==========+=======+
| ``spec`` | unset |
+----------+-------+
| ``last`` | unset |
+----------+-------+
| ``mask`` | unset |
+----------+-------+
Item: ``VF``
^^^^^^^^^^^^
@ -584,7 +553,6 @@ separate entities, should be addressed through their own DPDK port IDs.
- Can be specified multiple times to match traffic addressed to several VF
IDs.
- Can be combined with a PF item to match both PF and VF traffic.
- Default ``mask`` matches any VF ID.
.. _table_rte_flow_item_vf:
@ -2074,8 +2042,6 @@ This action is deprecated. Consider:
Directs matching traffic to the physical function (PF) of the current
device.
See `Item: PF`_.
- No configurable properties.
.. _table_rte_flow_action_pf:

View File

@ -624,25 +624,11 @@ Same restrictions as `PORT_ID pattern item`_.
- Targets **A**, **B** or **C** in `traffic steering`_.
PF Pattern Item
^^^^^^^^^^^^^^^
Matches traffic originating from (ingress) or going to (egress) the physical
function of the current device.
If supported, should work even if the physical function is not managed by
the application and thus not associated with a DPDK port ID. Its behavior is
otherwise similar to `PORT_ID pattern item`_ using PF port ID.
- Matches **A** in `traffic steering`_.
PF Action
^^^^^^^^^
Directs matching traffic to the physical function of the current device.
Same restrictions as `PF pattern item`_.
- Targets **A** in `traffic steering`_.
VF Pattern Item

View File

@ -80,6 +80,9 @@ Removed Items
Also, make sure to start the actual text at the margin.
=======================================================
* ethdev: removed ``RTE_FLOW_ITEM_TYPE_PF``;
use ``RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT``.
API Changes
-----------
@ -210,6 +213,8 @@ ABI Changes
Also, make sure to start the actual text at the margin.
=======================================================
* ethdev: enum ``RTE_FLOW_ITEM`` was affected by deprecation procedure.
Known Issues
------------

View File

@ -3458,8 +3458,6 @@ This section lists supported pattern items and their attributes, if any.
- ``num {unsigned}``: number of layers covered.
- ``pf``: match traffic from/to the physical function.
- ``vf``: match traffic from/to a virtual function ID.
- ``id {unsigned}``: VF ID.

View File

@ -260,10 +260,6 @@ struct bnxt_ulp_rte_hdr_info ulp_hdr_info[] = {
.hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
.proto_hdr_func = ulp_rte_item_any_handler
},
[RTE_FLOW_ITEM_TYPE_PF] = {
.hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
.proto_hdr_func = ulp_rte_pf_hdr_handler
},
[RTE_FLOW_ITEM_TYPE_VF] = {
.hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
.proto_hdr_func = ulp_rte_vf_hdr_handler

View File

@ -507,31 +507,6 @@ ulp_rte_parser_implicit_act_port_process(struct ulp_rte_parser_params *params)
return BNXT_TF_RC_SUCCESS;
}
/* Function to handle the parsing of RTE Flow item PF Header. */
int32_t
ulp_rte_pf_hdr_handler(const struct rte_flow_item *item __rte_unused,
struct ulp_rte_parser_params *params)
{
uint16_t port_id = 0;
uint16_t svif_mask = 0xFFFF;
uint32_t ifindex;
/* Get the implicit port id */
port_id = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_INCOMING_IF);
/* perform the conversion from dpdk port to bnxt ifindex */
if (ulp_port_db_dev_port_to_ulp_index(params->ulp_ctx,
port_id,
&ifindex)) {
BNXT_TF_DBG(ERR, "ParseErr:Portid is not valid\n");
return BNXT_TF_RC_ERROR;
}
/* Update the SVIF details */
return ulp_rte_parser_svif_set(params, ifindex, svif_mask,
BNXT_ULP_DIR_INVALID);
}
/* Function to handle the parsing of RTE Flow item VF Header. */
int32_t
ulp_rte_vf_hdr_handler(const struct rte_flow_item *item,

View File

@ -80,11 +80,6 @@ bnxt_ulp_rte_parser_act_parse(const struct rte_flow_action actions[],
void
bnxt_ulp_rte_parser_post_process(struct ulp_rte_parser_params *params);
/* Function to handle the parsing of RTE Flow item PF Header. */
int32_t
ulp_rte_pf_hdr_handler(const struct rte_flow_item *item,
struct ulp_rte_parser_params *params);
/* Function to handle the parsing of RTE Flow item VF Header. */
int32_t
ulp_rte_vf_hdr_handler(const struct rte_flow_item *item,

View File

@ -288,22 +288,6 @@ ch_rte_parsetype_vlan(const void *dmask, const struct rte_flow_item *item,
return 0;
}
static int
ch_rte_parsetype_pf(const void *dmask __rte_unused,
const struct rte_flow_item *item __rte_unused,
struct ch_filter_specification *fs,
struct rte_flow_error *e __rte_unused)
{
struct rte_flow *flow = (struct rte_flow *)fs->private;
struct rte_eth_dev *dev = flow->dev;
struct adapter *adap = ethdev2adap(dev);
CXGBE_FILL_FS(1, 1, pfvf_vld);
CXGBE_FILL_FS(adap->pf, 0x7, pf);
return 0;
}
static int
ch_rte_parsetype_vf(const void *dmask, const struct rte_flow_item *item,
struct ch_filter_specification *fs,
@ -1022,11 +1006,6 @@ static struct chrte_fparse parseitem[] = {
.dmask = &rte_flow_item_tcp_mask,
},
[RTE_FLOW_ITEM_TYPE_PF] = {
.fptr = ch_rte_parsetype_pf,
.dmask = NULL,
},
[RTE_FLOW_ITEM_TYPE_VF] = {
.fptr = ch_rte_parsetype_vf,
.dmask = &(const struct rte_flow_item_vf){

View File

@ -1685,42 +1685,6 @@ sfc_mae_rule_parse_item_phy_port(const struct rte_flow_item *item,
return 0;
}
static int
sfc_mae_rule_parse_item_pf(const struct rte_flow_item *item,
struct sfc_flow_parse_ctx *ctx,
struct rte_flow_error *error)
{
struct sfc_mae_parse_ctx *ctx_mae = ctx->mae;
const efx_nic_cfg_t *encp = efx_nic_cfg_get(ctx_mae->sa->nic);
efx_mport_sel_t mport_v;
int rc;
if (ctx_mae->match_mport_set) {
return rte_flow_error_set(error, ENOTSUP,
RTE_FLOW_ERROR_TYPE_ITEM, item,
"Can't handle multiple traffic source items");
}
rc = efx_mae_mport_by_pcie_function(encp->enc_pf, EFX_PCI_VF_INVALID,
&mport_v);
if (rc != 0) {
return rte_flow_error_set(error, rc,
RTE_FLOW_ERROR_TYPE_ITEM, item,
"Failed to convert the PF ID");
}
rc = efx_mae_match_spec_mport_set(ctx_mae->match_spec, &mport_v, NULL);
if (rc != 0) {
return rte_flow_error_set(error, rc,
RTE_FLOW_ERROR_TYPE_ITEM, item,
"Failed to set MPORT for the PF");
}
ctx_mae->match_mport_set = B_TRUE;
return 0;
}
static int
sfc_mae_rule_parse_item_vf(const struct rte_flow_item *item,
struct sfc_flow_parse_ctx *ctx,
@ -2591,18 +2555,6 @@ static const struct sfc_flow_item sfc_flow_items[] = {
.ctx_type = SFC_FLOW_PARSE_CTX_MAE,
.parse = sfc_mae_rule_parse_item_phy_port,
},
{
.type = RTE_FLOW_ITEM_TYPE_PF,
.name = "PF",
/*
* In terms of RTE flow, this item is a META one,
* and its position in the pattern is don't care.
*/
.prev_layer = SFC_FLOW_ITEM_ANY_LAYER,
.layer = SFC_FLOW_ITEM_ANY_LAYER,
.ctx_type = SFC_FLOW_PARSE_CTX_MAE,
.parse = sfc_mae_rule_parse_item_pf,
},
{
.type = RTE_FLOW_ITEM_TYPE_VF,
.name = "VF",

View File

@ -97,7 +97,6 @@ static const struct rte_flow_desc_data rte_flow_desc_item[] = {
MK_FLOW_ITEM(VOID, 0),
MK_FLOW_ITEM(INVERT, 0),
MK_FLOW_ITEM(ANY, sizeof(struct rte_flow_item_any)),
MK_FLOW_ITEM(PF, 0),
MK_FLOW_ITEM(VF, sizeof(struct rte_flow_item_vf)),
MK_FLOW_ITEM(PHY_PORT, sizeof(struct rte_flow_item_phy_port)),
MK_FLOW_ITEM(PORT_ID, sizeof(struct rte_flow_item_port_id)),

View File

@ -188,20 +188,6 @@ enum rte_flow_item_type {
*/
RTE_FLOW_ITEM_TYPE_ANY,
/**
* @deprecated
* @see RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR
* @see RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT
*
* [META]
*
* Matches traffic originating from (ingress) or going to (egress)
* the physical function of the current device.
*
* No associated specification structure.
*/
RTE_FLOW_ITEM_TYPE_PF,
/**
* @deprecated
* @see RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR
@ -732,7 +718,6 @@ static const struct rte_flow_item_any rte_flow_item_any_mask = {
*
* - Can be specified multiple times to match traffic addressed to several
* VF IDs.
* - Can be combined with a PF item to match both PF and VF traffic.
*
* A zeroed mask can be used to match any VF ID.
*/