DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] ethdev: remove header split Rx offload
@ 2022-08-11  9:20 xuan.ding
  2022-08-12  3:13 ` [PATCH v2] " xuan.ding
  0 siblings, 1 reply; 5+ messages in thread
From: xuan.ding @ 2022-08-11  9:20 UTC (permalink / raw)
  To: thomas, andrew.rybchenko, ferruh.yigit, viacheslavo, jerinj,
	cristian.dumitrescu, aman.deep.singh, yuying.zhang, chas3,
	humin29, gakhil, qi.z.zhang, xiao.w.wang, qiming.yang,
	wenjun1.wu, mdr, ndabilpuram, kirankumark, skori, skoteshwar,
	grive, beilei.xing, zr, lironh, mczekaj, orika,
	konstantin.v.ananyev, radu.nicolau, pbhagavatula,
	bruce.richardson, anatoly.burakov, jingjing.wu, junfeng.guo,
	jasvinder.singh, maxime.coquelin, chenbo.xia
  Cc: dev, Xuan Ding

From: Xuan Ding <xuan.ding@intel.com>

As announced in the deprecation note, this patch removes the Rx offload
flag 'RTE_ETH_RX_OFFLOAD_HEADER_SPLIT' and 'split_hdr_size' field from
the structure 'rte_eth_rxmode'. User can still use
`RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT` for per-queue packet split offload,
which is configured by 'rte_eth_rxseg_split'.

Signed-off-by: Xuan Ding <xuan.ding@intel.com>
---
 app/test-eventdev/test_perf_common.c        |  1 -
 app/test-pipeline/init.c                    |  1 -
 app/test-pmd/cmdline.c                      | 12 ++++++------
 app/test/test_link_bonding.c                |  1 -
 app/test/test_link_bonding_mode4.c          |  1 -
 app/test/test_link_bonding_rssconf.c        |  2 --
 app/test/test_pmd_perf.c                    |  1 -
 app/test/test_security_inline_proto.c       |  1 -
 doc/guides/nics/fm10k.rst                   |  4 ----
 doc/guides/nics/ixgbe.rst                   |  4 ----
 doc/guides/rel_notes/deprecation.rst        |  6 ------
 doc/guides/rel_notes/release_22_11.rst      |  5 +++++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  4 ++--
 drivers/net/cnxk/cnxk_ethdev_ops.c          |  1 -
 drivers/net/failsafe/failsafe_ops.c         |  2 --
 drivers/net/fm10k/fm10k_ethdev.c            |  1 -
 drivers/net/fm10k/fm10k_rxtx_vec.c          |  4 ----
 drivers/net/i40e/i40e_rxtx_vec_common.h     |  4 ----
 drivers/net/mvneta/mvneta_ethdev.c          |  5 -----
 drivers/net/mvpp2/mrvl_ethdev.c             |  5 -----
 drivers/net/thunderx/nicvf_ethdev.c         |  5 -----
 examples/bond/main.c                        |  1 -
 examples/flow_filtering/main.c              |  3 ---
 examples/ip_fragmentation/main.c            |  1 -
 examples/ip_pipeline/link.c                 |  1 -
 examples/ip_reassembly/main.c               |  1 -
 examples/ipsec-secgw/ipsec-secgw.c          |  1 -
 examples/l2fwd-event/l2fwd_common.c         |  3 ---
 examples/l2fwd-jobstats/main.c              |  3 ---
 examples/l2fwd-keepalive/main.c             |  3 ---
 examples/l2fwd/main.c                       |  3 ---
 examples/link_status_interrupt/main.c       |  3 ---
 examples/multi_process/symmetric_mp/main.c  |  1 -
 examples/ntb/ntb_fwd.c                      |  1 -
 examples/pipeline/obj.c                     |  1 -
 examples/qos_meter/main.c                   |  1 -
 examples/qos_sched/init.c                   |  3 ---
 examples/vhost/main.c                       |  1 -
 lib/ethdev/rte_ethdev.c                     |  1 -
 lib/ethdev/rte_ethdev.h                     |  3 ---
 40 files changed, 13 insertions(+), 92 deletions(-)

diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c
index 81420be73a..7474b9270a 100644
--- a/app/test-eventdev/test_perf_common.c
+++ b/app/test-eventdev/test_perf_common.c
@@ -1244,7 +1244,6 @@ perf_ethdev_setup(struct evt_test *test, struct evt_options *opt)
 	struct rte_eth_conf port_conf = {
 		.rxmode = {
 			.mq_mode = RTE_ETH_MQ_RX_RSS,
-			.split_hdr_size = 0,
 		},
 		.rx_adv_conf = {
 			.rss_conf = {
diff --git a/app/test-pipeline/init.c b/app/test-pipeline/init.c
index eee0719b67..d146c44be0 100644
--- a/app/test-pipeline/init.c
+++ b/app/test-pipeline/init.c
@@ -68,7 +68,6 @@ struct app_params app = {
 
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 	},
 	.rx_adv_conf = {
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index b4fe9dfb17..5787659c32 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -745,7 +745,7 @@ static void cmd_help_long_parsed(void *parsed_result,
 
 			"port config <port_id> rx_offload vlan_strip|"
 			"ipv4_cksum|udp_cksum|tcp_cksum|tcp_lro|qinq_strip|"
-			"outer_ipv4_cksum|macsec_strip|header_split|"
+			"outer_ipv4_cksum|macsec_strip|"
 			"vlan_filter|vlan_extend|jumbo_frame|scatter|"
 			"buffer_split|timestamp|security|keep_crc on|off\n"
 			"     Enable or disable a per port Rx offloading"
@@ -753,7 +753,7 @@ static void cmd_help_long_parsed(void *parsed_result,
 
 			"port (port_id) rxq (queue_id) rx_offload vlan_strip|"
 			"ipv4_cksum|udp_cksum|tcp_cksum|tcp_lro|qinq_strip|"
-			"outer_ipv4_cksum|macsec_strip|header_split|"
+			"outer_ipv4_cksum|macsec_strip|"
 			"vlan_filter|vlan_extend|jumbo_frame|scatter|"
 			"buffer_split|timestamp|security|keep_crc on|off\n"
 			"    Enable or disable a per queue Rx offloading"
@@ -12522,7 +12522,7 @@ static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_offloa
 		(struct cmd_config_per_port_rx_offload_result,
 		 offload, "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
 			   "qinq_strip#outer_ipv4_cksum#macsec_strip#"
-			   "header_split#vlan_filter#vlan_extend#jumbo_frame#"
+			   "vlan_filter#vlan_extend#jumbo_frame#"
 			   "scatter#buffer_split#timestamp#security#"
 			   "keep_crc#rss_hash");
 static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_on_off =
@@ -12604,7 +12604,7 @@ static cmdline_parse_inst_t cmd_config_per_port_rx_offload = {
 	.data = NULL,
 	.help_str = "port config <port_id> rx_offload vlan_strip|ipv4_cksum|"
 		    "udp_cksum|tcp_cksum|tcp_lro|qinq_strip|outer_ipv4_cksum|"
-		    "macsec_strip|header_split|vlan_filter|vlan_extend|"
+		    "macsec_strip|vlan_filter|vlan_extend|"
 		    "jumbo_frame|scatter|buffer_split|timestamp|security|"
 		    "keep_crc|rss_hash on|off",
 	.tokens = {
@@ -12654,7 +12654,7 @@ static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_offlo
 		(struct cmd_config_per_queue_rx_offload_result,
 		 offload, "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
 			   "qinq_strip#outer_ipv4_cksum#macsec_strip#"
-			   "header_split#vlan_filter#vlan_extend#jumbo_frame#"
+			   "vlan_filter#vlan_extend#jumbo_frame#"
 			   "scatter#buffer_split#timestamp#security#keep_crc");
 static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
@@ -12712,7 +12712,7 @@ static cmdline_parse_inst_t cmd_config_per_queue_rx_offload = {
 	.help_str = "port <port_id> rxq <queue_id> rx_offload "
 		    "vlan_strip|ipv4_cksum|"
 		    "udp_cksum|tcp_cksum|tcp_lro|qinq_strip|outer_ipv4_cksum|"
-		    "macsec_strip|header_split|vlan_filter|vlan_extend|"
+		    "macsec_strip|vlan_filter|vlan_extend|"
 		    "jumbo_frame|scatter|buffer_split|timestamp|security|"
 		    "keep_crc on|off",
 	.tokens = {
diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c
index 194ed5a7ec..977ddc1c00 100644
--- a/app/test/test_link_bonding.c
+++ b/app/test/test_link_bonding.c
@@ -135,7 +135,6 @@ static uint16_t vlan_id = 0x100;
 static struct rte_eth_conf default_pmd_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c
index d9b9c323c7..21c512c94b 100644
--- a/app/test/test_link_bonding_mode4.c
+++ b/app/test/test_link_bonding_mode4.c
@@ -108,7 +108,6 @@ static struct link_bonding_unittest_params test_params  = {
 static struct rte_eth_conf default_pmd_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
diff --git a/app/test/test_link_bonding_rssconf.c b/app/test/test_link_bonding_rssconf.c
index b3d71c6f3a..464fb2dbd0 100644
--- a/app/test/test_link_bonding_rssconf.c
+++ b/app/test/test_link_bonding_rssconf.c
@@ -81,7 +81,6 @@ static struct link_bonding_rssconf_unittest_params test_params  = {
 static struct rte_eth_conf default_pmd_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
@@ -92,7 +91,6 @@ static struct rte_eth_conf default_pmd_conf = {
 static struct rte_eth_conf rss_pmd_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_RSS,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c
index ec3dc251d1..34551e9b1a 100644
--- a/app/test/test_pmd_perf.c
+++ b/app/test/test_pmd_perf.c
@@ -62,7 +62,6 @@ static struct rte_ether_addr ports_eth_addr[RTE_MAX_ETHPORTS];
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
diff --git a/app/test/test_security_inline_proto.c b/app/test/test_security_inline_proto.c
index 5f26a04b06..0e5f69e636 100644
--- a/app/test/test_security_inline_proto.c
+++ b/app/test/test_security_inline_proto.c
@@ -73,7 +73,6 @@ static struct rte_ether_addr ports_eth_addr[RTE_MAX_ETHPORTS];
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM |
 			    RTE_ETH_RX_OFFLOAD_SECURITY,
 	},
diff --git a/doc/guides/nics/fm10k.rst b/doc/guides/nics/fm10k.rst
index d6efac0917..c0a37d35cc 100644
--- a/doc/guides/nics/fm10k.rst
+++ b/doc/guides/nics/fm10k.rst
@@ -63,8 +63,6 @@ vPMD. They are:
 
 *   Flow director
 
-*   Header split
-
 *   RX checksum offload
 
 Other features are supported using optional MACRO configuration. They include:
@@ -82,8 +80,6 @@ will be checked:
 
 *   ``RTE_ETH_RX_OFFLOAD_CHECKSUM``
 
-*   ``RTE_ETH_RX_OFFLOAD_HEADER_SPLIT``
-
 *   ``fdir_conf->mode``
 
 
diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index ad1a3da610..868d4c08cc 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -77,8 +77,6 @@ They are:
 
 *   FDIR
 
-*   Header split
-
 *   RX checksum off load
 
 Other features are supported using optional MACRO configuration. They include:
@@ -95,8 +93,6 @@ To guarantee the constraint, capabilities in dev_conf.rxmode.offloads will be ch
 
 *   RTE_ETH_RX_OFFLOAD_CHECKSUM
 
-*   RTE_ETH_RX_OFFLOAD_HEADER_SPLIT
-
 *   dev_conf
 
 fdir_conf->mode will also be checked.
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index e7583cae4c..7ceb0c9955 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -92,12 +92,6 @@ Deprecation Notices
   The ``rate`` parameter will be modified to ``uint32_t`` in DPDK 22.11
   so that it can work for more than 64 Gbps.
 
-* ethdev: Since no single PMD supports ``RTE_ETH_RX_OFFLOAD_HEADER_SPLIT``
-  offload and the ``split_hdr_size`` field in structure ``rte_eth_rxmode``
-  to enable per-port header split, they will be removed in DPDK 22.11.
-  The per-queue Rx packet split offload ``RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT``
-  can still be used, and it is configured by ``rte_eth_rxseg_split``.
-
 * ethdev: The flow director API, including ``rte_eth_conf.fdir_conf`` field,
   and the related structures (``rte_fdir_*`` and ``rte_eth_fdir_*``),
   will be removed in DPDK 20.11.
diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst
index 8c021cf050..d28e07b2d6 100644
--- a/doc/guides/rel_notes/release_22_11.rst
+++ b/doc/guides/rel_notes/release_22_11.rst
@@ -100,6 +100,11 @@ ABI Changes
    Also, make sure to start the actual text at the margin.
    =======================================================
 
+   * ethdev: Removed the Rx offload flag ``RTE_ETH_RX_OFFLOAD_HEADER_SPLIT``
+     and field ``split_hdr_size`` from the structure ``rte_eth_rxmode`` used
+     to configure header split. Instead, user can still use
+     ``RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT`` for per-queue packet split
+     offlod, which is configured by ``rte_eth_rxseg_split``.
 
 Known Issues
 ------------
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 330e34427d..0093fbfcff 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -1626,7 +1626,7 @@ Enable or disable a per port Rx offloading on all Rx queues of a port::
 * ``offloading``: can be any of these offloading capability:
                   vlan_strip, ipv4_cksum, udp_cksum, tcp_cksum, tcp_lro,
                   qinq_strip, outer_ipv4_cksum, macsec_strip,
-                  header_split, vlan_filter, vlan_extend, jumbo_frame,
+                  vlan_filter, vlan_extend, jumbo_frame,
                   scatter, timestamp, security, keep_crc, rss_hash
 
 This command should be run when the port is stopped, or else it will fail.
@@ -1641,7 +1641,7 @@ Enable or disable a per queue Rx offloading only on a specific Rx queue::
 * ``offloading``: can be any of these offloading capability:
                   vlan_strip, ipv4_cksum, udp_cksum, tcp_cksum, tcp_lro,
                   qinq_strip, outer_ipv4_cksum, macsec_strip,
-                  header_split, vlan_filter, vlan_extend, jumbo_frame,
+                  vlan_filter, vlan_extend, jumbo_frame,
                   scatter, timestamp, security, keep_crc
 
 This command should be run when the port is stopped, or else it will fail.
diff --git a/drivers/net/cnxk/cnxk_ethdev_ops.c b/drivers/net/cnxk/cnxk_ethdev_ops.c
index 1592971073..8c81d8a862 100644
--- a/drivers/net/cnxk/cnxk_ethdev_ops.c
+++ b/drivers/net/cnxk/cnxk_ethdev_ops.c
@@ -90,7 +90,6 @@ cnxk_nix_rx_burst_mode_get(struct rte_eth_dev *eth_dev, uint16_t queue_id,
 		{RTE_ETH_RX_OFFLOAD_QINQ_STRIP, " QinQ VLAN Strip,"},
 		{RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM, " Outer IPv4 Checksum,"},
 		{RTE_ETH_RX_OFFLOAD_MACSEC_STRIP, " MACsec Strip,"},
-		{RTE_ETH_RX_OFFLOAD_HEADER_SPLIT, " Header Split,"},
 		{RTE_ETH_RX_OFFLOAD_VLAN_FILTER, " VLAN Filter,"},
 		{RTE_ETH_RX_OFFLOAD_VLAN_EXTEND, " VLAN Extend,"},
 		{RTE_ETH_RX_OFFLOAD_SCATTER, " Scattered,"},
diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
index 55e21d635c..86b4749f30 100644
--- a/drivers/net/failsafe/failsafe_ops.c
+++ b/drivers/net/failsafe/failsafe_ops.c
@@ -1187,7 +1187,6 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
 		RTE_ETH_RX_OFFLOAD_QINQ_STRIP |
 		RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM |
 		RTE_ETH_RX_OFFLOAD_MACSEC_STRIP |
-		RTE_ETH_RX_OFFLOAD_HEADER_SPLIT |
 		RTE_ETH_RX_OFFLOAD_VLAN_FILTER |
 		RTE_ETH_RX_OFFLOAD_VLAN_EXTEND |
 		RTE_ETH_RX_OFFLOAD_SCATTER |
@@ -1204,7 +1203,6 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
 		RTE_ETH_RX_OFFLOAD_QINQ_STRIP |
 		RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM |
 		RTE_ETH_RX_OFFLOAD_MACSEC_STRIP |
-		RTE_ETH_RX_OFFLOAD_HEADER_SPLIT |
 		RTE_ETH_RX_OFFLOAD_VLAN_FILTER |
 		RTE_ETH_RX_OFFLOAD_VLAN_EXTEND |
 		RTE_ETH_RX_OFFLOAD_SCATTER |
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index 8bbd8b445d..3f96703991 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
@@ -1779,7 +1779,6 @@ static uint64_t fm10k_get_rx_port_offloads_capa(struct rte_eth_dev *dev)
 			   RTE_ETH_RX_OFFLOAD_IPV4_CKSUM  |
 			   RTE_ETH_RX_OFFLOAD_UDP_CKSUM   |
 			   RTE_ETH_RX_OFFLOAD_TCP_CKSUM   |
-			   RTE_ETH_RX_OFFLOAD_HEADER_SPLIT |
 			   RTE_ETH_RX_OFFLOAD_RSS_HASH);
 }
 
diff --git a/drivers/net/fm10k/fm10k_rxtx_vec.c b/drivers/net/fm10k/fm10k_rxtx_vec.c
index 10ce5a7582..ad998e83bf 100644
--- a/drivers/net/fm10k/fm10k_rxtx_vec.c
+++ b/drivers/net/fm10k/fm10k_rxtx_vec.c
@@ -221,10 +221,6 @@ fm10k_rx_vec_condition_check(struct rte_eth_dev *dev)
 	if (fconf->mode != RTE_FDIR_MODE_NONE)
 		return -1;
 
-	/* no header split support */
-	if (rxmode->offloads & RTE_ETH_RX_OFFLOAD_HEADER_SPLIT)
-		return -1;
-
 	return 0;
 #else
 	RTE_SET_USED(dev);
diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h
index 959832ed6a..08266ce1f3 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_common.h
+++ b/drivers/net/i40e/i40e_rxtx_vec_common.h
@@ -220,10 +220,6 @@ i40e_rx_vec_dev_conf_condition_check_default(struct rte_eth_dev *dev)
 	if (fconf->mode != RTE_FDIR_MODE_NONE)
 		return -1;
 
-	 /* no header split support */
-	if (rxmode->offloads & RTE_ETH_RX_OFFLOAD_HEADER_SPLIT)
-		return -1;
-
 	/* no QinQ support */
 	if (rxmode->offloads & RTE_ETH_RX_OFFLOAD_VLAN_EXTEND)
 		return -1;
diff --git a/drivers/net/mvneta/mvneta_ethdev.c b/drivers/net/mvneta/mvneta_ethdev.c
index eef016aa0b..f9e5b96c77 100644
--- a/drivers/net/mvneta/mvneta_ethdev.c
+++ b/drivers/net/mvneta/mvneta_ethdev.c
@@ -121,11 +121,6 @@ mvneta_dev_configure(struct rte_eth_dev *dev)
 			return -EINVAL;
 	}
 
-	if (dev->data->dev_conf.rxmode.split_hdr_size) {
-		MVNETA_LOG(INFO, "Split headers not supported");
-		return -EINVAL;
-	}
-
 	if (dev->data->dev_conf.txmode.offloads & RTE_ETH_TX_OFFLOAD_MULTI_SEGS)
 		priv->multiseg = 1;
 
diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c
index 735efb6cfc..f0c093e0fd 100644
--- a/drivers/net/mvpp2/mrvl_ethdev.c
+++ b/drivers/net/mvpp2/mrvl_ethdev.c
@@ -490,11 +490,6 @@ mrvl_dev_configure(struct rte_eth_dev *dev)
 		return -EINVAL;
 	}
 
-	if (dev->data->dev_conf.rxmode.split_hdr_size) {
-		MRVL_LOG(INFO, "Split headers not supported");
-		return -EINVAL;
-	}
-
 	if (dev->data->dev_conf.rxmode.mtu > priv->max_mtu) {
 		MRVL_LOG(ERR, "MTU %u is larger than max_mtu %u\n",
 			 dev->data->dev_conf.rxmode.mtu,
diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c
index 262c024560..b8b94fc4ff 100644
--- a/drivers/net/thunderx/nicvf_ethdev.c
+++ b/drivers/net/thunderx/nicvf_ethdev.c
@@ -2003,11 +2003,6 @@ nicvf_dev_configure(struct rte_eth_dev *dev)
 		return -EINVAL;
 	}
 
-	if (rxmode->split_hdr_size) {
-		PMD_INIT_LOG(INFO, "Rxmode does not support split header");
-		return -EINVAL;
-	}
-
 	if (conf->dcb_capability_en) {
 		PMD_INIT_LOG(INFO, "DCB enable not supported");
 		return -EINVAL;
diff --git a/examples/bond/main.c b/examples/bond/main.c
index 4efebb3902..9b076bb39f 100644
--- a/examples/bond/main.c
+++ b/examples/bond/main.c
@@ -115,7 +115,6 @@ static struct rte_mempool *mbuf_pool;
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c
index bfc1949c84..f11f91a67c 100644
--- a/examples/flow_filtering/main.c
+++ b/examples/flow_filtering/main.c
@@ -133,9 +133,6 @@ init_port(void)
 	uint16_t i;
 	/* Ethernet port configured with default settings. 8< */
 	struct rte_eth_conf port_conf = {
-		.rxmode = {
-			.split_hdr_size = 0,
-		},
 		.txmode = {
 			.offloads =
 				RTE_ETH_TX_OFFLOAD_VLAN_INSERT |
diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c
index 78205d2e12..69378f99e6 100644
--- a/examples/ip_fragmentation/main.c
+++ b/examples/ip_fragmentation/main.c
@@ -147,7 +147,6 @@ static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mtu = JUMBO_FRAME_MAX_SIZE - RTE_ETHER_HDR_LEN -
 			RTE_ETHER_CRC_LEN,
-		.split_hdr_size = 0,
 		.offloads = (RTE_ETH_RX_OFFLOAD_CHECKSUM |
 			     RTE_ETH_RX_OFFLOAD_SCATTER),
 	},
diff --git a/examples/ip_pipeline/link.c b/examples/ip_pipeline/link.c
index 0290767af4..4d69ebebfb 100644
--- a/examples/ip_pipeline/link.c
+++ b/examples/ip_pipeline/link.c
@@ -47,7 +47,6 @@ static struct rte_eth_conf port_conf_default = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
 		.mtu = 9000 - (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN), /* Jumbo frame MTU */
-		.split_hdr_size = 0, /* Header split buffer size */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c
index 3ebf895aa0..4cfe09f9d7 100644
--- a/examples/ip_reassembly/main.c
+++ b/examples/ip_reassembly/main.c
@@ -163,7 +163,6 @@ static struct rte_eth_conf port_conf = {
 		.mq_mode        = RTE_ETH_MQ_RX_RSS,
 		.mtu = JUMBO_FRAME_MAX_SIZE - RTE_ETHER_HDR_LEN -
 			RTE_ETHER_CRC_LEN,
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 	},
 	.rx_adv_conf = {
diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c
index 815b9254ae..a0b221a447 100644
--- a/examples/ipsec-secgw/ipsec-secgw.c
+++ b/examples/ipsec-secgw/ipsec-secgw.c
@@ -234,7 +234,6 @@ struct lcore_conf lcore_conf[RTE_MAX_LCORE];
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode	= RTE_ETH_MQ_RX_RSS,
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 	},
 	.rx_adv_conf = {
diff --git a/examples/l2fwd-event/l2fwd_common.c b/examples/l2fwd-event/l2fwd_common.c
index 41a0d3f22f..162f880224 100644
--- a/examples/l2fwd-event/l2fwd_common.c
+++ b/examples/l2fwd-event/l2fwd_common.c
@@ -10,9 +10,6 @@ l2fwd_event_init_ports(struct l2fwd_resources *rsrc)
 	uint16_t nb_rxd = RTE_TEST_RX_DESC_DEFAULT;
 	uint16_t nb_txd = RTE_TEST_TX_DESC_DEFAULT;
 	struct rte_eth_conf port_conf = {
-		.rxmode = {
-			.split_hdr_size = 0,
-		},
 		.txmode = {
 			.mq_mode = RTE_ETH_MQ_TX_NONE,
 		},
diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c
index 9e71ba2d4e..4be598110c 100644
--- a/examples/l2fwd-jobstats/main.c
+++ b/examples/l2fwd-jobstats/main.c
@@ -89,9 +89,6 @@ struct lcore_queue_conf lcore_queue_conf[RTE_MAX_LCORE];
 struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS];
 
 static struct rte_eth_conf port_conf = {
-	.rxmode = {
-		.split_hdr_size = 0,
-	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
 	},
diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c
index bd0aa7ea7a..72f9ece3c6 100644
--- a/examples/l2fwd-keepalive/main.c
+++ b/examples/l2fwd-keepalive/main.c
@@ -78,9 +78,6 @@ struct lcore_queue_conf lcore_queue_conf[RTE_MAX_LCORE];
 struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS];
 
 static struct rte_eth_conf port_conf = {
-	.rxmode = {
-		.split_hdr_size = 0,
-	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
 	},
diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c
index 281c6b7a3f..ca802b5fc5 100644
--- a/examples/l2fwd/main.c
+++ b/examples/l2fwd/main.c
@@ -93,9 +93,6 @@ struct lcore_queue_conf lcore_queue_conf[RTE_MAX_LCORE];
 static struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS];
 
 static struct rte_eth_conf port_conf = {
-	.rxmode = {
-		.split_hdr_size = 0,
-	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
 	},
diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c
index 9699e14ce6..4ac53c42a0 100644
--- a/examples/link_status_interrupt/main.c
+++ b/examples/link_status_interrupt/main.c
@@ -78,9 +78,6 @@ struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS];
 
 /* Global configuration stored in a static structure. 8< */
 static struct rte_eth_conf port_conf = {
-	.rxmode = {
-		.split_hdr_size = 0,
-	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
 	},
diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c
index 75237dee6e..1ff85875df 100644
--- a/examples/multi_process/symmetric_mp/main.c
+++ b/examples/multi_process/symmetric_mp/main.c
@@ -176,7 +176,6 @@ smp_port_init(uint16_t port, struct rte_mempool *mbuf_pool,
 	struct rte_eth_conf port_conf = {
 			.rxmode = {
 				.mq_mode	= RTE_ETH_MQ_RX_RSS,
-				.split_hdr_size = 0,
 				.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 			},
 			.rx_adv_conf = {
diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c
index 81964d0308..8cfee864af 100644
--- a/examples/ntb/ntb_fwd.c
+++ b/examples/ntb/ntb_fwd.c
@@ -90,7 +90,6 @@ static uint16_t pkt_burst = NTB_DFLT_PKT_BURST;
 static struct rte_eth_conf eth_port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_RSS,
-		.split_hdr_size = 0,
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/pipeline/obj.c b/examples/pipeline/obj.c
index b79f044ac7..908b66274a 100644
--- a/examples/pipeline/obj.c
+++ b/examples/pipeline/obj.c
@@ -129,7 +129,6 @@ static struct rte_eth_conf port_conf_default = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
 		.mtu = 9000 - (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN), /* Jumbo frame MTU */
-		.split_hdr_size = 0, /* Header split buffer size */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c
index a0f78e4ad6..319d0a96b2 100644
--- a/examples/qos_meter/main.c
+++ b/examples/qos_meter/main.c
@@ -52,7 +52,6 @@ static struct rte_mempool *pool = NULL;
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode	= RTE_ETH_MQ_RX_RSS,
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 	},
 	.rx_adv_conf = {
diff --git a/examples/qos_sched/init.c b/examples/qos_sched/init.c
index 8a0fb8a374..6bd342aba2 100644
--- a/examples/qos_sched/init.c
+++ b/examples/qos_sched/init.c
@@ -56,9 +56,6 @@ int mp_size = NB_MBUF;
 struct flow_conf qos_conf[MAX_DATA_STREAMS];
 
 static struct rte_eth_conf port_conf = {
-	.rxmode = {
-		.split_hdr_size = 0,
-	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
 	},
diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index 7e1666f42a..504f5540ae 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -125,7 +125,6 @@ static struct vhost_queue_ops vdev_queue_ops[RTE_MAX_VHOST_DEVICE];
 static struct rte_eth_conf vmdq_conf_default = {
 	.rxmode = {
 		.mq_mode        = RTE_ETH_MQ_RX_VMDQ_ONLY,
-		.split_hdr_size = 0,
 		/*
 		 * VLAN strip is necessary for 1G NIC such as I350,
 		 * this fixes bug of ipv4 forwarding in guest can't
diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
index 1979dc0850..ba6e8801bf 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -92,7 +92,6 @@ static const struct {
 	RTE_RX_OFFLOAD_BIT2STR(QINQ_STRIP),
 	RTE_RX_OFFLOAD_BIT2STR(OUTER_IPV4_CKSUM),
 	RTE_RX_OFFLOAD_BIT2STR(MACSEC_STRIP),
-	RTE_RX_OFFLOAD_BIT2STR(HEADER_SPLIT),
 	RTE_RX_OFFLOAD_BIT2STR(VLAN_FILTER),
 	RTE_RX_OFFLOAD_BIT2STR(VLAN_EXTEND),
 	RTE_RX_OFFLOAD_BIT2STR(SCATTER),
diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
index de9e970d4d..1aaaa613b0 100644
--- a/lib/ethdev/rte_ethdev.h
+++ b/lib/ethdev/rte_ethdev.h
@@ -471,7 +471,6 @@ struct rte_eth_rxmode {
 	uint32_t mtu;  /**< Requested MTU. */
 	/** Maximum allowed size of LRO aggregated packet. */
 	uint32_t max_lro_pkt_size;
-	uint16_t split_hdr_size;  /**< hdr buf size (header_split enabled).*/
 	/**
 	 * Per-port Rx offloads to be set using RTE_ETH_RX_OFFLOAD_* flags.
 	 * Only offloads set on rx_offload_capa field on rte_eth_dev_info
@@ -1617,7 +1616,6 @@ struct rte_eth_conf {
 #define RTE_ETH_RX_OFFLOAD_QINQ_STRIP       RTE_BIT64(5)
 #define RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM RTE_BIT64(6)
 #define RTE_ETH_RX_OFFLOAD_MACSEC_STRIP     RTE_BIT64(7)
-#define RTE_ETH_RX_OFFLOAD_HEADER_SPLIT     RTE_BIT64(8)
 #define RTE_ETH_RX_OFFLOAD_VLAN_FILTER      RTE_BIT64(9)
 #define RTE_ETH_RX_OFFLOAD_VLAN_EXTEND      RTE_BIT64(10)
 #define RTE_ETH_RX_OFFLOAD_SCATTER          RTE_BIT64(13)
@@ -1642,7 +1640,6 @@ struct rte_eth_conf {
 #define DEV_RX_OFFLOAD_QINQ_STRIP       RTE_DEPRECATED(DEV_RX_OFFLOAD_QINQ_STRIP)       RTE_ETH_RX_OFFLOAD_QINQ_STRIP
 #define DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM RTE_DEPRECATED(DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM) RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM
 #define DEV_RX_OFFLOAD_MACSEC_STRIP     RTE_DEPRECATED(DEV_RX_OFFLOAD_MACSEC_STRIP)     RTE_ETH_RX_OFFLOAD_MACSEC_STRIP
-#define DEV_RX_OFFLOAD_HEADER_SPLIT     RTE_DEPRECATED(DEV_RX_OFFLOAD_HEADER_SPLIT)     RTE_ETH_RX_OFFLOAD_HEADER_SPLIT
 #define DEV_RX_OFFLOAD_VLAN_FILTER      RTE_DEPRECATED(DEV_RX_OFFLOAD_VLAN_FILTER)      RTE_ETH_RX_OFFLOAD_VLAN_FILTER
 #define DEV_RX_OFFLOAD_VLAN_EXTEND      RTE_DEPRECATED(DEV_RX_OFFLOAD_VLAN_EXTEND)      RTE_ETH_RX_OFFLOAD_VLAN_EXTEND
 #define DEV_RX_OFFLOAD_SCATTER          RTE_DEPRECATED(DEV_RX_OFFLOAD_SCATTER)          RTE_ETH_RX_OFFLOAD_SCATTER
-- 
2.17.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2] ethdev: remove header split Rx offload
  2022-08-11  9:20 [PATCH] ethdev: remove header split Rx offload xuan.ding
@ 2022-08-12  3:13 ` xuan.ding
  2022-09-13  7:38   ` Andrew Rybchenko
  0 siblings, 1 reply; 5+ messages in thread
From: xuan.ding @ 2022-08-12  3:13 UTC (permalink / raw)
  To: thomas, andrew.rybchenko, ferruh.yigit, viacheslavo, jerinj,
	cristian.dumitrescu, aman.deep.singh, yuying.zhang, chas3,
	humin29, gakhil, qi.z.zhang, xiao.w.wang, qiming.yang,
	wenjun1.wu, mdr, ndabilpuram, kirankumark, skori, skoteshwar,
	grive, beilei.xing, zr, lironh, mczekaj, nicolas.chautru, orika,
	konstantin.v.ananyev, radu.nicolau, roy.fan.zhang, pbhagavatula,
	bruce.richardson, anatoly.burakov, jingjing.wu, junfeng.guo,
	jasvinder.singh, maxime.coquelin, chenbo.xia
  Cc: dev, Xuan Ding

From: Xuan Ding <xuan.ding@intel.com>

As announced in the deprecation note, this patch removes the Rx offload
flag 'RTE_ETH_RX_OFFLOAD_HEADER_SPLIT' and 'split_hdr_size' field from
the structure 'rte_eth_rxmode'. Meanwhile, the place where the examples
and apps initialize the 'split_hdr_size' field, and where the drivers
check if the 'split_hdr_size' value is 0 are also removed.

User can still use `RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT` for per-queue packet
split offload, which is configured by 'rte_eth_rxseg_split'.

Signed-off-by: Xuan Ding <xuan.ding@intel.com>
---
v2:
* fix CI build error
---
 app/test-eventdev/test_perf_common.c        |  1 -
 app/test-pipeline/init.c                    |  1 -
 app/test-pmd/cmdline.c                      | 12 ++++++------
 app/test/test_link_bonding.c                |  1 -
 app/test/test_link_bonding_mode4.c          |  1 -
 app/test/test_link_bonding_rssconf.c        |  2 --
 app/test/test_pmd_perf.c                    |  1 -
 app/test/test_security_inline_proto.c       |  1 -
 doc/guides/nics/fm10k.rst                   |  4 ----
 doc/guides/nics/ixgbe.rst                   |  4 ----
 doc/guides/rel_notes/deprecation.rst        |  6 ------
 doc/guides/rel_notes/release_22_11.rst      |  5 +++++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  4 ++--
 drivers/net/cnxk/cnxk_ethdev_ops.c          |  1 -
 drivers/net/failsafe/failsafe_ops.c         |  2 --
 drivers/net/fm10k/fm10k_ethdev.c            |  1 -
 drivers/net/fm10k/fm10k_rxtx_vec.c          |  4 ----
 drivers/net/i40e/i40e_rxtx_vec_common.h     |  4 ----
 drivers/net/mvneta/mvneta_ethdev.c          |  5 -----
 drivers/net/mvpp2/mrvl_ethdev.c             |  5 -----
 drivers/net/thunderx/nicvf_ethdev.c         |  5 -----
 examples/bbdev_app/main.c                   |  1 -
 examples/bond/main.c                        |  1 -
 examples/flow_filtering/main.c              |  3 ---
 examples/ip_fragmentation/main.c            |  1 -
 examples/ip_pipeline/link.c                 |  1 -
 examples/ip_reassembly/main.c               |  1 -
 examples/ipsec-secgw/ipsec-secgw.c          |  1 -
 examples/ipv4_multicast/main.c              |  1 -
 examples/l2fwd-crypto/main.c                |  1 -
 examples/l2fwd-event/l2fwd_common.c         |  3 ---
 examples/l2fwd-jobstats/main.c              |  3 ---
 examples/l2fwd-keepalive/main.c             |  3 ---
 examples/l2fwd/main.c                       |  3 ---
 examples/l3fwd-graph/main.c                 |  1 -
 examples/l3fwd-power/main.c                 |  1 -
 examples/l3fwd/main.c                       |  1 -
 examples/link_status_interrupt/main.c       |  3 ---
 examples/multi_process/symmetric_mp/main.c  |  1 -
 examples/ntb/ntb_fwd.c                      |  1 -
 examples/pipeline/obj.c                     |  1 -
 examples/qos_meter/main.c                   |  1 -
 examples/qos_sched/init.c                   |  3 ---
 examples/vhost/main.c                       |  1 -
 examples/vmdq/main.c                        |  1 -
 examples/vmdq_dcb/main.c                    |  1 -
 lib/ethdev/rte_ethdev.c                     |  1 -
 lib/ethdev/rte_ethdev.h                     |  3 ---
 48 files changed, 13 insertions(+), 100 deletions(-)

diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c
index 81420be73a..7474b9270a 100644
--- a/app/test-eventdev/test_perf_common.c
+++ b/app/test-eventdev/test_perf_common.c
@@ -1244,7 +1244,6 @@ perf_ethdev_setup(struct evt_test *test, struct evt_options *opt)
 	struct rte_eth_conf port_conf = {
 		.rxmode = {
 			.mq_mode = RTE_ETH_MQ_RX_RSS,
-			.split_hdr_size = 0,
 		},
 		.rx_adv_conf = {
 			.rss_conf = {
diff --git a/app/test-pipeline/init.c b/app/test-pipeline/init.c
index eee0719b67..d146c44be0 100644
--- a/app/test-pipeline/init.c
+++ b/app/test-pipeline/init.c
@@ -68,7 +68,6 @@ struct app_params app = {
 
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 	},
 	.rx_adv_conf = {
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index b4fe9dfb17..5787659c32 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -745,7 +745,7 @@ static void cmd_help_long_parsed(void *parsed_result,
 
 			"port config <port_id> rx_offload vlan_strip|"
 			"ipv4_cksum|udp_cksum|tcp_cksum|tcp_lro|qinq_strip|"
-			"outer_ipv4_cksum|macsec_strip|header_split|"
+			"outer_ipv4_cksum|macsec_strip|"
 			"vlan_filter|vlan_extend|jumbo_frame|scatter|"
 			"buffer_split|timestamp|security|keep_crc on|off\n"
 			"     Enable or disable a per port Rx offloading"
@@ -753,7 +753,7 @@ static void cmd_help_long_parsed(void *parsed_result,
 
 			"port (port_id) rxq (queue_id) rx_offload vlan_strip|"
 			"ipv4_cksum|udp_cksum|tcp_cksum|tcp_lro|qinq_strip|"
-			"outer_ipv4_cksum|macsec_strip|header_split|"
+			"outer_ipv4_cksum|macsec_strip|"
 			"vlan_filter|vlan_extend|jumbo_frame|scatter|"
 			"buffer_split|timestamp|security|keep_crc on|off\n"
 			"    Enable or disable a per queue Rx offloading"
@@ -12522,7 +12522,7 @@ static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_offloa
 		(struct cmd_config_per_port_rx_offload_result,
 		 offload, "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
 			   "qinq_strip#outer_ipv4_cksum#macsec_strip#"
-			   "header_split#vlan_filter#vlan_extend#jumbo_frame#"
+			   "vlan_filter#vlan_extend#jumbo_frame#"
 			   "scatter#buffer_split#timestamp#security#"
 			   "keep_crc#rss_hash");
 static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_on_off =
@@ -12604,7 +12604,7 @@ static cmdline_parse_inst_t cmd_config_per_port_rx_offload = {
 	.data = NULL,
 	.help_str = "port config <port_id> rx_offload vlan_strip|ipv4_cksum|"
 		    "udp_cksum|tcp_cksum|tcp_lro|qinq_strip|outer_ipv4_cksum|"
-		    "macsec_strip|header_split|vlan_filter|vlan_extend|"
+		    "macsec_strip|vlan_filter|vlan_extend|"
 		    "jumbo_frame|scatter|buffer_split|timestamp|security|"
 		    "keep_crc|rss_hash on|off",
 	.tokens = {
@@ -12654,7 +12654,7 @@ static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_offlo
 		(struct cmd_config_per_queue_rx_offload_result,
 		 offload, "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
 			   "qinq_strip#outer_ipv4_cksum#macsec_strip#"
-			   "header_split#vlan_filter#vlan_extend#jumbo_frame#"
+			   "vlan_filter#vlan_extend#jumbo_frame#"
 			   "scatter#buffer_split#timestamp#security#keep_crc");
 static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
@@ -12712,7 +12712,7 @@ static cmdline_parse_inst_t cmd_config_per_queue_rx_offload = {
 	.help_str = "port <port_id> rxq <queue_id> rx_offload "
 		    "vlan_strip|ipv4_cksum|"
 		    "udp_cksum|tcp_cksum|tcp_lro|qinq_strip|outer_ipv4_cksum|"
-		    "macsec_strip|header_split|vlan_filter|vlan_extend|"
+		    "macsec_strip|vlan_filter|vlan_extend|"
 		    "jumbo_frame|scatter|buffer_split|timestamp|security|"
 		    "keep_crc on|off",
 	.tokens = {
diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c
index 194ed5a7ec..977ddc1c00 100644
--- a/app/test/test_link_bonding.c
+++ b/app/test/test_link_bonding.c
@@ -135,7 +135,6 @@ static uint16_t vlan_id = 0x100;
 static struct rte_eth_conf default_pmd_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c
index d9b9c323c7..21c512c94b 100644
--- a/app/test/test_link_bonding_mode4.c
+++ b/app/test/test_link_bonding_mode4.c
@@ -108,7 +108,6 @@ static struct link_bonding_unittest_params test_params  = {
 static struct rte_eth_conf default_pmd_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
diff --git a/app/test/test_link_bonding_rssconf.c b/app/test/test_link_bonding_rssconf.c
index b3d71c6f3a..464fb2dbd0 100644
--- a/app/test/test_link_bonding_rssconf.c
+++ b/app/test/test_link_bonding_rssconf.c
@@ -81,7 +81,6 @@ static struct link_bonding_rssconf_unittest_params test_params  = {
 static struct rte_eth_conf default_pmd_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
@@ -92,7 +91,6 @@ static struct rte_eth_conf default_pmd_conf = {
 static struct rte_eth_conf rss_pmd_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_RSS,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c
index ec3dc251d1..34551e9b1a 100644
--- a/app/test/test_pmd_perf.c
+++ b/app/test/test_pmd_perf.c
@@ -62,7 +62,6 @@ static struct rte_ether_addr ports_eth_addr[RTE_MAX_ETHPORTS];
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
diff --git a/app/test/test_security_inline_proto.c b/app/test/test_security_inline_proto.c
index 5f26a04b06..0e5f69e636 100644
--- a/app/test/test_security_inline_proto.c
+++ b/app/test/test_security_inline_proto.c
@@ -73,7 +73,6 @@ static struct rte_ether_addr ports_eth_addr[RTE_MAX_ETHPORTS];
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM |
 			    RTE_ETH_RX_OFFLOAD_SECURITY,
 	},
diff --git a/doc/guides/nics/fm10k.rst b/doc/guides/nics/fm10k.rst
index d6efac0917..c0a37d35cc 100644
--- a/doc/guides/nics/fm10k.rst
+++ b/doc/guides/nics/fm10k.rst
@@ -63,8 +63,6 @@ vPMD. They are:
 
 *   Flow director
 
-*   Header split
-
 *   RX checksum offload
 
 Other features are supported using optional MACRO configuration. They include:
@@ -82,8 +80,6 @@ will be checked:
 
 *   ``RTE_ETH_RX_OFFLOAD_CHECKSUM``
 
-*   ``RTE_ETH_RX_OFFLOAD_HEADER_SPLIT``
-
 *   ``fdir_conf->mode``
 
 
diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index ad1a3da610..868d4c08cc 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -77,8 +77,6 @@ They are:
 
 *   FDIR
 
-*   Header split
-
 *   RX checksum off load
 
 Other features are supported using optional MACRO configuration. They include:
@@ -95,8 +93,6 @@ To guarantee the constraint, capabilities in dev_conf.rxmode.offloads will be ch
 
 *   RTE_ETH_RX_OFFLOAD_CHECKSUM
 
-*   RTE_ETH_RX_OFFLOAD_HEADER_SPLIT
-
 *   dev_conf
 
 fdir_conf->mode will also be checked.
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index e7583cae4c..7ceb0c9955 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -92,12 +92,6 @@ Deprecation Notices
   The ``rate`` parameter will be modified to ``uint32_t`` in DPDK 22.11
   so that it can work for more than 64 Gbps.
 
-* ethdev: Since no single PMD supports ``RTE_ETH_RX_OFFLOAD_HEADER_SPLIT``
-  offload and the ``split_hdr_size`` field in structure ``rte_eth_rxmode``
-  to enable per-port header split, they will be removed in DPDK 22.11.
-  The per-queue Rx packet split offload ``RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT``
-  can still be used, and it is configured by ``rte_eth_rxseg_split``.
-
 * ethdev: The flow director API, including ``rte_eth_conf.fdir_conf`` field,
   and the related structures (``rte_fdir_*`` and ``rte_eth_fdir_*``),
   will be removed in DPDK 20.11.
diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst
index 8c021cf050..d28e07b2d6 100644
--- a/doc/guides/rel_notes/release_22_11.rst
+++ b/doc/guides/rel_notes/release_22_11.rst
@@ -100,6 +100,11 @@ ABI Changes
    Also, make sure to start the actual text at the margin.
    =======================================================
 
+   * ethdev: Removed the Rx offload flag ``RTE_ETH_RX_OFFLOAD_HEADER_SPLIT``
+     and field ``split_hdr_size`` from the structure ``rte_eth_rxmode`` used
+     to configure header split. Instead, user can still use
+     ``RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT`` for per-queue packet split
+     offlod, which is configured by ``rte_eth_rxseg_split``.
 
 Known Issues
 ------------
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 330e34427d..0093fbfcff 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -1626,7 +1626,7 @@ Enable or disable a per port Rx offloading on all Rx queues of a port::
 * ``offloading``: can be any of these offloading capability:
                   vlan_strip, ipv4_cksum, udp_cksum, tcp_cksum, tcp_lro,
                   qinq_strip, outer_ipv4_cksum, macsec_strip,
-                  header_split, vlan_filter, vlan_extend, jumbo_frame,
+                  vlan_filter, vlan_extend, jumbo_frame,
                   scatter, timestamp, security, keep_crc, rss_hash
 
 This command should be run when the port is stopped, or else it will fail.
@@ -1641,7 +1641,7 @@ Enable or disable a per queue Rx offloading only on a specific Rx queue::
 * ``offloading``: can be any of these offloading capability:
                   vlan_strip, ipv4_cksum, udp_cksum, tcp_cksum, tcp_lro,
                   qinq_strip, outer_ipv4_cksum, macsec_strip,
-                  header_split, vlan_filter, vlan_extend, jumbo_frame,
+                  vlan_filter, vlan_extend, jumbo_frame,
                   scatter, timestamp, security, keep_crc
 
 This command should be run when the port is stopped, or else it will fail.
diff --git a/drivers/net/cnxk/cnxk_ethdev_ops.c b/drivers/net/cnxk/cnxk_ethdev_ops.c
index 1592971073..8c81d8a862 100644
--- a/drivers/net/cnxk/cnxk_ethdev_ops.c
+++ b/drivers/net/cnxk/cnxk_ethdev_ops.c
@@ -90,7 +90,6 @@ cnxk_nix_rx_burst_mode_get(struct rte_eth_dev *eth_dev, uint16_t queue_id,
 		{RTE_ETH_RX_OFFLOAD_QINQ_STRIP, " QinQ VLAN Strip,"},
 		{RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM, " Outer IPv4 Checksum,"},
 		{RTE_ETH_RX_OFFLOAD_MACSEC_STRIP, " MACsec Strip,"},
-		{RTE_ETH_RX_OFFLOAD_HEADER_SPLIT, " Header Split,"},
 		{RTE_ETH_RX_OFFLOAD_VLAN_FILTER, " VLAN Filter,"},
 		{RTE_ETH_RX_OFFLOAD_VLAN_EXTEND, " VLAN Extend,"},
 		{RTE_ETH_RX_OFFLOAD_SCATTER, " Scattered,"},
diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
index 55e21d635c..86b4749f30 100644
--- a/drivers/net/failsafe/failsafe_ops.c
+++ b/drivers/net/failsafe/failsafe_ops.c
@@ -1187,7 +1187,6 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
 		RTE_ETH_RX_OFFLOAD_QINQ_STRIP |
 		RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM |
 		RTE_ETH_RX_OFFLOAD_MACSEC_STRIP |
-		RTE_ETH_RX_OFFLOAD_HEADER_SPLIT |
 		RTE_ETH_RX_OFFLOAD_VLAN_FILTER |
 		RTE_ETH_RX_OFFLOAD_VLAN_EXTEND |
 		RTE_ETH_RX_OFFLOAD_SCATTER |
@@ -1204,7 +1203,6 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
 		RTE_ETH_RX_OFFLOAD_QINQ_STRIP |
 		RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM |
 		RTE_ETH_RX_OFFLOAD_MACSEC_STRIP |
-		RTE_ETH_RX_OFFLOAD_HEADER_SPLIT |
 		RTE_ETH_RX_OFFLOAD_VLAN_FILTER |
 		RTE_ETH_RX_OFFLOAD_VLAN_EXTEND |
 		RTE_ETH_RX_OFFLOAD_SCATTER |
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index 8bbd8b445d..3f96703991 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
@@ -1779,7 +1779,6 @@ static uint64_t fm10k_get_rx_port_offloads_capa(struct rte_eth_dev *dev)
 			   RTE_ETH_RX_OFFLOAD_IPV4_CKSUM  |
 			   RTE_ETH_RX_OFFLOAD_UDP_CKSUM   |
 			   RTE_ETH_RX_OFFLOAD_TCP_CKSUM   |
-			   RTE_ETH_RX_OFFLOAD_HEADER_SPLIT |
 			   RTE_ETH_RX_OFFLOAD_RSS_HASH);
 }
 
diff --git a/drivers/net/fm10k/fm10k_rxtx_vec.c b/drivers/net/fm10k/fm10k_rxtx_vec.c
index 10ce5a7582..ad998e83bf 100644
--- a/drivers/net/fm10k/fm10k_rxtx_vec.c
+++ b/drivers/net/fm10k/fm10k_rxtx_vec.c
@@ -221,10 +221,6 @@ fm10k_rx_vec_condition_check(struct rte_eth_dev *dev)
 	if (fconf->mode != RTE_FDIR_MODE_NONE)
 		return -1;
 
-	/* no header split support */
-	if (rxmode->offloads & RTE_ETH_RX_OFFLOAD_HEADER_SPLIT)
-		return -1;
-
 	return 0;
 #else
 	RTE_SET_USED(dev);
diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h
index 959832ed6a..08266ce1f3 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_common.h
+++ b/drivers/net/i40e/i40e_rxtx_vec_common.h
@@ -220,10 +220,6 @@ i40e_rx_vec_dev_conf_condition_check_default(struct rte_eth_dev *dev)
 	if (fconf->mode != RTE_FDIR_MODE_NONE)
 		return -1;
 
-	 /* no header split support */
-	if (rxmode->offloads & RTE_ETH_RX_OFFLOAD_HEADER_SPLIT)
-		return -1;
-
 	/* no QinQ support */
 	if (rxmode->offloads & RTE_ETH_RX_OFFLOAD_VLAN_EXTEND)
 		return -1;
diff --git a/drivers/net/mvneta/mvneta_ethdev.c b/drivers/net/mvneta/mvneta_ethdev.c
index eef016aa0b..f9e5b96c77 100644
--- a/drivers/net/mvneta/mvneta_ethdev.c
+++ b/drivers/net/mvneta/mvneta_ethdev.c
@@ -121,11 +121,6 @@ mvneta_dev_configure(struct rte_eth_dev *dev)
 			return -EINVAL;
 	}
 
-	if (dev->data->dev_conf.rxmode.split_hdr_size) {
-		MVNETA_LOG(INFO, "Split headers not supported");
-		return -EINVAL;
-	}
-
 	if (dev->data->dev_conf.txmode.offloads & RTE_ETH_TX_OFFLOAD_MULTI_SEGS)
 		priv->multiseg = 1;
 
diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c
index 735efb6cfc..f0c093e0fd 100644
--- a/drivers/net/mvpp2/mrvl_ethdev.c
+++ b/drivers/net/mvpp2/mrvl_ethdev.c
@@ -490,11 +490,6 @@ mrvl_dev_configure(struct rte_eth_dev *dev)
 		return -EINVAL;
 	}
 
-	if (dev->data->dev_conf.rxmode.split_hdr_size) {
-		MRVL_LOG(INFO, "Split headers not supported");
-		return -EINVAL;
-	}
-
 	if (dev->data->dev_conf.rxmode.mtu > priv->max_mtu) {
 		MRVL_LOG(ERR, "MTU %u is larger than max_mtu %u\n",
 			 dev->data->dev_conf.rxmode.mtu,
diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c
index 262c024560..b8b94fc4ff 100644
--- a/drivers/net/thunderx/nicvf_ethdev.c
+++ b/drivers/net/thunderx/nicvf_ethdev.c
@@ -2003,11 +2003,6 @@ nicvf_dev_configure(struct rte_eth_dev *dev)
 		return -EINVAL;
 	}
 
-	if (rxmode->split_hdr_size) {
-		PMD_INIT_LOG(INFO, "Rxmode does not support split header");
-		return -EINVAL;
-	}
-
 	if (conf->dcb_capability_en) {
 		PMD_INIT_LOG(INFO, "DCB enable not supported");
 		return -EINVAL;
diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c
index fc7e8b8174..ef1528e5ed 100644
--- a/examples/bbdev_app/main.c
+++ b/examples/bbdev_app/main.c
@@ -71,7 +71,6 @@ mbuf_input(struct rte_mbuf *mbuf)
 static const struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
diff --git a/examples/bond/main.c b/examples/bond/main.c
index 4efebb3902..9b076bb39f 100644
--- a/examples/bond/main.c
+++ b/examples/bond/main.c
@@ -115,7 +115,6 @@ static struct rte_mempool *mbuf_pool;
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c
index bfc1949c84..f11f91a67c 100644
--- a/examples/flow_filtering/main.c
+++ b/examples/flow_filtering/main.c
@@ -133,9 +133,6 @@ init_port(void)
 	uint16_t i;
 	/* Ethernet port configured with default settings. 8< */
 	struct rte_eth_conf port_conf = {
-		.rxmode = {
-			.split_hdr_size = 0,
-		},
 		.txmode = {
 			.offloads =
 				RTE_ETH_TX_OFFLOAD_VLAN_INSERT |
diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c
index 78205d2e12..69378f99e6 100644
--- a/examples/ip_fragmentation/main.c
+++ b/examples/ip_fragmentation/main.c
@@ -147,7 +147,6 @@ static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mtu = JUMBO_FRAME_MAX_SIZE - RTE_ETHER_HDR_LEN -
 			RTE_ETHER_CRC_LEN,
-		.split_hdr_size = 0,
 		.offloads = (RTE_ETH_RX_OFFLOAD_CHECKSUM |
 			     RTE_ETH_RX_OFFLOAD_SCATTER),
 	},
diff --git a/examples/ip_pipeline/link.c b/examples/ip_pipeline/link.c
index 0290767af4..4d69ebebfb 100644
--- a/examples/ip_pipeline/link.c
+++ b/examples/ip_pipeline/link.c
@@ -47,7 +47,6 @@ static struct rte_eth_conf port_conf_default = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
 		.mtu = 9000 - (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN), /* Jumbo frame MTU */
-		.split_hdr_size = 0, /* Header split buffer size */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c
index 3ebf895aa0..4cfe09f9d7 100644
--- a/examples/ip_reassembly/main.c
+++ b/examples/ip_reassembly/main.c
@@ -163,7 +163,6 @@ static struct rte_eth_conf port_conf = {
 		.mq_mode        = RTE_ETH_MQ_RX_RSS,
 		.mtu = JUMBO_FRAME_MAX_SIZE - RTE_ETHER_HDR_LEN -
 			RTE_ETHER_CRC_LEN,
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 	},
 	.rx_adv_conf = {
diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c
index 815b9254ae..a0b221a447 100644
--- a/examples/ipsec-secgw/ipsec-secgw.c
+++ b/examples/ipsec-secgw/ipsec-secgw.c
@@ -234,7 +234,6 @@ struct lcore_conf lcore_conf[RTE_MAX_LCORE];
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode	= RTE_ETH_MQ_RX_RSS,
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 	},
 	.rx_adv_conf = {
diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c
index bdcaa3bcd1..a3bc977fdf 100644
--- a/examples/ipv4_multicast/main.c
+++ b/examples/ipv4_multicast/main.c
@@ -111,7 +111,6 @@ static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mtu = JUMBO_FRAME_MAX_SIZE - RTE_ETHER_HDR_LEN -
 			RTE_ETHER_CRC_LEN,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c
index bf4b862379..cb7ba5cb4c 100644
--- a/examples/l2fwd-crypto/main.c
+++ b/examples/l2fwd-crypto/main.c
@@ -217,7 +217,6 @@ struct lcore_queue_conf lcore_queue_conf[RTE_MAX_LCORE];
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
diff --git a/examples/l2fwd-event/l2fwd_common.c b/examples/l2fwd-event/l2fwd_common.c
index 41a0d3f22f..162f880224 100644
--- a/examples/l2fwd-event/l2fwd_common.c
+++ b/examples/l2fwd-event/l2fwd_common.c
@@ -10,9 +10,6 @@ l2fwd_event_init_ports(struct l2fwd_resources *rsrc)
 	uint16_t nb_rxd = RTE_TEST_RX_DESC_DEFAULT;
 	uint16_t nb_txd = RTE_TEST_TX_DESC_DEFAULT;
 	struct rte_eth_conf port_conf = {
-		.rxmode = {
-			.split_hdr_size = 0,
-		},
 		.txmode = {
 			.mq_mode = RTE_ETH_MQ_TX_NONE,
 		},
diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c
index 9e71ba2d4e..4be598110c 100644
--- a/examples/l2fwd-jobstats/main.c
+++ b/examples/l2fwd-jobstats/main.c
@@ -89,9 +89,6 @@ struct lcore_queue_conf lcore_queue_conf[RTE_MAX_LCORE];
 struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS];
 
 static struct rte_eth_conf port_conf = {
-	.rxmode = {
-		.split_hdr_size = 0,
-	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
 	},
diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c
index bd0aa7ea7a..72f9ece3c6 100644
--- a/examples/l2fwd-keepalive/main.c
+++ b/examples/l2fwd-keepalive/main.c
@@ -78,9 +78,6 @@ struct lcore_queue_conf lcore_queue_conf[RTE_MAX_LCORE];
 struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS];
 
 static struct rte_eth_conf port_conf = {
-	.rxmode = {
-		.split_hdr_size = 0,
-	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
 	},
diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c
index 281c6b7a3f..ca802b5fc5 100644
--- a/examples/l2fwd/main.c
+++ b/examples/l2fwd/main.c
@@ -93,9 +93,6 @@ struct lcore_queue_conf lcore_queue_conf[RTE_MAX_LCORE];
 static struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS];
 
 static struct rte_eth_conf port_conf = {
-	.rxmode = {
-		.split_hdr_size = 0,
-	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
 	},
diff --git a/examples/l3fwd-graph/main.c b/examples/l3fwd-graph/main.c
index 7f00c65609..4d409b3ee2 100644
--- a/examples/l3fwd-graph/main.c
+++ b/examples/l3fwd-graph/main.c
@@ -112,7 +112,6 @@ static uint16_t nb_lcore_params = RTE_DIM(lcore_params_array_default);
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_RSS,
-		.split_hdr_size = 0,
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
index 887c6eae3f..a0dc7009a7 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -250,7 +250,6 @@ uint16_t nb_lcore_params = RTE_DIM(lcore_params_array_default);
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode        = RTE_ETH_MQ_RX_RSS,
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 	},
 	.rx_adv_conf = {
diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
index e090328fcc..865197baa8 100644
--- a/examples/l3fwd/main.c
+++ b/examples/l3fwd/main.c
@@ -121,7 +121,6 @@ static uint16_t nb_lcore_params = sizeof(lcore_params_array_default) /
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_RSS,
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 	},
 	.rx_adv_conf = {
diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c
index 9699e14ce6..4ac53c42a0 100644
--- a/examples/link_status_interrupt/main.c
+++ b/examples/link_status_interrupt/main.c
@@ -78,9 +78,6 @@ struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS];
 
 /* Global configuration stored in a static structure. 8< */
 static struct rte_eth_conf port_conf = {
-	.rxmode = {
-		.split_hdr_size = 0,
-	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
 	},
diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c
index 75237dee6e..1ff85875df 100644
--- a/examples/multi_process/symmetric_mp/main.c
+++ b/examples/multi_process/symmetric_mp/main.c
@@ -176,7 +176,6 @@ smp_port_init(uint16_t port, struct rte_mempool *mbuf_pool,
 	struct rte_eth_conf port_conf = {
 			.rxmode = {
 				.mq_mode	= RTE_ETH_MQ_RX_RSS,
-				.split_hdr_size = 0,
 				.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 			},
 			.rx_adv_conf = {
diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c
index 81964d0308..8cfee864af 100644
--- a/examples/ntb/ntb_fwd.c
+++ b/examples/ntb/ntb_fwd.c
@@ -90,7 +90,6 @@ static uint16_t pkt_burst = NTB_DFLT_PKT_BURST;
 static struct rte_eth_conf eth_port_conf = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_RSS,
-		.split_hdr_size = 0,
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/pipeline/obj.c b/examples/pipeline/obj.c
index b79f044ac7..908b66274a 100644
--- a/examples/pipeline/obj.c
+++ b/examples/pipeline/obj.c
@@ -129,7 +129,6 @@ static struct rte_eth_conf port_conf_default = {
 	.rxmode = {
 		.mq_mode = RTE_ETH_MQ_RX_NONE,
 		.mtu = 9000 - (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN), /* Jumbo frame MTU */
-		.split_hdr_size = 0, /* Header split buffer size */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c
index a0f78e4ad6..319d0a96b2 100644
--- a/examples/qos_meter/main.c
+++ b/examples/qos_meter/main.c
@@ -52,7 +52,6 @@ static struct rte_mempool *pool = NULL;
 static struct rte_eth_conf port_conf = {
 	.rxmode = {
 		.mq_mode	= RTE_ETH_MQ_RX_RSS,
-		.split_hdr_size = 0,
 		.offloads = RTE_ETH_RX_OFFLOAD_CHECKSUM,
 	},
 	.rx_adv_conf = {
diff --git a/examples/qos_sched/init.c b/examples/qos_sched/init.c
index 8a0fb8a374..6bd342aba2 100644
--- a/examples/qos_sched/init.c
+++ b/examples/qos_sched/init.c
@@ -56,9 +56,6 @@ int mp_size = NB_MBUF;
 struct flow_conf qos_conf[MAX_DATA_STREAMS];
 
 static struct rte_eth_conf port_conf = {
-	.rxmode = {
-		.split_hdr_size = 0,
-	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_NONE,
 	},
diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index 7e1666f42a..504f5540ae 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -125,7 +125,6 @@ static struct vhost_queue_ops vdev_queue_ops[RTE_MAX_VHOST_DEVICE];
 static struct rte_eth_conf vmdq_conf_default = {
 	.rxmode = {
 		.mq_mode        = RTE_ETH_MQ_RX_VMDQ_ONLY,
-		.split_hdr_size = 0,
 		/*
 		 * VLAN strip is necessary for 1G NIC such as I350,
 		 * this fixes bug of ipv4 forwarding in guest can't
diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c
index 10410b8783..0fb9520c25 100644
--- a/examples/vmdq/main.c
+++ b/examples/vmdq/main.c
@@ -66,7 +66,6 @@ static uint8_t rss_enable;
 static const struct rte_eth_conf vmdq_conf_default = {
 	.rxmode = {
 		.mq_mode        = RTE_ETH_MQ_RX_VMDQ_ONLY,
-		.split_hdr_size = 0,
 	},
 
 	.txmode = {
diff --git a/examples/vmdq_dcb/main.c b/examples/vmdq_dcb/main.c
index d2218f2cf7..dae858514a 100644
--- a/examples/vmdq_dcb/main.c
+++ b/examples/vmdq_dcb/main.c
@@ -69,7 +69,6 @@ static uint8_t rss_enable;
 static const struct rte_eth_conf vmdq_dcb_conf_default = {
 	.rxmode = {
 		.mq_mode        = RTE_ETH_MQ_RX_VMDQ_DCB,
-		.split_hdr_size = 0,
 	},
 	.txmode = {
 		.mq_mode = RTE_ETH_MQ_TX_VMDQ_DCB,
diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
index 1979dc0850..ba6e8801bf 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -92,7 +92,6 @@ static const struct {
 	RTE_RX_OFFLOAD_BIT2STR(QINQ_STRIP),
 	RTE_RX_OFFLOAD_BIT2STR(OUTER_IPV4_CKSUM),
 	RTE_RX_OFFLOAD_BIT2STR(MACSEC_STRIP),
-	RTE_RX_OFFLOAD_BIT2STR(HEADER_SPLIT),
 	RTE_RX_OFFLOAD_BIT2STR(VLAN_FILTER),
 	RTE_RX_OFFLOAD_BIT2STR(VLAN_EXTEND),
 	RTE_RX_OFFLOAD_BIT2STR(SCATTER),
diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
index de9e970d4d..1aaaa613b0 100644
--- a/lib/ethdev/rte_ethdev.h
+++ b/lib/ethdev/rte_ethdev.h
@@ -471,7 +471,6 @@ struct rte_eth_rxmode {
 	uint32_t mtu;  /**< Requested MTU. */
 	/** Maximum allowed size of LRO aggregated packet. */
 	uint32_t max_lro_pkt_size;
-	uint16_t split_hdr_size;  /**< hdr buf size (header_split enabled).*/
 	/**
 	 * Per-port Rx offloads to be set using RTE_ETH_RX_OFFLOAD_* flags.
 	 * Only offloads set on rx_offload_capa field on rte_eth_dev_info
@@ -1617,7 +1616,6 @@ struct rte_eth_conf {
 #define RTE_ETH_RX_OFFLOAD_QINQ_STRIP       RTE_BIT64(5)
 #define RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM RTE_BIT64(6)
 #define RTE_ETH_RX_OFFLOAD_MACSEC_STRIP     RTE_BIT64(7)
-#define RTE_ETH_RX_OFFLOAD_HEADER_SPLIT     RTE_BIT64(8)
 #define RTE_ETH_RX_OFFLOAD_VLAN_FILTER      RTE_BIT64(9)
 #define RTE_ETH_RX_OFFLOAD_VLAN_EXTEND      RTE_BIT64(10)
 #define RTE_ETH_RX_OFFLOAD_SCATTER          RTE_BIT64(13)
@@ -1642,7 +1640,6 @@ struct rte_eth_conf {
 #define DEV_RX_OFFLOAD_QINQ_STRIP       RTE_DEPRECATED(DEV_RX_OFFLOAD_QINQ_STRIP)       RTE_ETH_RX_OFFLOAD_QINQ_STRIP
 #define DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM RTE_DEPRECATED(DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM) RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM
 #define DEV_RX_OFFLOAD_MACSEC_STRIP     RTE_DEPRECATED(DEV_RX_OFFLOAD_MACSEC_STRIP)     RTE_ETH_RX_OFFLOAD_MACSEC_STRIP
-#define DEV_RX_OFFLOAD_HEADER_SPLIT     RTE_DEPRECATED(DEV_RX_OFFLOAD_HEADER_SPLIT)     RTE_ETH_RX_OFFLOAD_HEADER_SPLIT
 #define DEV_RX_OFFLOAD_VLAN_FILTER      RTE_DEPRECATED(DEV_RX_OFFLOAD_VLAN_FILTER)      RTE_ETH_RX_OFFLOAD_VLAN_FILTER
 #define DEV_RX_OFFLOAD_VLAN_EXTEND      RTE_DEPRECATED(DEV_RX_OFFLOAD_VLAN_EXTEND)      RTE_ETH_RX_OFFLOAD_VLAN_EXTEND
 #define DEV_RX_OFFLOAD_SCATTER          RTE_DEPRECATED(DEV_RX_OFFLOAD_SCATTER)          RTE_ETH_RX_OFFLOAD_SCATTER
-- 
2.17.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] ethdev: remove header split Rx offload
  2022-08-12  3:13 ` [PATCH v2] " xuan.ding
