From: Lijun Ou <ouli...@huawei.com>

According to the definition of RSS types of action attributes from
testpmd, the driver will not disable RSS but instead requests the
unspecified "best-effort" settings when upper application call
rte_flow_create API function to create flow using empty RSS types.

As a result, here use the default RSS types when RSS types is empty.

Fixes: c37ca66f2b27 ("net/hns3: support RSS")
Cc: sta...@dpdk.org

Signed-off-by: Lijun Ou <ouli...@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.hu...@huawei.com>
---
 drivers/net/hns3/hns3_flow.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/net/hns3/hns3_flow.c b/drivers/net/hns3/hns3_flow.c
index 1e58ad7..7ec46ae 100644
--- a/drivers/net/hns3/hns3_flow.c
+++ b/drivers/net/hns3/hns3_flow.c
@@ -1486,7 +1486,9 @@ hns3_config_rss_filter(struct rte_eth_dev *dev,
        }
 
        /* Filter the unsupported flow types */
-       flow_types = rss_flow_conf.types & HNS3_ETH_RSS_SUPPORT;
+       flow_types = conf->conf.types ?
+                    rss_flow_conf.types & HNS3_ETH_RSS_SUPPORT :
+                    hw->rss_info.conf.types;
        if (flow_types != rss_flow_conf.types)
                hns3_warn(hw, "modified RSS types based on hardware support, "
                              "requested:%" PRIx64 " configured:%" PRIx64,
@@ -1494,9 +1496,6 @@ hns3_config_rss_filter(struct rte_eth_dev *dev,
        /* Update the useful flow types */
        rss_flow_conf.types = flow_types;
 
-       if ((rss_flow_conf.types & ETH_RSS_PROTO_MASK) == 0)
-               return hns3_disable_rss(hw);
-
        rss_info = &hw->rss_info;
        if (!add) {
                if (hns3_action_rss_same(&rss_info->conf, &rss_flow_conf)) {
-- 
2.7.4

Reply via email to