DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Xu, Rosen" <rosen.xu@intel.com>
To: "Yigit, Ferruh" <ferruh.yigit@intel.com>,
	Jerin Jacob <jerinj@marvell.com>,
	"Li, Xiaoyun" <xiaoyun.li@intel.com>,
	Ajit Khaparde <ajit.khaparde@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>,
	Igor Russkikh <irusskikh@marvell.com>,
	Somalapuram Amaranath <asomalap@amd.com>,
	Rasesh Mody <rmody@marvell.com>,
	Shahed Shaikh <shshaikh@marvell.com>,
	Chas Williams <chas3@att.com>,
	"Min Hu (Connor)" <humin29@huawei.com>,
	Nithin Dabilpuram <ndabilpuram@marvell.com>,
	"Kiran Kumar K" <kirankumark@marvell.com>,
	Sunil Kumar Kori <skori@marvell.com>,
	Satha Rao <skoteshwar@marvell.com>,
	Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>,
	Hemant Agrawal <hemant.agrawal@nxp.com>,
	Sachin Saxena <sachin.saxena@oss.nxp.com>,
	"Wang, Haiyue" <haiyue.wang@intel.com>,
	Marcin Wojtas <mw@semihalf.com>,
	Michal Krawczyk <mk@semihalf.com>,
	Shai Brandes <shaibran@amazon.com>,
	Evgeny Schemeilin <evgenys@amazon.com>,
	Igor Chauskin <igorch@amazon.com>,
	Gagandeep Singh <g.singh@nxp.com>,
	"Daley, John" <johndale@cisco.com>,
	Hyong Youb Kim <hyonkim@cisco.com>, Gaetan Rivet <grive@u256.net>,
	"Zhang, Qi Z" <qi.z.zhang@intel.com>,
	"Wang, Xiao W" <xiao.w.wang@intel.com>,
	Ziyang Xuan <xuanziyang2@huawei.com>,
	Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>,
	Guoyang Zhou <zhouguoyang@huawei.com>,
	Yisen Zhuang <yisen.zhuang@huawei.com>,
	Lijun Ou <oulijun@huawei.com>,
	"Xing, Beilei" <beilei.xing@intel.com>,
	"Wu, Jingjing" <jingjing.wu@intel.com>,
	"Yang, Qiming" <qiming.yang@intel.com>,
	Andrew Boyer <aboyer@pensando.io>,
	"Matan Azrad" <matan@nvidia.com>,
	Viacheslav Ovsiienko <viacheslavo@nvidia.com>,
	Zyta Szpak <zr@semihalf.com>, Liron Himi <lironh@marvell.com>,
	"Heinrich Kuhn" <heinrich.kuhn@corigine.com>,
	Harman Kalra <hkalra@marvell.com>,
	"Nalla Pradeep" <pnalla@marvell.com>,
	Radha Mohan Chintakuntla <radhac@marvell.com>,
	 Veerasenareddy Burru <vburru@marvell.com>,
	Devendra Singh Rawat <dsinghrawat@marvell.com>,
	Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
	Maciej Czekaj <mczekaj@marvell.com>,
	Jiawen Wu <jiawenwu@trustnetic.com>,
	Jian Wang <jianwang@trustnetic.com>,
	Maxime Coquelin <maxime.coquelin@redhat.com>,
	"Xia, Chenbo" <chenbo.xia@intel.com>,
	Yong Wang <yongwang@vmware.com>,
	"Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
	"Nicolau, Radu" <radu.nicolau@intel.com>,
	Akhil Goyal <gakhil@marvell.com>,
	"Hunt, David" <david.hunt@intel.com>,
	"Mcnamara, John" <john.mcnamara@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v4 4/6] ethdev: remove jumbo offload flag
Date: Fri, 8 Oct 2021 08:38:29 +0000	[thread overview]
Message-ID: <BYAPR11MB2901756D12CD172C22930F4D89B29@BYAPR11MB2901.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20211005171653.3700067-4-ferruh.yigit@intel.com>

Hi,

