[dpdk-dev] net/i40e: fix VF testpmd startup failure issue
Checks
Commit Message
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
> -----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.
> -----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
@@ -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 |
@@ -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 |