[EXT] [PATCH v2 4/4] app: add testgraph application
Vamsi Krishna Attunuru
vattunuru at marvell.com
Tue May 9 14:24:11 CEST 2023
> -----Original Message-----
> From: Sunil Kumar Kori <skori at marvell.com>
> Sent: Tuesday, May 9, 2023 2:24 PM
> To: Vamsi Krishna Attunuru <vattunuru at marvell.com>; dev at dpdk.org;
> thomas at monjalon.net; Jerin Jacob Kollanukkaran <jerinj at marvell.com>
> Cc: Nithin Kumar Dabilpuram <ndabilpuram at marvell.com>
> Subject: RE: [EXT] [PATCH v2 4/4] app: add testgraph application
>
> > -----Original Message-----
> > From: Vamsi Krishna Attunuru <vattunuru at marvell.com>
> > Sent: Tuesday, May 9, 2023 9:10 AM
> > To: Sunil Kumar Kori <skori at marvell.com>; dev at dpdk.org;
> > thomas at monjalon.net; Jerin Jacob Kollanukkaran <jerinj at marvell.com>
> > Cc: Nithin Kumar Dabilpuram <ndabilpuram at marvell.com>
> > Subject: RE: [EXT] [PATCH v2 4/4] app: add testgraph application
> >
> >
> >
> > > -----Original Message-----
> > > From: Sunil Kumar Kori <skori at marvell.com>
> > > Sent: Tuesday, May 9, 2023 8:04 AM
> > > To: Vamsi Krishna Attunuru <vattunuru at marvell.com>; dev at dpdk.org;
> > > thomas at monjalon.net; Jerin Jacob Kollanukkaran <jerinj at marvell.com>
> > > Cc: Vamsi Krishna Attunuru <vattunuru at marvell.com>; Nithin Kumar
> > > Dabilpuram <ndabilpuram at marvell.com>
> > > Subject: RE: [EXT] [PATCH v2 4/4] app: add testgraph application
> > >
> > > Is there any user guide similar to testpmd ?
> > >
> > Please refer doc/guides/tools/testgraph.rst for details.
> >
> Thanks.
> > > > -----Original Message-----
> > > > From: Vamsi Attunuru <vattunuru at marvell.com>
> > > > Sent: Tuesday, April 25, 2023 6:45 PM
> > > > To: dev at dpdk.org; thomas at monjalon.net; Jerin Jacob Kollanukkaran
> > > > <jerinj at marvell.com>
> > > > Cc: Vamsi Krishna Attunuru <vattunuru at marvell.com>; Nithin Kumar
> > > > Dabilpuram <ndabilpuram at marvell.com>
> > > > Subject: [EXT] [PATCH v2 4/4] app: add testgraph application
> > > >
> > > > External Email
> > > >
> > > > ------------------------------------------------------------------
> > > > ---- Patch adds test-graph application to validate graph and node
> > > > libraries.
> > > >
> > > > Signed-off-by: Vamsi Attunuru <vattunuru at marvell.com>
> > > > ---
> > > > app/meson.build | 1 +
> > > > app/test-graph/cmdline.c | 211 +++++
> > > > app/test-graph/cmdline_graph.c | 294 +++++++
> > > > app/test-graph/cmdline_graph.h | 19 +
> > > > app/test-graph/meson.build | 14 +
> > > > app/test-graph/parameters.c | 157 ++++
> > > > app/test-graph/testgraph.c | 1426
> > > ++++++++++++++++++++++++++++++++
> > > > app/test-graph/testgraph.h | 91 ++
> > > > doc/guides/tools/index.rst | 1 +
> > > > doc/guides/tools/testgraph.rst | 131 +++
> > > > 10 files changed, 2345 insertions(+)
> > > >
>
> [Code Snipped]
>
> > > > +++ b/doc/guides/tools/testgraph.rst
> > > > @@ -0,0 +1,131 @@
> > > > +.. SPDX-License-Identifier: BSD-3-Clause
> > > > + Copyright(C) 2023 Marvell International Ltd.
> > > > +
> > > > +dpdk-test-graph Application
> > > > +===========================
> > > > +
> > > > +The ``dpdk-test-graph`` tool is a Data Plane Development Kit
> > > > +(DPDK)
> > > > application that allows
> > > > +exercising various graph library features. This application has a
> > > > +generic
> > > > framework to add
> > > > +new test configurations and expand test coverage to verify the
> > > functionality
> > > > of graph nodes
> > > > +and observe the graph cluster statistics.
> > > > +
> > > > +Running the Application
> > > > +-----------------------
> > > > +
> > > > +The application has a number of command line options:
> > > > +
> > > > +.. code-block:: console
> > > > +
> > > > + dpdk-test-eventdev [EAL Options] -- [application options]
> > > > +
> > > > +EAL Options
> > > > +~~~~~~~~~~~
> > > > +
> > > > +The following are the EAL command-line options that can be used
> > > > +in
> > > > conjunction
> > > > +with the ``dpdk-test-graph`` application.
> > > > +See the DPDK Getting Started Guides for more information on these
> > > > options.
> > > > +
> > > > +* ``-c <COREMASK>`` or ``-l <CORELIST>``
> > > > +
> > > > + Set the hexadecimal bitmask of the cores to run on. The corelist is
> a
> > > > + list of cores to use.
> > > > +
> > > > +Application Options
> > > > +~~~~~~~~~~~~~~~~~~~
> > > > +
> > > > +The following are the application command-line options:
> > > > +
> > > > +* ``-p <n>``
> > > > +
> > > > + Set the ethdev port mask.
> > > > +
> > > > +* ``-P``
> > > > +
> > > > + Set the ethdev ports in promiscuous mode.
> > > > +
> > > > +* ``--config <config>``
> > > > +
> > > > + Set the Rxq configuration.
> > > > + (i.e. ``--config (port_id,rxq,lcore_id)[,(port_id,rxq,lcore_id)]``).
> > > > +
> > > > +* ``--node-pattern <n>``
> > > > +
> > > > + Set the node patterns to use in graph creation.
> > > > + (i.e. ``--node-pattern
> (node_name0,node_name1[,node_nameX])``).
>
> It looks like this option is used to create a chain of nodes. Is my
> understanding correct ?
>
Yes
> If yes, then how can we create a node having two or more edges.
> Like in l3fwd-graph application, cls_node is further connected to pkt-drop
> and ip4_lookup.
> Packet can move to respective nodes based on runtime decision.
>
> If not, then how above option should be used for the same ?
--node-pattern option mainly provides the next node details(which test can configure in node_next details). To link other next nodes to the graph, test can be extended to add those edges implicitly based on the node list used for graph creation, or as suggested the same option can be used for the same.
> > > > +
> > > > +* ``--per-port-pool``
> > > > +
> > > > + Use separate buffer pool per port.
> > > > +
> > > > +* ``--no-numa``
> > > > +
> > > > + Disable numa awareness.
> > > > +
> > > > +* ``--interactive``
> > > > +
> > > > + Switch to interactive mode.
> > > > +
> > > > +Running the Tool
> > > > +~~~~~~~~~~~~~~~~
> > > > +
> > > > +Here is the sample command line to run simple iofwd test::
> > > > +
> > > > + ./dpdk-test-graph -a 0002:03:00.0 -a 0002:04:00.0 -c 0xF
> > > > + -- -p 0x3 -P
> > \
> > > > + --config "(0,0,2),(1,0,2)" --node-pattern "(ethdev_rx,ethdev_tx)"
> > > > +
> > > > +Below is a sample command line to punt rx packets to kernel::
> > > > +
> > > > + ./dpdk-test-graph -a 0002:03:00.0 -a 0002:04:00.0 -c 0xF
> > > > + -- -p 0x3 -P
> > \
> > > > + --config "(0,0,2),(1,0,2)" --node-pattern
> "(ethdev_rx,punt_kernel)"
> > > > +
> > > > +Interactive mode
> > > > +~~~~~~~~~~~~~~~~
> > > > +
> > > > +Tool uses ``--interactive`` command line option to enter
> > > > +interactive mode
> > > > and use cmdline options
> > > > +to setup the required node configurations, create graph and than
> > > > +start
> > > > graph_walk.
> > > > +
> > > > +
> > > > +testgraph> help
> > > > +
> > > > +Help is available for the following sections:
> > > > +
> > > > + help control : Start and stop graph walk.
> > > > + help display : Displaying port, stats and config information.
> > > > + help config : Configuration information.
> > > > + help all : All of the above sections.
> > > > +
> > > > +testgraph> help all
> > > > +
> > > > +Control forwarding:
> > > > +
> > > > +start graph_walk
> > > > + Start graph_walk on worker threads.
> > > > +
> > > > +stop graph_walk
> > > > + Stop worker threads from running graph_walk.
> > > > +
> > > > +quit
> > > > + Quit to prompt.
> > > > +
> > > > +
> > > > +Display:
> > > > +
> > > > +show node_list
> > > > + Display the list of supported nodes.
> > > > +
> > > > +show graph_stats
> > > > + Display the node statistics of graph cluster.
> > > > +
> > > > +
> > > > +Configuration:
> > > > +
> > > > +set lcore_config
> > > > +(port_id0,rxq0,lcore_idX),........,(port_idX,rxqX,lcoreidY)
> > > > + Set lcore configuration.
> > > > +
> > > > +create_graph (node0_name,node1_name,...,nodeX_name)
> > > > + Create graph instances using the provided node details.
> > > > +
> > > > +destroy_graph
> > > > + Destroy the graph instances.
> > > > +
> > > > +testgraph>
> > > > --
> > > > 2.25.1
More information about the dev
mailing list