> -----Original Message----- > From: pbhagavat...@marvell.com <pbhagavat...@marvell.com> > Sent: Thursday, February 22, 2024 8:24 PM > To: jer...@marvell.com; ndabilpu...@marvell.com; kirankum...@marvell.com; > Yan, Zhirun <zhirun....@intel.com> > Cc: dev@dpdk.org; Pavan Nikhilesh <pbhagavat...@marvell.com> > Subject: [24.11 PATCH v3 1/5] graph: add support for node specific errors > > From: Pavan Nikhilesh <pbhagavat...@marvell.com> > > Add ability for Nodes to advertise error counters > during registration. > > Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com> > --- > v2 Changes: > - Fix compilation. > v3 Changes: > - Resend as 1/5 didn't make it through. > > doc/guides/prog_guide/graph_lib.rst | 22 +- > .../prog_guide/img/anatomy_of_a_node.svg | 329 +++++-- > .../prog_guide/img/graph_mem_layout.svg | 921 +++++++++++++----- > lib/graph/graph_private.h | 1 + > lib/graph/node.c | 37 +- > lib/graph/rte_graph.h | 7 + > 6 files changed, 1016 insertions(+), 301 deletions(-) > > diff --git a/doc/guides/prog_guide/graph_lib.rst > b/doc/guides/prog_guide/graph_lib.rst > index ad09bdfe26..018900caea 100644 > --- a/doc/guides/prog_guide/graph_lib.rst > +++ b/doc/guides/prog_guide/graph_lib.rst > @@ -21,6 +21,7 @@ Features of the Graph library are: > - Nodes as plugins. > - Support for out of tree nodes. > - Inbuilt nodes for packet processing. > +- Node specific error counts. > - Multi-process support. > - Low overhead graph walk and node enqueue. > - Low overhead statistics collection infrastructure. > @@ -124,6 +125,18 @@ Source nodes are static nodes created using > ``RTE_NODE_REGISTER`` by passing > While performing the graph walk, the ``process()`` function of all the source > nodes will be called first. So that these nodes can be used as input nodes > for a > graph. > > +nb_errors: > +^^^^^^^^^^ > + > +The number of errors that this node can report. The ``err_desc[]`` stores the > error > +descriptions which will later be propagated to stats. > + > +err_desc[]: > +^^^^^^^^^^^ > + > +The dynamic array to store the error descriptions that will be reported by > this > +node.
If there are no more detail infos reported by node, why not reuse the node->name directly. > + > Node creation and registration > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > * Node implementer creates the node by implementing ops and attributes of > @@ -141,13 +154,13 @@ Link the Nodes to create the graph topology > Topology after linking the nodes > > Once nodes are available to the program, Application or node public API > -functions can links them together to create a complex packet processing > graph. > +functions can link them together to create a complex packet processing graph. > > There are multiple different types of strategies to link the nodes. > > Method (a): > ^^^^^^^^^^^ > -Provide the ``next_nodes[]`` at the node registration time. See ``struct > rte_node_register::nb_edges``. > +Provide the ``next_nodes[]`` at the node registration time. See ``struct > rte_node_register::nb_edges``. No need to change this line.