[v3] net/ixgbe: disable NFS filtering
Checks
Commit Message
From: Dapeng Yu <dapengx.yu@intel.com>
Disable NFS header filtering whether NFS packets coalescing are
required or not, in order to make RSS can work on NFS packets.
The code without the patch does follow datasheet, but not consistent
with the ixgbe kernel driver. It causes NFS packets to be filtered
and make them flow into queue 0, before RSS can work on them.
Fixes: b826efba6de4 ("net/ixgbe: align register setting when RSC is disabled")
Fixes: 8eecb3295aed ("ixgbe: add LRO support")
Cc: stable@dpdk.org
Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
---
drivers/net/ixgbe/ixgbe_rxtx.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
Comments
Acked-by: Jeff Guo <jia.guo@intel.com>
> -----Original Message-----
> From: dapengx.yu@intel.com <dapengx.yu@intel.com>
> Sent: Tuesday, January 26, 2021 11:03 AM
> To: Guo, Jia <jia.guo@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>;
> Yang, Qiming <qiming.yang@intel.com>
> Cc: dev@dpdk.org; Yu, DapengX <dapengx.yu@intel.com>; stable@dpdk.org
> Subject: [PATCH v3] net/ixgbe: disable NFS filtering
>
> From: Dapeng Yu <dapengx.yu@intel.com>
>
> Disable NFS header filtering whether NFS packets coalescing are required or
> not, in order to make RSS can work on NFS packets.
>
> The code without the patch does follow datasheet, but not consistent with
> the ixgbe kernel driver. It causes NFS packets to be filtered and make them
> flow into queue 0, before RSS can work on them.
>
> Fixes: b826efba6de4 ("net/ixgbe: align register setting when RSC is disabled")
> Fixes: 8eecb3295aed ("ixgbe: add LRO support")
> Cc: stable@dpdk.org
>
> Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
> ---
> drivers/net/ixgbe/ixgbe_rxtx.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
> index cc8f70e6d..2efd054f7 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> @@ -4923,15 +4923,11 @@ ixgbe_set_rsc(struct rte_eth_dev *dev)
> /* RFCTL configuration */
> rfctl = IXGBE_READ_REG(hw, IXGBE_RFCTL);
> if ((rsc_capable) && (rx_conf->offloads &
> DEV_RX_OFFLOAD_TCP_LRO))
> - /*
> - * Since NFS packets coalescing is not supported - clear
> - * RFCTL.NFSW_DIS and RFCTL.NFSR_DIS when RSC is
> - * enabled.
> - */
> - rfctl &= ~(IXGBE_RFCTL_RSC_DIS | IXGBE_RFCTL_NFSW_DIS
> |
> - IXGBE_RFCTL_NFSR_DIS);
> + rfctl &= ~IXGBE_RFCTL_RSC_DIS;
> else
> rfctl |= IXGBE_RFCTL_RSC_DIS;
> + /* disable NFS filtering */
> + rfctl |= IXGBE_RFCTL_NFSW_DIS | IXGBE_RFCTL_NFSR_DIS;
> IXGBE_WRITE_REG(hw, IXGBE_RFCTL, rfctl);
>
> /* If LRO hasn't been requested - we are done here. */
> --
> 2.27.0
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Guo, Jia
> Sent: Tuesday, January 26, 2021 11:36 AM
> To: Yu, DapengX <dapengx.yu@intel.com>; Wang, Haiyue
> <haiyue.wang@intel.com>; Yang, Qiming <qiming.yang@intel.com>
> Cc: dev@dpdk.org; Yu, DapengX <dapengx.yu@intel.com>; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v3] net/ixgbe: disable NFS filtering
>
> Acked-by: Jeff Guo <jia.guo@intel.com>
>
> > -----Original Message-----
> > From: dapengx.yu@intel.com <dapengx.yu@intel.com>
> > Sent: Tuesday, January 26, 2021 11:03 AM
> > To: Guo, Jia <jia.guo@intel.com>; Wang, Haiyue
> > <haiyue.wang@intel.com>; Yang, Qiming <qiming.yang@intel.com>
> > Cc: dev@dpdk.org; Yu, DapengX <dapengx.yu@intel.com>; stable@dpdk.org
> > Subject: [PATCH v3] net/ixgbe: disable NFS filtering
> >
> > From: Dapeng Yu <dapengx.yu@intel.com>
> >
> > Disable NFS header filtering whether NFS packets coalescing are
> > required or not, in order to make RSS can work on NFS packets.
> >
> > The code without the patch does follow datasheet, but not consistent
> > with the ixgbe kernel driver. It causes NFS packets to be filtered and
> > make them flow into queue 0, before RSS can work on them.
> >
> > Fixes: b826efba6de4 ("net/ixgbe: align register setting when RSC is
> > disabled")
> > Fixes: 8eecb3295aed ("ixgbe: add LRO support")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
Applied to dpdk-next-net-intel.
Thanks
Qi
@@ -4923,15 +4923,11 @@ ixgbe_set_rsc(struct rte_eth_dev *dev)
/* RFCTL configuration */
rfctl = IXGBE_READ_REG(hw, IXGBE_RFCTL);
if ((rsc_capable) && (rx_conf->offloads & DEV_RX_OFFLOAD_TCP_LRO))
- /*
- * Since NFS packets coalescing is not supported - clear
- * RFCTL.NFSW_DIS and RFCTL.NFSR_DIS when RSC is
- * enabled.
- */
- rfctl &= ~(IXGBE_RFCTL_RSC_DIS | IXGBE_RFCTL_NFSW_DIS |
- IXGBE_RFCTL_NFSR_DIS);
+ rfctl &= ~IXGBE_RFCTL_RSC_DIS;
else
rfctl |= IXGBE_RFCTL_RSC_DIS;
+ /* disable NFS filtering */
+ rfctl |= IXGBE_RFCTL_NFSW_DIS | IXGBE_RFCTL_NFSR_DIS;
IXGBE_WRITE_REG(hw, IXGBE_RFCTL, rfctl);
/* If LRO hasn't been requested - we are done here. */