20/06/2017 11:22, Bruce Richardson: > On Mon, Jun 19, 2017 at 11:12:53PM +0200, Thomas Monjalon wrote: > > 15/06/2017 14:05, De Lara Guarch, Pablo: > > > > 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> > > > > --- > > > > --- 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. > > > > I don't really understand the benefit of this option. > > Why is it better than > > echo start tx_first | testpmd -i > > ? > > The one big difference I see is normal vs abnormal termination. With the > echo command you suggest, the only way to terminate testpmd is to kill > it via signal. With the extra cmdline option, it will cleanly exit via > enter as with non-interactive mode right now. Not a huge difference, but > I think having the extra argument to enable tx-first is useful.
I do not see a big difference between "enter" and "ctrl+c". I think it is more flexible to pipe commands instead of options. We could combine the proposed options --tx-first and -T into this command: ( echo 'start tx_first' ; while true ; do echo 'show port stats all' ; sleep 1 ; done ) | testpmd -i It is even possible to add more actions in the loop, so it is less limited than the -T options. It is a matter of deciding whether we prefer to implement more restricted options or leverage the shell to freely program non-interactive testpmd.