[dpdk-dev] [PATCH v3] i40evf: Report error if HW CRC strip is disabled for non-DPDK PF hosts

2016-05-03 Thread Bruce Richardson
On Fri, Apr 29, 2016 at 01:42:33PM +, Zhang, Helin wrote:
> 
> 
> > -Original Message-
> > From: Topel, Bjorn
> > Sent: Friday, April 22, 2016 1:39 PM
> > To: dev at dpdk.org
> > Cc: Zhang, Helin; Wu, Jingjing; Topel, Bjorn
> > Subject: [PATCH v3] i40evf: Report error if HW CRC strip is disabled for 
> > non-
> > DPDK PF hosts
> > 
> > On hosts running a non-DPDK PF driver, 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 non-DPDK PF kernel driver, and
> > returns an error, if HW CRC stripping was disabled.
> > 
> > Signed-off-by: Bj?rn T?pel 
> Acked-by: Helin Zhang 

Applied to dpdk-next-net/rel_16_07

/Bruce


[dpdk-dev] [PATCH v3] i40evf: Report error if HW CRC strip is disabled for non-DPDK PF hosts

2016-04-29 Thread Zhang, Helin


> -Original Message-
> From: Topel, Bjorn
> Sent: Friday, April 22, 2016 1:39 PM
> To: dev at dpdk.org
> Cc: Zhang, Helin; Wu, Jingjing; Topel, Bjorn
> Subject: [PATCH v3] i40evf: Report error if HW CRC strip is disabled for non-
> DPDK PF hosts
> 
> On hosts running a non-DPDK PF driver, 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 non-DPDK PF kernel driver, and
> returns an error, if HW CRC stripping was disabled.
> 
> Signed-off-by: Bj?rn T?pel 
Acked-by: Helin Zhang 


[dpdk-dev] [PATCH v3] i40evf: Report error if HW CRC strip is disabled for non-DPDK PF hosts

2016-04-22 Thread Björn Töpel
On hosts running a non-DPDK PF driver, 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 non-DPDK PF kernel driver,
and returns an error, if HW CRC stripping was disabled.

Signed-off-by: Bj?rn T?pel 
---
 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..25f1cea 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 = >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 non-DPDK PF drivers, 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 running non-DPDK PF driver. */
+   PMD_INIT_LOG(ERR, "VF can't disable HW CRC Strip");
+   return -EINVAL;
+   }
+   }
+
return i40evf_init_vlan(dev);
 }

-- 
2.7.4