Hi Raslan, > -----Original Message----- > From: Raslan Darawsheh [mailto:rasl...@mellanox.com] > Sent: Wednesday, October 17, 2018 4:22 PM > To: Wu, Jingjing <jingjing...@intel.com> > Cc: tho...@monjalon.net; dev@dpdk.org; shah...@mellanox.com; > rasl...@mellanox.com; xuemi...@mellanox.com; or...@mellanox.com; > jerin.ja...@caviumnetworks.com; david.march...@6wind.com; Iremonger, > Bernard <bernard.iremon...@intel.com>; Yigit, Ferruh <ferruh.yi...@intel.com> > Subject: [PATCH v6 3/3] app/testpmd: set packet dump based on verbosity level > > when changing verbosity level it will configure rx/tx callbacks to dump > packets > based on the verbosity value as following: > 1- dump only received packets: > testpmd> set verbose 1 > 2- dump only sent packets: > testpmd> set verbose 2 > 3- dump sent and received packets: > testpmd> set verbose (any number > 2) > 4- disable dump > testpmd> set verbose 0 > > Signed-off-by: Raslan Darawsheh <rasl...@mellanox.com> > Acked-by: Bernard Iremonger <bernard.iremon...@intel.com> > > --- > changes in v6: > add documentation for the packet dump > --- > --- > app/test-pmd/config.c | 25 +++++++++++++++++++++++++ > app/test-pmd/testpmd.c | 4 ++-- > app/test-pmd/testpmd.h | 1 + > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 6 +++++- > 4 files changed, 33 insertions(+), 3 deletions(-) > > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index > 55fec7f..1696623 100644 > --- a/app/test-pmd/config.c > +++ b/app/test-pmd/config.c > @@ -50,6 +50,7 @@ > #endif > #include <rte_gro.h> > #include <cmdline_parse_etheraddr.h> > +#include <rte_config.h> > > #include "testpmd.h" > > @@ -2773,11 +2774,35 @@ remove_tx_dump_callbacks(portid_t portid) } > > void > +configure_rxtx_dump_callbacks(uint16_t verbose) { > + portid_t portid; > + > +#ifndef RTE_ETHDEV_RXTX_CALLBACKS > + TESTPMD_LOG(ERR, "setting rxtx callbacks is not enabled\n"); > + return; > +#endif > + > + RTE_ETH_FOREACH_DEV(portid) > + { > + if (verbose == 1 || verbose > 2) > + add_rx_dump_callbacks(portid); > + else > + remove_rx_dump_callbacks(portid); > + if (verbose >= 2) > + add_tx_dump_callbacks(portid); > + else > + remove_tx_dump_callbacks(portid); > + } > +} > + > +void > set_verbose_level(uint16_t vb_level) > { > printf("Change verbose level from %u to %u\n", > (unsigned int) verbose_level, (unsigned int) vb_level); > verbose_level = vb_level; > + configure_rxtx_dump_callbacks(verbose_level); > } > > void > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index > 5dbbf78..3c42924 100644 > --- a/app/test-pmd/testpmd.c > +++ b/app/test-pmd/testpmd.c > @@ -1988,7 +1988,7 @@ start_port(portid_t pid) > return -1; > } > } > - > + configure_rxtx_dump_callbacks(0); > printf("Configuring Port %d (socket %u)\n", pi, > port->socket_id); > /* configure port */ > @@ -2087,7 +2087,7 @@ start_port(portid_t pid) > return -1; > } > } > - > + configure_rxtx_dump_callbacks(verbose_level); > /* start port */ > if (rte_eth_dev_start(pi) < 0) { > printf("Fail to start port %d\n", pi); diff --git > a/app/test- > pmd/testpmd.h b/app/test-pmd/testpmd.h index c07bee8..3da728c 100644 > --- a/app/test-pmd/testpmd.h > +++ b/app/test-pmd/testpmd.h > @@ -777,6 +777,7 @@ void add_rx_dump_callbacks(portid_t portid); void > remove_rx_dump_callbacks(portid_t portid); void > add_tx_dump_callbacks(portid_t portid); void > remove_tx_dump_callbacks(portid_t portid); > +void configure_rxtx_dump_callbacks(uint16_t verbose); > > /* > * Work-around of a compilation error with ICC on invocations of the diff > --git > a/doc/guides/testpmd_app_ug/testpmd_funcs.rst > b/doc/guides/testpmd_app_ug/testpmd_funcs.rst > index ca060e1..60855c6 100644 > --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst > +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst > @@ -449,7 +449,11 @@ Set the debug verbosity level:: > > testpmd> set verbose (level) > > -Currently the only available levels are 0 (silent except for error) and 1 > (fully > verbose). > +Available levels are as following: > +* ``0`` silent except for error. > +* ``1`` fully verbose except for Tx packets. > +* ``2`` fully verbose except for Rx packets. > +* ``> 2`` fully verbose. >
The html output is probably not what you intended: Available levels are as following: * 0 silent except for error. * 1 fully verbose except for Tx packets. * 2 fully verbose except for Rx packets. * > 2 fully verbose. A blank line is needed between each line. > set log > ~~~~~~~ > -- > 2.7.4 Regards, Bernard.