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.


Reply via email to