[PATCH v10 2/7] graph: add feature arc registrations
Jerin Jacob
jerinjacobk at gmail.com
Wed Jun 4 18:42:46 CEST 2025
On Wed, Jun 4, 2025 at 3:43 PM Nitin Saxena <nsaxena at 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 <nsaxena at 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" {
More information about the dev
mailing list