xref: /dpdk/lib/graph/rte_graph_worker.h (revision 719834a6849e1daf4a70ff7742bbcc3ae7e25607)
1a2bc0584SZhirun Yan /* SPDX-License-Identifier: BSD-3-Clause
2a2bc0584SZhirun Yan  * Copyright(C) 2020 Marvell International Ltd.
3a2bc0584SZhirun Yan  * Copyright(C) 2023 Intel Corporation
4a2bc0584SZhirun Yan  */
5a2bc0584SZhirun Yan 
6a2bc0584SZhirun Yan #ifndef _RTE_GRAPH_WORKER_H_
7a2bc0584SZhirun Yan #define _RTE_GRAPH_WORKER_H_
8a2bc0584SZhirun Yan 
9*719834a6SMattias Rönnblom #include "rte_graph_model_rtc.h"
10*719834a6SMattias Rönnblom #include "rte_graph_model_mcore_dispatch.h"
11*719834a6SMattias Rönnblom 
12a2bc0584SZhirun Yan #ifdef __cplusplus
13a2bc0584SZhirun Yan extern "C" {
14a2bc0584SZhirun Yan #endif
15a2bc0584SZhirun Yan 
16a2bc0584SZhirun Yan /**
17a2bc0584SZhirun Yan  * Perform graph walk on the circular buffer and invoke the process function
18a2bc0584SZhirun Yan  * of the nodes and collect the stats.
19a2bc0584SZhirun Yan  *
20a2bc0584SZhirun Yan  * @param graph
21a2bc0584SZhirun Yan  *   Graph pointer returned from rte_graph_lookup function.
22a2bc0584SZhirun Yan  *
23a2bc0584SZhirun Yan  * @see rte_graph_lookup()
24a2bc0584SZhirun Yan  */
25a2bc0584SZhirun Yan static inline void
26a2bc0584SZhirun Yan rte_graph_walk(struct rte_graph *graph)
27a2bc0584SZhirun Yan {
288b78671dSZhirun Yan #if defined(RTE_GRAPH_MODEL_SELECT) && (RTE_GRAPH_MODEL_SELECT == RTE_GRAPH_MODEL_RTC)
29a2bc0584SZhirun Yan 	rte_graph_walk_rtc(graph);
308b78671dSZhirun Yan #elif defined(RTE_GRAPH_MODEL_SELECT) && (RTE_GRAPH_MODEL_SELECT == RTE_GRAPH_MODEL_MCORE_DISPATCH)
318b78671dSZhirun Yan 	rte_graph_walk_mcore_dispatch(graph);
328b78671dSZhirun Yan #else
338b78671dSZhirun Yan 	switch (rte_graph_worker_model_no_check_get(graph)) {
348b78671dSZhirun Yan 	case RTE_GRAPH_MODEL_MCORE_DISPATCH:
358b78671dSZhirun Yan 		rte_graph_walk_mcore_dispatch(graph);
368b78671dSZhirun Yan 		break;
378b78671dSZhirun Yan 	default:
388b78671dSZhirun Yan 		rte_graph_walk_rtc(graph);
398b78671dSZhirun Yan 	}
408b78671dSZhirun Yan #endif
41a2bc0584SZhirun Yan }
42a2bc0584SZhirun Yan 
43a2bc0584SZhirun Yan #ifdef __cplusplus
44a2bc0584SZhirun Yan }
45a2bc0584SZhirun Yan #endif
46a2bc0584SZhirun Yan 
47a2bc0584SZhirun Yan #endif /* _RTE_GRAPH_WORKER_H_ */
48