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:
parent
ce93daae36
commit
13f8de927a
@ -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",
|
||||
|
@ -63,7 +63,6 @@ ipv6 = Y
|
||||
gre = Y
|
||||
icmp = Y
|
||||
icmp6 = Y
|
||||
pf = Y
|
||||
phy_port = Y
|
||||
port_id = Y
|
||||
port_representor = Y
|
||||
|
@ -39,7 +39,6 @@ Usage doc = Y
|
||||
eth = Y
|
||||
ipv4 = Y
|
||||
ipv6 = Y
|
||||
pf = Y
|
||||
phy_port = Y
|
||||
tcp = Y
|
||||
udp = Y
|
||||
|
@ -121,7 +121,6 @@ meta =
|
||||
mpls =
|
||||
nsh =
|
||||
nvgre =
|
||||
pf =
|
||||
pfcp =
|
||||
phy_port =
|
||||
port_id =
|
||||
|
@ -47,7 +47,6 @@ ipv4 = Y
|
||||
ipv6 = Y
|
||||
mark = P
|
||||
nvgre = Y
|
||||
pf = Y
|
||||
phy_port = Y
|
||||
port_id = Y
|
||||
port_representor = Y
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
------------
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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){
|
||||
|
@ -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",
|
||||
|
@ -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)),
|
||||
|
@ -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.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user