[dpdk-dev] net/i40e: fix VF testpmd startup failure issue

Message ID 1517550316-175090-1-git-send-email-xiaoyun.li@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Helin Zhang
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Li, Xiaoyun Feb. 2, 2018, 5:45 a.m. UTC
  New testpmd will get CRC strip offload from rx_offload_capa. I40evf cannot
disable CRC strip. And in fact, it is enabled by PF. This patch solves the
issue by adding CRC strip flag into rx_offload_capa in i40e and i40evf.

Fixes: 8b9bd0efe0b6 ("app/testpmd: disable Rx VLAN offloads by default")
Cc: stable@dpdk.org

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c    | 3 ++-
 drivers/net/i40e/i40e_ethdev_vf.c | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)
  

Comments

Xing, Beilei Feb. 2, 2018, 10:43 a.m. UTC | #1
> -----Original Message-----
> From: Li, Xiaoyun
> Sent: Friday, February 2, 2018 1:45 PM
> To: Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Li, Xiaoyun <xiaoyun.li@intel.com>; stable@dpdk.org
> Subject: [PATCH] net/i40e: fix VF testpmd startup failure issue
> 
> New testpmd will get CRC strip offload from rx_offload_capa. I40evf cannot
> disable CRC strip. And in fact, it is enabled by PF. This patch solves the issue
> by adding CRC strip flag into rx_offload_capa in i40e and i40evf.
> 
> Fixes: 8b9bd0efe0b6 ("app/testpmd: disable Rx VLAN offloads by default")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
> ---
>  drivers/net/i40e/i40e_ethdev.c    | 3 ++-
>  drivers/net/i40e/i40e_ethdev_vf.c | 3 ++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 7e3d1a8..403831d 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -3083,7 +3083,8 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>  		DEV_RX_OFFLOAD_QINQ_STRIP |
>  		DEV_RX_OFFLOAD_IPV4_CKSUM |
>  		DEV_RX_OFFLOAD_UDP_CKSUM |
> -		DEV_RX_OFFLOAD_TCP_CKSUM;
> +		DEV_RX_OFFLOAD_TCP_CKSUM |
> +		DEV_RX_OFFLOAD_CRC_STRIP;
>  	dev_info->tx_offload_capa =
>  		DEV_TX_OFFLOAD_VLAN_INSERT |
>  		DEV_TX_OFFLOAD_QINQ_INSERT |
> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c
> b/drivers/net/i40e/i40e_ethdev_vf.c
> index 57f7613..169e1b1 100644
> --- a/drivers/net/i40e/i40e_ethdev_vf.c
> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> @@ -2194,7 +2194,8 @@ i40evf_dev_info_get(struct rte_eth_dev *dev,
> struct rte_eth_dev_info *dev_info)
>  		DEV_RX_OFFLOAD_QINQ_STRIP |
>  		DEV_RX_OFFLOAD_IPV4_CKSUM |
>  		DEV_RX_OFFLOAD_UDP_CKSUM |
> -		DEV_RX_OFFLOAD_TCP_CKSUM;
> +		DEV_RX_OFFLOAD_TCP_CKSUM |
> +		DEV_RX_OFFLOAD_CRC_STRIP;
>  	dev_info->tx_offload_capa =
>  		DEV_TX_OFFLOAD_VLAN_INSERT |
>  		DEV_TX_OFFLOAD_QINQ_INSERT |
> --
> 2.7.4

Acked-by: Beilei Xing <beilei.xing@intel.com>, thanks.
  
