[v3,4/6] ethdev: remove jumbo offload flag

Message ID 20211001143624.3744505-4-ferruh.yigit@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series [v3,1/6] ethdev: fix max Rx packet length |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Ferruh Yigit Oct. 1, 2021, 2:36 p.m. UTC
  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 explicitly set this flag to enable jumbo
frames, this can be deducted 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>
---
 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(-)
  

Comments

Somnath Kotur Oct. 4, 2021, 7:55 a.m. UTC | #1
On Mon, Oct 4, 2021 at 10:42 AM Somnath Kotur
<somnath.kotur@broadcom.com> wrote:
>
> On Fri, Oct 1, 2021 at 8:07 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> >
> > 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 explicitly set this flag to enable jumbo
> application setting this flag explicitly sounds better?
> > frames, this can be deducted by driver by comparing requested 'mtu' to
> typo, think you meant 'deduced' ? :)
>
> > '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>
> > ---
> >  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 |
>
> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
>
> > 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 b93e314d3d0c..f27746ae295e 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 8f14a494203a..b6d79a51fa8c 100644
> > --- a/drivers/net/ice/ice_dcf_ethdev.c
> > +++ b/drivers/net/ice/ice_dcf_ethdev.c
> > @@ -71,7 +71,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 "
> > @@ -682,7 +682,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 02c06d4da8bc..9b39e9c023ef 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
> >
  
Ferruh Yigit Oct. 5, 2021, 4:48 p.m. UTC | #2
On 10/4/2021 8:55 AM, Somnath Kotur wrote:
> On Mon, Oct 4, 2021 at 10:42 AM Somnath Kotur
> <somnath.kotur@broadcom.com>  wrote:
>> On Fri, Oct 1, 2021 at 8:07 PM Ferruh Yigit<ferruh.yigit@intel.com>  wrote:
>>> 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 explicitly set this flag to enable jumbo
>> application setting this flag explicitly sounds better?

ack

>>> frames, this can be deducted by driver by comparing requested 'mtu' to
>> typo, think you meant 'deduced' ?:)

yep.

Thanks Somnath, I am sending a new version with above fixes.
  

Patch

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 b93e314d3d0c..f27746ae295e 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 8f14a494203a..b6d79a51fa8c 100644
--- a/drivers/net/ice/ice_dcf_ethdev.c
+++ b/drivers/net/ice/ice_dcf_ethdev.c
@@ -71,7 +71,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 "
@@ -682,7 +682,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 02c06d4da8bc..9b39e9c023ef 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