Command show-port should show RSS info (rss_key, len and rss_hf),
However, the information is shown only when rss_conf.rss_key is not
NULL. Since no memory is allocated for rss_conf.rss_key, rss_key
will always be NULL and the rss_info will never show. This patch
fixes it.

Fixes: 8a37f37fc243 ("app/procinfo: add --show-port")
Cc: sta...@dpdk.org

Signed-off-by: Jie Hai <haij...@huawei.com>
Signed-off-by: Dongdong Liu <liudongdo...@huawei.com>
Acked-by: Reshma Pattan <reshma.pat...@intel.com>
---
 app/proc-info/main.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index af4c1d8bcbd4..4509b3c16e36 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -152,6 +152,8 @@ struct desc_param {
 static struct desc_param rx_desc_param;
 static struct desc_param tx_desc_param;
 
+#define RSS_HASH_KEY_SIZE 64
+
 /* display usage */
 static void
 proc_info_usage(const char *prgname)
@@ -1013,6 +1015,7 @@ show_port(void)
                struct rte_eth_fc_conf fc_conf;
                struct rte_ether_addr mac;
                struct rte_eth_dev_owner owner;
+               uint8_t rss_key[RSS_HASH_KEY_SIZE];
 
                /* Skip if port is not in mask */
                if ((enabled_port_mask & (1ul << i)) == 0)
@@ -1171,17 +1174,17 @@ show_port(void)
                        printf("\n");
                }
 
+               rss_conf.rss_key = rss_key;
+               rss_conf.rss_key_len = dev_info.hash_key_size;
                ret = rte_eth_dev_rss_hash_conf_get(i, &rss_conf);
                if (ret == 0) {
-                       if (rss_conf.rss_key) {
-                               printf("  - RSS\n");
-                               printf("\t  -- RSS len %u key (hex):",
-                                               rss_conf.rss_key_len);
-                               for (k = 0; k < rss_conf.rss_key_len; k++)
-                                       printf(" %x", rss_conf.rss_key[k]);
-                               printf("\t  -- hf 0x%"PRIx64"\n",
-                                               rss_conf.rss_hf);
-                       }
+                       printf("  - RSS\n");
+                       printf("\t  -- RSS len %u key (hex):",
+                                       rss_conf.rss_key_len);
+                       for (k = 0; k < rss_conf.rss_key_len; k++)
+                               printf(" %x", rss_conf.rss_key[k]);
+                       printf("\t  -- hf 0x%"PRIx64"\n",
+                                       rss_conf.rss_hf);
                }
 
 #ifdef RTE_LIB_SECURITY
-- 
2.30.0

Reply via email to