> -----Original Message----- > From: Vamsi Krishna Attunuru <vattun...@marvell.com> > Sent: Tuesday, May 9, 2023 9:10 AM > To: Sunil Kumar Kori <sk...@marvell.com>; dev@dpdk.org; > tho...@monjalon.net; Jerin Jacob Kollanukkaran <jer...@marvell.com> > Cc: Nithin Kumar Dabilpuram <ndabilpu...@marvell.com> > Subject: RE: [EXT] [PATCH v2 4/4] app: add testgraph application > > > > > -----Original Message----- > > From: Sunil Kumar Kori <sk...@marvell.com> > > Sent: Tuesday, May 9, 2023 8:04 AM > > To: Vamsi Krishna Attunuru <vattun...@marvell.com>; dev@dpdk.org; > > tho...@monjalon.net; Jerin Jacob Kollanukkaran <jer...@marvell.com> > > Cc: Vamsi Krishna Attunuru <vattun...@marvell.com>; Nithin Kumar > > Dabilpuram <ndabilpu...@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 <vattun...@marvell.com> > > > Sent: Tuesday, April 25, 2023 6:45 PM > > > To: dev@dpdk.org; tho...@monjalon.net; Jerin Jacob Kollanukkaran > > > <jer...@marvell.com> > > > Cc: Vamsi Krishna Attunuru <vattun...@marvell.com>; Nithin Kumar > > > Dabilpuram <ndabilpu...@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 <vattun...@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 ? 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 ? > > > + > > > +* ``--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