On Wed, Jun 4, 2025 at 3:43 PM Nitin Saxena <nsax...@marvell.com> wrote: > > This patch defines RTE_GRAPH_FEATURE_ARC_REGISTER() and > RTE_GRAPH_FEATURE_REGISTER() constructors and associated APIs with > programming guide. > > Signed-off-by: Nitin Saxena <nsax...@marvell.com> > --- > doc/api/doxy-api-index.md | 1 + > doc/guides/prog_guide/graph_lib.rst | 289 +++++++++++ > doc/guides/prog_guide/img/feature_arc-1.svg | 269 +++++++++++ > doc/guides/prog_guide/img/feature_arc-2.svg | 511 ++++++++++++++++++++ > doc/guides/rel_notes/release_25_07.rst | 7 + > lib/graph/graph_feature_arc.c | 36 ++ > lib/graph/meson.build | 2 + > lib/graph/rte_graph_feature_arc.h | 270 +++++++++++ > 8 files changed, 1385 insertions(+) > create mode 100644 doc/guides/prog_guide/img/feature_arc-1.svg > create mode 100644 doc/guides/prog_guide/img/feature_arc-2.svg > create mode 100644 lib/graph/graph_feature_arc.c > create mode 100644 lib/graph/rte_graph_feature_arc.h > > diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md > index 5c425a2cb9..a7bdbf892c 100644 > --- a/doc/api/doxy-api-index.md > +++ b/doc/api/doxy-api-index.md > @@ -214,6 +214,7 @@ The public API headers are grouped by topics: > [table_wm](@ref rte_swx_table_wm.h) > * [graph](@ref rte_graph.h): > [graph_worker](@ref rte_graph_worker.h) > + [graph_feature_arc](@ref rte_graph_feature_arc.h)
Missing ",". See diff - [graph_worker](@ref rte_graph_worker.h) - [graph_feature_arc](@ref rte_graph_feature_arc.h) + [graph_worker](@ref rte_graph_worker.h), + [graph_feature_arc](@ref rte_graph_feature_arc.h), > * graph_nodes: > [eth_node](@ref rte_node_eth_api.h), > [ip4_node](@ref rte_node_ip4_api.h), > diff --git a/doc/guides/prog_guide/graph_lib.rst > b/doc/guides/prog_guide/graph_lib.rst > index dc6c8c0712..191c8e8a0b 100644 > --- a/doc/guides/prog_guide/graph_lib.rst > +++ b/doc/guides/prog_guide/graph_lib.rst > @@ -559,3 +559,292 @@ on success packet is enqueued to ``udp4_input`` node. > > Hash lookup is performed in ``udp4_input`` node with registered destination > port > and destination port in UDP packet , on success packet is handed to > ``udp_user_node``. > + > +Graph feature arc Move this above "Inbuilt Nodes" section as it is Graph related feature. > +----------------- > diff --git a/doc/guides/rel_notes/release_25_07.rst > b/doc/guides/rel_notes/release_25_07.rst > index 6b070801de..9740274a16 100644 > --- a/doc/guides/rel_notes/release_25_07.rst > +++ b/doc/guides/rel_notes/release_25_07.rst > @@ -78,6 +78,13 @@ New Features > > See the :doc:`../cryptodevs/zsda` guide for more details on the new driver. > > +* **Added feature arc abstraction in graph library.** Better to reword as Added feature arc support in graph library > new file mode 100644 > index 0000000000..56d8f2f34c > --- /dev/null > +++ b/lib/graph/rte_graph_feature_arc.h > @@ -0,0 +1,270 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(C) 2025 Marvell International Ltd. > + */ > + > +#ifndef _RTE_GRAPH_FEATURE_ARC_H_ > +#define _RTE_GRAPH_FEATURE_ARC_H_ > + > +#include <assert.h> > +#include <errno.h> > +#include <signal.h> > +#include <stddef.h> > +#include <stdint.h> > +#include <stdio.h> > +#include <stdlib.h> > +#include <string.h> > + > +#include <rte_common.h> > +#include <rte_compat.h> > +#include <rte_debug.h> > +#include <rte_graph.h> > + > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/** > + * @file > + * > + * rte_graph_feature_arc.h Please check the generated html file of documentation. Some of the symbols are not resolving. See some examples * If a given feature likes to control number of indexes (which is higher than - * RTE_GRAPH_FEATURE_ARC_REGISTER::max_indexes) it can do so by using - * RTE_GRAPH_FEATURE_REGISTER():override_index_cb(). As part of + * rte_graph_feature_arc_register::max_indexes) it can do so by using + * rte_graph_feature_arc_register::override_index_cb(). As part of * rte_graph_feature_arc_init(), all feature's override_index_cb(), if set, are * called and with maximum value returned by any of the feature is used for * rte_graph_feature_arc_create() @@ -126,8 +126,8 @@ extern "C" {