@ 2022-09-13  7:38   ` Andrew Rybchenko
  2022-09-15  8:12     ` Ding, Xuan
  2022-10-04  9:21     ` Andrew Rybchenko
  0 siblings, 2 replies; 5+ messages in thread
From: Andrew Rybchenko @ 2022-09-13  7:38 UTC (permalink / raw)
  To: xuan.ding, thomas, ferruh.yigit, viacheslavo, jerinj,
	cristian.dumitrescu, aman.deep.singh, yuying.zhang, chas3,
	humin29, gakhil, qi.z.zhang, xiao.w.wang, qiming.yang,
	wenjun1.wu, mdr, ndabilpuram, kirankumark, skori, skoteshwar,
	grive, beilei.xing, zr, lironh, mczekaj, nicolas.chautru, orika,
	konstantin.v.ananyev, radu.nicolau, roy.fan.zhang, pbhagavatula,
	bruce.richardson, anatoly.burakov, jingjing.wu, junfeng.guo,
	jasvinder.singh, maxime.coquelin, chenbo.xia
  Cc: dev

On 8/12/22 06:13, xuan.ding@intel.com wrote:
> From: Xuan Ding <xuan.ding@intel.com>
> 
> As announced in the deprecation note, this patch removes the Rx offload
> flag 'RTE_ETH_RX_OFFLOAD_HEADER_SPLIT' and 'split_hdr_size' field from
> the structure 'rte_eth_rxmode'. Meanwhile, the place where the examples
> and apps initialize the 'split_hdr_size' field, and where the drivers
> check if the 'split_hdr_size' value is 0 are also removed.
> 
> User can still use `RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT` for per-queue packet
> split offload, which is configured by 'rte_eth_rxseg_split'.
> 
> Signed-off-by: Xuan Ding <xuan.ding@intel.com>
> ---
> v2:
> * fix CI build error
> ---

Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [PATCH v2] ethdev: remove header split Rx offload
  2022-09-13  7:38   ` Andrew Rybchenko
