app/testpmd: refine xstats show
[dpdk.git] / app / test-pmd / cmdline.c
index caf07ba..3b691fe 100644 (file)
@@ -526,6 +526,10 @@ static void cmd_help_long_parsed(void *parsed_result,
                        "    e.g., 'set stat_qmap rx 0 2 5' sets rx queue 2"
                        " on port 0 to mapping 5.\n\n"
 
+                       "set xstats-hide-zero on|off\n"
+                       "    Set the option to hide the zero values"
+                       " for xstats display.\n"
+
                        "set port (port_id) vf (vf_id) rx|tx on|off\n"
                        "    Enable/Disable a VF receive/tranmit from a port\n\n"
 
@@ -751,6 +755,28 @@ static void cmd_help_long_parsed(void *parsed_result,
                        "del port tm node wred profile (port_id) (wred_profile_id)\n"
                        "       Delete port tm node wred profile.\n\n"
 
+                       "add port tm nonleaf node (port_id) (node_id) (parent_node_id)"
+                       " (priority) (weight) (level_id) (shaper_profile_id)"
+                       " (n_sp_priorities) (stats_mask) (n_shared_shapers)"
+                       " [(shared_shaper_id_0) (shared_shaper_id_1)...]\n"
+                       "       Add port tm nonleaf node.\n\n"
+
+                       "add port tm leaf node (port_id) (node_id) (parent_node_id)"
+                       " (priority) (weight) (level_id) (shaper_profile_id)"
+                       " (cman_mode) (wred_profile_id) (stats_mask) (n_shared_shapers)"
+                       " [(shared_shaper_id_0) (shared_shaper_id_1)...]\n"
+                       "       Add port tm leaf node.\n\n"
+
+                       "del port tm node (port_id) (node_id)\n"
+                       "       Delete port tm node.\n\n"
+
+                       "set port tm node parent (port_id) (node_id) (parent_node_id)"
+                       " (priority) (weight)\n"
+                       "       Set port tm node parent.\n\n"
+
+                       "port tm hierarchy commit (port_id) (clean_on_fail)\n"
+                       "       Commit tm hierarchy.\n\n"
+
                        , list_pkt_forwarding_modes()
                );
        }
@@ -1823,7 +1849,7 @@ cmd_config_rss_parsed(void *parsed_result,
                        __attribute__((unused)) void *data)
 {
        struct cmd_config_rss *res = parsed_result;
-       struct rte_eth_rss_conf rss_conf;
+       struct rte_eth_rss_conf rss_conf = { .rss_key_len = 0, };
        int diag;
        uint8_t i;
 
@@ -7151,6 +7177,48 @@ cmdline_parse_inst_t cmd_set_qmap = {
        },
 };
 
+/* *** SET OPTION TO HIDE ZERO VALUES FOR XSTATS  DISPLAY *** */
+struct cmd_set_xstats_hide_zero_result {
+       cmdline_fixed_string_t keyword;
+       cmdline_fixed_string_t name;
+       cmdline_fixed_string_t on_off;
+};
+
+static void
+cmd_set_xstats_hide_zero_parsed(void *parsed_result,
+                       __attribute__((unused)) struct cmdline *cl,
+                       __attribute__((unused)) void *data)
+{
+       struct cmd_set_xstats_hide_zero_result *res;
+       uint16_t on_off = 0;
+
+       res = parsed_result;
+       on_off = !strcmp(res->on_off, "on") ? 1 : 0;
+       set_xstats_hide_zero(on_off);
+}
+
+cmdline_parse_token_string_t cmd_set_xstats_hide_zero_keyword =
+       TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
+                                keyword, "set");
+cmdline_parse_token_string_t cmd_set_xstats_hide_zero_name =
+       TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
+                                name, "xstats-hide-zero");
+cmdline_parse_token_string_t cmd_set_xstats_hide_zero_on_off =
+       TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
+                                on_off, "on#off");
+
+cmdline_parse_inst_t cmd_set_xstats_hide_zero = {
+       .f = cmd_set_xstats_hide_zero_parsed,
+       .data = NULL,
+       .help_str = "set xstats-hide-zero on|off",
+       .tokens = {
+               (void *)&cmd_set_xstats_hide_zero_keyword,
+               (void *)&cmd_set_xstats_hide_zero_name,
+               (void *)&cmd_set_xstats_hide_zero_on_off,
+               NULL,
+       },
+};
+
 /* *** CONFIGURE UNICAST HASH TABLE *** */
 struct cmd_set_uc_hash_table {
        cmdline_fixed_string_t set;
@@ -7472,6 +7540,8 @@ cmd_set_vf_rxmode_parsed(void *parsed_result,
                        rx_mode |= ETH_VMDQ_ACCEPT_MULTICAST;
        }
 
+       RTE_SET_USED(is_on);
+
 #ifdef RTE_LIBRTE_IXGBE_PMD
        if (ret == -ENOTSUP)
                ret = rte_pmd_ixgbe_set_vf_rxmode(res->port_id, res->vf_id,
@@ -15555,6 +15625,7 @@ cmdline_parse_ctx_t main_ctx[] = {
        (cmdline_parse_inst_t *)&cmd_stop,
        (cmdline_parse_inst_t *)&cmd_mac_addr,
        (cmdline_parse_inst_t *)&cmd_set_qmap,
+       (cmdline_parse_inst_t *)&cmd_set_xstats_hide_zero,
        (cmdline_parse_inst_t *)&cmd_operate_port,
        (cmdline_parse_inst_t *)&cmd_operate_specific_port,
        (cmdline_parse_inst_t *)&cmd_operate_attach_port,
@@ -15692,6 +15763,11 @@ cmdline_parse_ctx_t main_ctx[] = {
        (cmdline_parse_inst_t *)&cmd_add_port_tm_node_wred_profile,
        (cmdline_parse_inst_t *)&cmd_del_port_tm_node_wred_profile,
        (cmdline_parse_inst_t *)&cmd_set_port_tm_node_shaper_profile,
+       (cmdline_parse_inst_t *)&cmd_add_port_tm_nonleaf_node,
+       (cmdline_parse_inst_t *)&cmd_add_port_tm_leaf_node,
+       (cmdline_parse_inst_t *)&cmd_del_port_tm_node,
+       (cmdline_parse_inst_t *)&cmd_set_port_tm_node_parent,
+       (cmdline_parse_inst_t *)&cmd_port_tm_hierarchy_commit,
        NULL,
 };