Sending to right Jingjing mail address.
> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Thursday, June 15, 2017 5:04 AM
> To: jingjing...@dpdk.org
> Cc: dev@dpdk.org; De Lara Guarch, Pablo
> Subject: [PATCH v3] app/testpmd: add parameter to start forwarding TX
> first
>
> Add parameter to start forwarding sending first
> a burst of packets, which is useful when testing
> a loopback connection.
>
> This was already implemented as an internal command,
> but adding it as a parameter is interesting, as it
> allows the user to test a loopback connection without
> entering in the internal command line.
>
> Signed-off-by: Pablo de Lara <pablo.de.lara.gua...@intel.com>
> ---
>
> Changes in v3:
>
> -Added tx-first in long parameter list
> -Reworded informational message when tx-first is enabled
>
> Changes in v2:
>
> - Added check to prevent user from using --tx-first in interactive mode,
> to avoid confusion
> - Added extra information in testpmd help about the new parameter
>
> app/test-pmd/parameters.c | 9 +++++++++
> app/test-pmd/testpmd.c | 6 +++++-
> app/test-pmd/testpmd.h | 1 +
> doc/guides/testpmd_app_ug/run_app.rst | 8 ++++++++
> 4 files changed, 23 insertions(+), 1 deletion(-)
>
> diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c
> index fbe6284..0a88844 100644
> --- a/app/test-pmd/parameters.c
> +++ b/app/test-pmd/parameters.c
> @@ -89,6 +89,7 @@ usage(char* progname)
> "[--cmdline-file=FILENAME] "
> #endif
> "[--help|-h] | [--auto-start|-a] | ["
> + "--tx-first | "
> "--coremask=COREMASK --portmask=PORTMASK --numa "
> "--mbuf-size= | --total-num-mbufs= | "
> "--nb-cores= | --nb-ports= | "
> @@ -109,6 +110,8 @@ usage(char* progname)
> printf(" --auto-start: start forwarding on init "
> "[always when non-interactive].\n");
> printf(" --help: display this message and quit.\n");
> + printf(" --tx-first: start forwarding sending a burst first "
> + "(only if interactive is disabled).\n");
> printf(" --nb-cores=N: set the number of forwarding cores "
> "(1 <= N <= %d).\n", nb_lcores);
> printf(" --nb-ports=N: set the number of forwarding ports "
> @@ -566,6 +569,7 @@ launch_args_parse(int argc, char** argv)
> { "eth-peers-configfile", 1, 0, 0 },
> { "eth-peer", 1, 0, 0 },
> #endif
> + { "tx-first", 0, 0, 0 },
> { "ports", 1, 0, 0 },
> { "nb-cores", 1, 0, 0 },
> { "nb-ports", 1, 0, 0 },
> @@ -674,6 +678,11 @@ launch_args_parse(int argc, char** argv)
> printf("Auto-start selected\n");
> auto_start = 1;
> }
> + if (!strcmp(lgopts[opt_idx].name, "tx-first")) {
> + printf("Ports to start sending a burst of "
> + "packets first\n");
> + tx_first = 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 d32cbb9..6001283 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -98,6 +98,7 @@ uint16_t verbose_level = 0; /**< Silent by default. */
> /* use master core for command line ? */
> uint8_t interactive = 0;
> uint8_t auto_start = 0;
> +uint8_t tx_first;
> char cmdline_filename[PATH_MAX] = {0};
>
> /*
> @@ -2294,6 +2295,9 @@ main(int argc, char** argv)
> if (argc > 1)
> launch_args_parse(argc, argv);
>
> + if (tx_first && interactive)
> + rte_exit(EXIT_FAILURE, "--tx-first cannot be used on "
> + "interactive mode.\n");
> if (!nb_rxq && !nb_txq)
> printf("Warning: Either rx or tx queues should be non-
> zero\n");
>
> @@ -2353,7 +2357,7 @@ main(int argc, char** argv)
> int rc;
>
> printf("No commandline core given, start packet
> forwarding\n");
> - start_packet_forwarding(0);
> + start_packet_forwarding(tx_first);
> printf("Press enter to exit\n");
> rc = read(0, &c, 1);
> pmd_test_exit();
> diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
> index 364502d..5cabeef 100644
> --- a/app/test-pmd/testpmd.h
> +++ b/app/test-pmd/testpmd.h
> @@ -299,6 +299,7 @@ extern uint16_t nb_rx_queue_stats_mappings;
> extern uint16_t verbose_level; /**< Drives messages being displayed, if
> any. */
> extern uint8_t interactive;
> extern uint8_t auto_start;
> +extern uint8_t tx_first;
> extern char cmdline_filename[PATH_MAX]; /**< offline commands file */
> extern uint8_t numa_support; /**< set by "--numa" parameter */
> extern uint16_t port_topology; /**< set by "--port-topology" parameter */
> diff --git a/doc/guides/testpmd_app_ug/run_app.rst
> b/doc/guides/testpmd_app_ug/run_app.rst
> index 2a43214..3159398 100644
> --- a/doc/guides/testpmd_app_ug/run_app.rst
> +++ b/doc/guides/testpmd_app_ug/run_app.rst
> @@ -188,6 +188,14 @@ The commandline options are:
>
> Start forwarding on initialization.
>
> +* ``--tx-first``
> +
> + Start forwarding, after sending a burst of packets first.
> +
> +.. Note::
> +
> + This flag should be only used in non-interactive mode.
> +
> * ``--nb-cores=N``
>
> Set the number of forwarding cores,
> --
> 2.9.4