[v6,3/3] app/testpmd: set packet dump based on verbosity level

Message ID 1539789731-18409-3-git-send-email-rasland@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series [v6,1/3] app/testpmd: move dumping packets to a separate function |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/checkpatch success coding style OK

Commit Message

Raslan Darawsheh Oct. 17, 2018, 3:22 p.m. UTC
  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 <rasland@mellanox.com>
Acked-by: Bernard Iremonger <bernard.iremonger@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(-)
  

Comments

Iremonger, Bernard Oct. 17, 2018, 4:24 p.m. UTC | #1
Hi Raslan,

> -----Original Message-----
> From: Raslan Darawsheh [mailto:rasland@mellanox.com]
> Sent: Wednesday, October 17, 2018 4:22 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>
> Cc: thomas@monjalon.net; dev@dpdk.org; shahafs@mellanox.com;
> rasland@mellanox.com; xuemingl@mellanox.com; orika@mellanox.com;
> jerin.jacob@caviumnetworks.com; david.marchand@6wind.com; Iremonger,
> Bernard <bernard.iremonger@intel.com>; Yigit, Ferruh <ferruh.yigit@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 <rasland@mellanox.com>
> Acked-by: Bernard Iremonger <bernard.iremonger@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.
  
Ferruh Yigit Oct. 17, 2018, 4:33 p.m. UTC | #2
On 10/17/2018 5:24 PM, Iremonger, Bernard wrote:
> Hi Raslan,
> 
>> -----Original Message-----
>> From: Raslan Darawsheh [mailto:rasland@mellanox.com]
>> Sent: Wednesday, October 17, 2018 4:22 PM
>> To: Wu, Jingjing <jingjing.wu@intel.com>
>> Cc: thomas@monjalon.net; dev@dpdk.org; shahafs@mellanox.com;
>> rasland@mellanox.com; xuemingl@mellanox.com; orika@mellanox.com;
>> jerin.jacob@caviumnetworks.com; david.marchand@6wind.com; Iremonger,
>> Bernard <bernard.iremonger@intel.com>; Yigit, Ferruh <ferruh.yigit@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 <rasland@mellanox.com>
>> Acked-by: Bernard Iremonger <bernard.iremonger@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.

You a right, output is broken. I updated in the tree, just one blank line before
list seems did the work.
Raslan can you please confirm the latest doc in the tree?

> 
>>  set log
>>  ~~~~~~~
>> --
>> 2.7.4
> 
> Regards,
> 
> Bernard.
> 
>
  
Raslan Darawsheh Oct. 18, 2018, 8:19 a.m. UTC | #3
Hi,

> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Sent: Wednesday, October 17, 2018 7:33 PM
> To: Iremonger, Bernard <bernard.iremonger@intel.com>; Raslan Darawsheh
> <rasland@mellanox.com>; Wu, Jingjing <jingjing.wu@intel.com>
> Cc: Thomas Monjalon <thomas@monjalon.net>; dev@dpdk.org; Shahaf
> Shuler <shahafs@mellanox.com>; Xueming(Steven) Li
> <xuemingl@mellanox.com>; Ori Kam <orika@mellanox.com>;
> jerin.jacob@caviumnetworks.com; david.marchand@6wind.com
> Subject: Re: [PATCH v6 3/3] app/testpmd: set packet dump based on
> verbosity level
> 
> On 10/17/2018 5:24 PM, Iremonger, Bernard wrote:
> > Hi Raslan,
> >
> >> -----Original Message-----
> >> From: Raslan Darawsheh [mailto:rasland@mellanox.com]
> >> Sent: Wednesday, October 17, 2018 4:22 PM
> >> To: Wu, Jingjing <jingjing.wu@intel.com>
> >> Cc: thomas@monjalon.net; dev@dpdk.org; shahafs@mellanox.com;
> >> rasland@mellanox.com; xuemingl@mellanox.com; orika@mellanox.com;
> >> jerin.jacob@caviumnetworks.com; david.marchand@6wind.com;
> Iremonger,
> >> Bernard <bernard.iremonger@intel.com>; Yigit, Ferruh
> >> <ferruh.yigit@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 <rasland@mellanox.com>
> >> Acked-by: Bernard Iremonger <bernard.iremonger@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.
> 
> You a right, output is broken. I updated in the tree, just one blank line before
> list seems did the work.
> Raslan can you please confirm the latest doc in the tree?

I see it's merged in dpdk-next/master but, it doesn't have the missing blank lines.

> 
> >
> >>  set log
> >>  ~~~~~~~
> >> --
> >> 2.7.4
> >
> > Regards,
> >
> > Bernard.
> >
> >


Kindest regards,
Raslan Darawsheh
  