@ 2022-09-15  8:12     ` Ding, Xuan
  2022-10-04  9:21     ` Andrew Rybchenko
  1 sibling, 0 replies; 5+ messages in thread
From: Ding, Xuan @ 2022-09-15  8:12 UTC (permalink / raw)
  To: Andrew Rybchenko, thomas, ferruh.yigit, viacheslavo, jerinj,
	Dumitrescu, Cristian, Singh, Aman Deep, Zhang, Yuying, chas3,
	humin29, gakhil, Zhang, Qi Z, Wang, Xiao W, Yang, Qiming, Wu,
	Wenjun1, mdr, ndabilpuram, kirankumark, skori, skoteshwar, grive,
	Xing, Beilei, zr, lironh, mczekaj, Chautru, Nicolas, orika,
	konstantin.v.ananyev, Nicolau, Radu, Zhang, Roy Fan,
	pbhagavatula, Richardson, Bruce, Burakov, Anatoly, Wu, Jingjing,
	Guo, Junfeng, Singh, Jasvinder, maxime.coquelin, Xia, Chenbo
  Cc: dev

Dear maintainers,

This patch series involves changes of examples/PMDs/docs to remove "HEADER_SPLIT".
Looking forward to your feedbacks regarding the modification.

Thanks,
Xuan

