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 63BDFA04B1; Wed, 30 Sep 2020 04:32:31 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C01DD1DA62; Wed, 30 Sep 2020 04:32:29 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id E02E61DA5D for ; Wed, 30 Sep 2020 04:32:26 +0200 (CEST) IronPort-SDR: UJpTnnD2hX5MRpvbif8i41++jrCgrJSAdnbEYEk2RxCtNGVOpAJen6dDFeBNhSgj5jUUehroaS pfXTT1rWS1FQ== X-IronPort-AV: E=McAfee;i="6000,8403,9759"; a="161564276" X-IronPort-AV: E=Sophos;i="5.77,320,1596524400"; d="scan'208";a="161564276" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2020 19:32:25 -0700 IronPort-SDR: TWdMod8z0C9IS8pERzQPfVChFovStSWKxtlb9VOtwCrGzwq4ZVFCh/GaDSPa123Q/dfukYe1Xy 8bUAkqwkQaRg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,320,1596524400"; d="scan'208";a="415588790" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga001.fm.intel.com with ESMTP; 29 Sep 2020 19:32:25 -0700 Received: from shsmsx605.ccr.corp.intel.com (10.109.6.215) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 29 Sep 2020 19:32:24 -0700 Received: from shsmsx601.ccr.corp.intel.com (10.109.6.141) by SHSMSX605.ccr.corp.intel.com (10.109.6.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 30 Sep 2020 10:32:22 +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; Wed, 30 Sep 2020 10:32:22 +0800 From: "Zhang, Qi Z" To: "Yang, SteveX" , "Ananyev, Konstantin" , "dev@dpdk.org" CC: "Zhao1, Wei" , "Guo, Jia" , "Yang, Qiming" , "Wu, Jingjing" , "Xing, Beilei" Thread-Topic: [PATCH v4 3/5] net/ice: fix max mtu size packets with vlan tag cannot be received by default Thread-Index: AQHWlWX9EtlsyJt3ykGYcwPr+NXbUKl/f7dggAA4XgCAAJqoUP//j2QAgACOpxA= Date: Wed, 30 Sep 2020 02:32:22 +0000 Message-ID: <7704b7ce95fd4db2a9c6a8a33c3f0805@intel.com> References: <20200923040909.73418-1-stevex.yang@intel.com> <20200928065541.7520-1-stevex.yang@intel.com> <20200928065541.7520-4-stevex.yang@intel.com> <8459e979b76c43cdbd5a9fbd809f9b00@intel.com> <6ad9e3ec00194e31891d97849135655c@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows 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 v4 3/5] net/ice: fix max mtu size packets with vlan tag cannot be received by default 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" > -----Original Message----- > From: Yang, SteveX > Sent: Wednesday, September 30, 2020 9:32 AM > To: Zhang, Qi Z ; Ananyev, Konstantin > ; dev@dpdk.org > Cc: Zhao1, Wei ; Guo, Jia ; Yang, > Qiming ; Wu, Jingjing ; Xin= g, > Beilei > Subject: RE: [PATCH v4 3/5] net/ice: fix max mtu size packets with vlan t= ag > cannot be received by default >=20 >=20 >=20 > > -----Original Message----- > > From: Zhang, Qi Z > > Sent: Wednesday, September 30, 2020 8:35 AM > > To: Ananyev, Konstantin ; Yang, SteveX > > ; dev@dpdk.org > > Cc: Zhao1, Wei ; Guo, Jia ; > > Yang, Qiming ; Wu, Jingjing > > ; Xing, Beilei > > Subject: RE: [PATCH v4 3/5] net/ice: fix max mtu size packets with > > vlan tag cannot be received by default > > > > > > > > > -----Original Message----- > > > From: Ananyev, Konstantin > > > Sent: Wednesday, September 30, 2020 7:02 AM > > > To: Zhang, Qi Z ; Yang, SteveX > > > ; dev@dpdk.org > > > Cc: Zhao1, Wei ; Guo, Jia ; > > > Yang, Qiming ; Wu, Jingjing > > > ; Xing, Beilei > > > Subject: RE: [PATCH v4 3/5] net/ice: fix max mtu size packets with > > > vlan tag cannot be received by default > > > > > > > > > > > > -----Original Message----- > > > > > From: Yang, SteveX > > > > > Sent: Monday, September 28, 2020 2:56 PM > > > > > To: dev@dpdk.org > > > > > Cc: Zhao1, Wei ; Guo, Jia > > > > > ; Yang, Qiming ; > > > > > Zhang, Qi Z ; Wu, Jingjing > > > > > ; Xing, Beilei ; > > > > > Ananyev, Konstantin ; Yang, SteveX > > > > > > > > > > Subject: [PATCH v4 3/5] net/ice: fix max mtu size packets with > > > > > vlan tag cannot be received by default > > > > > > > > > > testpmd will initialize default max packet length to 1518 which > > > > > doesn't include vlan tag size in ether overheader. Once, send > > > > > the max mtu length packet with vlan tag, the max packet length > > > > > will exceed 1518 that will cause packets dropped directly from NI= C hw > side. > > > > > > > > > > ice can support dual vlan tags that need more 8 bytes for max > > > > > packet size, so, configures the correct max packet size in > > > > > dev_config > > ops. > > > > > > > > > > Fixes: 50cc9d2a6e9d ("net/ice: fix max frame size") > > > > > > > > > > Signed-off-by: SteveX Yang > > > > > --- > > > > > drivers/net/ice/ice_ethdev.c | 11 +++++++++++ > > > > > 1 file changed, 11 insertions(+) > > > > > > > > > > diff --git a/drivers/net/ice/ice_ethdev.c > > > > > b/drivers/net/ice/ice_ethdev.c index > > > > > cfd357b05..6b7098444 100644 > > > > > --- a/drivers/net/ice/ice_ethdev.c > > > > > +++ b/drivers/net/ice/ice_ethdev.c > > > > > @@ -3146,6 +3146,7 @@ ice_dev_configure(struct rte_eth_dev *dev) > > > > > struct ice_adapter *ad =3D > > > > > ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); > > > > > struct ice_pf *pf =3D > > > > > ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private); > > > > > +uint32_t frame_size =3D dev->data->mtu + ICE_ETH_OVERHEAD; > > > > > int ret; > > > > > > > > > > /* Initialize to TRUE. If any of Rx queues doesn't meet the @@ > > > > > -3157,6 > > > > > +3158,16 @@ ice_dev_configure(struct rte_eth_dev *dev) > > > > > if (dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) > > > > > dev->data->dev_conf.rxmode.offloads |=3D > > DEV_RX_OFFLOAD_RSS_HASH; > > > > > > > > > > +/** > > > > > + * Considering QinQ packet, max frame size should be equal or > > > > > + * larger than total size of MTU and Ether overhead. > > > > > + */ > > > > > > > > > +if (frame_size > dev->data->dev_conf.rxmode.max_rx_pkt_len) { > > > > > > > > > > > > Why we need this check? > > > > Can we just call ice_mtu_set directly > > > > > > I think that without that check we can silently overwrite provided > > > by user dev_conf.rxmode.max_rx_pkt_len value. > > > > OK, I see > > > > But still have one question > > dev->data->mtu is initialized to 1518 as default , but if application > > dev->data->set > > dev_conf.rxmode.max_rx_pkt_len =3D 1000 in dev_configure. > > does that mean we will still will set mtu to 1518, is this expected? > > >=20 > max_rx_pkt_len should be larger than mtu at least, so we should raise the > max_rx_pkt_len (e.g.:1518) to hold expected mtu value (e.g.: 1500). Ok, this describe the problem more general and better to replace exist code= comment and commit log for easy understanding. Please send a new version for reword > Generally, the mtu value can be adjustable from user (e.g.: ip link set e= ns801f0 > mtu 1400), hence, we just adjust the max_rx_pkt_len to satisfy mtu > requirement. >=20 > > Should we just call ice_mtu_set(dev, dev_conf.rxmode.max_rx_pkt_len) > > here? > ice_mtu_set(dev, mtu) will append ether overhead to > frame_size/max_rx_pkt_len, so we need pass the mtu value as the 2nd > parameter, or not the max_rx_pkt_len. >=20 > > > > > > > > > > > And please remove above comment, since ether overhead is already > > > considered in ice_mtu_set. > Ether overhead is already considered in ice_mtu_set, but it also should b= e > considered as the adjustment condition that if ice_mtu_set need be invoke= d. > So, it perhaps should remain this comment before this if() condition. >=20 > > > > > > > > > > > > > +ret =3D ice_mtu_set(dev, dev->data->mtu); if (ret !=3D 0) return > > > > > +ret; } > > > > > + > > > > > ret =3D ice_init_rss(pf); > > > > > if (ret) { > > > > > PMD_DRV_LOG(ERR, "Failed to enable rss for PF"); > > > > > -- > > > > > 2.17.1 > > > > > > > > > >=20