[dpdk-dev] [PATCH v3] i40evf: Report error if HW CRC strip is disabled for non-DPDK PF hosts
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
> -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
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