Acked-by: Jeff Guo <jia....@intel.com>

> -----Original Message-----
> From: Steve Yang <stevex.y...@intel.com>
> Sent: Thursday, December 17, 2020 5:23 PM
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo...@intel.com>; Xing, Beilei
> <beilei.x...@intel.com>; Iremonger, Bernard
> <bernard.iremon...@intel.com>; asoma...@amd.com;
> rahul.lakkire...@chelsio.com; hemant.agra...@nxp.com;
> sachin.sax...@oss.nxp.com; Guo, Jia <jia....@intel.com>; Wang, Haiyue
> <haiyue.w...@intel.com>; g.si...@nxp.com; xuanziya...@huawei.com;
> cloud.wangxiao...@huawei.com; zhouguoy...@huawei.com;
> xavier.hu...@huawei.com; humi...@huawei.com;
> yisen.zhu...@huawei.com; ouli...@huawei.com; Wu, Jingjing
> <jingjing...@intel.com>; Yang, Qiming <qiming.y...@intel.com>; Zhang, Qi
> Z <qi.z.zh...@intel.com>; Xu, Rosen <rosen...@intel.com>;
> sthot...@marvell.com; sriniva...@marvell.com;
> heinrich.k...@netronome.com; hka...@marvell.com; jer...@marvell.com;
> ndabilpu...@marvell.com; kirankum...@marvell.com;
> rm...@marvell.com; shsha...@marvell.com;
> andrew.rybche...@oktetlabs.ru; mcze...@marvell.com;
> tho...@monjalon.net; Yigit, Ferruh <ferruh.yi...@intel.com>;
> ivan.bo...@6wind.com; Ananyev, Konstantin
> <konstantin.anan...@intel.com>; samuel.gauth...@6wind.com;
> david.march...@6wind.com; shah...@mellanox.com;
> step...@networkplumber.org; maxime.coque...@redhat.com;
> olivier.m...@6wind.com; lihuis...@huawei.com; shreyansh.j...@nxp.com;
> wei....@intel.com; fengchuns...@huawei.com; chenhao...@huawei.com;
> tangchengch...@hisilicon.com; Zhang, Helin <helin.zh...@intel.com>;
> yanglong...@intel.com; xiaolong...@intel.com; Xu, Ting
> <ting...@intel.com>; Li, Xiaoyun <xiaoyun...@intel.com>; Wei, Dan
> <dan....@intel.com>; Pei, Andy <andy....@intel.com>;
> vattun...@marvell.com; sk...@marvell.com; sony.cha...@qlogic.com;
> Richardson, Bruce <bruce.richard...@intel.com>; ivan.ma...@oktetlabs.ru;
> r...@semihalf.com; slawomir.ro...@semihalf.com;
> kamil.rytarow...@caviumnetworks.com; Zhao1, Wei <wei.zh...@intel.com>;
> Jiang, JunyuX <junyux.ji...@intel.com>; kuma...@chelsio.com;
> girish.nandibasa...@amd.com; rolf.neugeba...@netronome.com;
> alejandro.luc...@netronome.com; Yang, SteveX <stevex.y...@intel.com>
> Subject: [PATCH v2 16/22] net/ixgbe: fix the jumbo frame flag condition
> 
> The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition.
> If the Ether overhead is larger than 18 when it supports VLAN tag, that will
> cause the jumbo flag rx offload is wrong when MTU size is 'RTE_ETHER_MTU'.
> 
> This fix will normalize the boundary condition with 'RTE_ETHER_MTU'
> and overhead even though current overhead is 18.
> 
> Fixes: 59d0ecdbf0e1 ("ethdev: MTU accessors")
> Fixes: 95a27b3ba5f5 ("net/ixgbe: enable jumbo frame for VF")
> 
> Signed-off-by: Steve Yang <stevex.y...@intel.com>
> ---
>  drivers/net/ixgbe/ixgbe_ethdev.c | 2 +-  drivers/net/ixgbe/ixgbe_ethdev.h
> | 3 +++
>  drivers/net/ixgbe/ixgbe_pf.c     | 2 +-
>  3 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index d7a1806ab8..fa0f5afd03 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -5173,7 +5173,7 @@ ixgbe_dev_mtu_set(struct rte_eth_dev *dev,
> uint16_t mtu)
>       hlreg0 = IXGBE_READ_REG(hw, IXGBE_HLREG0);
> 
>       /* switch to jumbo mode if needed */
> -     if (frame_size > RTE_ETHER_MAX_LEN) {
> +     if (frame_size > IXGBE_ETH_MAX_LEN) {
>               dev->data->dev_conf.rxmode.offloads |=
>                       DEV_RX_OFFLOAD_JUMBO_FRAME;
>               hlreg0 |= IXGBE_HLREG0_JUMBOEN;
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h
> b/drivers/net/ixgbe/ixgbe_ethdev.h
> index 3d35ea791b..a0ce18ca24 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.h
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.h
> @@ -104,6 +104,9 @@
>  /* The overhead from MTU to max frame size. */  #define
> IXGBE_ETH_OVERHEAD (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN)
> 
> +/* The max frame size with default MTU */ #define IXGBE_ETH_MAX_LEN
> +(RTE_ETHER_MTU + IXGBE_ETH_OVERHEAD)
> +
>  /* bit of VXLAN tunnel type | 7 bits of zeros  | 8 bits of zeros*/
>  #define IXGBE_FDIR_VXLAN_TUNNEL_TYPE    0x8000
>  /* bit of NVGRE tunnel type | 7 bits of zeros  | 8 bits of zeros*/ diff --git
> a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c index
> 833863af5a..89698e8470 100644
> --- a/drivers/net/ixgbe/ixgbe_pf.c
> +++ b/drivers/net/ixgbe/ixgbe_pf.c
> @@ -575,7 +575,7 @@ ixgbe_set_vf_lpe(struct rte_eth_dev *dev,
> __rte_unused uint32_t vf, uint32_t *ms
>                  IXGBE_MHADD_MFS_MASK) >>
> IXGBE_MHADD_MFS_SHIFT;
>       if (max_frs < new_mtu) {
>               hlreg0 = IXGBE_READ_REG(hw, IXGBE_HLREG0);
> -             if (new_mtu > RTE_ETHER_MAX_LEN) {
> +             if (new_mtu > IXGBE_ETH_MAX_LEN) {
>                       dev->data->dev_conf.rxmode.offloads |=
>                               DEV_RX_OFFLOAD_JUMBO_FRAME;
>                       hlreg0 |= IXGBE_HLREG0_JUMBOEN;
> --
> 2.17.1

Reply via email to