Ferruh Yigit Oct. 18, 2018, 8:33 a.m. UTC | #4
On 10/18/2018 9:19 AM, Raslan Darawsheh wrote:
> Hi,
> 
>> -----Original Message-----
>> From: Ferruh Yigit <ferruh.yigit@intel.com>
>> Sent: Wednesday, October 17, 2018 7:33 PM
>> To: Iremonger, Bernard <bernard.iremonger@intel.com>; Raslan Darawsheh
>> <rasland@mellanox.com>; Wu, Jingjing <jingjing.wu@intel.com>
>> Cc: Thomas Monjalon <thomas@monjalon.net>; dev@dpdk.org; Shahaf
>> Shuler <shahafs@mellanox.com>; Xueming(Steven) Li
>> <xuemingl@mellanox.com>; Ori Kam <orika@mellanox.com>;
>> jerin.jacob@caviumnetworks.com; david.marchand@6wind.com
>> Subject: Re: [PATCH v6 3/3] app/testpmd: set packet dump based on
>> verbosity level
>>
>> On 10/17/2018 5:24 PM, Iremonger, Bernard wrote:
>>> Hi Raslan,
>>>
>>>> -----Original Message-----
>>>> From: Raslan Darawsheh [mailto:rasland@mellanox.com]
>>>> Sent: Wednesday, October 17, 2018 4:22 PM
>>>> To: Wu, Jingjing <jingjing.wu@intel.com>
>>>> Cc: thomas@monjalon.net; dev@dpdk.org; shahafs@mellanox.com;
>>>> rasland@mellanox.com; xuemingl@mellanox.com; orika@mellanox.com;
>>>> jerin.jacob@caviumnetworks.com; david.marchand@6wind.com;
>> Iremonger,
>>>> Bernard <bernard.iremonger@intel.com>; Yigit, Ferruh
>>>> <ferruh.yigit@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 <rasland@mellanox.com>
>>>> Acked-by: Bernard Iremonger <bernard.iremonger@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.
>>
>> You a right, output is broken. I updated in the tree, just one blank line before
>> list seems did the work.
>> Raslan can you please confirm the latest doc in the tree?
> 
> I see it's merged in dpdk-next/master but, it doesn't have the missing blank lines.

In repo it is:

"
 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.
"

In original patch:
"
 +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.
"

Please, compile both and observe the difference.

> 
>>
>>>
>>>>  set log
>>>>  ~~~~~~~
>>>> --
>>>> 2.7.4
>>>
>>> Regards,
>>>
>>> Bernard.
>>>
>>>
> 
> 
> Kindest regards,
> Raslan Darawsheh
>
  
Raslan Darawsheh Oct. 18, 2018, 8:47 a.m. UTC | #5
You are right about that my mistake. 

Kindest regards,
Raslan Darawsheh

> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Sent: Thursday, October 18, 2018 11:34 AM
> To: Raslan Darawsheh <rasland@mellanox.com>; Iremonger, Bernard
> <bernard.iremonger@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>
> Cc: Thomas Monjalon <thomas@monjalon.net>; dev@dpdk.org; Shahaf
> Shuler <shahafs@mellanox.com>; Xueming(Steven) Li
> <xuemingl@mellanox.com>; Ori Kam <orika@mellanox.com>;
> jerin.jacob@caviumnetworks.com; david.marchand@6wind.com
> Subject: Re: [dpdk-dev] [PATCH v6 3/3] app/testpmd: set packet dump
> based on verbosity level
> 
> On 10/18/2018 9:19 AM, Raslan Darawsheh wrote:
> > Hi,
> >
> >> -----Original Message-----
> >> From: Ferruh Yigit <ferruh.yigit@intel.com>
> >> Sent: Wednesday, October 17, 2018 7:33 PM
> >> To: Iremonger, Bernard <bernard.iremonger@intel.com>; Raslan
> >> Darawsheh <rasland@mellanox.com>; Wu, Jingjing
> >> <jingjing.wu@intel.com>
> >> Cc: Thomas Monjalon <thomas@monjalon.net>; dev@dpdk.org; Shahaf
> >> Shuler <shahafs@mellanox.com>; Xueming(Steven) Li
> >> <xuemingl@mellanox.com>; Ori Kam <orika@mellanox.com>;
> >> jerin.jacob@caviumnetworks.com; david.marchand@6wind.com
> >> Subject: Re: [PATCH v6 3/3] app/testpmd: set packet dump based on
> >> verbosity level
> >>
> >> On 10/17/2018 5:24 PM, Iremonger, Bernard wrote:
> >>> Hi Raslan,
> >>>
> >>>> -----Original Message-----
> >>>> From: Raslan Darawsheh [mailto:rasland@mellanox.com]
> >>>> Sent: Wednesday, October 17, 2018 4:22 PM
> >>>> To: Wu, Jingjing <jingjing.wu@intel.com>
> >>>> Cc: thomas@monjalon.net; dev@dpdk.org; shahafs@mellanox.com;
> >>>> rasland@mellanox.com; xuemingl@mellanox.com;
> orika@mellanox.com;
> >>>> jerin.jacob@caviumnetworks.com; david.marchand@6wind.com;
> >> Iremonger,
> >>>> Bernard <bernard.iremonger@intel.com>; Yigit, Ferruh
> >>>> <ferruh.yigit@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 <rasland@mellanox.com>
> >>>> Acked-by: Bernard Iremonger <bernard.iremonger@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.
> >>
> >> You a right, output is broken. I updated in the tree, just one blank
> >> line before list seems did the work.
> >> Raslan can you please confirm the latest doc in the tree?
> >
> > I see it's merged in dpdk-next/master but, it doesn't have the missing blank
> lines.
> 
> In repo it is:
> 
> "
>  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.
> "
> 
> In original patch:
> "
>  +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.
> "
> 
> Please, compile both and observe the difference.
> 
> >
> >>
> >>>
> >>>>  set log
> >>>>  ~~~~~~~
> >>>> --
> >>>> 2.7.4
> >>>
> >>> Regards,
> >>>
> >>> Bernard.
> >>>
> >>>
> >
> >
> > Kindest regards,
> > Raslan Darawsheh
> >
  

Patch

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.
 
 set log
 ~~~~~~~