> > > -----Original Message----- > > From: Yang, SteveX <stevex.y...@intel.com> > > Sent: Monday, September 28, 2020 2:56 PM > > To: dev@dpdk.org > > Cc: Zhao1, Wei <wei.zh...@intel.com>; Guo, Jia <jia....@intel.com>; Yang, > > Qiming <qiming.y...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com>; Wu, > > Jingjing <jingjing...@intel.com>; Xing, Beilei <beilei.x...@intel.com>; > > Ananyev, Konstantin <konstantin.anan...@intel.com>; Yang, SteveX > > <stevex.y...@intel.com> > > 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 NIC 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 <stevex.y...@intel.com> > > --- > > 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 = > > ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); > > struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private); > > +uint32_t frame_size = 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 |= > > 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. > And please remove above comment, since ether overhead is already considered > in ice_mtu_set. > > > > +ret = ice_mtu_set(dev, dev->data->mtu); > > +if (ret != 0) > > +return ret; > > +} > > + > > ret = ice_init_rss(pf); > > if (ret) { > > PMD_DRV_LOG(ERR, "Failed to enable rss for PF"); > > -- > > 2.17.1 >