> -----Original Message-----
> From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> Sent: Tuesday, September 13, 2022 3:38 PM
> To: Ding, Xuan <xuan.ding@intel.com>; thomas@monjalon.net;
> ferruh.yigit@xilinx.com; viacheslavo@nvidia.com; jerinj@marvell.com;
> Dumitrescu, Cristian <cristian.dumitrescu@intel.com>; Singh, Aman Deep
> <aman.deep.singh@intel.com>; Zhang, Yuying <yuying.zhang@intel.com>;
> chas3@att.com; humin29@huawei.com; gakhil@marvell.com; Zhang, Qi Z
> <qi.z.zhang@intel.com>; Wang, Xiao W <xiao.w.wang@intel.com>; Yang,
> Qiming <qiming.yang@intel.com>; Wu, Wenjun1 <wenjun1.wu@intel.com>;
> mdr@ashroe.eu; ndabilpuram@marvell.com; kirankumark@marvell.com;
> skori@marvell.com; skoteshwar@marvell.com; grive@u256.net; Xing, Beilei
> <beilei.xing@intel.com>; zr@semihalf.com; lironh@marvell.com;
> mczekaj@marvell.com; Chautru, Nicolas <nicolas.chautru@intel.com>;
> orika@nvidia.com; konstantin.v.ananyev@yandex.ru; Nicolau, Radu
> <radu.nicolau@intel.com>; Zhang, Roy Fan <roy.fan.zhang@intel.com>;
> pbhagavatula@marvell.com; Richardson, Bruce
> <bruce.richardson@intel.com>; Burakov, Anatoly
> <anatoly.burakov@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Guo,
> Junfeng <junfeng.guo@intel.com>; Singh, Jasvinder
> <jasvinder.singh@intel.com>; maxime.coquelin@redhat.com; Xia, Chenbo
> <chenbo.xia@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [PATCH v2] ethdev: remove header split Rx offload
> 
> On 8/12/22 06:13, xuan.ding@intel.com wrote:
> > From: Xuan Ding <xuan.ding@intel.com>
> >
> > As announced in the deprecation note, this patch removes the Rx
> > offload flag 'RTE_ETH_RX_OFFLOAD_HEADER_SPLIT' and 'split_hdr_size'
> > field from the structure 'rte_eth_rxmode'. Meanwhile, the place where
> > the examples and apps initialize the 'split_hdr_size' field, and where
> > the drivers check if the 'split_hdr_size' value is 0 are also removed.
> >
> > User can still use `RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT` for per-queue
> > packet split offload, which is configured by 'rte_eth_rxseg_split'.
> >
> > Signed-off-by: Xuan Ding <xuan.ding@intel.com>
> > ---
> > v2:
> > * fix CI build error
> > ---
> 
> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] ethdev: remove header split Rx offload
  2022-09-13  7:38   ` Andrew Rybchenko
  2022-09-15  8:12     ` Ding, Xuan
@ 2022-10-04  9:21     ` Andrew Rybchenko
  1 sibling, 0 replies; 5+ messages in thread
From: Andrew Rybchenko @ 2022-10-04  9:21 UTC (permalink / raw)
  To: xuan.ding, thomas, viacheslavo, jerinj, cristian.dumitrescu,
	aman.deep.singh, yuying.zhang, chas3, humin29, gakhil,
	qi.z.zhang, xiao.w.wang, qiming.yang, wenjun1.wu, mdr,
	ndabilpuram, kirankumark, skori, skoteshwar, grive, beilei.xing,
	zr, lironh, mczekaj, nicolas.chautru, orika,
	konstantin.v.ananyev, radu.nicolau, roy.fan.zhang, pbhagavatula,
	bruce.richardson, anatoly.burakov, jingjing.wu, junfeng.guo,
	jasvinder.singh, maxime.coquelin, chenbo.xia, Ferruh Yigit
  Cc: dev

On 9/13/22 10:38, Andrew Rybchenko wrote:
> On 8/12/22 06:13, xuan.ding@intel.com wrote:
>> From: Xuan Ding <xuan.ding@intel.com>
>>
>> As announced in the deprecation note, this patch removes the Rx offload
>> flag 'RTE_ETH_RX_OFFLOAD_HEADER_SPLIT' and 'split_hdr_size' field from
>> the structure 'rte_eth_rxmode'. Meanwhile, the place where the examples
>> and apps initialize the 'split_hdr_size' field, and where the drivers
>> check if the 'split_hdr_size' value is 0 are also removed.
>>
>> User can still use `RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT` for per-queue packet
>> split offload, which is configured by 'rte_eth_rxseg_split'.
>>
>> Signed-off-by: Xuan Ding <xuan.ding@intel.com>
>> ---
>> v2:
>> * fix CI build error
>> ---
> 
> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> 

Rebased and applied to dpdk-next-net/main, thanks.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-10-04  9:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-11  9:20 [PATCH] ethdev: remove header split Rx offload xuan.ding
2022-08-12  3:13 ` [PATCH v2] " xuan.ding
2022-09-13  7:38   ` Andrew Rybchenko
2022-09-15  8:12     ` Ding, Xuan
2022-10-04  9:21     ` Andrew Rybchenko

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).