X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fspdk%2Fdpdk%2Fapp%2Ftest-pmd%2Fcmdline_mtr.c;h=ab5c8642dba3cba6e16023fc557a54c632df7fff;hb=9f95a23ce0ce15b5cd2b85dc8aaf3906fbf7f463;hp=f908fb3520c8266ca50f144cc03ca547c7285a15;hpb=048b4641096fe966f6d4b1d982fa5ebd37d72d84;p=ceph.git diff --git a/ceph/src/spdk/dpdk/app/test-pmd/cmdline_mtr.c b/ceph/src/spdk/dpdk/app/test-pmd/cmdline_mtr.c index f908fb352..ab5c8642d 100644 --- a/ceph/src/spdk/dpdk/app/test-pmd/cmdline_mtr.c +++ b/ceph/src/spdk/dpdk/app/test-pmd/cmdline_mtr.c @@ -74,7 +74,7 @@ parse_uint(uint64_t *value, const char *str) } static int -parse_dscp_table_entries(char *str, enum rte_mtr_color *dscp_table) +parse_dscp_table_entries(char *str, enum rte_color **dscp_table) { char *token; int i = 0; @@ -84,23 +84,23 @@ parse_dscp_table_entries(char *str, enum rte_mtr_color *dscp_table) return 0; /* Allocate memory for dscp table */ - dscp_table = (enum rte_mtr_color *)malloc(MAX_DSCP_TABLE_ENTRIES * - sizeof(enum rte_mtr_color)); - if (dscp_table == NULL) + *dscp_table = (enum rte_color *)malloc(MAX_DSCP_TABLE_ENTRIES * + sizeof(enum rte_color)); + if (*dscp_table == NULL) return -1; while (1) { if (strcmp(token, "G") == 0 || strcmp(token, "g") == 0) - dscp_table[i++] = RTE_MTR_GREEN; + *dscp_table[i++] = RTE_COLOR_GREEN; else if (strcmp(token, "Y") == 0 || strcmp(token, "y") == 0) - dscp_table[i++] = RTE_MTR_YELLOW; + *dscp_table[i++] = RTE_COLOR_YELLOW; else if (strcmp(token, "R") == 0 || strcmp(token, "r") == 0) - dscp_table[i++] = RTE_MTR_RED; + *dscp_table[i++] = RTE_COLOR_RED; else { - free(dscp_table); + free(*dscp_table); return -1; } if (i == MAX_DSCP_TABLE_ENTRIES) @@ -108,7 +108,7 @@ parse_dscp_table_entries(char *str, enum rte_mtr_color *dscp_table) token = strtok_r(str, PARSE_DELIMITER, &str); if (token == NULL) { - free(dscp_table); + free(*dscp_table); return -1; } } @@ -117,7 +117,7 @@ parse_dscp_table_entries(char *str, enum rte_mtr_color *dscp_table) static int parse_meter_color_str(char *c_str, uint32_t *use_prev_meter_color, - enum rte_mtr_color *dscp_table) + enum rte_color **dscp_table) { char *token; uint64_t previous_mtr_color = 0; @@ -182,20 +182,20 @@ parse_policer_action_string(char *p_str, uint32_t action_mask, return -1; if (g_color == 0 && (action_mask & 0x1)) { - actions[RTE_MTR_GREEN] = action; + actions[RTE_COLOR_GREEN] = action; g_color = 1; } else if (y_color == 0 && (action_mask & 0x2)) { - actions[RTE_MTR_YELLOW] = action; + actions[RTE_COLOR_YELLOW] = action; y_color = 1; } else - actions[RTE_MTR_RED] = action; + actions[RTE_COLOR_RED] = action; } return 0; } static int parse_multi_token_string(char *t_str, uint16_t *port_id, - uint32_t *mtr_id, enum rte_mtr_color *dscp_table) + uint32_t *mtr_id, enum rte_color **dscp_table) { char *token; uint64_t val; @@ -414,9 +414,9 @@ cmdline_parse_inst_t cmd_add_port_meter_profile_srtcm = { (void *)&cmd_add_port_meter_profile_srtcm_port, (void *)&cmd_add_port_meter_profile_srtcm_meter, (void *)&cmd_add_port_meter_profile_srtcm_profile, + (void *)&cmd_add_port_meter_profile_srtcm_srtcm_rfc2697, (void *)&cmd_add_port_meter_profile_srtcm_port_id, (void *)&cmd_add_port_meter_profile_srtcm_profile_id, - (void *)&cmd_add_port_meter_profile_srtcm_srtcm_rfc2697, (void *)&cmd_add_port_meter_profile_srtcm_cir, (void *)&cmd_add_port_meter_profile_srtcm_cbs, (void *)&cmd_add_port_meter_profile_srtcm_ebs, @@ -521,9 +521,9 @@ cmdline_parse_inst_t cmd_add_port_meter_profile_trtcm = { (void *)&cmd_add_port_meter_profile_trtcm_port, (void *)&cmd_add_port_meter_profile_trtcm_meter, (void *)&cmd_add_port_meter_profile_trtcm_profile, + (void *)&cmd_add_port_meter_profile_trtcm_trtcm_rfc2698, (void *)&cmd_add_port_meter_profile_trtcm_port_id, (void *)&cmd_add_port_meter_profile_trtcm_profile_id, - (void *)&cmd_add_port_meter_profile_trtcm_trtcm_rfc2698, (void *)&cmd_add_port_meter_profile_trtcm_cir, (void *)&cmd_add_port_meter_profile_trtcm_pir, (void *)&cmd_add_port_meter_profile_trtcm_cbs, @@ -633,9 +633,9 @@ cmdline_parse_inst_t cmd_add_port_meter_profile_trtcm_rfc4115 = { (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_port, (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_meter, (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_profile, + (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_trtcm_rfc4115, (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_port_id, (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_profile_id, - (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_trtcm_rfc4115, (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_cir, (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_eir, (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_cbs, @@ -782,7 +782,7 @@ static void cmd_create_port_meter_parsed(void *parsed_result, uint32_t shared = res->shared; uint32_t use_prev_meter_color = 0; uint16_t port_id = res->port_id; - enum rte_mtr_color *dscp_table = NULL; + enum rte_color *dscp_table = NULL; char *c_str = res->meter_input_color; int ret; @@ -794,7 +794,7 @@ static void cmd_create_port_meter_parsed(void *parsed_result, params.meter_profile_id = res->profile_id; /* Parse meter input color string params */ - ret = parse_meter_color_str(c_str, &use_prev_meter_color, dscp_table); + ret = parse_meter_color_str(c_str, &use_prev_meter_color, &dscp_table); if (ret) { printf(" Meter input color params string parse error\n"); return; @@ -808,11 +808,11 @@ static void cmd_create_port_meter_parsed(void *parsed_result, else params.meter_enable = 0; - params.action[RTE_MTR_GREEN] = + params.action[RTE_COLOR_GREEN] = string_to_policer_action(res->g_action); - params.action[RTE_MTR_YELLOW] = + params.action[RTE_COLOR_YELLOW] = string_to_policer_action(res->y_action); - params.action[RTE_MTR_RED] = + params.action[RTE_COLOR_RED] = string_to_policer_action(res->r_action); params.stats_mask = res->statistics_mask; @@ -1134,29 +1134,29 @@ static void cmd_set_port_meter_dscp_table_parsed(void *parsed_result, { struct cmd_set_port_meter_dscp_table_result *res = parsed_result; struct rte_mtr_error error; - enum rte_mtr_color *dscp_table = NULL; + enum rte_color *dscp_table = NULL; char *t_str = res->token_string; uint32_t mtr_id = 0; uint16_t port_id; int ret; /* Parse string */ - ret = parse_multi_token_string(t_str, &port_id, &mtr_id, dscp_table); + ret = parse_multi_token_string(t_str, &port_id, &mtr_id, &dscp_table); if (ret) { printf(" Multi token string parse error\n"); return; } if (port_id_is_invalid(port_id, ENABLED_WARN)) - return; + goto free_table; /* Update Meter DSCP Table*/ ret = rte_mtr_meter_dscp_table_update(port_id, mtr_id, dscp_table, &error); - if (ret != 0) { + if (ret != 0) print_err_msg(&error); - return; - } + +free_table: free(dscp_table); } @@ -1245,7 +1245,7 @@ static void cmd_set_port_meter_policer_action_parsed(void *parsed_result, } /* Allocate memory for policer actions */ - actions = (enum rte_mtr_policer_action *)malloc(RTE_MTR_COLORS * + actions = (enum rte_mtr_policer_action *)malloc(RTE_COLORS * sizeof(enum rte_mtr_policer_action)); if (actions == NULL) { printf("Memory for policer actions not allocated (error)\n"); @@ -1426,22 +1426,22 @@ static void cmd_show_port_meter_stats_parsed(void *parsed_result, /* Display stats */ if (stats_mask & RTE_MTR_STATS_N_PKTS_GREEN) printf("\tPkts G: %" PRIu64 "\n", - stats.n_pkts[RTE_MTR_GREEN]); + stats.n_pkts[RTE_COLOR_GREEN]); if (stats_mask & RTE_MTR_STATS_N_BYTES_GREEN) printf("\tBytes G: %" PRIu64 "\n", - stats.n_bytes[RTE_MTR_GREEN]); + stats.n_bytes[RTE_COLOR_GREEN]); if (stats_mask & RTE_MTR_STATS_N_PKTS_YELLOW) printf("\tPkts Y: %" PRIu64 "\n", - stats.n_pkts[RTE_MTR_YELLOW]); + stats.n_pkts[RTE_COLOR_YELLOW]); if (stats_mask & RTE_MTR_STATS_N_BYTES_YELLOW) printf("\tBytes Y: %" PRIu64 "\n", - stats.n_bytes[RTE_MTR_YELLOW]); + stats.n_bytes[RTE_COLOR_YELLOW]); if (stats_mask & RTE_MTR_STATS_N_PKTS_RED) printf("\tPkts R: %" PRIu64 "\n", - stats.n_pkts[RTE_MTR_RED]); + stats.n_pkts[RTE_COLOR_RED]); if (stats_mask & RTE_MTR_STATS_N_BYTES_RED) - printf("\tBytes Y: %" PRIu64 "\n", - stats.n_bytes[RTE_MTR_RED]); + printf("\tBytes R: %" PRIu64 "\n", + stats.n_bytes[RTE_COLOR_RED]); if (stats_mask & RTE_MTR_STATS_N_PKTS_DROPPED) printf("\tPkts DROPPED: %" PRIu64 "\n", stats.n_pkts_dropped);