Zhang, Helin Feb. 2, 2018, 12:09 p.m. UTC | #2
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xing, Beilei
> Sent: Friday, February 2, 2018 6:44 PM
> To: Li, Xiaoyun
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] net/i40e: fix VF testpmd startup failure issue
> 
> 
> 
> > -----Original Message-----
> > From: Li, Xiaoyun
> > Sent: Friday, February 2, 2018 1:45 PM
> > To: Xing, Beilei <beilei.xing@intel.com>
> > Cc: dev@dpdk.org; Li, Xiaoyun <xiaoyun.li@intel.com>; stable@dpdk.org
> > Subject: [PATCH] net/i40e: fix VF testpmd startup failure issue
> >
> > New testpmd will get CRC strip offload from rx_offload_capa. I40evf
> > cannot disable CRC strip. And in fact, it is enabled by PF. This patch
> > solves the issue by adding CRC strip flag into rx_offload_capa in i40e and
> i40evf.
> >
> > Fixes: 8b9bd0efe0b6 ("app/testpmd: disable Rx VLAN offloads by
> > default")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
> > ---
> >  drivers/net/i40e/i40e_ethdev.c    | 3 ++-
> >  drivers/net/i40e/i40e_ethdev_vf.c | 3 ++-
> >  2 files changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/net/i40e/i40e_ethdev.c
> > b/drivers/net/i40e/i40e_ethdev.c index 7e3d1a8..403831d 100644
> > --- a/drivers/net/i40e/i40e_ethdev.c
> > +++ b/drivers/net/i40e/i40e_ethdev.c
> > @@ -3083,7 +3083,8 @@ i40e_dev_info_get(struct rte_eth_dev *dev,
> > struct rte_eth_dev_info *dev_info)
> >  		DEV_RX_OFFLOAD_QINQ_STRIP |
> >  		DEV_RX_OFFLOAD_IPV4_CKSUM |
> >  		DEV_RX_OFFLOAD_UDP_CKSUM |
> > -		DEV_RX_OFFLOAD_TCP_CKSUM;
> > +		DEV_RX_OFFLOAD_TCP_CKSUM |
> > +		DEV_RX_OFFLOAD_CRC_STRIP;
> >  	dev_info->tx_offload_capa =
> >  		DEV_TX_OFFLOAD_VLAN_INSERT |
> >  		DEV_TX_OFFLOAD_QINQ_INSERT |
> > diff --git a/drivers/net/i40e/i40e_ethdev_vf.c
> > b/drivers/net/i40e/i40e_ethdev_vf.c
> > index 57f7613..169e1b1 100644
> > --- a/drivers/net/i40e/i40e_ethdev_vf.c
> > +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> > @@ -2194,7 +2194,8 @@ i40evf_dev_info_get(struct rte_eth_dev *dev,
> > struct rte_eth_dev_info *dev_info)
> >  		DEV_RX_OFFLOAD_QINQ_STRIP |
> >  		DEV_RX_OFFLOAD_IPV4_CKSUM |
> >  		DEV_RX_OFFLOAD_UDP_CKSUM |
> > -		DEV_RX_OFFLOAD_TCP_CKSUM;
> > +		DEV_RX_OFFLOAD_TCP_CKSUM |
> > +		DEV_RX_OFFLOAD_CRC_STRIP;
> >  	dev_info->tx_offload_capa =
> >  		DEV_TX_OFFLOAD_VLAN_INSERT |
> >  		DEV_TX_OFFLOAD_QINQ_INSERT |
> > --
> > 2.7.4
> 
> Acked-by: Beilei Xing <beilei.xing@intel.com>, thanks.
Applied to dpdk-next-net-intel, with minor commit log changes. Thanks!

/Helin
  

Patch

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 7e3d1a8..403831d 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -3083,7 +3083,8 @@  i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		DEV_RX_OFFLOAD_QINQ_STRIP |
 		DEV_RX_OFFLOAD_IPV4_CKSUM |
 		DEV_RX_OFFLOAD_UDP_CKSUM |
-		DEV_RX_OFFLOAD_TCP_CKSUM;
+		DEV_RX_OFFLOAD_TCP_CKSUM |
+		DEV_RX_OFFLOAD_CRC_STRIP;
 	dev_info->tx_offload_capa =
 		DEV_TX_OFFLOAD_VLAN_INSERT |
 		DEV_TX_OFFLOAD_QINQ_INSERT |
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index 57f7613..169e1b1 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -2194,7 +2194,8 @@  i40evf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		DEV_RX_OFFLOAD_QINQ_STRIP |
 		DEV_RX_OFFLOAD_IPV4_CKSUM |
 		DEV_RX_OFFLOAD_UDP_CKSUM |
-		DEV_RX_OFFLOAD_TCP_CKSUM;
+		DEV_RX_OFFLOAD_TCP_CKSUM |
+		DEV_RX_OFFLOAD_CRC_STRIP;
 	dev_info->tx_offload_capa =
 		DEV_TX_OFFLOAD_VLAN_INSERT |
 		DEV_TX_OFFLOAD_QINQ_INSERT |