The correct hash key size in bytes should be filled into the 'struct rte_eth_dev_info', to support querying it.
Signed-off-by: Helin Zhang <helin.zhang at intel.com> --- drivers/net/i40e/i40e_ethdev.c | 4 ++++ drivers/net/i40e/i40e_ethdev_vf.c | 4 ++++ 2 files changed, 8 insertions(+) v2 changes: * Disabled the code changes by default, to avoid breaking ABI compatibility. diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index da6c0b5..63c76a6 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -1540,6 +1540,10 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_TX_OFFLOAD_SCTP_CKSUM | DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM | DEV_TX_OFFLOAD_TCP_TSO; +#ifdef RTE_QUERY_HASH_KEY_SIZE + dev_info->hash_key_size = (I40E_PFQF_HKEY_MAX_INDEX + 1) * + sizeof(uint32_t); +#endif dev_info->reta_size = pf->hash_lut_size; dev_info->flow_type_rss_offloads = I40E_RSS_OFFLOAD_ALL; diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index 9f92a2f..486b394 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -1641,6 +1641,10 @@ i40evf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->max_tx_queues = vf->vsi_res->num_queue_pairs; dev_info->min_rx_bufsize = I40E_BUF_SIZE_MIN; dev_info->max_rx_pktlen = I40E_FRAME_SIZE_MAX; +#ifdef RTE_QUERY_HASH_KEY_SIZE + dev_info->hash_key_size = (I40E_VFQF_HKEY_MAX_INDEX + 1) * + sizeof(uint32_t); +#endif dev_info->reta_size = ETH_RSS_RETA_SIZE_64; dev_info->flow_type_rss_offloads = I40E_RSS_OFFLOAD_ALL; -- 1.9.3