net/nfp: fix RSS
Three problems are fixed in this patch:
- RSS capabilities not advertised properly
- RSS configuration just done for some RSS types
- RSS hash match reported for just some RSS types
Fixes: 934e4c60fb
("nfp: add RSS")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
This commit is contained in:
parent
9ba102f6b0
commit
f14a516898
@ -1198,8 +1198,10 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
|
||||
.tx_rs_thresh = DEFAULT_TX_RSBIT_THRESH,
|
||||
};
|
||||
|
||||
dev_info->flow_type_rss_offloads = ETH_RSS_NONFRAG_IPV4_TCP |
|
||||
dev_info->flow_type_rss_offloads = ETH_RSS_IPV4 |
|
||||
ETH_RSS_NONFRAG_IPV4_TCP |
|
||||
ETH_RSS_NONFRAG_IPV4_UDP |
|
||||
ETH_RSS_IPV6 |
|
||||
ETH_RSS_NONFRAG_IPV6_TCP |
|
||||
ETH_RSS_NONFRAG_IPV6_UDP;
|
||||
|
||||
@ -1876,6 +1878,18 @@ nfp_net_set_hash(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
|
||||
case NFP_NET_RSS_IPV6_EX:
|
||||
mbuf->packet_type |= RTE_PTYPE_INNER_L3_IPV6_EXT;
|
||||
break;
|
||||
case NFP_NET_RSS_IPV4_TCP:
|
||||
mbuf->packet_type |= RTE_PTYPE_INNER_L3_IPV6_EXT;
|
||||
break;
|
||||
case NFP_NET_RSS_IPV6_TCP:
|
||||
mbuf->packet_type |= RTE_PTYPE_INNER_L3_IPV6_EXT;
|
||||
break;
|
||||
case NFP_NET_RSS_IPV4_UDP:
|
||||
mbuf->packet_type |= RTE_PTYPE_INNER_L3_IPV6_EXT;
|
||||
break;
|
||||
case NFP_NET_RSS_IPV6_UDP:
|
||||
mbuf->packet_type |= RTE_PTYPE_INNER_L3_IPV6_EXT;
|
||||
break;
|
||||
default:
|
||||
mbuf->packet_type |= RTE_PTYPE_INNER_L4_MASK;
|
||||
}
|
||||
@ -2457,14 +2471,22 @@ nfp_net_rss_hash_write(struct rte_eth_dev *dev,
|
||||
rss_hf = rss_conf->rss_hf;
|
||||
|
||||
if (rss_hf & ETH_RSS_IPV4)
|
||||
cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV4 |
|
||||
NFP_NET_CFG_RSS_IPV4_TCP |
|
||||
NFP_NET_CFG_RSS_IPV4_UDP;
|
||||
cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV4;
|
||||
|
||||
if (rss_hf & ETH_RSS_NONFRAG_IPV4_TCP)
|
||||
cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV4_TCP;
|
||||
|
||||
if (rss_hf & ETH_RSS_NONFRAG_IPV4_UDP)
|
||||
cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV4_UDP;
|
||||
|
||||
if (rss_hf & ETH_RSS_IPV6)
|
||||
cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV6 |
|
||||
NFP_NET_CFG_RSS_IPV6_TCP |
|
||||
NFP_NET_CFG_RSS_IPV6_UDP;
|
||||
cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV6;
|
||||
|
||||
if (rss_hf & ETH_RSS_NONFRAG_IPV6_TCP)
|
||||
cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV6_TCP;
|
||||
|
||||
if (rss_hf & ETH_RSS_NONFRAG_IPV6_UDP)
|
||||
cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV6_UDP;
|
||||
|
||||
cfg_rss_ctrl |= NFP_NET_CFG_RSS_MASK;
|
||||
cfg_rss_ctrl |= NFP_NET_CFG_RSS_TOEPLITZ;
|
||||
|
Loading…
Reference in New Issue
Block a user