From: Kiran Kumar K <kirankum...@marvell.com>

While creating a RSS rule, if no RSS types are specified,
use RSS types from dev config.

Fixes: bc778a17fa46 ("net/cnxk: support flow RSS")
Cc: sta...@dpdk.org

Signed-off-by: Kiran Kumar K <kirankum...@marvell.com>
Reviewed-by: Satheesh Paul <psathe...@marvell.com>
---
 drivers/net/cnxk/cnxk_flow.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/net/cnxk/cnxk_flow.c b/drivers/net/cnxk/cnxk_flow.c
index 11670d37e0..a92b61c332 100644
--- a/drivers/net/cnxk/cnxk_flow.c
+++ b/drivers/net/cnxk/cnxk_flow.c
@@ -103,15 +103,19 @@ npc_rss_action_validate(struct rte_eth_dev *eth_dev, 
const struct rte_flow_attr
 }
 
 static void
-npc_rss_flowkey_get(struct cnxk_eth_dev *eth_dev,
-                   const struct roc_npc_action *rss_action,
-                   uint32_t *flowkey_cfg)
+npc_rss_flowkey_get(struct cnxk_eth_dev *eth_dev, const struct roc_npc_action 
*rss_action,
+                   uint32_t *flowkey_cfg, uint64_t default_rss_types)
 {
        const struct roc_npc_action_rss *rss;
+       uint64_t rss_types;
 
        rss = (const struct roc_npc_action_rss *)rss_action->conf;
+       rss_types = rss->types;
+       /* If no RSS types are specified, use default one */
+       if (rss_types == 0)
+               rss_types = default_rss_types;
 
-       *flowkey_cfg = cnxk_rss_ethdev_to_nix(eth_dev, rss->types, rss->level);
+       *flowkey_cfg = cnxk_rss_ethdev_to_nix(eth_dev, rss_types, rss->level);
 }
 
 static int
@@ -293,7 +297,8 @@ cnxk_map_actions(struct rte_eth_dev *eth_dev, const struct 
rte_flow_attr *attr,
                                goto err_exit;
                        in_actions[i].type = ROC_NPC_ACTION_TYPE_RSS;
                        in_actions[i].conf = actions->conf;
-                       npc_rss_flowkey_get(dev, &in_actions[i], flowkey_cfg);
+                       npc_rss_flowkey_get(dev, &in_actions[i], flowkey_cfg,
+                                           
eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf);
                        break;
 
                case RTE_FLOW_ACTION_TYPE_SECURITY:
-- 
2.39.2

Reply via email to