From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C3765A09F6; Fri, 18 Dec 2020 03:44:11 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A087FCA2C; Fri, 18 Dec 2020 03:44:10 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id B03E5CA2A for ; Fri, 18 Dec 2020 03:44:08 +0100 (CET) IronPort-SDR: fxKdgMysQ/0/+IVkd/QaO5u33+f3Bj2Sw5uq8HgvRKPa/8jhx6msRuNILiD2/R8Mo2Yqr8gZp6 L9TP7b1ze+8Q== X-IronPort-AV: E=McAfee;i="6000,8403,9838"; a="171865140" X-IronPort-AV: E=Sophos;i="5.78,428,1599548400"; d="scan'208";a="171865140" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Dec 2020 18:44:06 -0800 IronPort-SDR: P4v71Wy2dnSIBBLPtWLI6lP29FNQT3VsvRvWeCAwIM2ofUIIOJQptJYJWV34PaYLKxK+8dOoVx aRmpspdgwiwg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,428,1599548400"; d="scan'208";a="370311778" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by orsmga008.jf.intel.com with ESMTP; 17 Dec 2020 18:44:05 -0800 Received: from shsmsx604.ccr.corp.intel.com (10.109.6.214) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 17 Dec 2020 18:44:04 -0800 Received: from shsmsx601.ccr.corp.intel.com (10.109.6.141) by SHSMSX604.ccr.corp.intel.com (10.109.6.214) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 18 Dec 2020 10:44:02 +0800 Received: from shsmsx601.ccr.corp.intel.com ([10.109.6.141]) by SHSMSX601.ccr.corp.intel.com ([10.109.6.141]) with mapi id 15.01.1713.004; Fri, 18 Dec 2020 10:44:02 +0800 From: "Guo, Jia" To: "Yang, SteveX" , "dev@dpdk.org" CC: "Lu, Wenzhuo" , "Xing, Beilei" , "Iremonger, Bernard" , "asomalap@amd.com" , "rahul.lakkireddy@chelsio.com" , "hemant.agrawal@nxp.com" , "sachin.saxena@oss.nxp.com" , "Wang, Haiyue" , "g.singh@nxp.com" , "xuanziyang2@huawei.com" , "cloud.wangxiaoyun@huawei.com" , "zhouguoyang@huawei.com" , "xavier.huwei@huawei.com" , "humin29@huawei.com" , "yisen.zhuang@huawei.com" , "oulijun@huawei.com" , "Wu, Jingjing" , "Yang, Qiming" , "Zhang, Qi Z" , "Xu, Rosen" , "sthotton@marvell.com" , "srinivasan@marvell.com" , "heinrich.kuhn@netronome.com" , "hkalra@marvell.com" , "jerinj@marvell.com" , "ndabilpuram@marvell.com" , "kirankumark@marvell.com" , "rmody@marvell.com" , "shshaikh@marvell.com" , "andrew.rybchenko@oktetlabs.ru" , "mczekaj@marvell.com" , "thomas@monjalon.net" , "Yigit, Ferruh" , "ivan.boule@6wind.com" , "Ananyev, Konstantin" , "samuel.gauthier@6wind.com" , "david.marchand@6wind.com" , "shahafs@mellanox.com" , "stephen@networkplumber.org" , "maxime.coquelin@redhat.com" , "olivier.matz@6wind.com" , "lihuisong@huawei.com" , "shreyansh.jain@nxp.com" , "wei.dai@intel.com" , "fengchunsong@huawei.com" , "chenhao164@huawei.com" , "tangchengchang@hisilicon.com" , "Zhang, Helin" , "yanglong.wu@intel.com" , "xiaolong.ye@intel.com" , "Xu, Ting" , "Li, Xiaoyun" , "Wei, Dan" , "Pei, Andy" , "vattunuru@marvell.com" , "skori@marvell.com" , "sony.chacko@qlogic.com" , "Richardson, Bruce" , "ivan.malov@oktetlabs.ru" , "rad@semihalf.com" , "slawomir.rosek@semihalf.com" , "kamil.rytarowski@caviumnetworks.com" , "Zhao1, Wei" , "Jiang, JunyuX" , "kumaras@chelsio.com" , "girish.nandibasappa@amd.com" , "rolf.neugebauer@netronome.com" , "alejandro.lucero@netronome.com" , "Yang, SteveX" Thread-Topic: [PATCH v2 07/22] net/i40e: fix the jumbo frame flag condition Thread-Index: AQHW1FdW1sKfqk7DoUuWYrier+UyS6n8JpLQ Date: Fri, 18 Dec 2020 02:44:02 +0000 Message-ID: References: <20201209031628.29572-1-stevex.yang@intel.com> <20201217092312.27033-1-stevex.yang@intel.com> <20201217092312.27033-8-stevex.yang@intel.com> In-Reply-To: <20201217092312.27033-8-stevex.yang@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2 07/22] net/i40e: fix the jumbo frame flag condition X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Acked-by: Jeff Guo > -----Original Message----- > From: Steve Yang > Sent: Thursday, December 17, 2020 5:23 PM > To: dev@dpdk.org > Cc: Lu, Wenzhuo ; Xing, Beilei > ; Iremonger, Bernard > ; asomalap@amd.com; > rahul.lakkireddy@chelsio.com; hemant.agrawal@nxp.com; > sachin.saxena@oss.nxp.com; Guo, Jia ; Wang, Haiyue > ; g.singh@nxp.com; xuanziyang2@huawei.com; > cloud.wangxiaoyun@huawei.com; zhouguoyang@huawei.com; > xavier.huwei@huawei.com; humin29@huawei.com; > yisen.zhuang@huawei.com; oulijun@huawei.com; Wu, Jingjing > ; Yang, Qiming ; Zhang, Qi > Z ; Xu, Rosen ; > sthotton@marvell.com; srinivasan@marvell.com; > heinrich.kuhn@netronome.com; hkalra@marvell.com; jerinj@marvell.com; > ndabilpuram@marvell.com; kirankumark@marvell.com; > rmody@marvell.com; shshaikh@marvell.com; > andrew.rybchenko@oktetlabs.ru; mczekaj@marvell.com; > thomas@monjalon.net; Yigit, Ferruh ; > ivan.boule@6wind.com; Ananyev, Konstantin > ; samuel.gauthier@6wind.com; > david.marchand@6wind.com; shahafs@mellanox.com; > stephen@networkplumber.org; maxime.coquelin@redhat.com; > olivier.matz@6wind.com; lihuisong@huawei.com; shreyansh.jain@nxp.com; > wei.dai@intel.com; fengchunsong@huawei.com; chenhao164@huawei.com; > tangchengchang@hisilicon.com; Zhang, Helin ; > yanglong.wu@intel.com; xiaolong.ye@intel.com; Xu, Ting > ; Li, Xiaoyun ; Wei, Dan > ; Pei, Andy ; > vattunuru@marvell.com; skori@marvell.com; sony.chacko@qlogic.com; > Richardson, Bruce ; ivan.malov@oktetlabs.ru; > rad@semihalf.com; slawomir.rosek@semihalf.com; > kamil.rytarowski@caviumnetworks.com; Zhao1, Wei ; > Jiang, JunyuX ; kumaras@chelsio.com; > girish.nandibasappa@amd.com; rolf.neugebauer@netronome.com; > alejandro.lucero@netronome.com; Yang, SteveX > Subject: [PATCH v2 07/22] net/i40e: fix the jumbo frame flag condition >=20 > 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'. >=20 > This fix will change the boundary condition with 'RTE_ETHER_MTU' and > overhead. >=20 > Fixes: c1715402df8f ("i40evf: fix jumbo frame support") > Fixes: 43e5488c0ac6 ("net/i40e: support MTU configuration") > Fixes: a778a1fa2e4e ("i40e: set up and initialize flow director") > Fixes: c3ac7c5b0b8a ("net/i40e: convert to new Rx offloads API") >=20 > Signed-off-by: Steve Yang > --- > drivers/net/i40e/i40e_ethdev.c | 2 +- > drivers/net/i40e/i40e_ethdev.h | 1 + > drivers/net/i40e/i40e_ethdev_vf.c | 10 +++++----- > drivers/net/i40e/i40e_fdir.c | 2 +- > drivers/net/i40e/i40e_rxtx.c | 8 ++++---- > 5 files changed, 12 insertions(+), 11 deletions(-) >=20 > diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethde= v.c > index 2cb18ecc03..d4fcc6c853 100644 > --- a/drivers/net/i40e/i40e_ethdev.c > +++ b/drivers/net/i40e/i40e_ethdev.c > @@ -11770,7 +11770,7 @@ i40e_dev_mtu_set(struct rte_eth_dev *dev, > uint16_t mtu) > return -EBUSY; > } >=20 > - if (frame_size > RTE_ETHER_MAX_LEN) > + if (frame_size > I40E_ETH_MAX_LEN) > dev_data->dev_conf.rxmode.offloads |=3D > DEV_RX_OFFLOAD_JUMBO_FRAME; > else > diff --git a/drivers/net/i40e/i40e_ethdev.h > b/drivers/net/i40e/i40e_ethdev.h index 696c5aaf7e..1f31a532a1 100644 > --- a/drivers/net/i40e/i40e_ethdev.h > +++ b/drivers/net/i40e/i40e_ethdev.h > @@ -281,6 +281,7 @@ struct rte_flow { > */ > #define I40E_ETH_OVERHEAD \ > (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN + > I40E_VLAN_TAG_SIZE * 2) > +#define I40E_ETH_MAX_LEN (RTE_ETHER_MTU + I40E_ETH_OVERHEAD) >=20 > #define I40E_RXTX_BYTES_H_16_BIT(bytes) ((bytes) & ~I40E_48_BIT_MASK) > #define I40E_RXTX_BYTES_L_48_BIT(bytes) ((bytes) & I40E_48_BIT_MASK) > diff --git a/drivers/net/i40e/i40e_ethdev_vf.c > b/drivers/net/i40e/i40e_ethdev_vf.c > index c26b036b85..85c65c09ee 100644 > --- a/drivers/net/i40e/i40e_ethdev_vf.c > +++ b/drivers/net/i40e/i40e_ethdev_vf.c > @@ -1889,22 +1889,22 @@ i40evf_rxq_init(struct rte_eth_dev *dev, struct > i40e_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 (rxq->max_pkt_len <=3D RTE_ETHER_MAX_LEN || > + if (rxq->max_pkt_len <=3D I40E_ETH_MAX_LEN || > rxq->max_pkt_len > I40E_FRAME_SIZE_MAX) { > PMD_DRV_LOG(ERR, "maximum packet length must > be " > "larger than %u and smaller than %u, as > jumbo " > - "frame is enabled", > (uint32_t)RTE_ETHER_MAX_LEN, > + "frame is enabled", > (uint32_t)I40E_ETH_MAX_LEN, > (uint32_t)I40E_FRAME_SIZE_MAX); > return I40E_ERR_CONFIG; > } > } else { > if (rxq->max_pkt_len < RTE_ETHER_MIN_LEN || > - rxq->max_pkt_len > RTE_ETHER_MAX_LEN) { > + rxq->max_pkt_len > I40E_ETH_MAX_LEN) { > PMD_DRV_LOG(ERR, "maximum packet length must > be " > "larger than %u and smaller than %u, as > jumbo " > "frame is disabled", > (uint32_t)RTE_ETHER_MIN_LEN, > - (uint32_t)RTE_ETHER_MAX_LEN); > + (uint32_t)I40E_ETH_MAX_LEN); > return I40E_ERR_CONFIG; > } > } > @@ -2825,7 +2825,7 @@ i40evf_dev_mtu_set(struct rte_eth_dev *dev, > uint16_t mtu) > return -EBUSY; > } >=20 > - if (frame_size > RTE_ETHER_MAX_LEN) > + if (frame_size > I40E_ETH_MAX_LEN) > dev_data->dev_conf.rxmode.offloads |=3D > DEV_RX_OFFLOAD_JUMBO_FRAME; > else > diff --git a/drivers/net/i40e/i40e_fdir.c b/drivers/net/i40e/i40e_fdir.c = index > 50c0eee9f2..449b67b2a9 100644 > --- a/drivers/net/i40e/i40e_fdir.c > +++ b/drivers/net/i40e/i40e_fdir.c > @@ -116,7 +116,7 @@ i40e_fdir_rx_queue_init(struct i40e_rx_queue *rxq) > #endif > rx_ctx.dtype =3D i40e_header_split_none; > rx_ctx.hsplit_0 =3D I40E_HEADER_SPLIT_NONE; > - rx_ctx.rxmax =3D RTE_ETHER_MAX_LEN; > + rx_ctx.rxmax =3D I40E_ETH_MAX_LEN; > rx_ctx.tphrdesc_ena =3D 1; > rx_ctx.tphwdesc_ena =3D 1; > rx_ctx.tphdata_ena =3D 1; > diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c = index > 5df9a9df56..b8859bbff2 100644 > --- a/drivers/net/i40e/i40e_rxtx.c > +++ b/drivers/net/i40e/i40e_rxtx.c > @@ -2797,23 +2797,23 @@ i40e_rx_queue_config(struct i40e_rx_queue > *rxq) > RTE_MIN((uint32_t)(hw->func_caps.rx_buf_chain_len * > rxq->rx_buf_len), data- > >dev_conf.rxmode.max_rx_pkt_len); > if (data->dev_conf.rxmode.offloads & > DEV_RX_OFFLOAD_JUMBO_FRAME) { > - if (rxq->max_pkt_len <=3D RTE_ETHER_MAX_LEN || > + if (rxq->max_pkt_len <=3D I40E_ETH_MAX_LEN || > rxq->max_pkt_len > I40E_FRAME_SIZE_MAX) { > PMD_DRV_LOG(ERR, "maximum packet length must > " > "be larger than %u and smaller than %u," > "as jumbo frame is enabled", > - (uint32_t)RTE_ETHER_MAX_LEN, > + (uint32_t)I40E_ETH_MAX_LEN, > (uint32_t)I40E_FRAME_SIZE_MAX); > return I40E_ERR_CONFIG; > } > } else { > if (rxq->max_pkt_len < RTE_ETHER_MIN_LEN || > - rxq->max_pkt_len > RTE_ETHER_MAX_LEN) { > + rxq->max_pkt_len > I40E_ETH_MAX_LEN) { > PMD_DRV_LOG(ERR, "maximum packet length must > be " > "larger than %u and smaller than %u, " > "as jumbo frame is disabled", > (uint32_t)RTE_ETHER_MIN_LEN, > - (uint32_t)RTE_ETHER_MAX_LEN); > + (uint32_t)I40E_ETH_MAX_LEN); > return I40E_ERR_CONFIG; > } > } > -- > 2.17.1