From: Ivan Malov <ivan.malov@oktetlabs.ru>
To: dev@dpdk.org
Cc: Ori Kam <orika@nvidia.com>, Eli Britstein <elibr@nvidia.com>,
Ilya Maximets <i.maximets@ovn.org>,
Thomas Monjalon <thomas@monjalon.net>,
Stephen Hemminger <stephen@networkplumber.org>,
Jerin Jacob <jerinj@marvell.com>,
Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
Aman Singh <aman.deep.singh@intel.com>,
Yuying Zhang <yuying.zhang@intel.com>,
Ajit Khaparde <ajit.khaparde@broadcom.com>,
Somnath Kotur <somnath.kotur@broadcom.com>,
Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>,
Ferruh Yigit <ferruh.yigit@xilinx.com>,
Matan Azrad <matan@nvidia.com>,
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 [thread overview]
Message-ID: <20220812191827.3187441-13-ivan.malov@oktetlabs.ru> (raw)
In-Reply-To: <20220812191827.3187441-1-ivan.malov@oktetlabs.ru>
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 | 24 ------
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/mlx5.ini | 1 -
doc/guides/nics/features/sfc.ini | 1 -
doc/guides/nics/sfc_efx.rst | 2 -
doc/guides/prog_guide/rte_flow.rst | 45 -----------
doc/guides/rel_notes/release_22_11.rst | 3 +
doc/guides/testpmd_app_ug/testpmd_funcs.rst | 4 -
drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c | 4 -
drivers/net/bnxt/tf_ulp/ulp_rte_parser.c | 75 -------------------
drivers/net/bnxt/tf_ulp/ulp_rte_parser.h | 5 --
drivers/net/cxgbe/cxgbe_flow.c | 32 --------
drivers/net/sfc/sfc_mae.c | 69 -----------------
lib/ethdev/rte_flow.c | 1 -
lib/ethdev/rte_flow.h | 56 --------------
17 files changed, 3 insertions(+), 322 deletions(-)
diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 31b906178c..758c1f0efa 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -249,8 +249,6 @@ enum index {
ITEM_INVERT,
ITEM_ANY,
ITEM_ANY_NUM,
- ITEM_PHY_PORT,
- ITEM_PHY_PORT_INDEX,
ITEM_PORT_ID,
ITEM_PORT_ID_ID,
ITEM_MARK,
@@ -1275,7 +1273,6 @@ static const enum index next_item[] = {
ITEM_VOID,
ITEM_INVERT,
ITEM_ANY,
- ITEM_PHY_PORT,
ITEM_PORT_ID,
ITEM_MARK,
ITEM_RAW,
@@ -1345,12 +1342,6 @@ static const enum index item_any[] = {
ZERO,
};
-static const enum index item_phy_port[] = {
- ITEM_PHY_PORT_INDEX,
- ITEM_NEXT,
- ZERO,
-};
-
static const enum index item_port_id[] = {
ITEM_PORT_ID_ID,
ITEM_NEXT,
@@ -3450,21 +3441,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_PHY_PORT] = {
- .name = "phy_port",
- .help = "match traffic from/to a specific physical port",
- .priv = PRIV_ITEM(PHY_PORT,
- sizeof(struct rte_flow_item_phy_port)),
- .next = NEXT(item_phy_port),
- .call = parse_vc,
- },
- [ITEM_PHY_PORT_INDEX] = {
- .name = "index",
- .help = "physical port index",
- .next = NEXT(item_phy_port, NEXT_ENTRY(COMMON_UNSIGNED),
- item_param),
- .args = ARGS(ARGS_ENTRY(struct rte_flow_item_phy_port, index)),
- },
[ITEM_PORT_ID] = {
.name = "port_id",
.help = "match traffic from/to a given DPDK port ID",
diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini
index 860a0a8cf6..c05bcff909 100644
--- a/doc/guides/nics/features/bnxt.ini
+++ b/doc/guides/nics/features/bnxt.ini
@@ -63,7 +63,6 @@ ipv6 = Y
gre = Y
icmp = Y
icmp6 = 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 3f11cc2ac0..295816ab9d 100644
--- a/doc/guides/nics/features/cxgbe.ini
+++ b/doc/guides/nics/features/cxgbe.ini
@@ -39,7 +39,6 @@ Usage doc = Y
eth = Y
ipv4 = Y
ipv6 = Y
-phy_port = Y
tcp = Y
udp = Y
vlan = Y
diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini
index 8fbe1de46a..7ed5bd8cb9 100644
--- a/doc/guides/nics/features/default.ini
+++ b/doc/guides/nics/features/default.ini
@@ -122,7 +122,6 @@ mpls =
nsh =
nvgre =
pfcp =
-phy_port =
port_id =
port_representor =
ppp =
diff --git a/doc/guides/nics/features/mlx5.ini b/doc/guides/nics/features/mlx5.ini
index e056516deb..e5974063c8 100644
--- a/doc/guides/nics/features/mlx5.ini
+++ b/doc/guides/nics/features/mlx5.ini
@@ -76,7 +76,6 @@ mark = Y
meta = Y
mpls = Y
nvgre = Y
-phy_port = Y
port_id = Y
tag = Y
tcp = Y
diff --git a/doc/guides/nics/features/sfc.ini b/doc/guides/nics/features/sfc.ini
index 363fc6d0ec..3dac105e35 100644
--- a/doc/guides/nics/features/sfc.ini
+++ b/doc/guides/nics/features/sfc.ini
@@ -47,7 +47,6 @@ ipv4 = Y
ipv6 = Y
mark = P
nvgre = Y
-phy_port = Y
port_id = Y
port_representor = Y
pppoed = Y
diff --git a/doc/guides/nics/sfc_efx.rst b/doc/guides/nics/sfc_efx.rst
index 0e0088b09f..6eca86e96f 100644
--- a/doc/guides/nics/sfc_efx.rst
+++ b/doc/guides/nics/sfc_efx.rst
@@ -198,8 +198,6 @@ Supported pattern items (***transfer*** rules):
- PORT_ID (cannot repeat; conflicts with other traffic source items)
-- PHY_PORT (cannot repeat; conflicts with other traffic source items)
-
- ETH
- VLAN (double-tagging is supported)
diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
index 85bf2bf123..9cf4261494 100644
--- a/doc/guides/prog_guide/rte_flow.rst
+++ b/doc/guides/prog_guide/rte_flow.rst
@@ -535,44 +535,6 @@ Usage example, matching non-TCPv4 packets only:
| 4 | END |
+-------+----------+
-Item: ``PHY_PORT``
-^^^^^^^^^^^^^^^^^^
-
-This item is deprecated. Consider:
- - `Item: PORT_REPRESENTOR`_
- - `Item: REPRESENTED_PORT`_
-
-Matches traffic originating from (ingress) or going to (egress) a physical
-port of the underlying device.
-
-The first PHY_PORT item overrides the physical port normally associated with
-the specified DPDK input port (port_id). This item can be provided several
-times to match additional physical ports.
-
-Note that physical ports are not necessarily tied to DPDK input ports
-(port_id) when those are not under DPDK control. Possible values are
-specific to each device, they are not necessarily indexed from zero and may
-not be contiguous.
-
-As a device property, the list of allowed values as well as the value
-associated with a port_id should be retrieved by other means.
-
-- Default ``mask`` matches any port index.
-
-.. _table_rte_flow_item_phy_port:
-
-.. table:: PHY_PORT
-
- +----------+-----------+--------------------------------+
- | Field | Subfield | Value |
- +==========+===========+================================+
- | ``spec`` | ``index`` | physical port index |
- +----------+-----------+--------------------------------+
- | ``last`` | ``index`` | upper range value |
- +----------+-----------+--------------------------------+
- | ``mask`` | ``index`` | zeroed to match any port index |
- +----------+-----------+--------------------------------+
-
Item: ``PORT_ID``
^^^^^^^^^^^^^^^^^
@@ -586,11 +548,6 @@ port ID.
Normally only supported if the port ID in question is known by the
underlying PMD and related to the device the flow rule is created against.
-This must not be confused with `Item: PHY_PORT`_ which refers to the
-physical port of a device, whereas `Item: PORT_ID`_ refers to a ``struct
-rte_eth_dev`` object on the application side (also known as "port
-representor" depending on the kind of underlying device).
-
- Default ``mask`` matches the specified DPDK port ID.
.. _table_rte_flow_item_port_id:
@@ -2056,8 +2013,6 @@ This action is deprecated. Consider:
Directs matching traffic to a given physical port index of the underlying
device.
-See `Item: PHY_PORT`_.
-
.. _table_rte_flow_action_phy_port:
.. table:: PHY_PORT
diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst
index cf3d6e4efb..343f40a041 100644
--- a/doc/guides/rel_notes/release_22_11.rst
+++ b/doc/guides/rel_notes/release_22_11.rst
@@ -82,6 +82,9 @@ Removed Items
* ethdev: removed ``RTE_FLOW_ITEM_TYPE_VF``;
use ``RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT``.
+* ethdev: removed ``RTE_FLOW_ITEM_TYPE_PHY_PORT``;
+ use ``RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT``.
+
API Changes
-----------
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 17049e59f8..b9c2d7a6fe 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -3665,10 +3665,6 @@ This section lists supported pattern items and their attributes, if any.
- ``num {unsigned}``: number of layers covered.
-- ``phy_port``: match traffic from/to a specific physical port.
-
- - ``index {unsigned}``: physical port index.
-
- ``port_id``: match traffic from/to a given DPDK port ID.
- ``id {unsigned}``: DPDK port ID.
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 23081fc99b..66cd2fba7e 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c
+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c
@@ -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_PHY_PORT] = {
- .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
- .proto_hdr_func = ulp_rte_phy_port_hdr_handler
- },
[RTE_FLOW_ITEM_TYPE_PORT_ID] = {
.hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
.proto_hdr_func = ulp_rte_port_hdr_handler
diff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c
index 38799840dd..3faafcf788 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c
+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c
@@ -571,81 +571,6 @@ ulp_rte_port_hdr_handler(const struct rte_flow_item *item,
return ulp_rte_parser_svif_set(params, ifindex, mask, item_dir);
}
-/* Function to handle the parsing of RTE Flow item phy port Header. */
-int32_t
-ulp_rte_phy_port_hdr_handler(const struct rte_flow_item *item,
- struct ulp_rte_parser_params *params)
-{
- const struct rte_flow_item_phy_port *port_spec = item->spec;
- const struct rte_flow_item_phy_port *port_mask = item->mask;
- uint16_t mask = 0;
- int32_t rc = BNXT_TF_RC_ERROR;
- uint16_t svif;
- enum bnxt_ulp_direction_type dir;
- struct ulp_rte_hdr_field *hdr_field;
-
- /* Copy the rte_flow_item for phy port into hdr_field */
- if (!port_spec) {
- BNXT_TF_DBG(ERR, "ParseErr:Phy Port id is not valid\n");
- return rc;
- }
- if (!port_mask) {
- BNXT_TF_DBG(ERR, "ParseErr:Phy Port mask is not valid\n");
- return rc;
- }
- mask = port_mask->index;
-
- /* Update the match port type */
- ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_MATCH_PORT_TYPE,
- BNXT_ULP_INTF_TYPE_PHY_PORT);
-
- /* Compute the Hw direction */
- bnxt_ulp_rte_parser_direction_compute(params);
-
- /* Direction validation */
- dir = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_DIRECTION);
- if (dir == BNXT_ULP_DIR_EGRESS) {
- BNXT_TF_DBG(ERR,
- "Parse Err:Phy ports are valid only for ingress\n");
- return BNXT_TF_RC_PARSE_ERR;
- }
-
- /* Get the physical port details from port db */
- rc = ulp_port_db_phy_port_svif_get(params->ulp_ctx, port_spec->index,
- &svif);
- if (rc) {
- BNXT_TF_DBG(ERR, "Failed to get port details\n");
- return BNXT_TF_RC_PARSE_ERR;
- }
-
- /* Update the SVIF details */
- svif = rte_cpu_to_be_16(svif);
- hdr_field = ¶ms->hdr_field[BNXT_ULP_PROTO_HDR_FIELD_SVIF_IDX];
- memcpy(hdr_field->spec, &svif, sizeof(svif));
- memcpy(hdr_field->mask, &mask, sizeof(mask));
- hdr_field->size = sizeof(svif);
- ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SVIF_FLAG,
- rte_be_to_cpu_16(svif));
- if (!mask) {
- uint32_t port_id = 0;
- uint16_t phy_port = 0;
-
- /* Validate the control port */
- port_id = ULP_COMP_FLD_IDX_RD(params,
- BNXT_ULP_CF_IDX_DEV_PORT_ID);
- if (ulp_port_db_phy_port_get(params->ulp_ctx,
- port_id, &phy_port) ||
- (uint16_t)port_spec->index != phy_port) {
- BNXT_TF_DBG(ERR, "Mismatch of control and phy_port\n");
- return BNXT_TF_RC_PARSE_ERR;
- }
- ULP_BITMAP_SET(params->hdr_bitmap.bits,
- BNXT_ULP_HDR_BIT_SVIF_IGNORE);
- memset(hdr_field->mask, 0xFF, sizeof(mask));
- }
- return BNXT_TF_RC_SUCCESS;
-}
-
/* Function to handle the update of proto header based on field values */
static void
ulp_rte_l2_proto_type_update(struct ulp_rte_parser_params *param,
diff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h
index 0e246abbd8..5a9b056b16 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h
+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h
@@ -85,11 +85,6 @@ int32_t
ulp_rte_port_hdr_handler(const struct rte_flow_item *item,
struct ulp_rte_parser_params *params);
-/* Function to handle the parsing of RTE Flow item port Header. */
-int32_t
-ulp_rte_phy_port_hdr_handler(const struct rte_flow_item *item,
- struct ulp_rte_parser_params *params);
-
/* Function to handle the RTE item Ethernet Header. */
int32_t
ulp_rte_eth_hdr_handler(const struct rte_flow_item *item,
diff --git a/drivers/net/cxgbe/cxgbe_flow.c b/drivers/net/cxgbe/cxgbe_flow.c
index 8b4efc697b..d383334415 100644
--- a/drivers/net/cxgbe/cxgbe_flow.c
+++ b/drivers/net/cxgbe/cxgbe_flow.c
@@ -208,31 +208,6 @@ ch_rte_parsetype_eth(const void *dmask, const struct rte_flow_item *item,
return 0;
}
-static int
-ch_rte_parsetype_port(const void *dmask, const struct rte_flow_item *item,
- struct ch_filter_specification *fs,
- struct rte_flow_error *e)
-{
- const struct rte_flow_item_phy_port *val = item->spec;
- const struct rte_flow_item_phy_port *umask = item->mask;
- const struct rte_flow_item_phy_port *mask;
-
- mask = umask ? umask : (const struct rte_flow_item_phy_port *)dmask;
-
- if (!val)
- return 0; /* Wildcard, match all physical ports */
-
- if (val->index > 0x7)
- return rte_flow_error_set(e, EINVAL, RTE_FLOW_ERROR_TYPE_ITEM,
- item,
- "port index up to 0x7 is supported");
-
- if (val->index || (umask && umask->index))
- CXGBE_FILL_FS(val->index, mask->index, iport);
-
- return 0;
-}
-
static int
ch_rte_parsetype_vlan(const void *dmask, const struct rte_flow_item *item,
struct ch_filter_specification *fs,
@@ -926,13 +901,6 @@ static struct chrte_fparse parseitem[] = {
}
},
- [RTE_FLOW_ITEM_TYPE_PHY_PORT] = {
- .fptr = ch_rte_parsetype_port,
- .dmask = &(const struct rte_flow_item_phy_port){
- .index = 0x7,
- }
- },
-
[RTE_FLOW_ITEM_TYPE_VLAN] = {
.fptr = ch_rte_parsetype_vlan,
.dmask = &(const struct rte_flow_item_vlan){
diff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c
index 06de659ee2..4ddb63cbe5 100644
--- a/drivers/net/sfc/sfc_mae.c
+++ b/drivers/net/sfc/sfc_mae.c
@@ -1628,63 +1628,6 @@ sfc_mae_rule_parse_item_ethdev_based(const struct rte_flow_item *item,
return 0;
}
-static int
-sfc_mae_rule_parse_item_phy_port(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 struct rte_flow_item_phy_port supp_mask = {
- .index = 0xffffffff,
- };
- const void *def_mask = &rte_flow_item_phy_port_mask;
- const struct rte_flow_item_phy_port *spec = NULL;
- const struct rte_flow_item_phy_port *mask = NULL;
- 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 = sfc_flow_parse_init(item,
- (const void **)&spec, (const void **)&mask,
- (const void *)&supp_mask, def_mask,
- sizeof(struct rte_flow_item_phy_port), error);
- if (rc != 0)
- return rc;
-
- if (mask->index != supp_mask.index) {
- return rte_flow_error_set(error, EINVAL,
- RTE_FLOW_ERROR_TYPE_ITEM, item,
- "Bad mask in the PHY_PORT pattern item");
- }
-
- /* If "spec" is not set, could be any physical port */
- if (spec == NULL)
- return 0;
-
- rc = efx_mae_mport_by_phy_port(spec->index, &mport_v);
- if (rc != 0) {
- return rte_flow_error_set(error, rc,
- RTE_FLOW_ERROR_TYPE_ITEM, item,
- "Failed to convert the PHY_PORT index");
- }
-
- 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 PHY_PORT");
- }
-
- ctx_mae->match_mport_set = B_TRUE;
-
- return 0;
-}
-
/*
* Having this field ID in a field locator means that this
* locator cannot be used to actually set the field at the
@@ -2478,18 +2421,6 @@ static const struct sfc_flow_item sfc_flow_items[] = {
.ctx_type = SFC_FLOW_PARSE_CTX_MAE,
.parse = sfc_mae_rule_parse_item_ethdev_based,
},
- {
- .type = RTE_FLOW_ITEM_TYPE_PHY_PORT,
- .name = "PHY_PORT",
- /*
- * 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_phy_port,
- },
{
.type = RTE_FLOW_ITEM_TYPE_ETH,
.name = "ETH",
diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c
index 65c74687e3..e7ccdb772e 100644
--- a/lib/ethdev/rte_flow.c
+++ b/lib/ethdev/rte_flow.c
@@ -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(PHY_PORT, sizeof(struct rte_flow_item_phy_port)),
MK_FLOW_ITEM(PORT_ID, sizeof(struct rte_flow_item_port_id)),
MK_FLOW_ITEM(RAW, sizeof(struct rte_flow_item_raw)),
MK_FLOW_ITEM(ETH, sizeof(struct rte_flow_item_eth)),
diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
index 0a98db9c1c..066e8c8a99 100644
--- a/lib/ethdev/rte_flow.h
+++ b/lib/ethdev/rte_flow.h
@@ -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) a
- * physical port of the underlying device.
- *
- * See struct rte_flow_item_phy_port.
- */
- RTE_FLOW_ITEM_TYPE_PHY_PORT,
-
/**
* @deprecated
* @see RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR
@@ -686,41 +672,6 @@ static const struct rte_flow_item_any rte_flow_item_any_mask = {
};
#endif
-/**
- * @deprecated
- * @see RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR
- * @see RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT
- *
- * RTE_FLOW_ITEM_TYPE_PHY_PORT
- *
- * Matches traffic originating from (ingress) or going to (egress) a
- * physical port of the underlying device.
- *
- * The first PHY_PORT item overrides the physical port normally associated
- * with the specified DPDK input port (port_id). This item can be provided
- * several times to match additional physical ports.
- *
- * Note that physical ports are not necessarily tied to DPDK input ports
- * (port_id) when those are not under DPDK control. Possible values are
- * specific to each device, they are not necessarily indexed from zero and
- * may not be contiguous.
- *
- * As a device property, the list of allowed values as well as the value
- * associated with a port_id should be retrieved by other means.
- *
- * A zeroed mask can be used to match any port index.
- */
-struct rte_flow_item_phy_port {
- uint32_t index; /**< Physical port index. */
-};
-
-/** Default mask for RTE_FLOW_ITEM_TYPE_PHY_PORT. */
-#ifndef __cplusplus
-static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask = {
- .index = 0x00000000,
-};
-#endif
-
/**
* @deprecated
* @see RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR
@@ -734,11 +685,6 @@ static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask = {
* Normally only supported if the port ID in question is known by the
* underlying PMD and related to the device the flow rule is created
* against.
- *
- * This must not be confused with @p PHY_PORT which refers to the physical
- * port of a device, whereas @p PORT_ID refers to a struct rte_eth_dev
- * object on the application side (also known as "port representor"
- * depending on the kind of underlying device).
*/
struct rte_flow_item_port_id {
uint32_t id; /**< DPDK port ID. */
@@ -3023,8 +2969,6 @@ struct rte_flow_action_vf {
*
* Directs packets to a given physical port index of the underlying
* device.
- *
- * @see RTE_FLOW_ITEM_TYPE_PHY_PORT
*/
struct rte_flow_action_phy_port {
uint32_t original:1; /**< Use original port index if possible. */
--
2.30.2
next prev parent reply other threads:[~2022-08-12 19:19 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-12 19:18 [PATCH 00/13] ethdev: proceed with flow subsystem rework Ivan Malov
2022-08-12 19:18 ` [PATCH 01/13] ethdev: strip experimental tag off Rx metadata negotiate API Ivan Malov
2022-08-12 19:18 ` [PATCH 02/13] ethdev: strip experimental tag off port ID items and actions Ivan Malov
2022-08-15 12:59 ` Ori Kam
2022-08-12 19:18 ` [PATCH 03/13] ethdev: remove experimental tag from flow transfer proxy API Ivan Malov
2022-08-15 12:58 ` Ori Kam
2022-08-12 19:18 ` [PATCH 04/13] net/dpaa2: support represented port flow action Ivan Malov
2022-08-12 19:18 ` [PATCH 05/13] net/cnxk: " Ivan Malov
2022-08-12 19:18 ` [PATCH 06/13] app/testpmd: add port steering targets to sample " Ivan Malov
2022-08-12 19:18 ` [PATCH 07/13] doc: revisit outdated flow rule examples in testpmd tutorial Ivan Malov
2022-08-12 19:18 ` [PATCH 08/13] doc: add new port items and actions to switch representation Ivan Malov
2022-08-12 19:18 ` [PATCH 09/13] doc: rework VF-related explanations in " Ivan Malov
2022-08-12 19:18 ` [PATCH 10/13] ethdev: remove deprecated flow item PF Ivan Malov
2022-08-22 5:32 ` Ori Kam
2022-08-12 19:18 ` [PATCH 11/13] ethdev: remove deprecated flow item VF Ivan Malov
2022-08-22 5:50 ` Ori Kam
2022-08-12 19:18 ` Ivan Malov [this message]
2022-08-22 5:33 ` [PATCH 12/13] ethdev: remove deprecated flow item PHY PORT Ori Kam
2022-09-27 7:08 ` Thomas Monjalon
2022-09-27 16:18 ` Ajit Khaparde
2022-08-12 19:18 ` [PATCH 13/13] ethdev: remove deprecated flow action " Ivan Malov
2022-08-22 5:33 ` Ori Kam
2022-09-27 8:32 ` [PATCH 00/13] ethdev: proceed with flow subsystem rework Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220812191827.3187441-13-ivan.malov@oktetlabs.ru \
--to=ivan.malov@oktetlabs.ru \
--cc=ajit.khaparde@broadcom.com \
--cc=aman.deep.singh@intel.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=elibr@nvidia.com \
--cc=ferruh.yigit@xilinx.com \
--cc=i.maximets@ovn.org \
--cc=jerinj@marvell.com \
--cc=matan@nvidia.com \
--cc=orika@nvidia.com \
--cc=rahul.lakkireddy@chelsio.com \
--cc=somnath.kotur@broadcom.com \
--cc=stephen@networkplumber.org \
--cc=thomas@monjalon.net \
--cc=viacheslavo@nvidia.com \
--cc=yuying.zhang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).