[dpdk-dev] [PATCH] i40evf: Ignore disabled HW CRC strip for Linux PF hosts

Zhang, Helin helin.zhang at intel.com
Fri Apr 15 10:07:38 CEST 2016



> -----Original Message-----
> From: David Marchand [mailto:david.marchand at 6wind.com]
> Sent: Friday, April 15, 2016 3:41 PM
> To: Topel, Bjorn <bjorn.topel at intel.com>
> Cc: dev at dpdk.org; Zhang, Helin <helin.zhang at intel.com>; Wu, Jingjing
> <jingjing.wu at intel.com>
> Subject: Re: [dpdk-dev] [PATCH] i40evf: Ignore disabled HW CRC strip for Linux PF
> hosts
> 
> CC maintainers.
> 
> On Thu, Apr 14, 2016 at 4:58 PM, Björn Töpel <bjorn.topel at intel.com> wrote:
> > On Linux PF hosts, the VF has no means of changing the HW CRC strip
> > setting for a RX queue. It's implicitly enabled.
> >
> > This patch ignores, and warns, if HW CRC stripping was disabled.
> >
> > Signed-off-by: Björn Töpel <bjorn.topel at intel.com>
> > ---
> >  drivers/net/i40e/i40e_ethdev_vf.c | 15 +++++++++++++++
> >  1 file changed, 15 insertions(+)
> >
> > diff --git a/drivers/net/i40e/i40e_ethdev_vf.c
> > b/drivers/net/i40e/i40e_ethdev_vf.c
> > index 2bce69b..f88eb79 100644
> > --- a/drivers/net/i40e/i40e_ethdev_vf.c
> > +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> > @@ -1567,6 +1567,8 @@ i40evf_dev_configure(struct rte_eth_dev *dev)  {
> >         struct i40e_adapter *ad =
> >
> I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
> > +       struct rte_eth_conf *conf = &dev->data->dev_conf;
> > +       struct i40e_vf *vf;
> >
> >         /* Initialize to TRUE. If any of Rx queues doesn't meet the bulk
> >          * allocation or vector Rx preconditions we will reset it.
> > @@ -1576,6 +1578,19 @@ i40evf_dev_configure(struct rte_eth_dev *dev)
> >         ad->tx_simple_allowed = true;
> >         ad->tx_vec_allowed = true;
> >
> > +       /* For Linux PF hosts, VF has no ability to disable HW CRC strip,
> > +        * and is implicitly enabled by the PF.
> > +        */
> > +       if (!conf->rxmode.hw_strip_crc) {
> > +               vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
> > +               if ((vf->version_major == I40E_VIRTCHNL_VERSION_MAJOR)
> &&
> > +                   (vf->version_minor <=
> I40E_VIRTCHNL_VERSION_MINOR)) {
> > +                       /* Peer is Linux PF host. */
> > +                       PMD_INIT_LOG(NOTICE, "VF can't disable HW CRC
> Strip.");
> > +                       conf->rxmode.hw_strip_crc = 1;
> > +               }
> > +       }
> > +
> >         return i40evf_init_vlan(dev);
> >  }
> 
> Not sure this is the right way to handle it.
> The driver should return an error rather than silently discard what the application
> asked.
I also think it should return an error with checking if the host is kernel driver, and crc strip is disabled in VF.
Thank you David!

Regards,
Helin

> 
> >
> > --
> > 2.7.4
> >
> > ----------------------------------------------------------------------
> > Intel Sweden AB
> > Registered Office: Isafjordsgatan 30B, 164 40 Kista, Stockholm, Sweden
> > Registration Number: 556189-6027
> >
> > This e-mail and any attachments may contain confidential material for
> > the sole use of the intended recipient(s). Any review or distribution
> > by others is strictly prohibited. If you are not the intended
> > recipient, please contact the sender and delete all copies.
> 
> Please, remove this.
> 
> 
> --
> David Marchand


More information about the dev mailing list