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

Reply via email to