New upstream version 17.11.5
[deb_dpdk.git] / app / test-pmd / cmdline_tm.c
index 4acef98..4dcddaf 100644 (file)
@@ -795,8 +795,10 @@ struct cmd_add_port_tm_node_shaper_profile_result {
        cmdline_fixed_string_t profile;
        uint16_t port_id;
        uint32_t shaper_id;
-       uint64_t tb_rate;
-       uint64_t tb_size;
+       uint64_t cmit_tb_rate;
+       uint64_t cmit_tb_size;
+       uint64_t peak_tb_rate;
+       uint64_t peak_tb_size;
        uint32_t pktlen_adjust;
 };
 
@@ -831,14 +833,22 @@ cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_shaper_id =
        TOKEN_NUM_INITIALIZER(
                struct cmd_add_port_tm_node_shaper_profile_result,
                        shaper_id, UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_tb_rate =
+cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_rate =
        TOKEN_NUM_INITIALIZER(
                struct cmd_add_port_tm_node_shaper_profile_result,
-                       tb_rate, UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_tb_size =
+                       cmit_tb_rate, UINT64);
+cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_size =
        TOKEN_NUM_INITIALIZER(
                struct cmd_add_port_tm_node_shaper_profile_result,
-                       tb_size, UINT64);
+                       cmit_tb_size, UINT64);
+cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_rate =
+       TOKEN_NUM_INITIALIZER(
+               struct cmd_add_port_tm_node_shaper_profile_result,
+                       peak_tb_rate, UINT64);
+cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_size =
+       TOKEN_NUM_INITIALIZER(
+               struct cmd_add_port_tm_node_shaper_profile_result,
+                       peak_tb_size, UINT64);
 cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_pktlen_adjust =
        TOKEN_NUM_INITIALIZER(
                struct cmd_add_port_tm_node_shaper_profile_result,
@@ -861,8 +871,10 @@ static void cmd_add_port_tm_node_shaper_profile_parsed(void *parsed_result,
 
        /* Private shaper profile params */
        memset(&sp, 0, sizeof(struct rte_tm_shaper_params));
-       sp.peak.rate = res->tb_rate;
-       sp.peak.size = res->tb_size;
+       sp.committed.rate = res->cmit_tb_rate;
+       sp.committed.size = res->cmit_tb_size;
+       sp.peak.rate = res->peak_tb_rate;
+       sp.peak.size = res->peak_tb_size;
        sp.pkt_length_adjust = pkt_len_adjust;
 
        ret = rte_tm_shaper_profile_add(port_id, shaper_id, &sp, &error);
@@ -885,8 +897,10 @@ cmdline_parse_inst_t cmd_add_port_tm_node_shaper_profile = {
                (void *)&cmd_add_port_tm_node_shaper_profile_profile,
                (void *)&cmd_add_port_tm_node_shaper_profile_port_id,
                (void *)&cmd_add_port_tm_node_shaper_profile_shaper_id,
-               (void *)&cmd_add_port_tm_node_shaper_profile_tb_rate,
-               (void *)&cmd_add_port_tm_node_shaper_profile_tb_size,
+               (void *)&cmd_add_port_tm_node_shaper_profile_cmit_tb_rate,
+               (void *)&cmd_add_port_tm_node_shaper_profile_cmit_tb_size,
+               (void *)&cmd_add_port_tm_node_shaper_profile_peak_tb_rate,
+               (void *)&cmd_add_port_tm_node_shaper_profile_peak_tb_size,
                (void *)&cmd_add_port_tm_node_shaper_profile_pktlen_adjust,
                NULL,
        },
@@ -1599,12 +1613,6 @@ static void cmd_add_port_tm_nonleaf_node_parsed(void *parsed_result,
        if (port_id_is_invalid(port_id, ENABLED_WARN))
                return;
 
-       /* Port status */
-       if (port_is_started(port_id)) {
-               printf(" Port %u not stopped (error)\n", port_id);
-               return;
-       }
-
        memset(&np, 0, sizeof(struct rte_tm_node_params));
 
        /* Node parameters */
@@ -1630,10 +1638,12 @@ static void cmd_add_port_tm_nonleaf_node_parsed(void *parsed_result,
 
        np.shaper_profile_id = res->shaper_profile_id;
        np.n_shared_shapers = n_shared_shapers;
-       if (np.n_shared_shapers)
+       if (np.n_shared_shapers) {
                np.shared_shaper_id = &shared_shaper_id[0];
-       else
-               np.shared_shaper_id = NULL;
+       } else {
+               free(shared_shaper_id);
+               shared_shaper_id = NULL;
+       }
 
        np.nonleaf.n_sp_priorities = res->n_sp_priorities;
        np.stats_mask = res->stats_mask;
@@ -1759,12 +1769,6 @@ static void cmd_add_port_tm_leaf_node_parsed(void *parsed_result,
        if (port_id_is_invalid(port_id, ENABLED_WARN))
                return;
 
-       /* Port status */
-       if (port_is_started(port_id)) {
-               printf(" Port %u not stopped (error)\n", port_id);
-               return;
-       }
-
        memset(&np, 0, sizeof(struct rte_tm_node_params));
 
        /* Node parameters */
@@ -1791,10 +1795,12 @@ static void cmd_add_port_tm_leaf_node_parsed(void *parsed_result,
        np.shaper_profile_id = res->shaper_profile_id;
        np.n_shared_shapers = n_shared_shapers;
 
-       if (np.n_shared_shapers)
+       if (np.n_shared_shapers) {
                np.shared_shaper_id = &shared_shaper_id[0];
-       else
-               np.shared_shaper_id = NULL;
+       } else {
+               free(shared_shaper_id);
+               shared_shaper_id = NULL;
+       }
 
        np.leaf.cman = res->cman_mode;
        np.leaf.wred.wred_profile_id = res->wred_profile_id;