[dpdk-dev] [PATCH] nfp: fix rss
Alejandro Lucero
alejandro.lucero at netronome.com
Fri Aug 11 15:43:50 CEST 2017
Redirection table was not being updated properly.
There is also a problem when configuring RSS.
Fixes: 934e4c60fbff ("nfp: add RSS")
Signed-off-by: Alejandro Lucero <alejandro.lucero at netronome.com>
---
drivers/net/nfp/nfp_net.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index 1db7a66..c9895a2 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -2254,7 +2254,8 @@ uint32_t nfp_net_txq_full(struct nfp_net_txq *txq)
reta &= ~(0xFF << (8 * j));
reta |= reta_conf[idx].reta[shift + j] << (8 * j);
}
- nn_cfg_writel(hw, NFP_NET_CFG_RSS_ITBL + shift, reta);
+ nn_cfg_writel(hw, NFP_NET_CFG_RSS_ITBL + (idx * 64) + shift,
+ reta);
}
update = NFP_NET_CFG_UPDATE_RSS;
@@ -2301,7 +2302,8 @@ uint32_t nfp_net_txq_full(struct nfp_net_txq *txq)
if (!mask)
continue;
- reta = nn_cfg_readl(hw, NFP_NET_CFG_RSS_ITBL + shift);
+ reta = nn_cfg_readl(hw, NFP_NET_CFG_RSS_ITBL + (idx * 64) +
+ shift);
for (j = 0; j < 4; j++) {
if (!(mask & (0x1 << j)))
continue;
@@ -2351,6 +2353,9 @@ uint32_t nfp_net_txq_full(struct nfp_net_txq *txq)
NFP_NET_CFG_RSS_IPV6_TCP |
NFP_NET_CFG_RSS_IPV6_UDP;
+ cfg_rss_ctrl |= NFP_NET_CFG_RSS_MASK;
+ cfg_rss_ctrl |= NFP_NET_CFG_RSS_TOEPLITZ;
+
/* configuring where to apply the RSS hash */
nn_cfg_writel(hw, NFP_NET_CFG_RSS_CTRL, cfg_rss_ctrl);
--
1.9.1
More information about the dev
mailing list