[dpdk-dev,11/13] cxgbe: export supported RSS hash functions
Checks
Commit Message
Export supported RSS hash functions in device info. Also add check to
prevent configuring unsupported RSS hash functions.
Fixes: 58c5a23c1c4f ("net/cxgbe: support updating RSS hash configuration and key")
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
---
drivers/net/cxgbe/cxgbe.h | 5 +++++
drivers/net/cxgbe/cxgbe_ethdev.c | 1 +
drivers/net/cxgbe/cxgbe_main.c | 6 +++++-
3 files changed, 11 insertions(+), 1 deletion(-)
Comments
On 3/10/2018 10:48 PM, Rahul Lakkireddy wrote:
> Export supported RSS hash functions in device info. Also add check to
> prevent configuring unsupported RSS hash functions.
>
> Fixes: 58c5a23c1c4f ("net/cxgbe: support updating RSS hash configuration and key")
> Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
> Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
Squashed into relevant commit in next-net, thanks.
@@ -47,6 +47,11 @@
#define CXGBE_MAX_RX_PKTLEN (9000 + ETHER_HDR_LEN + ETHER_CRC_LEN) /* max pkt */
#define CXGBE_DEFAULT_RSS_KEY_LEN 40 /* 320-bits */
+#define CXGBE_RSS_HF_ALL (ETH_RSS_IPV4 | ETH_RSS_IPV6 | \
+ ETH_RSS_NONFRAG_IPV4_TCP | \
+ ETH_RSS_NONFRAG_IPV4_UDP | \
+ ETH_RSS_NONFRAG_IPV6_TCP | \
+ ETH_RSS_NONFRAG_IPV6_UDP)
int cxgbe_probe(struct adapter *adapter);
int cxgbevf_probe(struct adapter *adapter);
@@ -173,6 +173,7 @@ void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
device_info->reta_size = pi->rss_size;
device_info->hash_key_size = CXGBE_DEFAULT_RSS_KEY_LEN;
+ device_info->flow_type_rss_offloads = CXGBE_RSS_HF_ALL;
device_info->rx_desc_lim = cxgbe_desc_lim;
device_info->tx_desc_lim = cxgbe_desc_lim;
@@ -365,7 +365,7 @@ int init_rss(struct adapter *adap)
if (!pi->rss)
return -ENOMEM;
- pi->rss_hf = ETH_RSS_TCP | ETH_RSS_UDP;
+ pi->rss_hf = CXGBE_RSS_HF_ALL;
}
return 0;
}
@@ -957,6 +957,10 @@ int cxgbe_write_rss_conf(const struct port_info *pi, uint64_t rss_hf)
return -EINVAL;
}
+ /* Don't allow unsupported hash functions */
+ if (rss_hf & ~CXGBE_RSS_HF_ALL)
+ return -EINVAL;
+
if (rss_hf & ETH_RSS_IPV4)
flags |= F_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN;