[dpdk-dev] [PATCH v8 21/21] app/testpmd: add show device command
Gaëtan Rivet
gaetan.rivet at 6wind.com
Thu Jun 28 13:56:51 CEST 2018
On Thu, Jun 28, 2018 at 11:28:53AM +0000, Iremonger, Bernard wrote:
>
> Hi Gaetan,
>
> > -----Original Message-----
> > From: Gaëtan Rivet [mailto:gaetan.rivet at 6wind.com]
> > Sent: Thursday, June 28, 2018 11:10 AM
> > To: Iremonger, Bernard <bernard.iremonger at intel.com>
> > Cc: dev at dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH v8 21/21] app/testpmd: add show device
> > command
> >
> > Hi Bernard,
> >
> > On Thu, Jun 28, 2018 at 10:03:30AM +0000, Iremonger, Bernard wrote:
> > > Hi Gaetan,
> > >
> > > > -----Original Message-----
> > > > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Gaetan Rivet
> > > > Sent: Tuesday, June 26, 2018 5:56 PM
> > > > To: dev at dpdk.org
> > > > Cc: Gaetan Rivet <gaetan.rivet at 6wind.com>
> > > > Subject: [dpdk-dev] [PATCH v8 21/21] app/testpmd: add show device
> > > > command
> > > >
> > > > A new interactive command is offered:
> > > >
> > > > show device <device description>
> > > >
> > > > This commands lists all rte_device element matching the device
> > description.
> > > > e.g.:
> > > >
> > > > show device bus=pci
> > > > show device bus=vdev
> > > > show device bus=vdev/class=eth
> > > > show device bus=vdev,driver=net_ring/class=eth
> > > > show device bus=vdev/class=eth,name=net_ring0
> > > >
> > > > These devices may not be otherwise useful, some buses will spawn
> > > > devices to keep track of their assets without having a driver to use them.
> > > >
> > > > Signed-off-by: Gaetan Rivet <gaetan.rivet at 6wind.com>
> > > > ---
> > > > app/test-pmd/cmdline.c | 51
> > > > +++++++++++++++++++++++++++++
> > > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 24 ++++++++++++++
> > > > 2 files changed, 75 insertions(+)
> > > >
> > > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> > > > 27e2aa8c8..872492b88 100644
> > > > --- a/app/test-pmd/cmdline.c
> > > > +++ b/app/test-pmd/cmdline.c
> > > > @@ -7083,6 +7083,56 @@ cmdline_parse_inst_t cmd_showportall = {
> > > > },
> > > > };
> > > >
> > > > +/* *** SHOW DEVICE INFO *** */
> > > > +struct cmd_showdevice_result {
> > > > + cmdline_fixed_string_t show;
> > > > + cmdline_fixed_string_t device;
> > > > + cmdline_fixed_string_t filter;
> > > > +};
> > > > +
> > > > +static void
> > > > +cmd_showdevice_dump_device(const struct rte_device *dev) {
> > > > + const struct rte_driver *drv = dev->driver;
> > > > +
> > > > + printf("0x%p: %s:%s\n", (const void *)dev, dev->name,
> > > > + drv ? drv->name : "<nil>");
> > > > +}
> > > > +
> > > > +static void cmd_showdevice_parsed(void *parsed_result,
> > > > + __attribute__((unused)) struct cmdline *cl,
> > > > + __attribute__((unused)) void *data) {
> > > > + struct cmd_showdevice_result *res = parsed_result;
> > > > + struct rte_dev_iterator it;
> > > > + const struct rte_device *dev;
> > > > +
> > > > + RTE_DEV_FOREACH(dev, res->filter, &it)
> > > > + cmd_showdevice_dump_device(dev);
> > > > +}
> > > > +
> > > > +cmdline_parse_token_string_t cmd_showdevice_show =
> > > > + TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result,
> > > > + show, "show");
> > > > +cmdline_parse_token_string_t cmd_showdevice_device =
> > > > + TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result,
> > > > + device, "device");
> > > > +cmdline_parse_token_string_t cmd_showdevice_filter =
> > > > + TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result,
> > > > + filter, NULL);
> > > > +
> > > > +cmdline_parse_inst_t cmd_showdevice = {
> > > > + .f = cmd_showdevice_parsed,
> > > > + .data = NULL,
> > > > + .help_str = "show device <device string>",
> > > > + .tokens = {
> > > > + (void *)&cmd_showdevice_show,
> > > > + (void *)&cmd_showdevice_device,
> > > > + (void *)&cmd_showdevice_filter,
> > > > + NULL,
> > > > + },
> > > > +};
> > > > +
> > > > /* *** SHOW PORT INFO *** */
> > > > struct cmd_showport_result {
> > > > cmdline_fixed_string_t show;
> > > > @@ -17262,6 +17312,7 @@ cmdline_parse_ctx_t main_ctx[] = {
> > > > (cmdline_parse_inst_t *)&cmd_help_long,
> > > > (cmdline_parse_inst_t *)&cmd_quit,
> > > > (cmdline_parse_inst_t *)&cmd_load_from_file,
> > > > + (cmdline_parse_inst_t *)&cmd_showdevice,
> > > > (cmdline_parse_inst_t *)&cmd_showport,
> > > > (cmdline_parse_inst_t *)&cmd_showqueue,
> > > > (cmdline_parse_inst_t *)&cmd_showportall, diff --git
> > > > a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> > > > b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> > > > index 0d6fd50ca..4f1009a3a 100644
> > > > --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> > > > +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> > > > @@ -2628,6 +2628,30 @@ set the traffic management default hierarchy
> > > > on the port::
> > > >
> > > > testpmd> set port tm hierarchy default (port_id)
> > > >
> > > > +Device functions
> > > > +----------------
> > > > +
> > > > +Show devices
> > > > +~~~~~~~~~~~~
> > > > +
> > > > +Display any registered devices::
> > > > +
> > > > + testpmd> show device <device_string>
> > > > +
> > > > +where:
> > > > +
> > > > +* ``device_string``: Device description string, of the format
> > > > +
> > > > + layer[/layer[/layer]]
> > > > +
> > > > + where one layer is in the form
> > > > +
> > > > + layer_key=layer_name[,key1=value1[,...]]
> > > > +
> > > > + Valid layer keys are ``bus`` and ``class``.
> > > > + Their respective values is defined by registered ``bus`` and
> > > > + ``class`` drivers.
> > > > +
> > > > Filter Functions
> > > > ----------------
> > > >
> > > > --
> > > > 2.11.0
> > >
> > > This patch fails to compile on the latest 18_08 master branch.
> > >
> >
> > I had it rebased a few days ago, it was fine. It seems there has been some
> > movement lately, will rebase again.
> >
> > > There is no update to the internal testpmd documentation about this new
> > command.
> > >
> >
> > There is some documentation added to
> > doc/guides/testpmd_app_ug/testpmd_funcs.rst
> >
> > Are you referring to some other kind of documentation?
> >
> > --
> > Gaëtan Rivet
> > 6WIND
>
> There should be an update to the testpmd "help" command.
> See line 122 to 1133 in cmdline .c
>
> Regards,
>
> Bernard
>
Ah, ok, I will update it.
--
Gaëtan Rivet
6WIND
More information about the dev
mailing list