[dpdk-dev] [PATCH v2] i40evf: Report error if HW CRC strip is disabled for Linux PF hosts

Zhang, Helin helin.zhang at intel.com
Fri Apr 22 03:52:01 CEST 2016



> -----Original Message-----
> From: Topel, Bjorn
> Sent: Thursday, April 21, 2016 11:03 PM
> To: dev at dpdk.org
> Cc: david.marchand at 6wind.com; Zhang, Helin <helin.zhang at intel.com>; Wu,
> Jingjing <jingjing.wu at intel.com>; Topel, Bjorn <bjorn.topel at intel.com>
> Subject: [PATCH v2] i40evf: Report error if HW CRC strip is disabled for Linux PF
> hosts
> 
> 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 checks if the host is running a Linux PF kernel driver, and returns an
> error, 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..0057ed6 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. */
Can you reword above comments?
It just means the host is not DPDK PF host driver, it could be Linux driver,
and possible others (e.g. FreeBSD, VMWARE?).

Thanks,
Helin

> +			PMD_INIT_LOG(ERR, "VF can't disable HW CRC Strip");
> +			return -EINVAL;
> +		}
> +	}
> +
>  	return i40evf_init_vlan(dev);
>  }
> 
> --
> 2.7.4



More information about the dev mailing list