[dpdk-dev] [PATCH v6 3/3] app/testpmd: set packet dump based on verbosity level

Ferruh Yigit ferruh.yigit at intel.com
Thu Oct 18 10:33:42 CEST 2018


On 10/18/2018 9:19 AM, Raslan Darawsheh wrote:
> Hi,
> 
>> -----Original Message-----
>> From: Ferruh Yigit <ferruh.yigit at intel.com>
>> Sent: Wednesday, October 17, 2018 7:33 PM
>> To: Iremonger, Bernard <bernard.iremonger at intel.com>; Raslan Darawsheh
>> <rasland at mellanox.com>; Wu, Jingjing <jingjing.wu at intel.com>
>> Cc: Thomas Monjalon <thomas at monjalon.net>; dev at dpdk.org; Shahaf
>> Shuler <shahafs at mellanox.com>; Xueming(Steven) Li
>> <xuemingl at mellanox.com>; Ori Kam <orika at mellanox.com>;
>> jerin.jacob at caviumnetworks.com; david.marchand at 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 at mellanox.com]
>>>> Sent: Wednesday, October 17, 2018 4:22 PM
>>>> To: Wu, Jingjing <jingjing.wu at intel.com>
>>>> Cc: thomas at monjalon.net; dev at dpdk.org; shahafs at mellanox.com;
>>>> rasland at mellanox.com; xuemingl at mellanox.com; orika at mellanox.com;
>>>> jerin.jacob at caviumnetworks.com; david.marchand at 6wind.com;
>> Iremonger,
>>>> Bernard <bernard.iremonger at intel.com>; Yigit, Ferruh
>>>> <ferruh.yigit at 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 at mellanox.com>
>>>> Acked-by: Bernard Iremonger <bernard.iremonger at 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
> 



More information about the dev mailing list