diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 23889f7ab1..2722d5a48d 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -249,7 +249,6 @@ enum index {
 	ITEM_INVERT,
 	ITEM_ANY,
 	ITEM_ANY_NUM,
-	ITEM_PF,
 	ITEM_VF,
 	ITEM_VF_ID,
 	ITEM_PHY_PORT,
@@ -1278,7 +1277,6 @@ static const enum index next_item[] = {
 	ITEM_VOID,
 	ITEM_INVERT,
 	ITEM_ANY,
-	ITEM_PF,
 	ITEM_VF,
 	ITEM_PHY_PORT,
 	ITEM_PORT_ID,
@@ -3461,13 +3459,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",
diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini
index afb5414b49..259480d1df 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
-pf                   = Y
 phy_port             = Y
 port_id              = Y
 port_representor     = Y
diff --git a/doc/guides/nics/features/cxgbe.ini b/doc/guides/nics/features/cxgbe.ini
index f674803ec4..d869f2100f 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
-pf                   = Y
 phy_port             = Y
 tcp                  = Y
 udp                  = Y
diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini
index d1db0c256a..aff236134e 100644
--- a/doc/guides/nics/features/default.ini
+++ b/doc/guides/nics/features/default.ini
@@ -121,7 +121,6 @@ meta                 =
 mpls                 =
 nsh                  =
 nvgre                =
-pf                   =
 pfcp                 =
 phy_port             =
 port_id              =
diff --git a/doc/guides/nics/features/sfc.ini b/doc/guides/nics/features/sfc.ini
index 2e798b5ef5..355174d5c2 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
-pf                   = Y
 phy_port             = Y
 port_id              = Y
 port_representor     = Y
diff --git a/doc/guides/nics/sfc_efx.rst b/doc/guides/nics/sfc_efx.rst
index 39c6e23d5b..2dbc59e8f7 100644
--- a/doc/guides/nics/sfc_efx.rst
+++ b/doc/guides/nics/sfc_efx.rst
@@ -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
diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
index 588914b231..72f0c3d346 100644
--- a/doc/guides/prog_guide/rte_flow.rst
+++ b/doc/guides/prog_guide/rte_flow.rst
@@ -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:
diff --git a/doc/guides/prog_guide/switch_representation.rst b/doc/guides/prog_guide/switch_representation.rst
index 3da30fc779..6fd7b98bdc 100644
--- a/doc/guides/prog_guide/switch_representation.rst
+++ b/doc/guides/prog_guide/switch_representation.rst
@@ -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
diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst
index c4ce32daed..b7469708af 100644
--- a/doc/guides/rel_notes/release_22_11.rst
+++ b/doc/guides/rel_notes/release_22_11.rst
@@ -76,6 +76,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
 -----------
@@ -122,6 +125,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
 ------------
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index c105200fe7..4446560369 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -3665,8 +3665,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.
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 e9337ecd2c..17216426d8 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_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
diff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c
index 9edf3e8799..6a1d235f77 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c
+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c
@@ -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,
diff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h
index e4225d00f8..94918f6b4a 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h
+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h
@@ -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,
diff --git a/drivers/net/cxgbe/cxgbe_flow.c b/drivers/net/cxgbe/cxgbe_flow.c
index 6e460dfe2e..e4f9c152b5 100644
--- a/drivers/net/cxgbe/cxgbe_flow.c
+++ b/drivers/net/cxgbe/cxgbe_flow.c
@@ -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){
diff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c
index eb197fbdeb..e8da2d2a0d 100644
--- a/drivers/net/sfc/sfc_mae.c
+++ b/drivers/net/sfc/sfc_mae.c
@@ -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",
diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c
index 501be9d602..6ece72bf36 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(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)),
diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
index bc68fd5631..97de98e232 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)
-	 * 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.
  */