> -----Original Message-----
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> Sent: Wednesday, October 06, 2021 1:17
> To: Jerin Jacob <jerinj@marvell.com>; Li, Xiaoyun <xiaoyun.li@intel.com>;
> Ajit Khaparde <ajit.khaparde@broadcom.com>; Somnath Kotur
> <somnath.kotur@broadcom.com>; Igor Russkikh <irusskikh@marvell.com>;
> Somalapuram Amaranath <asomalap@amd.com>; Rasesh Mody
> <rmody@marvell.com>; Shahed Shaikh <shshaikh@marvell.com>; Chas
> Williams <chas3@att.com>; Min Hu (Connor) <humin29@huawei.com>;
> Nithin Dabilpuram <ndabilpuram@marvell.com>; Kiran Kumar K
> <kirankumark@marvell.com>; Sunil Kumar Kori <skori@marvell.com>; Satha
> Rao <skoteshwar@marvell.com>; Rahul Lakkireddy
> <rahul.lakkireddy@chelsio.com>; Hemant Agrawal
> <hemant.agrawal@nxp.com>; Sachin Saxena <sachin.saxena@oss.nxp.com>;
> Wang, Haiyue <haiyue.wang@intel.com>; Marcin Wojtas
> <mw@semihalf.com>; Michal Krawczyk <mk@semihalf.com>; Shai Brandes
> <shaibran@amazon.com>; Evgeny Schemeilin <evgenys@amazon.com>; Igor
> Chauskin <igorch@amazon.com>; Gagandeep Singh <g.singh@nxp.com>;
> Daley, John <johndale@cisco.com>; Hyong Youb Kim <hyonkim@cisco.com>;
> Gaetan Rivet <grive@u256.net>; Zhang, Qi Z <qi.z.zhang@intel.com>; Wang,
> Xiao W <xiao.w.wang@intel.com>; Ziyang Xuan <xuanziyang2@huawei.com>;
> Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>; Guoyang Zhou
> <zhouguoyang@huawei.com>; Yisen Zhuang <yisen.zhuang@huawei.com>;
> Lijun Ou <oulijun@huawei.com>; Xing, Beilei <beilei.xing@intel.com>; Wu,
> Jingjing <jingjing.wu@intel.com>; Yang, Qiming <qiming.yang@intel.com>;
> Andrew Boyer <aboyer@pensando.io>; Xu, Rosen <rosen.xu@intel.com>;
> Matan Azrad <matan@nvidia.com>; Viacheslav Ovsiienko
> <viacheslavo@nvidia.com>; Zyta Szpak <zr@semihalf.com>; Liron Himi
> <lironh@marvell.com>; Heinrich Kuhn <heinrich.kuhn@corigine.com>;
> Harman Kalra <hkalra@marvell.com>; Nalla Pradeep <pnalla@marvell.com>;
> Radha Mohan Chintakuntla <radhac@marvell.com>; Veerasenareddy Burru
> <vburru@marvell.com>; Devendra Singh Rawat
> <dsinghrawat@marvell.com>; Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru>; Maciej Czekaj <mczekaj@marvell.com>;
> Jiawen Wu <jiawenwu@trustnetic.com>; Jian Wang
> <jianwang@trustnetic.com>; Maxime Coquelin
> <maxime.coquelin@redhat.com>; Xia, Chenbo <chenbo.xia@intel.com>;
> Yong Wang <yongwang@vmware.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Nicolau, Radu <radu.nicolau@intel.com>;
> Akhil Goyal <gakhil@marvell.com>; Hunt, David <david.hunt@intel.com>;
> Mcnamara, John <john.mcnamara@intel.com>; Thomas Monjalon
> <thomas@monjalon.net>
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; dev@dpdk.org
> Subject: [PATCH v4 4/6] ethdev: remove jumbo offload flag
> 
> Removing 'DEV_RX_OFFLOAD_JUMBO_FRAME' offload flag.
> 
> Instead of drivers announce this capability, application can deduct the
> capability by checking reported 'dev_info.max_mtu' or
> 'dev_info.max_rx_pktlen'.
> 
> And instead of application setting this flag explicitly to enable jumbo
> frames, this can be deduced by driver by comparing requested 'mtu' to
> 'RTE_ETHER_MTU'.
> 
> Removing this additional configuration for simplification.
> 
> Suggested-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> Reviewed-by: Rosen Xu <rosen.xu@intel.com>
> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
> ---
>  app/test-eventdev/test_pipeline_common.c      |  2 -
>  app/test-pmd/cmdline.c                        |  2 +-
>  app/test-pmd/config.c                         | 25 +---------
>  app/test-pmd/testpmd.c                        | 48 +------------------
>  app/test-pmd/testpmd.h                        |  2 +-
>  doc/guides/howto/debug_troubleshoot.rst       |  2 -
>  doc/guides/nics/bnxt.rst                      |  1 -
>  doc/guides/nics/features.rst                  |  3 +-
>  drivers/net/atlantic/atl_ethdev.c             |  1 -
>  drivers/net/axgbe/axgbe_ethdev.c              |  1 -
>  drivers/net/bnx2x/bnx2x_ethdev.c              |  1 -
>  drivers/net/bnxt/bnxt.h                       |  1 -
>  drivers/net/bnxt/bnxt_ethdev.c                | 10 +---
>  drivers/net/bonding/rte_eth_bond_pmd.c        |  8 ----
>  drivers/net/cnxk/cnxk_ethdev.h                |  5 +-
>  drivers/net/cnxk/cnxk_ethdev_ops.c            |  1 -
>  drivers/net/cxgbe/cxgbe.h                     |  1 -
>  drivers/net/cxgbe/cxgbe_ethdev.c              |  8 ----
>  drivers/net/cxgbe/sge.c                       |  5 +-
>  drivers/net/dpaa/dpaa_ethdev.c                |  2 -
>  drivers/net/dpaa2/dpaa2_ethdev.c              |  2 -
>  drivers/net/e1000/e1000_ethdev.h              |  4 +-
>  drivers/net/e1000/em_ethdev.c                 |  4 +-
>  drivers/net/e1000/em_rxtx.c                   | 19 +++-----
>  drivers/net/e1000/igb_rxtx.c                  |  3 +-
>  drivers/net/ena/ena_ethdev.c                  |  1 -
>  drivers/net/enetc/enetc_ethdev.c              |  3 +-
>  drivers/net/enic/enic_res.c                   |  1 -
>  drivers/net/failsafe/failsafe_ops.c           |  2 -
>  drivers/net/fm10k/fm10k_ethdev.c              |  1 -
>  drivers/net/hinic/hinic_pmd_ethdev.c          |  1 -
>  drivers/net/hns3/hns3_ethdev.c                |  1 -
>  drivers/net/hns3/hns3_ethdev_vf.c             |  1 -
>  drivers/net/i40e/i40e_ethdev.c                |  1 -
>  drivers/net/i40e/i40e_rxtx.c                  |  2 +-
>  drivers/net/iavf/iavf_ethdev.c                |  3 +-
>  drivers/net/ice/ice_dcf_ethdev.c              |  3 +-
>  drivers/net/ice/ice_dcf_vf_representor.c      |  1 -
>  drivers/net/ice/ice_ethdev.c                  |  1 -
>  drivers/net/ice/ice_rxtx.c                    |  3 +-
>  drivers/net/igc/igc_ethdev.h                  |  1 -
>  drivers/net/igc/igc_txrx.c                    |  2 +-
>  drivers/net/ionic/ionic_ethdev.c              |  1 -
>  drivers/net/ipn3ke/ipn3ke_representor.c       |  3 +-
>  drivers/net/ixgbe/ixgbe_ethdev.c              |  5 +-
>  drivers/net/ixgbe/ixgbe_pf.c                  |  9 +---
>  drivers/net/ixgbe/ixgbe_rxtx.c                |  3 +-
>  drivers/net/mlx4/mlx4_rxq.c                   |  1 -
>  drivers/net/mlx5/mlx5_rxq.c                   |  1 -
>  drivers/net/mvneta/mvneta_ethdev.h            |  3 +-
>  drivers/net/mvpp2/mrvl_ethdev.c               |  1 -
>  drivers/net/nfp/nfp_common.c                  |  6 +--
>  drivers/net/octeontx/octeontx_ethdev.h        |  1 -
>  drivers/net/octeontx2/otx2_ethdev.h           |  1 -
>  drivers/net/octeontx_ep/otx_ep_ethdev.c       |  3 +-
>  drivers/net/octeontx_ep/otx_ep_rxtx.c         |  6 ---
>  drivers/net/qede/qede_ethdev.c                |  1 -
>  drivers/net/sfc/sfc_rx.c                      |  2 -
>  drivers/net/thunderx/nicvf_ethdev.h           |  1 -
>  drivers/net/txgbe/txgbe_rxtx.c                |  1 -
>  drivers/net/virtio/virtio_ethdev.c            |  1 -
>  drivers/net/vmxnet3/vmxnet3_ethdev.c          |  1 -
>  examples/ip_fragmentation/main.c              |  3 +-
>  examples/ip_reassembly/main.c                 |  3 +-
>  examples/ipsec-secgw/ipsec-secgw.c            |  2 -
>  examples/ipv4_multicast/main.c                |  1 -
>  examples/kni/main.c                           |  5 --
>  examples/l3fwd-acl/main.c                     |  4 +-
>  examples/l3fwd-graph/main.c                   |  4 +-
>  examples/l3fwd-power/main.c                   |  4 +-
>  examples/l3fwd/main.c                         |  4 +-
>  .../performance-thread/l3fwd-thread/main.c    |  4 +-
>  examples/vhost/main.c                         |  5 +-
>  lib/ethdev/rte_ethdev.c                       | 26 +---------
>  lib/ethdev/rte_ethdev.h                       |  1 -
>  75 files changed, 47 insertions(+), 259 deletions(-)
> 
> diff --git a/app/test-eventdev/test_pipeline_common.c b/app/test-
> eventdev/test_pipeline_common.c
> index 5fcea74b4d43..2775e72c580d 100644
> --- a/app/test-eventdev/test_pipeline_common.c
> +++ b/app/test-eventdev/test_pipeline_common.c
> @@ -199,8 +199,6 @@ pipeline_ethdev_setup(struct evt_test *test, struct
> evt_options *opt)
> 
>  	port_conf.rxmode.mtu = opt->max_pkt_sz - RTE_ETHER_HDR_LEN -
>  		RTE_ETHER_CRC_LEN;
> -	if (port_conf.rxmode.mtu > RTE_ETHER_MTU)
> -		port_conf.rxmode.offloads |=
> DEV_RX_OFFLOAD_JUMBO_FRAME;
> 
>  	t->internal_port = 1;
>  	RTE_ETH_FOREACH_DEV(i) {
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> index a677451073ae..117945c2c61e 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -1923,7 +1923,7 @@ cmd_config_max_pkt_len_parsed(void
> *parsed_result,
>  			return;
>  		}
> 
> -		update_jumbo_frame_offload(port_id, res->value);
> +		update_mtu_from_frame_size(port_id, res->value);
>  	}
> 
>  	init_port_config();
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> index db3eeffa0093..e890fadc716c 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -1144,40 +1144,19 @@ port_reg_set(portid_t port_id, uint32_t reg_off,
> uint32_t reg_v)
>  void
>  port_mtu_set(portid_t port_id, uint16_t mtu)
>  {
> +	struct rte_port *port = &ports[port_id];
>  	int diag;
> -	struct rte_port *rte_port = &ports[port_id];
> -	struct rte_eth_dev_info dev_info;
> -	int ret;
> 
>  	if (port_id_is_invalid(port_id, ENABLED_WARN))
>  		return;
> 
> -	ret = eth_dev_info_get_print_err(port_id, &dev_info);
> -	if (ret != 0)
> -		return;
> -
> -	if (mtu > dev_info.max_mtu || mtu < dev_info.min_mtu) {
> -		fprintf(stderr,
> -			"Set MTU failed. MTU:%u is not in valid range,
> min:%u - max:%u\n",
> -			mtu, dev_info.min_mtu, dev_info.max_mtu);
> -		return;
> -	}
>  	diag = rte_eth_dev_set_mtu(port_id, mtu);
>  	if (diag != 0) {
>  		fprintf(stderr, "Set MTU failed. diag=%d\n", diag);
>  		return;
>  	}
> 
> -	rte_port->dev_conf.rxmode.mtu = mtu;
> -
> -	if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_JUMBO_FRAME) {
> -		if (mtu > RTE_ETHER_MTU)
> -			rte_port->dev_conf.rxmode.offloads |=
> -
> 	DEV_RX_OFFLOAD_JUMBO_FRAME;
> -		else
> -			rte_port->dev_conf.rxmode.offloads &=
> -
> 	~DEV_RX_OFFLOAD_JUMBO_FRAME;
> -	}
> +	port->dev_conf.rxmode.mtu = mtu;
>  }
> 
>  /* Generic flow management functions. */
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index 8c23cfe7c3da..d2a2a9ac6cda 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -1503,12 +1503,6 @@ init_config_port_offloads(portid_t pid, uint32_t
> socket_id)
>  	if (ret != 0)
>  		rte_exit(EXIT_FAILURE, "rte_eth_dev_info_get() failed\n");
> 
> -	ret = update_jumbo_frame_offload(pid, 0);
> -	if (ret != 0)
> -		fprintf(stderr,
> -			"Updating jumbo frame offload failed for port %u\n",
> -			pid);
> -
>  	if (!(port->dev_info.tx_offload_capa &
> DEV_TX_OFFLOAD_MBUF_FAST_FREE))
>  		port->dev_conf.txmode.offloads &=
>  			~DEV_TX_OFFLOAD_MBUF_FAST_FREE;
> @@ -3463,24 +3457,18 @@ rxtx_port_config(struct rte_port *port)
>  }
> 
>  /*
> - * Helper function to arrange max_rx_pktlen value and JUMBO_FRAME
> offload,
> - * MTU is also aligned.
> + * Helper function to set MTU from frame size
>   *
>   * port->dev_info should be set before calling this function.
>   *
> - * if 'max_rx_pktlen' is zero, it is set to current device value, "MTU +
> - * ETH_OVERHEAD". This is useful to update flags but not MTU value.
> - *
>   * return 0 on success, negative on error
>   */
>  int
> -update_jumbo_frame_offload(portid_t portid, uint32_t max_rx_pktlen)
> +update_mtu_from_frame_size(portid_t portid, uint32_t max_rx_pktlen)
>  {
>  	struct rte_port *port = &ports[portid];
>  	uint32_t eth_overhead;
> -	uint64_t rx_offloads;
>  	uint16_t mtu, new_mtu;
> -	bool on;
> 
>  	eth_overhead = get_eth_overhead(&port->dev_info);
> 
> @@ -3489,40 +3477,8 @@ update_jumbo_frame_offload(portid_t portid,
> uint32_t max_rx_pktlen)
>  		return -1;
>  	}
> 
> -	if (max_rx_pktlen == 0)
> -		max_rx_pktlen = mtu + eth_overhead;
> -
> -	rx_offloads = port->dev_conf.rxmode.offloads;
>  	new_mtu = max_rx_pktlen - eth_overhead;
> 
> -	if (new_mtu <= RTE_ETHER_MTU) {
> -		rx_offloads &= ~DEV_RX_OFFLOAD_JUMBO_FRAME;
> -		on = false;
> -	} else {
> -		if ((port->dev_info.rx_offload_capa &
> DEV_RX_OFFLOAD_JUMBO_FRAME) == 0) {
> -			fprintf(stderr,
> -				"Frame size (%u) is not supported by
> port %u\n",
> -				max_rx_pktlen, portid);
> -			return -1;
> -		}
> -		rx_offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME;
> -		on = true;
> -	}
> -
> -	if (rx_offloads != port->dev_conf.rxmode.offloads) {
> -		uint16_t qid;
> -
> -		port->dev_conf.rxmode.offloads = rx_offloads;
> -
> -		/* Apply JUMBO_FRAME offload configuration to Rx queue(s)
> */
> -		for (qid = 0; qid < port->dev_info.nb_rx_queues; qid++) {
> -			if (on)
> -				port->rx_conf[qid].offloads |=
> DEV_RX_OFFLOAD_JUMBO_FRAME;
> -			else
> -				port->rx_conf[qid].offloads &=
> ~DEV_RX_OFFLOAD_JUMBO_FRAME;
> -		}
> -	}
> -
>  	if (mtu == new_mtu)
>  		return 0;
> 
> diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
> index 17562215c733..eed9d031fd9a 100644
> --- a/app/test-pmd/testpmd.h
> +++ b/app/test-pmd/testpmd.h
> @@ -1022,7 +1022,7 @@ uint16_t tx_pkt_set_dynf(uint16_t port_id,
> __rte_unused uint16_t queue,
>  			 __rte_unused void *user_param);
>  void add_tx_dynf_callback(portid_t portid);
>  void remove_tx_dynf_callback(portid_t portid);
> -int update_jumbo_frame_offload(portid_t portid, uint32_t max_rx_pktlen);
> +int update_mtu_from_frame_size(portid_t portid, uint32_t max_rx_pktlen);
> 
>  /*
>   * Work-around of a compilation error with ICC on invocations of the
> diff --git a/doc/guides/howto/debug_troubleshoot.rst
> b/doc/guides/howto/debug_troubleshoot.rst
> index 457ac441429a..df69fa8bcc24 100644
> --- a/doc/guides/howto/debug_troubleshoot.rst
> +++ b/doc/guides/howto/debug_troubleshoot.rst
> @@ -71,8 +71,6 @@ RX Port and associated core :numref:`dtg_rx_rate`.
>     * Identify if port Speed and Duplex is matching to desired values with
>       ``rte_eth_link_get``.
> 
> -   * Check ``DEV_RX_OFFLOAD_JUMBO_FRAME`` is set with
> ``rte_eth_dev_info_get``.
> -
>     * Check promiscuous mode if the drops do not occur for unique MAC
> address
>       with ``rte_eth_promiscuous_get``.
> 
> diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst
> index e75f4fa9e3bc..8f10c6c78a1f 100644
> --- a/doc/guides/nics/bnxt.rst
> +++ b/doc/guides/nics/bnxt.rst
> @@ -885,7 +885,6 @@ processing. This improved performance is derived
> from a number of optimizations:
> 
>         DEV_RX_OFFLOAD_VLAN_STRIP
>         DEV_RX_OFFLOAD_KEEP_CRC
> -       DEV_RX_OFFLOAD_JUMBO_FRAME
>         DEV_RX_OFFLOAD_IPV4_CKSUM
>         DEV_RX_OFFLOAD_UDP_CKSUM
>         DEV_RX_OFFLOAD_TCP_CKSUM
> diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
> index 483cb7da576f..9580445828bf 100644
> --- a/doc/guides/nics/features.rst
> +++ b/doc/guides/nics/features.rst
> @@ -165,8 +165,7 @@ Jumbo frame
> 
>  Supports Rx jumbo frames.
> 
> -* **[uses]    rte_eth_rxconf,rte_eth_rxmode**:
> ``offloads:DEV_RX_OFFLOAD_JUMBO_FRAME``.
> -  ``dev_conf.rxmode.mtu``.
> +* **[uses]    rte_eth_rxconf,rte_eth_rxmode**: ``dev_conf.rxmode.mtu``.
>  * **[related] rte_eth_dev_info**: ``max_rx_pktlen``.
>  * **[related] API**: ``rte_eth_dev_set_mtu()``.
> 
> diff --git a/drivers/net/atlantic/atl_ethdev.c
> b/drivers/net/atlantic/atl_ethdev.c
> index 3f654c071566..5a198f53fce7 100644
> --- a/drivers/net/atlantic/atl_ethdev.c
> +++ b/drivers/net/atlantic/atl_ethdev.c
> @@ -158,7 +158,6 @@ static struct rte_pci_driver rte_atl_pmd = {
>  			| DEV_RX_OFFLOAD_IPV4_CKSUM \
>  			| DEV_RX_OFFLOAD_UDP_CKSUM \
>  			| DEV_RX_OFFLOAD_TCP_CKSUM \
> -			| DEV_RX_OFFLOAD_JUMBO_FRAME \
>  			| DEV_RX_OFFLOAD_MACSEC_STRIP \
>  			| DEV_RX_OFFLOAD_VLAN_FILTER)
> 
> diff --git a/drivers/net/axgbe/axgbe_ethdev.c
> b/drivers/net/axgbe/axgbe_ethdev.c
> index c36cd7b1d2f0..0bc9e5eeeb10 100644
> --- a/drivers/net/axgbe/axgbe_ethdev.c
> +++ b/drivers/net/axgbe/axgbe_ethdev.c
> @@ -1217,7 +1217,6 @@ axgbe_dev_info_get(struct rte_eth_dev *dev,
> struct rte_eth_dev_info *dev_info)
>  		DEV_RX_OFFLOAD_IPV4_CKSUM |
>  		DEV_RX_OFFLOAD_UDP_CKSUM  |
>  		DEV_RX_OFFLOAD_TCP_CKSUM  |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME	|
>  		DEV_RX_OFFLOAD_SCATTER	  |
>  		DEV_RX_OFFLOAD_KEEP_CRC;
> 
> diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c
> b/drivers/net/bnx2x/bnx2x_ethdev.c
> index 009a94e9a8fa..50ff04bb2241 100644
> --- a/drivers/net/bnx2x/bnx2x_ethdev.c
> +++ b/drivers/net/bnx2x/bnx2x_ethdev.c
> @@ -535,7 +535,6 @@ bnx2x_dev_infos_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>  	dev_info->max_rx_pktlen  = BNX2X_MAX_RX_PKT_LEN;
>  	dev_info->max_mac_addrs  = BNX2X_MAX_MAC_ADDRS;
>  	dev_info->speed_capa = ETH_LINK_SPEED_10G |
> ETH_LINK_SPEED_20G;
> -	dev_info->rx_offload_capa = DEV_RX_OFFLOAD_JUMBO_FRAME;
> 
>  	dev_info->rx_desc_lim.nb_max = MAX_RX_AVAIL;
>  	dev_info->rx_desc_lim.nb_min = MIN_RX_SIZE_NONTPA;
> diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h
> index 5121d05da65f..6743cf92b0e6 100644
> --- a/drivers/net/bnxt/bnxt.h
> +++ b/drivers/net/bnxt/bnxt.h
> @@ -595,7 +595,6 @@ struct bnxt_rep_info {
>  				     DEV_RX_OFFLOAD_TCP_CKSUM | \
>  				     DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
> \
>  				     DEV_RX_OFFLOAD_OUTER_UDP_CKSUM |
> \
> -				     DEV_RX_OFFLOAD_JUMBO_FRAME | \
>  				     DEV_RX_OFFLOAD_KEEP_CRC | \
>  				     DEV_RX_OFFLOAD_VLAN_EXTEND | \
>  				     DEV_RX_OFFLOAD_TCP_LRO | \
> diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
> index dc33b961320a..e9d04f354a39 100644
> --- a/drivers/net/bnxt/bnxt_ethdev.c
> +++ b/drivers/net/bnxt/bnxt_ethdev.c
> @@ -742,15 +742,10 @@ static int bnxt_start_nic(struct bnxt *bp)
>  	unsigned int i, j;
>  	int rc;
> 
> -	if (bp->eth_dev->data->mtu > RTE_ETHER_MTU) {
> -		bp->eth_dev->data->dev_conf.rxmode.offloads |=
> -			DEV_RX_OFFLOAD_JUMBO_FRAME;
> +	if (bp->eth_dev->data->mtu > RTE_ETHER_MTU)
>  		bp->flags |= BNXT_FLAG_JUMBO;
> -	} else {
> -		bp->eth_dev->data->dev_conf.rxmode.offloads &=
> -			~DEV_RX_OFFLOAD_JUMBO_FRAME;
> +	else
>  		bp->flags &= ~BNXT_FLAG_JUMBO;
> -	}
> 
>  	/* THOR does not support ring groups.
>  	 * But we will use the array to save RSS context IDs.
> @@ -1250,7 +1245,6 @@ bnxt_receive_function(struct rte_eth_dev
> *eth_dev)
>  	if (eth_dev->data->dev_conf.rxmode.offloads &
>  		~(DEV_RX_OFFLOAD_VLAN_STRIP |
>  		  DEV_RX_OFFLOAD_KEEP_CRC |
> -		  DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		  DEV_RX_OFFLOAD_IPV4_CKSUM |
>  		  DEV_RX_OFFLOAD_UDP_CKSUM |
>  		  DEV_RX_OFFLOAD_TCP_CKSUM |
> diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c
> b/drivers/net/bonding/rte_eth_bond_pmd.c
> index 412acff42f65..2f3a1759419f 100644
> --- a/drivers/net/bonding/rte_eth_bond_pmd.c
> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c
> @@ -1727,14 +1727,6 @@ slave_configure(struct rte_eth_dev
> *bonded_eth_dev,
>  	slave_eth_dev->data->dev_conf.rxmode.mtu =
>  			bonded_eth_dev->data->dev_conf.rxmode.mtu;
> 
> -	if (bonded_eth_dev->data->dev_conf.rxmode.offloads &
> -			DEV_RX_OFFLOAD_JUMBO_FRAME)
> -		slave_eth_dev->data->dev_conf.rxmode.offloads |=
> -				DEV_RX_OFFLOAD_JUMBO_FRAME;
> -	else
> -		slave_eth_dev->data->dev_conf.rxmode.offloads &=
> -				~DEV_RX_OFFLOAD_JUMBO_FRAME;
> -
>  	nb_rx_queues = bonded_eth_dev->data->nb_rx_queues;
>  	nb_tx_queues = bonded_eth_dev->data->nb_tx_queues;
> 
> diff --git a/drivers/net/cnxk/cnxk_ethdev.h
> b/drivers/net/cnxk/cnxk_ethdev.h
> index 10e05e6b5edd..fa8c48f1eeb0 100644
> --- a/drivers/net/cnxk/cnxk_ethdev.h
> +++ b/drivers/net/cnxk/cnxk_ethdev.h
> @@ -75,9 +75,8 @@
>  #define CNXK_NIX_RX_OFFLOAD_CAPA                                               \
>  	(DEV_RX_OFFLOAD_CHECKSUM | DEV_RX_OFFLOAD_SCTP_CKSUM |
> \
>  	 DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
> DEV_RX_OFFLOAD_SCATTER |            \
> -	 DEV_RX_OFFLOAD_JUMBO_FRAME |
> DEV_RX_OFFLOAD_OUTER_UDP_CKSUM |         \
> -	 DEV_RX_OFFLOAD_RSS_HASH | DEV_RX_OFFLOAD_TIMESTAMP |
> \
> -	 DEV_RX_OFFLOAD_VLAN_STRIP)
> +	 DEV_RX_OFFLOAD_OUTER_UDP_CKSUM |
> DEV_RX_OFFLOAD_RSS_HASH |            \
> +	 DEV_RX_OFFLOAD_TIMESTAMP | DEV_RX_OFFLOAD_VLAN_STRIP)
> 
>  #define RSS_IPV4_ENABLE                                                        \
>  	(ETH_RSS_IPV4 | ETH_RSS_FRAG_IPV4 |
> ETH_RSS_NONFRAG_IPV4_UDP |         \
> diff --git a/drivers/net/cnxk/cnxk_ethdev_ops.c
> b/drivers/net/cnxk/cnxk_ethdev_ops.c
> index 349896f6a1bf..d0924df76152 100644
> --- a/drivers/net/cnxk/cnxk_ethdev_ops.c
> +++ b/drivers/net/cnxk/cnxk_ethdev_ops.c
> @@ -92,7 +92,6 @@ cnxk_nix_rx_burst_mode_get(struct rte_eth_dev
> *eth_dev, uint16_t queue_id,
>  		{DEV_RX_OFFLOAD_HEADER_SPLIT, " Header Split,"},
>  		{DEV_RX_OFFLOAD_VLAN_FILTER, " VLAN Filter,"},
>  		{DEV_RX_OFFLOAD_VLAN_EXTEND, " VLAN Extend,"},
> -		{DEV_RX_OFFLOAD_JUMBO_FRAME, " Jumbo Frame,"},
>  		{DEV_RX_OFFLOAD_SCATTER, " Scattered,"},
>  		{DEV_RX_OFFLOAD_TIMESTAMP, " Timestamp,"},
>  		{DEV_RX_OFFLOAD_SECURITY, " Security,"},
> diff --git a/drivers/net/cxgbe/cxgbe.h b/drivers/net/cxgbe/cxgbe.h
> index 7c89a028bf16..37625c5bfb69 100644
> --- a/drivers/net/cxgbe/cxgbe.h
> +++ b/drivers/net/cxgbe/cxgbe.h
> @@ -51,7 +51,6 @@
>  			   DEV_RX_OFFLOAD_IPV4_CKSUM | \
>  			   DEV_RX_OFFLOAD_UDP_CKSUM | \
>  			   DEV_RX_OFFLOAD_TCP_CKSUM | \
> -			   DEV_RX_OFFLOAD_JUMBO_FRAME | \
>  			   DEV_RX_OFFLOAD_SCATTER | \
>  			   DEV_RX_OFFLOAD_RSS_HASH)
> 
> diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c
> b/drivers/net/cxgbe/cxgbe_ethdev.c
> index 70b879fed100..1374f32b6826 100644
> --- a/drivers/net/cxgbe/cxgbe_ethdev.c
> +++ b/drivers/net/cxgbe/cxgbe_ethdev.c
> @@ -661,14 +661,6 @@ int cxgbe_dev_rx_queue_setup(struct rte_eth_dev
> *eth_dev,
>  	if ((&rxq->fl) != NULL)
>  		rxq->fl.size = temp_nb_desc;
> 
> -	/* Set to jumbo mode if necessary */
> -	if (eth_dev->data->mtu > RTE_ETHER_MTU)
> -		eth_dev->data->dev_conf.rxmode.offloads |=
> -			DEV_RX_OFFLOAD_JUMBO_FRAME;
> -	else
> -		eth_dev->data->dev_conf.rxmode.offloads &=
> -			~DEV_RX_OFFLOAD_JUMBO_FRAME;
> -
>  	err = t4_sge_alloc_rxq(adapter, &rxq->rspq, false, eth_dev, msi_idx,
>  			       &rxq->fl, NULL,
>  			       is_pf4(adapter) ?
> diff --git a/drivers/net/cxgbe/sge.c b/drivers/net/cxgbe/sge.c
> index 830f5192474d..21b8fe61c9a7 100644
> --- a/drivers/net/cxgbe/sge.c
> +++ b/drivers/net/cxgbe/sge.c
> @@ -365,13 +365,10 @@ static unsigned int refill_fl_usembufs(struct
> adapter *adap, struct sge_fl *q,
>  	struct rte_mbuf *buf_bulk[n];
>  	int ret, i;
>  	struct rte_pktmbuf_pool_private *mbp_priv;
> -	u8 jumbo_en = rxq->rspq.eth_dev->data->dev_conf.rxmode.offloads
> &
> -		DEV_RX_OFFLOAD_JUMBO_FRAME;
> 
>  	/* Use jumbo mtu buffers if mbuf data room size can fit jumbo data.
> */
>  	mbp_priv = rte_mempool_get_priv(rxq->rspq.mb_pool);
> -	if (jumbo_en &&
> -	    ((mbp_priv->mbuf_data_room_size -
> RTE_PKTMBUF_HEADROOM) >= 9000))
> +	if ((mbp_priv->mbuf_data_room_size -
> RTE_PKTMBUF_HEADROOM) >= 9000)
>  		buf_size_idx = RX_LARGE_MTU_BUF;
> 
>  	ret = rte_mempool_get_bulk(rxq->rspq.mb_pool, (void *)buf_bulk,
> n);
> diff --git a/drivers/net/dpaa/dpaa_ethdev.c
> b/drivers/net/dpaa/dpaa_ethdev.c
> index 3172e3b2de87..defc072072af 100644
> --- a/drivers/net/dpaa/dpaa_ethdev.c
> +++ b/drivers/net/dpaa/dpaa_ethdev.c
> @@ -54,7 +54,6 @@
> 
>  /* Supported Rx offloads */
>  static uint64_t dev_rx_offloads_sup =
> -		DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		DEV_RX_OFFLOAD_SCATTER;
> 
>  /* Rx offloads which cannot be disabled */
> @@ -592,7 +591,6 @@ dpaa_dev_rx_burst_mode_get(struct rte_eth_dev
> *dev,
>  		uint64_t flags;
>  		const char *output;
>  	} rx_offload_map[] = {
> -			{DEV_RX_OFFLOAD_JUMBO_FRAME, " Jumbo
> frame,"},
>  			{DEV_RX_OFFLOAD_SCATTER, " Scattered,"},
>  			{DEV_RX_OFFLOAD_IPV4_CKSUM, " IPV4 csum,"},
>  			{DEV_RX_OFFLOAD_UDP_CKSUM, " UDP csum,"},
> diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c
> b/drivers/net/dpaa2/dpaa2_ethdev.c
> index c28f03641bbc..dc25eefb33b0 100644
> --- a/drivers/net/dpaa2/dpaa2_ethdev.c
> +++ b/drivers/net/dpaa2/dpaa2_ethdev.c
> @@ -44,7 +44,6 @@ static uint64_t dev_rx_offloads_sup =
>  		DEV_RX_OFFLOAD_OUTER_UDP_CKSUM |
>  		DEV_RX_OFFLOAD_VLAN_STRIP |
>  		DEV_RX_OFFLOAD_VLAN_FILTER |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		DEV_RX_OFFLOAD_TIMESTAMP;
> 
>  /* Rx offloads which cannot be disabled */
> @@ -298,7 +297,6 @@ dpaa2_dev_rx_burst_mode_get(struct rte_eth_dev
> *dev,
>  			{DEV_RX_OFFLOAD_OUTER_UDP_CKSUM, " Outer
> UDP csum,"},
>  			{DEV_RX_OFFLOAD_VLAN_STRIP, " VLAN strip,"},
>  			{DEV_RX_OFFLOAD_VLAN_FILTER, " VLAN filter,"},
> -			{DEV_RX_OFFLOAD_JUMBO_FRAME, " Jumbo
> frame,"},
>  			{DEV_RX_OFFLOAD_TIMESTAMP, " Timestamp,"},
>  			{DEV_RX_OFFLOAD_RSS_HASH, " RSS,"},
>  			{DEV_RX_OFFLOAD_SCATTER, " Scattered,"}
> diff --git a/drivers/net/e1000/e1000_ethdev.h
> b/drivers/net/e1000/e1000_ethdev.h
> index 3b4d9c3ee6f4..1ae78fe71f02 100644
> --- a/drivers/net/e1000/e1000_ethdev.h
> +++ b/drivers/net/e1000/e1000_ethdev.h
> @@ -468,8 +468,8 @@ void eth_em_rx_queue_release(void *rxq);
>  void em_dev_clear_queues(struct rte_eth_dev *dev);
>  void em_dev_free_queues(struct rte_eth_dev *dev);
> 
> -uint64_t em_get_rx_port_offloads_capa(struct rte_eth_dev *dev);
> -uint64_t em_get_rx_queue_offloads_capa(struct rte_eth_dev *dev);
> +uint64_t em_get_rx_port_offloads_capa(void);
> +uint64_t em_get_rx_queue_offloads_capa(void);
> 
>  int eth_em_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id,
>  		uint16_t nb_rx_desc, unsigned int socket_id,
> diff --git a/drivers/net/e1000/em_ethdev.c
> b/drivers/net/e1000/em_ethdev.c
> index 6ebef55588bc..8a752eef52cf 100644
> --- a/drivers/net/e1000/em_ethdev.c
> +++ b/drivers/net/e1000/em_ethdev.c
> @@ -1083,8 +1083,8 @@ eth_em_infos_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>  	dev_info->max_rx_queues = 1;
>  	dev_info->max_tx_queues = 1;
> 
> -	dev_info->rx_queue_offload_capa =
> em_get_rx_queue_offloads_capa(dev);
> -	dev_info->rx_offload_capa = em_get_rx_port_offloads_capa(dev) |
> +	dev_info->rx_queue_offload_capa =
> em_get_rx_queue_offloads_capa();
> +	dev_info->rx_offload_capa = em_get_rx_port_offloads_capa() |
>  				    dev_info->rx_queue_offload_capa;
>  	dev_info->tx_queue_offload_capa =
> em_get_tx_queue_offloads_capa(dev);
>  	dev_info->tx_offload_capa = em_get_tx_port_offloads_capa(dev) |
> diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c
> index dfd8f2fd0074..e061f80a906a 100644
> --- a/drivers/net/e1000/em_rxtx.c
> +++ b/drivers/net/e1000/em_rxtx.c
> @@ -1359,12 +1359,9 @@ em_reset_rx_queue(struct em_rx_queue *rxq)
>  }
> 
>  uint64_t
> -em_get_rx_port_offloads_capa(struct rte_eth_dev *dev)
> +em_get_rx_port_offloads_capa(void)
>  {
>  	uint64_t rx_offload_capa;
> -	uint32_t max_rx_pktlen;
> -
> -	max_rx_pktlen = em_get_max_pktlen(dev);
> 
>  	rx_offload_capa =
>  		DEV_RX_OFFLOAD_VLAN_STRIP  |
> @@ -1374,14 +1371,12 @@ em_get_rx_port_offloads_capa(struct
> rte_eth_dev *dev)
>  		DEV_RX_OFFLOAD_TCP_CKSUM   |
>  		DEV_RX_OFFLOAD_KEEP_CRC    |
>  		DEV_RX_OFFLOAD_SCATTER;
> -	if (max_rx_pktlen > RTE_ETHER_MAX_LEN)
> -		rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME;
> 
>  	return rx_offload_capa;
>  }
> 
>  uint64_t
> -em_get_rx_queue_offloads_capa(struct rte_eth_dev *dev)
> +em_get_rx_queue_offloads_capa(void)
>  {
>  	uint64_t rx_queue_offload_capa;
> 
> @@ -1390,7 +1385,7 @@ em_get_rx_queue_offloads_capa(struct
> rte_eth_dev *dev)
>  	 * capability be same to per port queue offloading capability
>  	 * for better convenience.
>  	 */
> -	rx_queue_offload_capa = em_get_rx_port_offloads_capa(dev);
> +	rx_queue_offload_capa = em_get_rx_port_offloads_capa();
> 
>  	return rx_queue_offload_capa;
>  }
> @@ -1839,7 +1834,7 @@ eth_em_rx_init(struct rte_eth_dev *dev)
>  		 * to avoid splitting packets that don't fit into
>  		 * one buffer.
>  		 */
> -		if (rxmode->offloads & DEV_RX_OFFLOAD_JUMBO_FRAME ||
> +		if (dev->data->mtu > RTE_ETHER_MTU ||
>  				rctl_bsize < RTE_ETHER_MAX_LEN) {
>  			if (!dev->data->scattered_rx)
>  				PMD_INIT_LOG(DEBUG, "forcing scatter
> mode");
> @@ -1874,14 +1869,14 @@ eth_em_rx_init(struct rte_eth_dev *dev)
>  	if ((hw->mac.type == e1000_ich9lan ||
>  			hw->mac.type == e1000_pch2lan ||
>  			hw->mac.type == e1000_ich10lan) &&
> -			rxmode->offloads &
> DEV_RX_OFFLOAD_JUMBO_FRAME) {
> +			dev->data->mtu > RTE_ETHER_MTU) {
>  		u32 rxdctl = E1000_READ_REG(hw, E1000_RXDCTL(0));
>  		E1000_WRITE_REG(hw, E1000_RXDCTL(0), rxdctl | 3);
>  		E1000_WRITE_REG(hw, E1000_ERT, 0x100 | (1 << 13));
>  	}
> 
>  	if (hw->mac.type == e1000_pch2lan) {
> -		if (rxmode->offloads & DEV_RX_OFFLOAD_JUMBO_FRAME)
> +		if (dev->data->mtu > RTE_ETHER_MTU)
>  			e1000_lv_jumbo_workaround_ich8lan(hw, TRUE);
>  		else
>  			e1000_lv_jumbo_workaround_ich8lan(hw, FALSE);
> @@ -1908,7 +1903,7 @@ eth_em_rx_init(struct rte_eth_dev *dev)
>  	/*
>  	 * Configure support of jumbo frames, if any.
>  	 */
> -	if (rxmode->offloads & DEV_RX_OFFLOAD_JUMBO_FRAME)
> +	if (dev->data->mtu > RTE_ETHER_MTU)
>  		rctl |= E1000_RCTL_LPE;
>  	else
>  		rctl &= ~E1000_RCTL_LPE;
> diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
> index e9a30d393bd7..dda4d2101adb 100644
> --- a/drivers/net/e1000/igb_rxtx.c
> +++ b/drivers/net/e1000/igb_rxtx.c
> @@ -1640,7 +1640,6 @@ igb_get_rx_port_offloads_capa(struct rte_eth_dev
> *dev)
>  			  DEV_RX_OFFLOAD_IPV4_CKSUM  |
>  			  DEV_RX_OFFLOAD_UDP_CKSUM   |
>  			  DEV_RX_OFFLOAD_TCP_CKSUM   |
> -			  DEV_RX_OFFLOAD_JUMBO_FRAME |
>  			  DEV_RX_OFFLOAD_KEEP_CRC    |
>  			  DEV_RX_OFFLOAD_SCATTER     |
>  			  DEV_RX_OFFLOAD_RSS_HASH;
> @@ -2344,7 +2343,7 @@ eth_igb_rx_init(struct rte_eth_dev *dev)
>  	 * Configure support of jumbo frames, if any.
>  	 */
>  	max_len = dev->data->mtu + E1000_ETH_OVERHEAD;
> -	if (dev->data->dev_conf.rxmode.offloads &
> DEV_RX_OFFLOAD_JUMBO_FRAME) {
> +	if ((dev->data->mtu & RTE_ETHER_MTU) != 0) {
>  		rctl |= E1000_RCTL_LPE;
> 
>  		/*
> diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
> index 3a9d5031b262..6d1026d31951 100644
> --- a/drivers/net/ena/ena_ethdev.c
> +++ b/drivers/net/ena/ena_ethdev.c
> @@ -1918,7 +1918,6 @@ static int ena_infos_get(struct rte_eth_dev *dev,
>  			DEV_RX_OFFLOAD_UDP_CKSUM  |
>  			DEV_RX_OFFLOAD_TCP_CKSUM;
> 
> -	rx_feat |= DEV_RX_OFFLOAD_JUMBO_FRAME;
>  	tx_feat |= DEV_TX_OFFLOAD_MULTI_SEGS;
> 
>  	/* Inform framework about available features */
> diff --git a/drivers/net/enetc/enetc_ethdev.c
> b/drivers/net/enetc/enetc_ethdev.c
> index a7372c1787c7..6457677d300a 100644
> --- a/drivers/net/enetc/enetc_ethdev.c
> +++ b/drivers/net/enetc/enetc_ethdev.c
> @@ -210,8 +210,7 @@ enetc_dev_infos_get(struct rte_eth_dev *dev
> __rte_unused,
>  		(DEV_RX_OFFLOAD_IPV4_CKSUM |
>  		 DEV_RX_OFFLOAD_UDP_CKSUM |
>  		 DEV_RX_OFFLOAD_TCP_CKSUM |
> -		 DEV_RX_OFFLOAD_KEEP_CRC |
> -		 DEV_RX_OFFLOAD_JUMBO_FRAME);
> +		 DEV_RX_OFFLOAD_KEEP_CRC);
> 
>  	return 0;
>  }
> diff --git a/drivers/net/enic/enic_res.c b/drivers/net/enic/enic_res.c
> index 0493e096d031..c5777772a09e 100644
> --- a/drivers/net/enic/enic_res.c
> +++ b/drivers/net/enic/enic_res.c
> @@ -209,7 +209,6 @@ int enic_get_vnic_config(struct enic *enic)
>  		DEV_TX_OFFLOAD_TCP_TSO;
>  	enic->rx_offload_capa =
>  		DEV_RX_OFFLOAD_SCATTER |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		DEV_RX_OFFLOAD_VLAN_STRIP |
>  		DEV_RX_OFFLOAD_IPV4_CKSUM |
>  		DEV_RX_OFFLOAD_UDP_CKSUM |
> diff --git a/drivers/net/failsafe/failsafe_ops.c
> b/drivers/net/failsafe/failsafe_ops.c
> index 5ff33e03e034..47c5efe9ea77 100644
> --- a/drivers/net/failsafe/failsafe_ops.c
> +++ b/drivers/net/failsafe/failsafe_ops.c
> @@ -1193,7 +1193,6 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
>  		DEV_RX_OFFLOAD_HEADER_SPLIT |
>  		DEV_RX_OFFLOAD_VLAN_FILTER |
>  		DEV_RX_OFFLOAD_VLAN_EXTEND |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		DEV_RX_OFFLOAD_SCATTER |
>  		DEV_RX_OFFLOAD_TIMESTAMP |
>  		DEV_RX_OFFLOAD_SECURITY |
> @@ -1211,7 +1210,6 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
>  		DEV_RX_OFFLOAD_HEADER_SPLIT |
>  		DEV_RX_OFFLOAD_VLAN_FILTER |
>  		DEV_RX_OFFLOAD_VLAN_EXTEND |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		DEV_RX_OFFLOAD_SCATTER |
>  		DEV_RX_OFFLOAD_TIMESTAMP |
>  		DEV_RX_OFFLOAD_SECURITY |
> diff --git a/drivers/net/fm10k/fm10k_ethdev.c
> b/drivers/net/fm10k/fm10k_ethdev.c
> index 5e4b361ca6c0..093021246286 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)
>  			   DEV_RX_OFFLOAD_IPV4_CKSUM  |
>  			   DEV_RX_OFFLOAD_UDP_CKSUM   |
>  			   DEV_RX_OFFLOAD_TCP_CKSUM   |
> -			   DEV_RX_OFFLOAD_JUMBO_FRAME |
>  			   DEV_RX_OFFLOAD_HEADER_SPLIT |
>  			   DEV_RX_OFFLOAD_RSS_HASH);
>  }
> diff --git a/drivers/net/hinic/hinic_pmd_ethdev.c
> b/drivers/net/hinic/hinic_pmd_ethdev.c
> index 79987bec273c..4005414aeb71 100644
> --- a/drivers/net/hinic/hinic_pmd_ethdev.c
> +++ b/drivers/net/hinic/hinic_pmd_ethdev.c
> @@ -738,7 +738,6 @@ hinic_dev_infos_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *info)
>  				DEV_RX_OFFLOAD_TCP_CKSUM |
>  				DEV_RX_OFFLOAD_VLAN_FILTER |
>  				DEV_RX_OFFLOAD_SCATTER |
> -				DEV_RX_OFFLOAD_JUMBO_FRAME |
>  				DEV_RX_OFFLOAD_TCP_LRO |
>  				DEV_RX_OFFLOAD_RSS_HASH;
> 
> diff --git a/drivers/net/hns3/hns3_ethdev.c
> b/drivers/net/hns3/hns3_ethdev.c
> index e1d465de8234..dbd4c54b18c6 100644
> --- a/drivers/net/hns3/hns3_ethdev.c
> +++ b/drivers/net/hns3/hns3_ethdev.c
> @@ -2691,7 +2691,6 @@ hns3_dev_infos_get(struct rte_eth_dev *eth_dev,
> struct rte_eth_dev_info *info)
>  				 DEV_RX_OFFLOAD_SCATTER |
>  				 DEV_RX_OFFLOAD_VLAN_STRIP |
>  				 DEV_RX_OFFLOAD_VLAN_FILTER |
> -				 DEV_RX_OFFLOAD_JUMBO_FRAME |
>  				 DEV_RX_OFFLOAD_RSS_HASH |
>  				 DEV_RX_OFFLOAD_TCP_LRO);
>  	info->tx_offload_capa = (DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM |
> diff --git a/drivers/net/hns3/hns3_ethdev_vf.c
> b/drivers/net/hns3/hns3_ethdev_vf.c
> index 3438b3650de6..eee65ac77399 100644
> --- a/drivers/net/hns3/hns3_ethdev_vf.c
> +++ b/drivers/net/hns3/hns3_ethdev_vf.c
> @@ -944,7 +944,6 @@ hns3vf_dev_infos_get(struct rte_eth_dev *eth_dev,
> struct rte_eth_dev_info *info)
>  				 DEV_RX_OFFLOAD_SCATTER |
>  				 DEV_RX_OFFLOAD_VLAN_STRIP |
>  				 DEV_RX_OFFLOAD_VLAN_FILTER |
> -				 DEV_RX_OFFLOAD_JUMBO_FRAME |
>  				 DEV_RX_OFFLOAD_RSS_HASH |
>  				 DEV_RX_OFFLOAD_TCP_LRO);
>  	info->tx_offload_capa = (DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM |
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 2824592aa62e..6a64221778fa 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -3760,7 +3760,6 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>  		DEV_RX_OFFLOAD_SCATTER |
>  		DEV_RX_OFFLOAD_VLAN_EXTEND |
>  		DEV_RX_OFFLOAD_VLAN_FILTER |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		DEV_RX_OFFLOAD_RSS_HASH;
> 
>  	dev_info->tx_queue_offload_capa =
> DEV_TX_OFFLOAD_MBUF_FAST_FREE;
> diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
> index 1d27cf2b0a01..69c282baa723 100644
> --- a/drivers/net/i40e/i40e_rxtx.c
> +++ b/drivers/net/i40e/i40e_rxtx.c
> @@ -2911,7 +2911,7 @@ i40e_rx_queue_config(struct i40e_rx_queue *rxq)
>  	rxq->max_pkt_len =
>  		RTE_MIN(hw->func_caps.rx_buf_chain_len * rxq-
> >rx_buf_len,
>  				data->mtu + I40E_ETH_OVERHEAD);
> -	if (data->dev_conf.rxmode.offloads &
> DEV_RX_OFFLOAD_JUMBO_FRAME) {
> +	if (data->mtu > RTE_ETHER_MTU) {
>  		if (rxq->max_pkt_len <= I40E_ETH_MAX_LEN ||
>  			rxq->max_pkt_len > I40E_FRAME_SIZE_MAX) {
>  			PMD_DRV_LOG(ERR, "maximum packet length must "
> diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
> index 2d43c666fdbb..2c4103ac7ef9 100644
> --- a/drivers/net/iavf/iavf_ethdev.c
> +++ b/drivers/net/iavf/iavf_ethdev.c
> @@ -588,7 +588,7 @@ iavf_init_rxq(struct rte_eth_dev *dev, struct
> iavf_rx_queue *rxq)
>  	/* Check if the jumbo frame and maximum packet length are set
>  	 * correctly.
>  	 */
> -	if (dev->data->dev_conf.rxmode.offloads &
> DEV_RX_OFFLOAD_JUMBO_FRAME) {
> +	if (dev->data->mtu & RTE_ETHER_MTU) {
>  		if (max_pkt_len <= IAVF_ETH_MAX_LEN ||
>  		    max_pkt_len > IAVF_FRAME_SIZE_MAX) {
>  			PMD_DRV_LOG(ERR, "maximum packet length must
> be "
> @@ -968,7 +968,6 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>  		DEV_RX_OFFLOAD_TCP_CKSUM |
>  		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
>  		DEV_RX_OFFLOAD_SCATTER |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		DEV_RX_OFFLOAD_VLAN_FILTER |
>  		DEV_RX_OFFLOAD_RSS_HASH;
> 
> diff --git a/drivers/net/ice/ice_dcf_ethdev.c
> b/drivers/net/ice/ice_dcf_ethdev.c
> index c3c7ad88f250..16f642566e91 100644
> --- a/drivers/net/ice/ice_dcf_ethdev.c
> +++ b/drivers/net/ice/ice_dcf_ethdev.c
> @@ -72,7 +72,7 @@ ice_dcf_init_rxq(struct rte_eth_dev *dev, struct
> ice_rx_queue *rxq)
>  	/* Check if the jumbo frame and maximum packet length are set
>  	 * correctly.
>  	 */
> -	if (dev->data->dev_conf.rxmode.offloads &
> DEV_RX_OFFLOAD_JUMBO_FRAME) {
> +	if (dev_data->mtu > RTE_ETHER_MTU) {
>  		if (max_pkt_len <= ICE_ETH_MAX_LEN ||
>  		    max_pkt_len > ICE_FRAME_SIZE_MAX) {
>  			PMD_DRV_LOG(ERR, "maximum packet length must
> be "
> @@ -683,7 +683,6 @@ ice_dcf_dev_info_get(struct rte_eth_dev *dev,
>  		DEV_RX_OFFLOAD_TCP_CKSUM |
>  		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
>  		DEV_RX_OFFLOAD_SCATTER |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		DEV_RX_OFFLOAD_VLAN_FILTER |
>  		DEV_RX_OFFLOAD_RSS_HASH;
>  	dev_info->tx_offload_capa =
> diff --git a/drivers/net/ice/ice_dcf_vf_representor.c
> b/drivers/net/ice/ice_dcf_vf_representor.c
> index b547c42f9137..d28fedc96e1a 100644
> --- a/drivers/net/ice/ice_dcf_vf_representor.c
> +++ b/drivers/net/ice/ice_dcf_vf_representor.c
> @@ -149,7 +149,6 @@ ice_dcf_vf_repr_dev_info_get(struct rte_eth_dev
> *dev,
>  		DEV_RX_OFFLOAD_TCP_CKSUM |
>  		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
>  		DEV_RX_OFFLOAD_SCATTER |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		DEV_RX_OFFLOAD_VLAN_FILTER |
>  		DEV_RX_OFFLOAD_VLAN_EXTEND |
>  		DEV_RX_OFFLOAD_RSS_HASH;
> diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
> index 703178c6d40c..17d30b735693 100644
> --- a/drivers/net/ice/ice_ethdev.c
> +++ b/drivers/net/ice/ice_ethdev.c
> @@ -3676,7 +3676,6 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
> 
>  	dev_info->rx_offload_capa =
>  		DEV_RX_OFFLOAD_VLAN_STRIP |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		DEV_RX_OFFLOAD_KEEP_CRC |
>  		DEV_RX_OFFLOAD_SCATTER |
>  		DEV_RX_OFFLOAD_VLAN_FILTER;
> diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
> index f9ef6ce57277..cc7908d32584 100644
> --- a/drivers/net/ice/ice_rxtx.c
> +++ b/drivers/net/ice/ice_rxtx.c
> @@ -267,7 +267,6 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq)
>  	struct ice_rlan_ctx rx_ctx;
>  	enum ice_status err;
>  	uint16_t buf_size;
> -	struct rte_eth_rxmode *rxmode = &dev_data->dev_conf.rxmode;
>  	uint32_t rxdid = ICE_RXDID_COMMS_OVS;
>  	uint32_t regval;
>  	struct ice_adapter *ad = rxq->vsi->adapter;
> @@ -282,7 +281,7 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq)
>  		RTE_MIN((uint32_t)ICE_SUPPORT_CHAIN_NUM * rxq-
> >rx_buf_len,
>  			frame_size);
> 
> -	if (rxmode->offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) {
> +	if (dev_data->mtu > RTE_ETHER_MTU) {
>  		if (rxq->max_pkt_len <= ICE_ETH_MAX_LEN ||
>  		    rxq->max_pkt_len > ICE_FRAME_SIZE_MAX) {
>  			PMD_DRV_LOG(ERR, "maximum packet length must "
> diff --git a/drivers/net/igc/igc_ethdev.h b/drivers/net/igc/igc_ethdev.h
> index b3473b5b1646..5e6c2ff30157 100644
> --- a/drivers/net/igc/igc_ethdev.h
> +++ b/drivers/net/igc/igc_ethdev.h
> @@ -73,7 +73,6 @@ extern "C" {
>  	DEV_RX_OFFLOAD_UDP_CKSUM   | \
>  	DEV_RX_OFFLOAD_TCP_CKSUM   | \
>  	DEV_RX_OFFLOAD_SCTP_CKSUM  | \
> -	DEV_RX_OFFLOAD_JUMBO_FRAME | \
>  	DEV_RX_OFFLOAD_KEEP_CRC    | \
>  	DEV_RX_OFFLOAD_SCATTER     | \
>  	DEV_RX_OFFLOAD_RSS_HASH)
> diff --git a/drivers/net/igc/igc_txrx.c b/drivers/net/igc/igc_txrx.c
> index 28d3076439c3..30940857eac0 100644
> --- a/drivers/net/igc/igc_txrx.c
> +++ b/drivers/net/igc/igc_txrx.c
> @@ -1099,7 +1099,7 @@ igc_rx_init(struct rte_eth_dev *dev)
>  	IGC_WRITE_REG(hw, IGC_RCTL, rctl & ~IGC_RCTL_EN);
> 
>  	/* Configure support of jumbo frames, if any. */
> -	if ((offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) != 0)
> +	if (dev->data->mtu & RTE_ETHER_MTU)
>  		rctl |= IGC_RCTL_LPE;
>  	else
>  		rctl &= ~IGC_RCTL_LPE;
> diff --git a/drivers/net/ionic/ionic_ethdev.c
> b/drivers/net/ionic/ionic_ethdev.c
> index 97447a10e46a..795980cb1ca5 100644
> --- a/drivers/net/ionic/ionic_ethdev.c
> +++ b/drivers/net/ionic/ionic_ethdev.c
> @@ -414,7 +414,6 @@ ionic_dev_info_get(struct rte_eth_dev *eth_dev,
>  		DEV_RX_OFFLOAD_IPV4_CKSUM |
>  		DEV_RX_OFFLOAD_UDP_CKSUM |
>  		DEV_RX_OFFLOAD_TCP_CKSUM |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		DEV_RX_OFFLOAD_VLAN_FILTER |
>  		DEV_RX_OFFLOAD_VLAN_STRIP |
>  		DEV_RX_OFFLOAD_SCATTER |
> diff --git a/drivers/net/ipn3ke/ipn3ke_representor.c
> b/drivers/net/ipn3ke/ipn3ke_representor.c
> index 377b96c0236a..4e5d234e8c7d 100644
> --- a/drivers/net/ipn3ke/ipn3ke_representor.c
> +++ b/drivers/net/ipn3ke/ipn3ke_representor.c
> @@ -74,8 +74,7 @@ ipn3ke_rpst_dev_infos_get(struct rte_eth_dev *ethdev,
>  		DEV_RX_OFFLOAD_TCP_CKSUM |
>  		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
>  		DEV_RX_OFFLOAD_VLAN_EXTEND |
> -		DEV_RX_OFFLOAD_VLAN_FILTER |
> -		DEV_RX_OFFLOAD_JUMBO_FRAME;
> +		DEV_RX_OFFLOAD_VLAN_FILTER;
> 
>  	dev_info->tx_queue_offload_capa =
> DEV_TX_OFFLOAD_MBUF_FAST_FREE;
>  	dev_info->tx_offload_capa =
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 574a7bffc9cb..3205c37c3b82 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -6234,7 +6234,6 @@ ixgbe_set_queue_rate_limit(struct rte_eth_dev
> *dev,
>  			   uint16_t queue_idx, uint16_t tx_rate)
>  {
>  	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data-
> >dev_private);
> -	struct rte_eth_rxmode *rxmode;
>  	uint32_t rf_dec, rf_int;
>  	uint32_t bcnrc_val;
>  	uint16_t link_speed = dev->data->dev_link.link_speed;
> @@ -6256,14 +6255,12 @@ ixgbe_set_queue_rate_limit(struct rte_eth_dev
> *dev,
>  		bcnrc_val = 0;
>  	}
> 
> -	rxmode = &dev->data->dev_conf.rxmode;
>  	/*
>  	 * Set global transmit compensation time to the MMW_SIZE in
> RTTBCNRM
>  	 * register. MMW_SIZE=0x014 if 9728-byte jumbo is supported,
> otherwise
>  	 * set as 0x4.
>  	 */
> -	if ((rxmode->offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) &&
> -	    (dev->data->mtu + IXGBE_ETH_OVERHEAD >=
> IXGBE_MAX_JUMBO_FRAME_SIZE))
> +	if (dev->data->mtu + IXGBE_ETH_OVERHEAD >=
> IXGBE_MAX_JUMBO_FRAME_SIZE)
>  		IXGBE_WRITE_REG(hw, IXGBE_RTTBCNRM,
> IXGBE_MMW_SIZE_JUMBO_FRAME);
>  	else
>  		IXGBE_WRITE_REG(hw, IXGBE_RTTBCNRM,
> IXGBE_MMW_SIZE_DEFAULT);
> diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c
> index 9bcbc445f2d0..6e64f9a0ade2 100644
> --- a/drivers/net/ixgbe/ixgbe_pf.c
> +++ b/drivers/net/ixgbe/ixgbe_pf.c
> @@ -600,15 +600,10 @@ ixgbe_set_vf_lpe(struct rte_eth_dev *dev, uint32_t
> vf, uint32_t *msgbuf)
>  		   IXGBE_MHADD_MFS_MASK) >> IXGBE_MHADD_MFS_SHIFT;
>  	if (max_frs < max_frame) {
>  		hlreg0 = IXGBE_READ_REG(hw, IXGBE_HLREG0);
> -		if (max_frame > IXGBE_ETH_MAX_LEN) {
> -			dev->data->dev_conf.rxmode.offloads |=
> -				DEV_RX_OFFLOAD_JUMBO_FRAME;
> +		if (max_frame > IXGBE_ETH_MAX_LEN)
>  			hlreg0 |= IXGBE_HLREG0_JUMBOEN;
> -		} else {
> -			dev->data->dev_conf.rxmode.offloads &=
> -				~DEV_RX_OFFLOAD_JUMBO_FRAME;
> +		else
>  			hlreg0 &= ~IXGBE_HLREG0_JUMBOEN;
> -		}
>  		IXGBE_WRITE_REG(hw, IXGBE_HLREG0, hlreg0);
> 
>  		max_frs = max_frame << IXGBE_MHADD_MFS_SHIFT;
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
> index 03991711fd6e..c223ef37c79f 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> @@ -3033,7 +3033,6 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev
> *dev)
>  		   DEV_RX_OFFLOAD_UDP_CKSUM   |
>  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
>  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> -		   DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		   DEV_RX_OFFLOAD_VLAN_FILTER |
>  		   DEV_RX_OFFLOAD_SCATTER |
>  		   DEV_RX_OFFLOAD_RSS_HASH;
> @@ -5095,7 +5094,7 @@ ixgbe_dev_rx_init(struct rte_eth_dev *dev)
>  	/*
>  	 * Configure jumbo frame support, if any.
>  	 */
> -	if (rx_conf->offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) {
> +	if ((dev->data->mtu & RTE_ETHER_MTU) != 0) {
>  		hlreg0 |= IXGBE_HLREG0_JUMBOEN;
>  		maxfrs = IXGBE_READ_REG(hw, IXGBE_MAXFRS);
>  		maxfrs &= 0x0000FFFF;
> diff --git a/drivers/net/mlx4/mlx4_rxq.c b/drivers/net/mlx4/mlx4_rxq.c
> index 4a5cfd22aa71..e73112c44749 100644
> --- a/drivers/net/mlx4/mlx4_rxq.c
> +++ b/drivers/net/mlx4/mlx4_rxq.c
> @@ -684,7 +684,6 @@ mlx4_get_rx_queue_offloads(struct mlx4_priv *priv)
>  {
>  	uint64_t offloads = DEV_RX_OFFLOAD_SCATTER |
>  			    DEV_RX_OFFLOAD_KEEP_CRC |
> -			    DEV_RX_OFFLOAD_JUMBO_FRAME |
>  			    DEV_RX_OFFLOAD_RSS_HASH;
> 
>  	if (priv->hw_csum)
> diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
> index 6f4f351222d3..0cc3bccc0825 100644
> --- a/drivers/net/mlx5/mlx5_rxq.c
> +++ b/drivers/net/mlx5/mlx5_rxq.c
> @@ -335,7 +335,6 @@ mlx5_get_rx_queue_offloads(struct rte_eth_dev
> *dev)
>  	struct mlx5_dev_config *config = &priv->config;
>  	uint64_t offloads = (DEV_RX_OFFLOAD_SCATTER |
>  			     DEV_RX_OFFLOAD_TIMESTAMP |
> -			     DEV_RX_OFFLOAD_JUMBO_FRAME |
>  			     DEV_RX_OFFLOAD_RSS_HASH);
> 
>  	if (!config->mprq.enabled)
> diff --git a/drivers/net/mvneta/mvneta_ethdev.h
> b/drivers/net/mvneta/mvneta_ethdev.h
> index ef8067790f82..6428f9ff7931 100644
> --- a/drivers/net/mvneta/mvneta_ethdev.h
> +++ b/drivers/net/mvneta/mvneta_ethdev.h
> @@ -54,8 +54,7 @@
>  #define MRVL_NETA_MRU_TO_MTU(mru)	((mru) -
> MRVL_NETA_HDRS_LEN)
> 
>  /** Rx offloads capabilities */
> -#define MVNETA_RX_OFFLOADS (DEV_RX_OFFLOAD_JUMBO_FRAME | \
> -			    DEV_RX_OFFLOAD_CHECKSUM)
> +#define MVNETA_RX_OFFLOADS (DEV_RX_OFFLOAD_CHECKSUM)
> 
>  /** Tx offloads capabilities */
>  #define MVNETA_TX_OFFLOAD_CHECKSUM
> (DEV_TX_OFFLOAD_IPV4_CKSUM | \
> diff --git a/drivers/net/mvpp2/mrvl_ethdev.c
> b/drivers/net/mvpp2/mrvl_ethdev.c
> index 5ce71661c84e..ef987b7de1b5 100644
> --- a/drivers/net/mvpp2/mrvl_ethdev.c
> +++ b/drivers/net/mvpp2/mrvl_ethdev.c
> @@ -59,7 +59,6 @@
> 
>  /** Port Rx offload capabilities */
>  #define MRVL_RX_OFFLOADS (DEV_RX_OFFLOAD_VLAN_FILTER | \
> -			  DEV_RX_OFFLOAD_JUMBO_FRAME | \
>  			  DEV_RX_OFFLOAD_CHECKSUM)
> 
>  /** Port Tx offloads capabilities */
> diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c
> index b1ce35b334da..a0bb5b9640c2 100644
> --- a/drivers/net/nfp/nfp_common.c
> +++ b/drivers/net/nfp/nfp_common.c
> @@ -369,8 +369,7 @@ nfp_check_offloads(struct rte_eth_dev *dev)
>  			ctrl |= NFP_NET_CFG_CTRL_RXVLAN;
>  	}
> 
> -	if (rxmode->offloads & DEV_RX_OFFLOAD_JUMBO_FRAME)
> -		hw->mtu = dev->data->mtu;
> +	hw->mtu = dev->data->mtu;
> 
>  	if (txmode->offloads & DEV_TX_OFFLOAD_VLAN_INSERT)
>  		ctrl |= NFP_NET_CFG_CTRL_TXVLAN;
> @@ -757,9 +756,6 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>  		.nb_mtu_seg_max = NFP_TX_MAX_MTU_SEG,
>  	};
> 
> -	/* All NFP devices support jumbo frames */
> -	dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME;
> -
>  	if (hw->cap & NFP_NET_CFG_CTRL_RSS) {
>  		dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_RSS_HASH;
> 
> diff --git a/drivers/net/octeontx/octeontx_ethdev.h
> b/drivers/net/octeontx/octeontx_ethdev.h
> index b73515de37ca..3a02824e3948 100644
> --- a/drivers/net/octeontx/octeontx_ethdev.h
> +++ b/drivers/net/octeontx/octeontx_ethdev.h
> @@ -60,7 +60,6 @@
> 
> DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | \
>  					 DEV_RX_OFFLOAD_SCATTER	         |
> \
>  					 DEV_RX_OFFLOAD_SCATTER
> 	 | \
> -					 DEV_RX_OFFLOAD_JUMBO_FRAME
> 	 | \
>  					 DEV_RX_OFFLOAD_VLAN_FILTER)
> 
>  #define OCTEONTX_TX_OFFLOADS		(
> 	   \
> diff --git a/drivers/net/octeontx2/otx2_ethdev.h
> b/drivers/net/octeontx2/otx2_ethdev.h
> index 7871e3d30bda..47ee126ed7fd 100644
> --- a/drivers/net/octeontx2/otx2_ethdev.h
> +++ b/drivers/net/octeontx2/otx2_ethdev.h
> @@ -148,7 +148,6 @@
>  	DEV_RX_OFFLOAD_SCTP_CKSUM	| \
>  	DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | \
>  	DEV_RX_OFFLOAD_SCATTER		| \
> -	DEV_RX_OFFLOAD_JUMBO_FRAME	| \
>  	DEV_RX_OFFLOAD_OUTER_UDP_CKSUM	| \
>  	DEV_RX_OFFLOAD_VLAN_STRIP	| \
>  	DEV_RX_OFFLOAD_VLAN_FILTER	| \
> diff --git a/drivers/net/octeontx_ep/otx_ep_ethdev.c
> b/drivers/net/octeontx_ep/otx_ep_ethdev.c
> index a243683d61d3..c65041a16ba7 100644
> --- a/drivers/net/octeontx_ep/otx_ep_ethdev.c
> +++ b/drivers/net/octeontx_ep/otx_ep_ethdev.c
> @@ -39,8 +39,7 @@ otx_ep_dev_info_get(struct rte_eth_dev *eth_dev,
> 
>  	devinfo->min_rx_bufsize = OTX_EP_MIN_RX_BUF_SIZE;
>  	devinfo->max_rx_pktlen = OTX_EP_MAX_PKT_SZ;
> -	devinfo->rx_offload_capa = DEV_RX_OFFLOAD_JUMBO_FRAME;
> -	devinfo->rx_offload_capa |= DEV_RX_OFFLOAD_SCATTER;
> +	devinfo->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER;
>  	devinfo->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS;
> 
>  	devinfo->max_mac_addrs = OTX_EP_MAX_MAC_ADDRS;
> diff --git a/drivers/net/octeontx_ep/otx_ep_rxtx.c
> b/drivers/net/octeontx_ep/otx_ep_rxtx.c
> index a7d433547e36..aa4dcd33cc79 100644
> --- a/drivers/net/octeontx_ep/otx_ep_rxtx.c
> +++ b/drivers/net/octeontx_ep/otx_ep_rxtx.c
> @@ -953,12 +953,6 @@ otx_ep_droq_read_packet(struct otx_ep_device
> *otx_ep,
>  	droq_pkt->l3_len = hdr_lens.l3_len;
>  	droq_pkt->l4_len = hdr_lens.l4_len;
> 
> -	if ((droq_pkt->pkt_len > (RTE_ETHER_MAX_LEN +
> OTX_CUST_DATA_LEN)) &&
> -	    !(otx_ep->rx_offloads & DEV_RX_OFFLOAD_JUMBO_FRAME)) {
> -		rte_pktmbuf_free(droq_pkt);
> -		goto oq_read_fail;
> -	}
> -
>  	if (droq_pkt->nb_segs > 1 &&
>  	    !(otx_ep->rx_offloads & DEV_RX_OFFLOAD_SCATTER)) {
>  		rte_pktmbuf_free(droq_pkt);
> diff --git a/drivers/net/qede/qede_ethdev.c
> b/drivers/net/qede/qede_ethdev.c
> index 84e23ff03418..06c3ccf20716 100644
> --- a/drivers/net/qede/qede_ethdev.c
> +++ b/drivers/net/qede/qede_ethdev.c
> @@ -1392,7 +1392,6 @@ qede_dev_info_get(struct rte_eth_dev *eth_dev,
>  				     DEV_RX_OFFLOAD_TCP_LRO	|
>  				     DEV_RX_OFFLOAD_KEEP_CRC    |
>  				     DEV_RX_OFFLOAD_SCATTER	|
> -				     DEV_RX_OFFLOAD_JUMBO_FRAME |
>  				     DEV_RX_OFFLOAD_VLAN_FILTER |
>  				     DEV_RX_OFFLOAD_VLAN_STRIP  |
>  				     DEV_RX_OFFLOAD_RSS_HASH);
> diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
> index 280e8a61f9e0..62b215f62cd6 100644
> --- a/drivers/net/sfc/sfc_rx.c
> +++ b/drivers/net/sfc/sfc_rx.c
> @@ -940,8 +940,6 @@ sfc_rx_get_dev_offload_caps(struct sfc_adapter *sa)
>  {
>  	uint64_t caps = sa->priv.dp_rx->dev_offload_capa;
> 
> -	caps |= DEV_RX_OFFLOAD_JUMBO_FRAME;
> -
>  	return caps & sfc_rx_get_offload_mask(sa);
>  }
> 
> diff --git a/drivers/net/thunderx/nicvf_ethdev.h
> b/drivers/net/thunderx/nicvf_ethdev.h
> index b8dd905d0bd6..5d38750d6313 100644
> --- a/drivers/net/thunderx/nicvf_ethdev.h
> +++ b/drivers/net/thunderx/nicvf_ethdev.h
> @@ -40,7 +40,6 @@
>  #define NICVF_RX_OFFLOAD_CAPA ( \
>  	DEV_RX_OFFLOAD_CHECKSUM    | \
>  	DEV_RX_OFFLOAD_VLAN_STRIP  | \
> -	DEV_RX_OFFLOAD_JUMBO_FRAME | \
>  	DEV_RX_OFFLOAD_SCATTER     | \
>  	DEV_RX_OFFLOAD_RSS_HASH)
> 
> diff --git a/drivers/net/txgbe/txgbe_rxtx.c b/drivers/net/txgbe/txgbe_rxtx.c
> index c6cd3803c434..0ce754fb25b0 100644
> --- a/drivers/net/txgbe/txgbe_rxtx.c
> +++ b/drivers/net/txgbe/txgbe_rxtx.c
> @@ -1953,7 +1953,6 @@ txgbe_get_rx_port_offloads(struct rte_eth_dev
> *dev)
>  		   DEV_RX_OFFLOAD_UDP_CKSUM   |
>  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
>  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> -		   DEV_RX_OFFLOAD_JUMBO_FRAME |
>  		   DEV_RX_OFFLOAD_VLAN_FILTER |
>  		   DEV_RX_OFFLOAD_RSS_HASH |
>  		   DEV_RX_OFFLOAD_SCATTER;
> diff --git a/drivers/net/virtio/virtio_ethdev.c
> b/drivers/net/virtio/virtio_ethdev.c
> index 5d341a3e23bb..a05e73cd8b60 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -2556,7 +2556,6 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
> 
>  	host_features = VIRTIO_OPS(hw)->get_features(hw);
>  	dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
> -	dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME;
>  	if (host_features & (1ULL << VIRTIO_NET_F_MRG_RXBUF))
>  		dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_SCATTER;
>  	if (host_features & (1ULL << VIRTIO_NET_F_GUEST_CSUM)) {
> diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c
> b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> index 2f40ae907dcd..0210f9140b48 100644
> --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
> +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> @@ -54,7 +54,6 @@
>  	 DEV_RX_OFFLOAD_UDP_CKSUM |	\
>  	 DEV_RX_OFFLOAD_TCP_CKSUM |	\
>  	 DEV_RX_OFFLOAD_TCP_LRO |	\
> -	 DEV_RX_OFFLOAD_JUMBO_FRAME |   \
>  	 DEV_RX_OFFLOAD_RSS_HASH)
> 
>  int vmxnet3_segs_dynfield_offset = -1;
> diff --git a/examples/ip_fragmentation/main.c
> b/examples/ip_fragmentation/main.c
> index 12062a785dc6..7c0cb093eda3 100644
> --- a/examples/ip_fragmentation/main.c
> +++ b/examples/ip_fragmentation/main.c
> @@ -150,8 +150,7 @@ static struct rte_eth_conf port_conf = {
>  			RTE_ETHER_CRC_LEN,
>  		.split_hdr_size = 0,
>  		.offloads = (DEV_RX_OFFLOAD_CHECKSUM |
> -			     DEV_RX_OFFLOAD_SCATTER |
> -			     DEV_RX_OFFLOAD_JUMBO_FRAME),
> +			     DEV_RX_OFFLOAD_SCATTER),
>  	},
>  	.txmode = {
>  		.mq_mode = ETH_MQ_TX_NONE,
> diff --git a/examples/ip_reassembly/main.c
> b/examples/ip_reassembly/main.c
> index e5c7d46d2caa..af67db49f7fb 100644
> --- a/examples/ip_reassembly/main.c
> +++ b/examples/ip_reassembly/main.c
> @@ -165,8 +165,7 @@ static struct rte_eth_conf port_conf = {
>  		.mtu = JUMBO_FRAME_MAX_SIZE - RTE_ETHER_HDR_LEN -
>  			RTE_ETHER_CRC_LEN,
>  		.split_hdr_size = 0,
> -		.offloads = (DEV_RX_OFFLOAD_CHECKSUM |
> -			     DEV_RX_OFFLOAD_JUMBO_FRAME),
> +		.offloads = DEV_RX_OFFLOAD_CHECKSUM,
>  	},
>  	.rx_adv_conf = {
>  			.rss_conf = {
> diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-
> secgw/ipsec-secgw.c
> index d032a47d1c3b..4a741bfdde4d 100644
> --- a/examples/ipsec-secgw/ipsec-secgw.c
> +++ b/examples/ipsec-secgw/ipsec-secgw.c
> @@ -2209,8 +2209,6 @@ port_init(uint16_t portid, uint64_t req_rx_offloads,
> uint64_t req_tx_offloads)
>  	printf("Creating queues: nb_rx_queue=%d nb_tx_queue=%u...\n",
>  			nb_rx_queue, nb_tx_queue);
> 
> -	if (mtu_size > RTE_ETHER_MTU)
> -		local_port_conf.rxmode.offloads |=
> DEV_RX_OFFLOAD_JUMBO_FRAME;
>  	local_port_conf.rxmode.mtu = mtu_size;
> 
>  	if (multi_seg_required()) {
> diff --git a/examples/ipv4_multicast/main.c
> b/examples/ipv4_multicast/main.c
> index b3993685ec92..63bbd7e64ceb 100644
> --- a/examples/ipv4_multicast/main.c
> +++ b/examples/ipv4_multicast/main.c
> @@ -113,7 +113,6 @@ static struct rte_eth_conf port_conf = {
>  		.mtu = JUMBO_FRAME_MAX_SIZE - RTE_ETHER_HDR_LEN -
>  			RTE_ETHER_CRC_LEN,
>  		.split_hdr_size = 0,
> -		.offloads = DEV_RX_OFFLOAD_JUMBO_FRAME,
>  	},
>  	.txmode = {
>  		.mq_mode = ETH_MQ_TX_NONE,
> diff --git a/examples/kni/main.c b/examples/kni/main.c
> index c10814c6a94f..0fd945e7e0b2 100644
> --- a/examples/kni/main.c
> +++ b/examples/kni/main.c
> @@ -790,11 +790,6 @@ kni_change_mtu_(uint16_t port_id, unsigned int
> new_mtu)
>  	}
> 
>  	memcpy(&conf, &port_conf, sizeof(conf));
> -	/* Set new MTU */
> -	if (new_mtu > RTE_ETHER_MTU)
> -		conf.rxmode.offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME;
> -	else
> -		conf.rxmode.offloads &=
> ~DEV_RX_OFFLOAD_JUMBO_FRAME;
> 
>  	conf.rxmode.mtu = new_mtu;
>  	ret = rte_eth_dev_configure(port_id, 1, 1, &conf);
> diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c
> index 7abb612ee6a4..f6dfb156ac56 100644
> --- a/examples/l3fwd-acl/main.c
> +++ b/examples/l3fwd-acl/main.c
> @@ -2000,10 +2000,8 @@ config_port_max_pkt_len(struct rte_eth_conf
> *conf,
>  			dev_info->max_mtu);
>  	conf->rxmode.mtu = max_pkt_len - overhead_len;
> 
> -	if (conf->rxmode.mtu > RTE_ETHER_MTU) {
> +	if (conf->rxmode.mtu > RTE_ETHER_MTU)
>  		conf->txmode.offloads |= DEV_TX_OFFLOAD_MULTI_SEGS;
> -		conf->rxmode.offloads |=
> DEV_RX_OFFLOAD_JUMBO_FRAME;
> -	}
> 
>  	return 0;
>  }
> diff --git a/examples/l3fwd-graph/main.c b/examples/l3fwd-graph/main.c
> index b431b9ff5f3c..a185a0512826 100644
> --- a/examples/l3fwd-graph/main.c
> +++ b/examples/l3fwd-graph/main.c
> @@ -730,10 +730,8 @@ config_port_max_pkt_len(struct rte_eth_conf *conf,
>  			dev_info->max_mtu);
>  	conf->rxmode.mtu = max_pkt_len - overhead_len;
> 
> -	if (conf->rxmode.mtu > RTE_ETHER_MTU) {
> +	if (conf->rxmode.mtu > RTE_ETHER_MTU)
>  		conf->txmode.offloads |= DEV_TX_OFFLOAD_MULTI_SEGS;
> -		conf->rxmode.offloads |=
> DEV_RX_OFFLOAD_JUMBO_FRAME;
> -	}
> 
>  	return 0;
>  }
> diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
> index e58561327c48..12b4dce77ce1 100644
> --- a/examples/l3fwd-power/main.c
> +++ b/examples/l3fwd-power/main.c
> @@ -2509,10 +2509,8 @@ config_port_max_pkt_len(struct rte_eth_conf
> *conf,
>  			dev_info->max_mtu);
>  	conf->rxmode.mtu = max_pkt_len - overhead_len;
> 
> -	if (conf->rxmode.mtu > RTE_ETHER_MTU) {
> +	if (conf->rxmode.mtu > RTE_ETHER_MTU)
>  		conf->txmode.offloads |= DEV_TX_OFFLOAD_MULTI_SEGS;
> -		conf->rxmode.offloads |=
> DEV_RX_OFFLOAD_JUMBO_FRAME;
> -	}
> 
>  	return 0;
>  }
> diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
> index cb9bc7ad6002..22d35749410b 100644
> --- a/examples/l3fwd/main.c
> +++ b/examples/l3fwd/main.c
> @@ -987,10 +987,8 @@ config_port_max_pkt_len(struct rte_eth_conf *conf,
>  			dev_info->max_mtu);
>  	conf->rxmode.mtu = max_pkt_len - overhead_len;
> 
> -	if (conf->rxmode.mtu > RTE_ETHER_MTU) {
> +	if (conf->rxmode.mtu > RTE_ETHER_MTU)
>  		conf->txmode.offloads |= DEV_TX_OFFLOAD_MULTI_SEGS;
> -		conf->rxmode.offloads |=
> DEV_RX_OFFLOAD_JUMBO_FRAME;
> -	}
> 
>  	return 0;
>  }
> diff --git a/examples/performance-thread/l3fwd-thread/main.c
> b/examples/performance-thread/l3fwd-thread/main.c
> index b6cddc8c7b51..8fc3a7c675a2 100644
> --- a/examples/performance-thread/l3fwd-thread/main.c
> +++ b/examples/performance-thread/l3fwd-thread/main.c
> @@ -3493,10 +3493,8 @@ config_port_max_pkt_len(struct rte_eth_conf
> *conf,
>  			dev_info->max_mtu);
>  	conf->rxmode.mtu = max_pkt_len - overhead_len;
> 
> -	if (conf->rxmode.mtu > RTE_ETHER_MTU) {
> +	if (conf->rxmode.mtu > RTE_ETHER_MTU)
>  		conf->txmode.offloads |= DEV_TX_OFFLOAD_MULTI_SEGS;
> -		conf->rxmode.offloads |=
> DEV_RX_OFFLOAD_JUMBO_FRAME;
> -	}
> 
>  	return 0;
>  }
> diff --git a/examples/vhost/main.c b/examples/vhost/main.c
> index da381b41c0c5..a9c207124153 100644
> --- a/examples/vhost/main.c
> +++ b/examples/vhost/main.c
> @@ -631,11 +631,8 @@ us_vhost_parse_args(int argc, char **argv)
>  				return -1;
>  			}
>  			mergeable = !!ret;
> -			if (ret) {
> -				vmdq_conf_default.rxmode.offloads |=
> -					DEV_RX_OFFLOAD_JUMBO_FRAME;
> +			if (ret)
>  				vmdq_conf_default.rxmode.mtu =
> MAX_MTU;
> -			}
>  			break;
> 
>  		case OPT_STATS_NUM:
> diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
> index ce0ed509d28f..c2b624aba1a0 100644
> --- a/lib/ethdev/rte_ethdev.c
> +++ b/lib/ethdev/rte_ethdev.c
> @@ -118,7 +118,6 @@ static const struct {
>  	RTE_RX_OFFLOAD_BIT2STR(HEADER_SPLIT),
>  	RTE_RX_OFFLOAD_BIT2STR(VLAN_FILTER),
>  	RTE_RX_OFFLOAD_BIT2STR(VLAN_EXTEND),
> -	RTE_RX_OFFLOAD_BIT2STR(JUMBO_FRAME),
>  	RTE_RX_OFFLOAD_BIT2STR(SCATTER),
>  	RTE_RX_OFFLOAD_BIT2STR(TIMESTAMP),
>  	RTE_RX_OFFLOAD_BIT2STR(SECURITY),
> @@ -1485,13 +1484,6 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t
> nb_rx_q, uint16_t nb_tx_q,
>  		goto rollback;
>  	}
> 
> -	if ((dev_conf->rxmode.offloads & DEV_RX_OFFLOAD_JUMBO_FRAME)
> == 0) {
> -		if (dev->data->dev_conf.rxmode.mtu <
> RTE_ETHER_MIN_MTU ||
> -				dev->data->dev_conf.rxmode.mtu >
> RTE_ETHER_MTU)
> -			/* Use default value */
> -			dev->data->dev_conf.rxmode.mtu =
> RTE_ETHER_MTU;
> -	}
> -
>  	dev->data->mtu = dev->data->dev_conf.rxmode.mtu;
> 
>  	/*
> @@ -3639,7 +3631,6 @@ rte_eth_dev_set_mtu(uint16_t port_id, uint16_t
> mtu)
>  	int ret;
>  	struct rte_eth_dev_info dev_info;
>  	struct rte_eth_dev *dev;
> -	int is_jumbo_frame_capable = 0;
> 
>  	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
>  	dev = &rte_eth_devices[port_id];
> @@ -3667,27 +3658,12 @@ rte_eth_dev_set_mtu(uint16_t port_id, uint16_t
> mtu)
>  		frame_size = mtu + overhead_len;
>  		if (mtu < RTE_ETHER_MIN_MTU || frame_size >
> dev_info.max_rx_pktlen)
>  			return -EINVAL;
> -
> -		if ((dev_info.rx_offload_capa &
> DEV_RX_OFFLOAD_JUMBO_FRAME) != 0)
> -			is_jumbo_frame_capable = 1;
>  	}
> 
> -	if (mtu > RTE_ETHER_MTU && is_jumbo_frame_capable == 0)
> -		return -EINVAL;
> -
>  	ret = (*dev->dev_ops->mtu_set)(dev, mtu);
> -	if (ret == 0) {
> +	if (ret == 0)
>  		dev->data->mtu = mtu;
> 
> -		/* switch to jumbo mode if needed */
> -		if (mtu > RTE_ETHER_MTU)
> -			dev->data->dev_conf.rxmode.offloads |=
> -				DEV_RX_OFFLOAD_JUMBO_FRAME;
> -		else
> -			dev->data->dev_conf.rxmode.offloads &=
> -				~DEV_RX_OFFLOAD_JUMBO_FRAME;
> -	}
> -
>  	return eth_err(port_id, ret);
>  }
> 
> diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
> index 9fba2bd73c84..4d0f956a4b28 100644
> --- a/lib/ethdev/rte_ethdev.h
> +++ b/lib/ethdev/rte_ethdev.h
> @@ -1389,7 +1389,6 @@ struct rte_eth_conf {
>  #define DEV_RX_OFFLOAD_HEADER_SPLIT	0x00000100
>  #define DEV_RX_OFFLOAD_VLAN_FILTER	0x00000200
>  #define DEV_RX_OFFLOAD_VLAN_EXTEND	0x00000400
> -#define DEV_RX_OFFLOAD_JUMBO_FRAME	0x00000800
>  #define DEV_RX_OFFLOAD_SCATTER		0x00002000
>  /**
>   * Timestamp is set by the driver in
> RTE_MBUF_DYNFIELD_TIMESTAMP_NAME
> --
> 2.31.1

Reviewed-by: Rosen Xu <rosen.xu@intel.com>

  reply	other threads:[~2021-10-08  8:49 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-09 17:29 [dpdk-dev] [PATCH 1/4] ethdev: fix max Rx packet length Ferruh Yigit
2021-07-09 17:29 ` [dpdk-dev] [PATCH 2/4] ethdev: move jumbo frame offload check to library Ferruh Yigit
2021-07-13 13:48   ` Andrew Rybchenko
2021-07-21 12:26     ` Ferruh Yigit
2021-07-18  7:49   ` Xu, Rosen
2021-07-19 14:38   ` Ajit Khaparde
2021-07-09 17:29 ` [dpdk-dev] [PATCH 3/4] ethdev: move check to library for MTU set Ferruh Yigit
2021-07-13 13:56   ` Andrew Rybchenko
2021-07-18  7:52   ` Xu, Rosen
2021-07-09 17:29 ` [dpdk-dev] [PATCH 4/4] ethdev: remove jumbo offload flag Ferruh Yigit
2021-07-13 14:07   ` Andrew Rybchenko
2021-07-21 12:26     ` Ferruh Yigit
2021-07-21 12:39     ` Ferruh Yigit
2021-07-18  7:53   ` Xu, Rosen
2021-07-13 12:47 ` [dpdk-dev] [PATCH 1/4] ethdev: fix max Rx packet length Andrew Rybchenko
2021-07-21 16:46   ` Ferruh Yigit
2021-07-22  1:31     ` Ajit Khaparde
2021-07-22 10:27       ` Ferruh Yigit
2021-07-22 10:38         ` Andrew Rybchenko
2021-07-18  7:45 ` Xu, Rosen
2021-07-19  3:35 ` Huisong Li
2021-07-21 15:29   ` Ferruh Yigit
2021-07-22  7:21     ` Huisong Li
2021-07-22 10:12       ` Ferruh Yigit
2021-07-22 10:15         ` Andrew Rybchenko
2021-07-22 14:43           ` Stephen Hemminger
2021-09-17  1:08             ` Min Hu (Connor)
2021-09-17  8:04               ` Ferruh Yigit
2021-09-17  8:16                 ` Min Hu (Connor)
2021-09-17  8:17                 ` Min Hu (Connor)
2021-07-22 17:21 ` [dpdk-dev] [PATCH v2 1/6] " Ferruh Yigit
2021-07-22 17:21   ` [dpdk-dev] [PATCH v2 2/6] ethdev: move jumbo frame offload check to library Ferruh Yigit
2021-07-22 17:21   ` [dpdk-dev] [PATCH v2 3/6] ethdev: move check to library for MTU set Ferruh Yigit
2021-07-22 17:21   ` [dpdk-dev] [PATCH v2 4/6] ethdev: remove jumbo offload flag Ferruh Yigit
2021-07-22 17:21   ` [dpdk-dev] [PATCH v2 5/6] ethdev: unify MTU checks Ferruh Yigit
2021-07-23  3:29     ` Huisong Li
2021-07-22 17:21   ` [dpdk-dev] [PATCH v2 6/6] examples/ip_reassembly: remove unused parameter Ferruh Yigit
2021-10-01 14:36   ` [dpdk-dev] [PATCH v3 1/6] ethdev: fix max Rx packet length Ferruh Yigit
2021-10-01 14:36     ` [dpdk-dev] [PATCH v3 2/6] ethdev: move jumbo frame offload check to library Ferruh Yigit
2021-10-04  5:08       ` Somnath Kotur
2021-10-01 14:36     ` [dpdk-dev] [PATCH v3 3/6] ethdev: move check to library for MTU set Ferruh Yigit
2021-10-04  5:09       ` Somnath Kotur
2021-10-01 14:36     ` [dpdk-dev] [PATCH v3 4/6] ethdev: remove jumbo offload flag Ferruh Yigit
     [not found]       ` <CAOBf=muYkU2dwgi3iC8Q7pdSNTJsMUwWYdXj14KeN_=_mUGa0w@mail.gmail.com>
2021-10-04  7:55         ` Somnath Kotur
2021-10-05 16:48           ` Ferruh Yigit
2021-10-01 14:36     ` [dpdk-dev] [PATCH v3 5/6] ethdev: unify MTU checks Ferruh Yigit
2021-10-01 14:36     ` [dpdk-dev] [PATCH v3 6/6] examples/ip_reassembly: remove unused parameter Ferruh Yigit
2021-10-01 15:07     ` [dpdk-dev] [PATCH v3 1/6] ethdev: fix max Rx packet length Stephen Hemminger
2021-10-05 16:46       ` Ferruh Yigit
2021-10-05 17:16     ` [dpdk-dev] [PATCH v4 " Ferruh Yigit
2021-10-05 17:16       ` [dpdk-dev] [PATCH v4 2/6] ethdev: move jumbo frame offload check to library Ferruh Yigit
2021-10-08  8:39         ` Xu, Rosen
2021-10-05 17:16       ` [dpdk-dev] [PATCH v4 3/6] ethdev: move check to library for MTU set Ferruh Yigit
2021-10-05 17:16       ` [dpdk-dev] [PATCH v4 4/6] ethdev: remove jumbo offload flag Ferruh Yigit
2021-10-08  8:38         ` Xu, Rosen [this message]
2021-10-05 17:16       ` [dpdk-dev] [PATCH v4 5/6] ethdev: unify MTU checks Ferruh Yigit
2021-10-05 17:16       ` [dpdk-dev] [PATCH v4 6/6] examples/ip_reassembly: remove unused parameter Ferruh Yigit
2021-10-05 22:07       ` [dpdk-dev] [PATCH v4 1/6] ethdev: fix max Rx packet length Ajit Khaparde
2021-10-06  6:08         ` Somnath Kotur
2021-10-08  8:36       ` Xu, Rosen
2021-10-10  6:30       ` Matan Azrad
2021-10-11 21:59         ` Ferruh Yigit
2021-10-12  7:03           ` Matan Azrad
2021-10-12 11:03             ` Ferruh Yigit
2021-10-07 16:56     ` [dpdk-dev] [PATCH v5 " Ferruh Yigit
2021-10-07 16:56       ` [dpdk-dev] [PATCH v5 2/6] ethdev: move jumbo frame offload check to library Ferruh Yigit
2021-10-08 17:20         ` Ananyev, Konstantin
2021-10-09 10:58         ` lihuisong (C)
2021-10-07 16:56       ` [dpdk-dev] [PATCH v5 3/6] ethdev: move check to library for MTU set Ferruh Yigit
2021-10-08 17:19         ` Ananyev, Konstantin
2021-10-07 16:56       ` [dpdk-dev] [PATCH v5 4/6] ethdev: remove jumbo offload flag Ferruh Yigit
2021-10-08 17:11         ` Ananyev, Konstantin
2021-10-09 11:09           ` lihuisong (C)
2021-10-10  5:46         ` Matan Azrad
2021-10-07 16:56       ` [dpdk-dev] [PATCH v5 5/6] ethdev: unify MTU checks Ferruh Yigit
2021-10-08 16:51         ` Ananyev, Konstantin
2021-10-11 19:50           ` Ferruh Yigit
2021-10-09 11:43         ` lihuisong (C)
2021-10-11 20:15           ` Ferruh Yigit
2021-10-12  4:02             ` lihuisong (C)
2021-10-07 16:56       ` [dpdk-dev] [PATCH v5 6/6] examples/ip_reassembly: remove unused parameter Ferruh Yigit
2021-10-08 16:53         ` Ananyev, Konstantin
2021-10-08 15:57       ` [dpdk-dev] [PATCH v5 1/6] ethdev: fix max Rx packet length Ananyev, Konstantin
2021-10-11 19:47         ` Ferruh Yigit
2021-10-09 10:56       ` lihuisong (C)
2021-10-11 23:53     ` [dpdk-dev] [PATCH v6 " Ferruh Yigit
2021-10-11 23:53       ` [dpdk-dev] [PATCH v6 2/6] ethdev: move jumbo frame offload check to library Ferruh Yigit
2021-10-11 23:53       ` [dpdk-dev] [PATCH v6 3/6] ethdev: move check to library for MTU set Ferruh Yigit
2021-10-11 23:53       ` [dpdk-dev] [PATCH v6 4/6] ethdev: remove jumbo offload flag Ferruh Yigit
2021-10-12 17:20         ` Hyong Youb Kim (hyonkim)
2021-10-13  7:16         ` Michał Krawczyk
2021-10-11 23:53       ` [dpdk-dev] [PATCH v6 5/6] ethdev: unify MTU checks Ferruh Yigit
2021-10-12  5:58         ` Andrew Rybchenko
2021-10-11 23:53       ` [dpdk-dev] [PATCH v6 6/6] examples/ip_reassembly: remove unused parameter Ferruh Yigit
2021-10-12  6:02       ` [dpdk-dev] [PATCH v6 1/6] ethdev: fix max Rx packet length Andrew Rybchenko
2021-10-12  9:42       ` Ananyev, Konstantin
2021-10-13  7:08       ` Xu, Rosen
2021-10-15  1:31       ` Hyong Youb Kim (hyonkim)
2021-10-16  0:24       ` Ferruh Yigit
2021-10-18  8:54         ` Ferruh Yigit
2021-10-18 13:48     ` [dpdk-dev] [PATCH v7 " Ferruh Yigit
2021-10-18 13:48       ` [dpdk-dev] [PATCH v7 2/6] ethdev: move jumbo frame offload check to library Ferruh Yigit
2021-10-18 13:48       ` [dpdk-dev] [PATCH v7 3/6] ethdev: move check to library for MTU set Ferruh Yigit
2021-10-18 13:48       ` [dpdk-dev] [PATCH v7 4/6] ethdev: remove jumbo offload flag Ferruh Yigit
2021-10-21  0:43         ` Thomas Monjalon
2021-10-22 11:25           ` Ferruh Yigit
2021-10-22 11:29             ` Andrew Rybchenko
2021-10-18 13:48       ` [dpdk-dev] [PATCH v7 5/6] ethdev: unify MTU checks Ferruh Yigit
2021-10-18 13:48       ` [dpdk-dev] [PATCH v7 6/6] examples/ip_reassembly: remove unused parameter Ferruh Yigit
2021-10-18 17:31       ` [dpdk-dev] [PATCH v7 1/6] ethdev: fix max Rx packet length Ferruh Yigit
2021-11-05 14:19         ` Xueming(Steven) Li
2021-11-05 14:39           ` Ferruh Yigit

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=BYAPR11MB2901756D12CD172C22930F4D89B29@BYAPR11MB2901.namprd11.prod.outlook.com \
    --to=rosen.xu@intel.com \
    --cc=aboyer@pensando.io \
    --cc=ajit.khaparde@broadcom.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=asomalap@amd.com \
    --cc=beilei.xing@intel.com \
    --cc=chas3@att.com \
    --cc=chenbo.xia@intel.com \
    --cc=cloud.wangxiaoyun@huawei.com \
    --cc=david.hunt@intel.com \
    --cc=dev@dpdk.org \
    --cc=dsinghrawat@marvell.com \
    --cc=evgenys@amazon.com \
    --cc=ferruh.yigit@intel.com \
    --cc=g.singh@nxp.com \
    --cc=gakhil@marvell.com \
    --cc=grive@u256.net \
    --cc=haiyue.wang@intel.com \
    --cc=heinrich.kuhn@corigine.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=hkalra@marvell.com \
    --cc=humin29@huawei.com \
    --cc=hyonkim@cisco.com \
    --cc=igorch@amazon.com \
    --cc=irusskikh@marvell.com \
    --cc=jerinj@marvell.com \
    --cc=jianwang@trustnetic.com \
    --cc=jiawenwu@trustnetic.com \
    --cc=jingjing.wu@intel.com \
    --cc=john.mcnamara@intel.com \
    --cc=johndale@cisco.com \
    --cc=kirankumark@marvell.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=lironh@marvell.com \
    --cc=matan@nvidia.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=mczekaj@marvell.com \
    --cc=mk@semihalf.com \
    --cc=mw@semihalf.com \
    --cc=ndabilpuram@marvell.com \
    --cc=oulijun@huawei.com \
    --cc=pnalla@marvell.com \
    --cc=qi.z.zhang@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=radhac@marvell.com \
    --cc=radu.nicolau@intel.com \
    --cc=rahul.lakkireddy@chelsio.com \
    --cc=rmody@marvell.com \
    --cc=sachin.saxena@oss.nxp.com \
    --cc=shaibran@amazon.com \
    --cc=shshaikh@marvell.com \
    --cc=skori@marvell.com \
    --cc=skoteshwar@marvell.com \
    --cc=somnath.kotur@broadcom.com \
    --cc=thomas@monjalon.net \
    --cc=vburru@marvell.com \
    --cc=viacheslavo@nvidia.com \
    --cc=xiao.w.wang@intel.com \
    --cc=xiaoyun.li@intel.com \
    --cc=xuanziyang2@huawei.com \
    --cc=yisen.zhuang@huawei.com \
    --cc=yongwang@vmware.com \
    --cc=zhouguoyang@huawei.com \
    --cc=zr@semihalf.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).