From aeef461fd68e22bf354c4cc623c4115d6b21aae2 Mon Sep 17 00:00:00 2001 From: Jeff Guo Date: Wed, 13 May 2020 16:21:28 -0400 Subject: [PATCH] net/iavf: fix RSS algorithm configuration When configure RSS rule, the etherdev rss hash function type should be mapped to the corresponding virtchnl rss algorithm type. Fixes: 7be10c3004be ("net/iavf: add RSS configuration for VF") Signed-off-by: Jeff Guo Acked-by: Qi Zhang --- drivers/net/iavf/iavf_hash.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index 6359ead764..975c845569 100644 --- a/drivers/net/iavf/iavf_hash.c +++ b/drivers/net/iavf/iavf_hash.c @@ -47,7 +47,7 @@ struct iavf_hash_match_type { struct iavf_rss_meta { struct virtchnl_proto_hdrs *proto_hdrs; - uint32_t hash_function; + enum virtchnl_rss_algorithm rss_algorithm; }; struct iavf_hash_flow_cfg { @@ -1001,13 +1001,15 @@ iavf_hash_parse_action(struct iavf_pattern_match_item *pattern_match_item, /* Check hash function and save it to rss_meta. */ if (rss->func == RTE_ETH_HASH_FUNCTION_SIMPLE_XOR) - rss_meta->hash_function = - RTE_ETH_HASH_FUNCTION_SIMPLE_XOR; - - if (rss->func == - RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ) - rss_meta->hash_function = - RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ; + rss_meta->rss_algorithm = + VIRTCHNL_RSS_ALG_XOR_ASYMMETRIC; + else if (rss->func == + RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ) + rss_meta->rss_algorithm = + VIRTCHNL_RSS_ALG_TOEPLITZ_SYMMETRIC; + else + rss_meta->rss_algorithm = + VIRTCHNL_RSS_ALG_TOEPLITZ_ASYMMETRIC; type_match_item = rte_zmalloc("iavf_type_match_item", @@ -1126,7 +1128,7 @@ iavf_hash_create(__rte_unused struct iavf_adapter *ad, } rss_cfg->proto_hdrs = *rss_meta->proto_hdrs; - rss_cfg->rss_algorithm = rss_meta->hash_function; + rss_cfg->rss_algorithm = rss_meta->rss_algorithm; ret = iavf_add_del_rss_cfg(ad, rss_cfg, true); if (!ret) { -- 2.20.1