Remove fwd_config_setup from fwd_config_display and check that forwarding has been setup before displaying forwarding configuration. Add call to fwd_config_setup for corelist, coremask, nbcore setup. Add call to fwd_config_setup for portlist, portmask, nbport setup.
Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com> --- app/test-pmd/cmdline.c | 23 ++++++++++++++++------- app/test-pmd/config.c | 6 ++++-- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index fd389ac..2c2a0c7 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -2520,16 +2520,20 @@ static void cmd_set_list_parsed(void *parsed_result, nb_item = parse_item_list(res->list_of_items, "core", RTE_MAX_LCORE, parsed_items.lcorelist, 1); - if (nb_item > 0) + if (nb_item > 0) { set_fwd_lcores_list(parsed_items.lcorelist, nb_item); + fwd_config_setup(); + } return; } if (!strcmp(res->list_name, "portlist")) { nb_item = parse_item_list(res->list_of_items, "port", RTE_MAX_ETHPORTS, parsed_items.portlist, 1); - if (nb_item > 0) + if (nb_item > 0) { set_fwd_ports_list(parsed_items.portlist, nb_item); + fwd_config_setup(); + } } } @@ -2573,10 +2577,13 @@ static void cmd_set_mask_parsed(void *parsed_result, printf("Please stop forwarding first\n"); return; } - if (!strcmp(res->mask, "coremask")) + if (!strcmp(res->mask, "coremask")) { set_fwd_lcores_mask(res->hexavalue); - else if (!strcmp(res->mask, "portmask")) + fwd_config_setup(); + } else if (!strcmp(res->mask, "portmask")) { set_fwd_ports_mask(res->hexavalue); + fwd_config_setup(); + } } cmdline_parse_token_string_t cmd_setmask_set = @@ -2613,11 +2620,13 @@ static void cmd_set_parsed(void *parsed_result, __attribute__((unused)) void *data) { struct cmd_set_result *res = parsed_result; - if (!strcmp(res->what, "nbport")) + if (!strcmp(res->what, "nbport")) { set_fwd_ports_number(res->value); - else if (!strcmp(res->what, "nbcore")) + fwd_config_setup(); + } else if (!strcmp(res->what, "nbcore")) { set_fwd_lcores_number(res->value); - else if (!strcmp(res->what, "burst")) + fwd_config_setup(); + } else if (!strcmp(res->what, "burst")) set_nb_pkt_per_burst(res->value); else if (!strcmp(res->what, "verbose")) set_verbose_level(res->value); diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index f434999..8ef9c85 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -1424,8 +1424,10 @@ pkt_fwd_config_display(struct fwd_config *cfg) void fwd_config_display(void) { - fwd_config_setup(); - pkt_fwd_config_display(&cur_fwd_config); + if (cur_fwd_config.nb_fwd_ports) + pkt_fwd_config_display(&cur_fwd_config); + else + printf("Please set portlist first\n"); } int -- 2.6.3