Hi Jerin, Found small typos on this patch. Please check comments inline.
Best Regards, Xiao > -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of jer...@marvell.com > Sent: Wednesday, April 1, 2020 3:29 AM > To: Thomas Monjalon <tho...@monjalon.net>; Richardson, Bruce > <bruce.richard...@intel.com>; Mcnamara, John <john.mcnam...@intel.com>; > Kovacevic, Marko <marko.kovace...@intel.com>; Jerin Jacob > <jer...@marvell.com>; Kiran Kumar K <kirankum...@marvell.com> > Cc: dev@dpdk.org; david.march...@redhat.com; m...@ashroe.eu; > mattias.ronnb...@ericsson.com; pbhagavat...@marvell.com; > ndabilpu...@marvell.com > Subject: [dpdk-dev] [PATCH v3 01/29] graph: define the public API for graph > support > > From: Jerin Jacob <jer...@marvell.com> > > Graph architecture abstracts the data processing functions as > "node" and "link" them together to create a complex "graph" to enable > reusable/modular data processing functions. > > These APIs enables graph framework operations such as create, lookup, > dump and destroy on graph and node operations such as clone, > edge update, and edge shrink, etc. The API also allows creating the > stats cluster to monitor per graph and per node stats. > > This patch defines the public API for graph support. > This patch also adds support for the build infrastructure and > update the MAINTAINERS file for the graph subsystem. > > Signed-off-by: Jerin Jacob <jer...@marvell.com> > Signed-off-by: Kiran Kumar K <kirankum...@marvell.com> > Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com> > Signed-off-by: Nithin Dabilpuram <ndabilpu...@marvell.com> > --- > MAINTAINERS | 5 + > config/common_base | 7 + > config/rte_config.h | 4 + > doc/api/doxy-api-index.md | 1 + > doc/api/doxy-api.conf.in | 1 + > lib/Makefile | 3 + > lib/librte_graph/Makefile | 22 + > lib/librte_graph/graph.c | 5 + > lib/librte_graph/meson.build | 11 + > lib/librte_graph/rte_graph.h | 786 +++++++++++++++++++++++++ > lib/librte_graph/rte_graph_version.map | 3 + > lib/meson.build | 2 +- > mk/rte.app.mk | 1 + > 13 files changed, 850 insertions(+), 1 deletion(-) > create mode 100644 lib/librte_graph/Makefile > create mode 100644 lib/librte_graph/graph.c > create mode 100644 lib/librte_graph/meson.build > create mode 100644 lib/librte_graph/rte_graph.h > create mode 100644 lib/librte_graph/rte_graph_version.map > > diff --git a/MAINTAINERS b/MAINTAINERS > index db235c2cc..bc7085983 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1469,6 +1469,11 @@ F: examples/bpf/ > F: app/test/test_bpf.c > F: doc/guides/prog_guide/bpf_lib.rst > > +Graph - EXPERIMENTAL > +M: Jerin Jacob <jer...@marvell.com> > +M: Kiran Kumar K <kirankum...@marvell.com> > +F: lib/librte_graph/ > + [...] > + > +/** > + * @warning > + * @b EXPERIMENTAL: this API may change without prior notice > + * > + * Create graph stats cluster to aggregate runtime node stats. > + * > + * @param prm > + * Parameters including file pointer to dump stats, > + * Graph pattern to create cluster and callback function. > + * > + * @return > + * Valid pointer on success, NULL otherwise. > + */ > +__rte_experimental > +struct rte_graph_cluster_stats *rte_graph_cluster_stats_create( > + const struct rte_graph_cluster_stats_param *prm); > + > +/** > + * @warning > + * @b EXPERIMENTAL: this API may change without prior notice > + * > + * Destroy cluster stats. > + * > + * @param stat > + * Valid cluster pointer to destroy. > + * This empty line can be removed. > + */ > +__rte_experimental > +void rte_graph_cluster_stats_destroy(struct rte_graph_cluster_stats *stat); > + > +/** > + * @warning > + * @b EXPERIMENTAL: this API may change without prior notice [...] > +#define RTE_NODE_REGISTER(node) > \ > + RTE_INIT(rte_node_register_##node) \ > + { \ > + node.parent_id = RTE_NODE_ID_INVALID; \ > + node.id = __rte_node_register(&node); \ > + } > + > +/** > + * @warning > + * @b EXPERIMENTAL: this API may change without prior notice > + * > + * Clone a node from static node(node created from RTE_NODE_REGISTER). > + * > + * @param id > + * Static node id to clone from. > + * @param name > + * Name of the new node. The library prepends the parent node name to the > + * user-specified the name. The final node name will be, Change it to "the user-specified name".