[dpdk-dev] [PATCH] i40e: fix oversize packet counter not incrementing for large packets

Wu, Jingjing jingjing.wu at intel.com
Wed Feb 8 06:13:13 CET 2017



> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Wu, Jingjing
> Sent: Monday, November 28, 2016 10:20 AM
> To: Michael Bieniek <michaelbieniekdpdk at gmail.com>; Zhang, Helin
> <helin.zhang at intel.com>
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] i40e: fix oversize packet counter not
> incrementing for large packets
> 
> 
> 
> > -----Original Message-----
> > From: Michael Bieniek [mailto:michaelbieniekdpdk at gmail.com]
> > Sent: Saturday, November 26, 2016 2:21 AM
> > To: Zhang, Helin <helin.zhang at intel.com>; Wu, Jingjing
> > <jingjing.wu at intel.com>
> > Cc: dev at dpdk.org; Michael Bieniek <michaelbieniekdpdk at gmail.com>
> > Subject: [PATCH] i40e: fix oversize packet counter not incrementing
> > for large packets
> >
> > The XL710 requires that the Set MAC Config command be used to define
> > the maximum frame size in order for the Receive Oversize Count
> > register
> > (GLPRT_ROC) to be incremented for packets received that are greater
> > than the MTU. Without this change, the XL710 will drop the oversized
> > packets without incrementing the corresponding counter.
> >
> > Signed-off-by: Michael Bieniek <michaelbieniekdpdk at gmail.com>
> > ---
> >  drivers/net/i40e/i40e_ethdev.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/net/i40e/i40e_ethdev.c
> > b/drivers/net/i40e/i40e_ethdev.c index 67778ba..c11c80b 100644
> > --- a/drivers/net/i40e/i40e_ethdev.c
> > +++ b/drivers/net/i40e/i40e_ethdev.c
> > @@ -9709,6 +9709,7 @@ static int
> >  i40e_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)  {
> >  	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data-
> > >dev_private);
> > +	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data-
> > >dev_private);
> >  	struct rte_eth_dev_data *dev_data = pf->dev_data;
> >  	uint32_t frame_size = mtu + ETHER_HDR_LEN
> >  			      + ETHER_CRC_LEN + I40E_VLAN_TAG_SIZE; @@ -
> > 9732,6 +9733,7 @@ i40e_dev_mtu_set(struct rte_eth_dev *dev, uint16_t
> mtu)
> >  		dev_data->dev_conf.rxmode.jumbo_frame = 0;
> >
> >  	dev_data->dev_conf.rxmode.max_rx_pkt_len = frame_size;
> > +	i40e_aq_set_mac_config(hw, frame_size, TRUE, 0, NULL);
> >
> >  	return ret;
> >  }
> 
> If you look into the eth_i40e_dev_init, you will find the mac's maximum
> frame size Has been set to I40E_FRAME_SIZE_MAX (0x2600). Then the
> changing of maximum frame size is by the setting in queues.
> 
> If change the frame size on mac, the maximum frame size will not only works
> on PF but also VF.
> 

NACK to this patch.



More information about the dev mailing list