app/testpmd: convert to new Tx offloads API
[dpdk.git] / app / test-pmd / cmdline.c
index 1159a4a..f5835c1 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"
 
@@ -694,7 +698,10 @@ static void cmd_help_long_parsed(void *parsed_result,
                        "set port (port_id) queue-region flush (on|off)\n"
                        "    flush all queue region related configuration\n\n"
 
-                       "add port meter profile srtcm_rfc2697 (port_id) (profile_id) (cir) (cbs) (ebs) (color_aware)\n"
+                       "show port meter cap (port_id)\n"
+                       "    Show port meter capability information\n\n"
+
+                       "add port meter profile srtcm_rfc2697 (port_id) (profile_id) (cir) (cbs) (ebs)\n"
                        "    meter profile add - srtcm rfc 2697\n\n"
 
                        "add port meter profile trtcm_rfc2698 (port_id) (profile_id) (cir) (pir) (cbs) (pbs)\n"
@@ -706,16 +713,30 @@ static void cmd_help_long_parsed(void *parsed_result,
                        "del port meter profile (port_id) (profile_id)\n"
                        "    meter profile delete\n\n"
 
-                       "set port meter (port_id) (mtr_id) (profile_id) (g_action) (y_action) (r_action) (stats_mask) (shared)\n"
+                       "create port meter (port_id) (mtr_id) (profile_id) (meter_enable)\n"
+                       "(g_action) (y_action) (r_action) (stats_mask) (shared)\n"
+                       "(use_pre_meter_color) [(dscp_tbl_entry0) (dscp_tbl_entry1)...\n"
+                       "(dscp_tbl_entry63)]\n"
                        "    meter create\n\n"
 
+                       "enable port meter (port_id) (mtr_id)\n"
+                       "    meter enable\n\n"
+
+                       "disable port meter (port_id) (mtr_id)\n"
+                       "    meter disable\n\n"
+
                        "del port meter (port_id) (mtr_id)\n"
                        "    meter delete\n\n"
 
                        "set port meter profile (port_id) (mtr_id) (profile_id)\n"
                        "    meter update meter profile\n\n"
 
-                       "set port meter policer action (port_id) (mtr_id) (color) (action)\n"
+                       "set port meter dscp table (port_id) (mtr_id) [(dscp_tbl_entry0)\n"
+                       "(dscp_tbl_entry1)...(dscp_tbl_entry63)]\n"
+                       "    update meter dscp table entries\n\n"
+
+                       "set port meter policer action (port_id) (mtr_id) (action_mask)\n"
+                       "(action0) [(action1) (action2)]\n"
                        "    meter update policer action\n\n"
 
                        "set port meter stats mask (port_id) (mtr_id) (stats_mask)\n"
@@ -1573,6 +1594,7 @@ cmd_config_max_pkt_len_parsed(void *parsed_result,
                                __attribute__((unused)) void *data)
 {
        struct cmd_config_max_pkt_len_result *res = parsed_result;
+       uint64_t rx_offloads = rx_mode.offloads;
 
        if (!all_ports_stopped()) {
                printf("Please stop all ports first\n");
@@ -1590,14 +1612,16 @@ cmd_config_max_pkt_len_parsed(void *parsed_result,
 
                rx_mode.max_rx_pkt_len = res->value;
                if (res->value > ETHER_MAX_LEN)
-                       rx_mode.jumbo_frame = 1;
+                       rx_offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME;
                else
-                       rx_mode.jumbo_frame = 0;
+                       rx_offloads &= ~DEV_RX_OFFLOAD_JUMBO_FRAME;
        } else {
                printf("Unknown parameter\n");
                return;
        }
 
+       rx_mode.offloads = rx_offloads;
+
        init_port_config();
 
        cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
@@ -1699,6 +1723,7 @@ cmd_config_rx_mode_flag_parsed(void *parsed_result,
                                __attribute__((unused)) void *data)
 {
        struct cmd_config_rx_mode_flag *res = parsed_result;
+       uint64_t rx_offloads = rx_mode.offloads;
 
        if (!all_ports_stopped()) {
                printf("Please stop all ports first\n");
@@ -1707,48 +1732,48 @@ cmd_config_rx_mode_flag_parsed(void *parsed_result,
 
        if (!strcmp(res->name, "crc-strip")) {
                if (!strcmp(res->value, "on"))
-                       rx_mode.hw_strip_crc = 1;
+                       rx_offloads |= DEV_RX_OFFLOAD_CRC_STRIP;
                else if (!strcmp(res->value, "off"))
-                       rx_mode.hw_strip_crc = 0;
+                       rx_offloads &= ~DEV_RX_OFFLOAD_CRC_STRIP;
                else {
                        printf("Unknown parameter\n");
                        return;
                }
        } else if (!strcmp(res->name, "scatter")) {
-               if (!strcmp(res->value, "on"))
-                       rx_mode.enable_scatter = 1;
-               else if (!strcmp(res->value, "off"))
-                       rx_mode.enable_scatter = 0;
-               else {
+               if (!strcmp(res->value, "on")) {
+                       rx_offloads |= DEV_RX_OFFLOAD_SCATTER;
+               } else if (!strcmp(res->value, "off")) {
+                       rx_offloads &= ~DEV_RX_OFFLOAD_SCATTER;
+               else {
                        printf("Unknown parameter\n");
                        return;
                }
        } else if (!strcmp(res->name, "rx-cksum")) {
                if (!strcmp(res->value, "on"))
-                       rx_mode.hw_ip_checksum = 1;
+                       rx_offloads |= DEV_RX_OFFLOAD_CHECKSUM;
                else if (!strcmp(res->value, "off"))
-                       rx_mode.hw_ip_checksum = 0;
+                       rx_offloads &= ~DEV_RX_OFFLOAD_CHECKSUM;
                else {
                        printf("Unknown parameter\n");
                        return;
                }
        } else if (!strcmp(res->name, "rx-timestamp")) {
                if (!strcmp(res->value, "on"))
-                       rx_mode.hw_timestamp = 1;
+                       rx_offloads |= DEV_RX_OFFLOAD_TIMESTAMP;
                else if (!strcmp(res->value, "off"))
-                       rx_mode.hw_timestamp = 0;
+                       rx_offloads &= ~DEV_RX_OFFLOAD_TIMESTAMP;
                else {
                        printf("Unknown parameter\n");
                        return;
                }
        } else if (!strcmp(res->name, "hw-vlan")) {
                if (!strcmp(res->value, "on")) {
-                       rx_mode.hw_vlan_filter = 1;
-                       rx_mode.hw_vlan_strip  = 1;
+                       rx_offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
+                                       DEV_RX_OFFLOAD_VLAN_STRIP);
                }
                else if (!strcmp(res->value, "off")) {
-                       rx_mode.hw_vlan_filter = 0;
-                       rx_mode.hw_vlan_strip  = 0;
+                       rx_offloads &= ~(DEV_RX_OFFLOAD_VLAN_FILTER |
+                                       DEV_RX_OFFLOAD_VLAN_STRIP);
                }
                else {
                        printf("Unknown parameter\n");
@@ -1756,27 +1781,27 @@ cmd_config_rx_mode_flag_parsed(void *parsed_result,
                }
        } else if (!strcmp(res->name, "hw-vlan-filter")) {
                if (!strcmp(res->value, "on"))
-                       rx_mode.hw_vlan_filter = 1;
+                       rx_offloads |= DEV_RX_OFFLOAD_VLAN_FILTER;
                else if (!strcmp(res->value, "off"))
-                       rx_mode.hw_vlan_filter = 0;
+                       rx_offloads &= ~DEV_RX_OFFLOAD_VLAN_FILTER;
                else {
                        printf("Unknown parameter\n");
                        return;
                }
        } else if (!strcmp(res->name, "hw-vlan-strip")) {
                if (!strcmp(res->value, "on"))
-                       rx_mode.hw_vlan_strip  = 1;
+                       rx_offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
                else if (!strcmp(res->value, "off"))
-                       rx_mode.hw_vlan_strip  = 0;
+                       rx_offloads &= ~DEV_RX_OFFLOAD_VLAN_STRIP;
                else {
                        printf("Unknown parameter\n");
                        return;
                }
        } else if (!strcmp(res->name, "hw-vlan-extend")) {
                if (!strcmp(res->value, "on"))
-                       rx_mode.hw_vlan_extend = 1;
+                       rx_offloads |= DEV_RX_OFFLOAD_VLAN_EXTEND;
                else if (!strcmp(res->value, "off"))
-                       rx_mode.hw_vlan_extend = 0;
+                       rx_offloads &= ~DEV_RX_OFFLOAD_VLAN_EXTEND;
                else {
                        printf("Unknown parameter\n");
                        return;
@@ -1794,6 +1819,7 @@ cmd_config_rx_mode_flag_parsed(void *parsed_result,
                printf("Unknown parameter\n");
                return;
        }
+       rx_mode.offloads = rx_offloads;
 
        init_port_config();
 
@@ -1845,7 +1871,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;
 
@@ -3348,7 +3374,7 @@ cmdline_parse_token_num_t cmd_vlan_tpid_tpid =
                              tp_id, UINT16);
 cmdline_parse_token_num_t cmd_vlan_tpid_portid =
        TOKEN_NUM_INITIALIZER(struct cmd_vlan_tpid_result,
-                             port_id, UINT8);
+                             port_id, UINT16);
 
 cmdline_parse_inst_t cmd_vlan_tpid = {
        .f = cmd_vlan_tpid_parsed,
@@ -3430,7 +3456,14 @@ cmd_tx_vlan_set_parsed(void *parsed_result,
 {
        struct cmd_tx_vlan_set_result *res = parsed_result;
 
+       if (!port_is_stopped(res->port_id)) {
+               printf("Please stop port %d first\n", res->port_id);
+               return;
+       }
+
        tx_vlan_set(res->port_id, res->vlan_id);
+
+       cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
 cmdline_parse_token_string_t cmd_tx_vlan_set_tx_vlan =
@@ -3477,7 +3510,14 @@ cmd_tx_vlan_set_qinq_parsed(void *parsed_result,
 {
        struct cmd_tx_vlan_set_qinq_result *res = parsed_result;
 
+       if (!port_is_stopped(res->port_id)) {
+               printf("Please stop port %d first\n", res->port_id);
+               return;
+       }
+
        tx_qinq_set(res->port_id, res->vlan_id, res->vlan_id_outer);
+
+       cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
 cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_tx_vlan =
@@ -3583,7 +3623,14 @@ cmd_tx_vlan_reset_parsed(void *parsed_result,
 {
        struct cmd_tx_vlan_reset_result *res = parsed_result;
 
+       if (!port_is_stopped(res->port_id)) {
+               printf("Please stop port %d first\n", res->port_id);
+               return;
+       }
+
        tx_vlan_reset(res->port_id);
+
+       cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
 cmdline_parse_token_string_t cmd_tx_vlan_reset_tx_vlan =
@@ -3676,11 +3723,16 @@ cmd_csum_parsed(void *parsed_result,
        struct cmd_csum_result *res = parsed_result;
        int hw = 0;
        uint16_t mask = 0;
+       uint64_t csum_offloads = 0;
 
        if (port_id_is_invalid(res->port_id, ENABLED_WARN)) {
                printf("invalid port %d\n", res->port_id);
                return;
        }
+       if (!port_is_stopped(res->port_id)) {
+               printf("Please stop port %d first\n", res->port_id);
+               return;
+       }
 
        if (!strcmp(res->mode, "set")) {
 
@@ -3689,22 +3741,34 @@ cmd_csum_parsed(void *parsed_result,
 
                if (!strcmp(res->proto, "ip")) {
                        mask = TESTPMD_TX_OFFLOAD_IP_CKSUM;
+                       csum_offloads |= DEV_TX_OFFLOAD_IPV4_CKSUM;
                } else if (!strcmp(res->proto, "udp")) {
                        mask = TESTPMD_TX_OFFLOAD_UDP_CKSUM;
+                       csum_offloads |= DEV_TX_OFFLOAD_UDP_CKSUM;
                } else if (!strcmp(res->proto, "tcp")) {
                        mask = TESTPMD_TX_OFFLOAD_TCP_CKSUM;
+                       csum_offloads |= DEV_TX_OFFLOAD_TCP_CKSUM;
                } else if (!strcmp(res->proto, "sctp")) {
                        mask = TESTPMD_TX_OFFLOAD_SCTP_CKSUM;
+                       csum_offloads |= DEV_TX_OFFLOAD_SCTP_CKSUM;
                } else if (!strcmp(res->proto, "outer-ip")) {
                        mask = TESTPMD_TX_OFFLOAD_OUTER_IP_CKSUM;
+                       csum_offloads |= DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM;
                }
 
-               if (hw)
+               if (hw) {
                        ports[res->port_id].tx_ol_flags |= mask;
-               else
+                       ports[res->port_id].dev_conf.txmode.offloads |=
+                                                       csum_offloads;
+               } else {
                        ports[res->port_id].tx_ol_flags &= (~mask);
+                       ports[res->port_id].dev_conf.txmode.offloads &=
+                                                       (~csum_offloads);
+               }
        }
        csum_show(res->port_id);
+
+       cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
 cmdline_parse_token_string_t cmd_csum_csum =
@@ -3828,15 +3892,24 @@ cmd_tso_set_parsed(void *parsed_result,
 
        if (port_id_is_invalid(res->port_id, ENABLED_WARN))
                return;
+       if (!port_is_stopped(res->port_id)) {
+               printf("Please stop port %d first\n", res->port_id);
+               return;
+       }
 
        if (!strcmp(res->mode, "set"))
                ports[res->port_id].tso_segsz = res->tso_segsz;
 
-       if (ports[res->port_id].tso_segsz == 0)
+       if (ports[res->port_id].tso_segsz == 0) {
+               ports[res->port_id].dev_conf.txmode.offloads &=
+                                               ~DEV_TX_OFFLOAD_TCP_TSO;
                printf("TSO for non-tunneled packets is disabled\n");
-       else
+       } else {
+               ports[res->port_id].dev_conf.txmode.offloads |=
+                                               DEV_TX_OFFLOAD_TCP_TSO;
                printf("TSO segment size for non-tunneled packets is %d\n",
                        ports[res->port_id].tso_segsz);
+       }
 
        /* display warnings if configuration is not supported by the NIC */
        rte_eth_dev_info_get(res->port_id, &dev_info);
@@ -3845,6 +3918,8 @@ cmd_tso_set_parsed(void *parsed_result,
                printf("Warning: TSO enabled but not "
                        "supported by port %d\n", res->port_id);
        }
+
+       cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
 cmdline_parse_token_string_t cmd_tso_set_tso =
@@ -3930,13 +4005,27 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 
        if (port_id_is_invalid(res->port_id, ENABLED_WARN))
                return;
+       if (!port_is_stopped(res->port_id)) {
+               printf("Please stop port %d first\n", res->port_id);
+               return;
+       }
 
        if (!strcmp(res->mode, "set"))
                ports[res->port_id].tunnel_tso_segsz = res->tso_segsz;
 
-       if (ports[res->port_id].tunnel_tso_segsz == 0)
+       if (ports[res->port_id].tunnel_tso_segsz == 0) {
+               ports[res->port_id].dev_conf.txmode.offloads &=
+                       ~(DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
+                         DEV_TX_OFFLOAD_GRE_TNL_TSO |
+                         DEV_TX_OFFLOAD_IPIP_TNL_TSO |
+                         DEV_TX_OFFLOAD_GENEVE_TNL_TSO);
                printf("TSO for tunneled packets is disabled\n");
-       else {
+       } else {
+               ports[res->port_id].dev_conf.txmode.offloads |=
+                       (DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
+                        DEV_TX_OFFLOAD_GRE_TNL_TSO |
+                        DEV_TX_OFFLOAD_IPIP_TNL_TSO |
+                        DEV_TX_OFFLOAD_GENEVE_TNL_TSO);
                printf("TSO segment size for tunneled packets is %d\n",
                        ports[res->port_id].tunnel_tso_segsz);
 
@@ -3962,6 +4051,8 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
                        printf("Warning: csum set outer-ip must be set to hw "
                                "if outer L3 is IPv4; not necessary for IPv6\n");
        }
+
+       cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
 cmdline_parse_token_string_t cmd_tunnel_tso_set_tso =
@@ -7173,6 +7264,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;
@@ -7494,6 +7627,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,
@@ -10163,7 +10298,7 @@ cmdline_parse_inst_t cmd_add_del_ip_flow_director = {
                "ipv6-other|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|"
                "l2_payload src <src_ip> dst <dst_ip> tos <tos_value> "
                "proto <proto_value> ttl <ttl_value> vlan <vlan_value> "
-               "flexbytes <flexbyte_vaues> drop|fw <pf_vf> queue <queue_id> "
+               "flexbytes <flexbyte_values> drop|fw <pf_vf> queue <queue_id> "
                "fd_id <fd_id_value>: "
                "Add or delete an ip flow director entry on NIC",
        .tokens = {
@@ -12959,8 +13094,13 @@ cmd_set_macsec_offload_on_parsed(
 
        if (port_id_is_invalid(port_id, ENABLED_WARN))
                return;
+       if (!port_is_stopped(port_id)) {
+               printf("Please stop port %d first\n", port_id);
+               return;
+       }
 
        ports[port_id].tx_ol_flags |= TESTPMD_TX_OFFLOAD_MACSEC;
+       ports[port_id].dev_conf.txmode.offloads |= DEV_TX_OFFLOAD_MACSEC_INSERT;
 #ifdef RTE_LIBRTE_IXGBE_PMD
        ret = rte_pmd_ixgbe_macsec_enable(port_id, en, rp);
 #endif
@@ -12969,6 +13109,7 @@ cmd_set_macsec_offload_on_parsed(
 
        switch (ret) {
        case 0:
+               cmd_reconfig_device_queue(port_id, 1, 1);
                break;
        case -ENODEV:
                printf("invalid port_id %d\n", port_id);
@@ -13043,14 +13184,21 @@ cmd_set_macsec_offload_off_parsed(
 
        if (port_id_is_invalid(port_id, ENABLED_WARN))
                return;
+       if (!port_is_stopped(port_id)) {
+               printf("Please stop port %d first\n", port_id);
+               return;
+       }
 
        ports[port_id].tx_ol_flags &= ~TESTPMD_TX_OFFLOAD_MACSEC;
+       ports[port_id].dev_conf.txmode.offloads &=
+                                       ~DEV_TX_OFFLOAD_MACSEC_INSERT;
 #ifdef RTE_LIBRTE_IXGBE_PMD
        ret = rte_pmd_ixgbe_macsec_disable(port_id);
 #endif
 
        switch (ret) {
        case 0:
+               cmd_reconfig_device_queue(port_id, 1, 1);
                break;
        case -ENODEV:
                printf("invalid port_id %d\n", port_id);
@@ -14314,7 +14462,7 @@ cmd_ddp_info_parsed(
        uint32_t dev_num = 0;
        struct rte_pmd_i40e_ddp_device_id *devs;
        uint32_t proto_num = 0;
-       struct rte_pmd_i40e_proto_info *proto;
+       struct rte_pmd_i40e_proto_info *proto = NULL;
        uint32_t pctype_num = 0;
        struct rte_pmd_i40e_ptype_info *pctype;
        uint32_t ptype_num = 0;
@@ -14493,9 +14641,10 @@ no_print_pctypes:
        free(ptype);
        printf("\n");
 
-       free(proto);
        ret = 0;
 no_print_return:
+       if (proto)
+               free(proto);
 #endif
        if (ret == -ENOTSUP)
                printf("Function not supported in PMD driver\n");
@@ -15577,6 +15726,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,
@@ -15635,12 +15785,16 @@ cmdline_parse_ctx_t main_ctx[] = {
        (cmdline_parse_inst_t *)&cmd_set_hash_input_set,
        (cmdline_parse_inst_t *)&cmd_set_fdir_input_set,
        (cmdline_parse_inst_t *)&cmd_flow,
+       (cmdline_parse_inst_t *)&cmd_show_port_meter_cap,
        (cmdline_parse_inst_t *)&cmd_add_port_meter_profile_srtcm,
        (cmdline_parse_inst_t *)&cmd_add_port_meter_profile_trtcm,
        (cmdline_parse_inst_t *)&cmd_del_port_meter_profile,
-       (cmdline_parse_inst_t *)&cmd_set_port_meter,
+       (cmdline_parse_inst_t *)&cmd_create_port_meter,
+       (cmdline_parse_inst_t *)&cmd_enable_port_meter,
+       (cmdline_parse_inst_t *)&cmd_disable_port_meter,
        (cmdline_parse_inst_t *)&cmd_del_port_meter,
        (cmdline_parse_inst_t *)&cmd_set_port_meter_profile,
+       (cmdline_parse_inst_t *)&cmd_set_port_meter_dscp_table,
        (cmdline_parse_inst_t *)&cmd_set_port_meter_policer_action,
        (cmdline_parse_inst_t *)&cmd_set_port_meter_stats_mask,
        (cmdline_parse_inst_t *)&cmd_show_port_meter_stats,