From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from USCAMAIL.TILERA.COM (uscamail.tilera.com [12.218.212.166]) by dpdk.org (Postfix) with ESMTP id 828D1156 for ; Thu, 3 Apr 2014 19:28:46 +0200 (CEST) Received: from sclab-apps-2.internal.tilera.com (10.108.0.15) by USCAEXCH2.tad.internal.tilera.com (10.103.0.33) with Microsoft SMTP Server (TLS) id 14.0.702.0; Thu, 3 Apr 2014 10:30:22 -0700 Received: (from cchemparathy@localhost) by sclab-apps-2.internal.tilera.com (8.14.4/8.14.4/Submit) id s33HUL3C029242; Thu, 3 Apr 2014 10:30:21 -0700 X-Authentication-Warning: sclab-apps-2.internal.tilera.com: cchemparathy set sender to cchemparathy@tilera.com using -f From: Cyril Chemparathy To: Date: Thu, 3 Apr 2014 10:30:12 -0700 Message-ID: <1396546216-29200-3-git-send-email-cchemparathy@tilera.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1396546216-29200-1-git-send-email-cchemparathy@tilera.com> References: <1396546216-29200-1-git-send-email-cchemparathy@tilera.com> MIME-Version: 1.0 Content-Type: text/plain Subject: [dpdk-dev] [PATCH 2/6] test-pmd: add support for auto-start when interactive X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Apr 2014 17:28:47 -0000 This patch adds support for a command-line argument --auto-start (-a). When running in interactive mode, this allows us to start traffic without user intervention before dropping to the prompt. Signed-off-by: Cyril Chemparathy --- app/test-pmd/parameters.c | 20 ++++++++++++++++---- app/test-pmd/testpmd.c | 9 +++++++-- app/test-pmd/testpmd.h | 1 + 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index d47d020..18b52cc 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -85,7 +85,7 @@ usage(char* progname) #ifdef RTE_LIBRTE_CMDLINE "[--interactive|-i] " #endif - "[--help|-h] | [" + "[--help|-h] | [--auto-start|-a] | [" "--coremask=COREMASK --portmask=PORTMASK --numa " "--mbuf-size= | --total-num-mbufs= | " "--nb-cores= | --nb-ports= | " @@ -102,6 +102,8 @@ usage(char* progname) #ifdef RTE_LIBRTE_CMDLINE printf(" --interactive: run in interactive mode.\n"); #endif + printf(" --auto-start: start forwarding on init " + "[always when non-interactive].\n"); printf(" --help: display this message and quit.\n"); printf(" --nb-cores=N: set the number of forwarding cores " "(1 <= N <= %d).\n", nb_lcores); @@ -485,6 +487,7 @@ launch_args_parse(int argc, char** argv) { "help", 0, 0, 0 }, #ifdef RTE_LIBRTE_CMDLINE { "interactive", 0, 0, 0 }, + { "auto-start", 0, 0, 0 }, { "eth-peers-configfile", 1, 0, 0 }, { "eth-peer", 1, 0, 0 }, #endif @@ -539,11 +542,11 @@ launch_args_parse(int argc, char** argv) argvopt = argv; #ifdef RTE_LIBRTE_CMDLINE -#define SHORTOPTS "ih" +#define SHORTOPTS "i" #else -#define SHORTOPTS "h" +#define SHORTOPTS "" #endif - while ((opt = getopt_long(argc, argvopt, SHORTOPTS, + while ((opt = getopt_long(argc, argvopt, SHORTOPTS "ah", lgopts, &opt_idx)) != EOF) { switch (opt) { #ifdef RTE_LIBRTE_CMDLINE @@ -552,6 +555,11 @@ launch_args_parse(int argc, char** argv) interactive = 1; break; #endif + case 'a': + printf("Auto-start selected\n"); + auto_start = 1; + break; + case 0: /*long options */ if (!strcmp(lgopts[opt_idx].name, "help")) { usage(argv[0]); @@ -562,6 +570,10 @@ launch_args_parse(int argc, char** argv) printf("Interactive-mode selected\n"); interactive = 1; } + if (!strcmp(lgopts[opt_idx].name, "auto-start")) { + printf("Auto-start selected\n"); + auto_start = 1; + } if (!strcmp(lgopts[opt_idx].name, "eth-peers-configfile")) { if (init_peer_eth_addrs(optarg) != 0) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 04dca57..cde9c2b 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -83,6 +83,7 @@ uint16_t verbose_level = 0; /**< Silent by default. */ /* use master core for command line ? */ uint8_t interactive = 0; +uint8_t auto_start = 0; /* * NUMA support configuration. @@ -1794,9 +1795,13 @@ main(int argc, char** argv) rte_eth_promiscuous_enable(port_id); #ifdef RTE_LIBRTE_CMDLINE - if (interactive == 1) + if (interactive == 1) { + if (auto_start) { + printf("Start automatic packet forwarding\n"); + start_packet_forwarding(0); + } prompt(); - else + } else #endif { char c; diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index a4842ec..52d3543 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -270,6 +270,7 @@ extern uint16_t nb_rx_queue_stats_mappings; /* globals used for configuration */ extern uint16_t verbose_level; /**< Drives messages being displayed, if any. */ extern uint8_t interactive; +extern uint8_t auto_start; extern uint8_t numa_support; /**< set by "--numa" parameter */ extern uint16_t port_topology; /**< set by "--port-topology" parameter */ extern uint8_t no_flush_rx; /**