On Thu, Dec 17, 2020 at 09:23:02AM +0000, Steve Yang wrote: > The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition, but > the Ether overhead is larger than 18 when it supports dual VLAN tags. > That will cause the jumbo flag rx offload is wrong when MTU size is > 'RTE_ETHER_MTU'. > > This fix will change the boundary condition with 'RTE_ETHER_MTU' and > overhead. > > Fixes: 0e2efd02db58 ("net/octeontx2: add MTU set operation") > > Signed-off-by: Steve Yang <stevex.y...@intel.com> > --- > drivers/net/octeontx2/otx2_ethdev.h | 2 ++ > drivers/net/octeontx2/otx2_ethdev_ops.c | 2 +- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/octeontx2/otx2_ethdev.h > b/drivers/net/octeontx2/otx2_ethdev.h > index 3b9871f4dc..99f0469d89 100644 > --- a/drivers/net/octeontx2/otx2_ethdev.h > +++ b/drivers/net/octeontx2/otx2_ethdev.h > @@ -51,6 +51,8 @@ > /* ETH_HLEN+ETH_FCS+2*VLAN_HLEN */ > #define NIX_L2_OVERHEAD \ > (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN + 8) > +#define NIX_L2_MAX_LEN \ > + (RTE_ETHER_MTU + NIX_L2_OVERHEAD) > > /* HW config of frame size doesn't include FCS */ > #define NIX_MAX_HW_FRS 9212 > diff --git a/drivers/net/octeontx2/otx2_ethdev_ops.c > b/drivers/net/octeontx2/otx2_ethdev_ops.c > index b36d37b9f7..963cc285ed 100644 > --- a/drivers/net/octeontx2/otx2_ethdev_ops.c > +++ b/drivers/net/octeontx2/otx2_ethdev_ops.c > @@ -58,7 +58,7 @@ otx2_nix_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu) > if (rc) > return rc; > > - if (frame_size > RTE_ETHER_MAX_LEN) > + if (frame_size > NIX_L2_MAX_LEN) > dev->rx_offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME; > else > dev->rx_offloads &= ~DEV_RX_OFFLOAD_JUMBO_FRAME; > -- > 2.17.1 >
Acked-by: Nithin Dabilpuram <ndabilpu...@marvell.com>