Only configure RSS hash functions supported by the device.

Signed-off-by: Xueming Li <xuemi...@mellanox.com>
---
 app/test-pmd/cmdline.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 40b31ad7e..c41dd71ce 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -1879,6 +1879,7 @@ cmd_config_rss_parsed(void *parsed_result,
 {
        struct cmd_config_rss *res = parsed_result;
        struct rte_eth_rss_conf rss_conf = { .rss_key_len = 0, };
+       struct rte_eth_dev_info dev_info = {0};
        int diag;
        uint8_t i;
 
@@ -1915,6 +1916,11 @@ cmd_config_rss_parsed(void *parsed_result,
        }
        rss_conf.rss_key = NULL;
        for (i = 0; i < rte_eth_dev_count(); i++) {
+               if (!strcmp(res->value, "all")) {
+                       rte_eth_dev_info_get(i, &dev_info);
+                       if (dev_info.flow_type_rss_offloads)
+                           rss_conf.rss_hf = dev_info.flow_type_rss_offloads;
+               }
                diag = rte_eth_dev_rss_hash_update(i, &rss_conf);
                if (diag < 0)
                        printf("Configuration of RSS hash at ethernet port %d "
-- 
2.13.3

Reply via email to