Home
last modified time | relevance | path

Searched refs:graph (Results 1 – 25 of 35) sorted by relevance

12

/dpdk/lib/graph/
H A Dgraph.c164 graph_cleanup(struct graph *graph) in graph_cleanup() argument
186 graph->graph, in graph_node_init()
207 graph->graph, in graph_node_fini()
264 struct graph *graph; in rte_graph_create() local
360 struct graph *graph, *tmp; in rte_graph_destroy() local
393 struct graph *graph; in rte_graph_from_name() local
405 struct graph *graph; in rte_graph_id_to_name() local
420 struct graph *graph; in rte_graph_node_get() local
442 struct graph *graph; in rte_graph_node_get_by_name() local
530 struct graph *graph; in rte_graph_export() local
[all …]
H A Dgraph_populate.c14 graph_fp_mem_calc_size(struct graph *graph) in graph_fp_mem_calc_size() argument
28 graph->cir_mask = rte_align32pow2(graph->node_count) - 1; in graph_fp_mem_calc_size()
49 struct rte_graph *graph = _graph->graph; in graph_header_popluate() local
67 struct rte_graph *graph = _graph->graph; in graph_nodes_populate() local
137 const struct rte_graph *graph = _graph->graph; in graph_node_nexts_populate() local
157 struct rte_graph *graph = _graph->graph; in graph_src_nodes_populate() local
181 graph_fp_mem_populate(struct graph *graph) in graph_fp_mem_populate() argument
194 graph_fp_mem_create(struct graph *graph) in graph_fp_mem_create() argument
205 graph->graph = mz->addr; in graph_fp_mem_create()
228 graph_fp_mem_destroy(struct graph *graph) in graph_fp_mem_destroy() argument
[all …]
H A Dgraph_private.h78 struct graph { struct
89 struct rte_graph *graph; argument
177 int graph_bfs(struct graph *graph, struct graph_node *start);
191 int graph_has_isolated_node(struct graph *graph);
205 int graph_node_has_edge_to_src_node(struct graph *graph);
220 int graph_node_has_loop_edge(struct graph *graph);
233 rte_node_t graph_src_nodes_count(struct graph *graph);
246 rte_node_t graph_nodes_count(struct graph *graph);
256 void graph_mark_nodes_as_not_visited(struct graph *graph);
273 int graph_fp_mem_create(struct graph *graph);
[all …]
H A Dgraph_ops.c34 graph_node_has_loop_edge(struct graph *graph) in graph_node_has_loop_edge() argument
38 STAILQ_FOREACH(graph_node, &graph->node_list, next) in graph_node_has_loop_edge()
46 graph_src_nodes_count(struct graph *graph) in graph_src_nodes_count() argument
51 STAILQ_FOREACH(graph_node, &graph->node_list, next) in graph_src_nodes_count()
63 graph_node_has_edge_to_src_node(struct graph *graph) in graph_node_has_edge_to_src_node() argument
86 graph_nodes_count(struct graph *graph) in graph_nodes_count() argument
98 graph_mark_nodes_as_not_visited(struct graph *graph) in graph_mark_nodes_as_not_visited() argument
107 graph_bfs(struct graph *graph, struct graph_node *start) in graph_bfs() argument
143 graph_has_isolated_node(struct graph *graph) in graph_has_isolated_node() argument
147 graph_mark_nodes_as_not_visited(graph); in graph_has_isolated_node()
[all …]
H A Drte_graph_worker.h132 rte_graph_walk(struct rte_graph *graph) in rte_graph_walk() argument
135 const rte_node_t mask = graph->cir_mask; in rte_graph_walk()
136 uint32_t head = graph->head; in rte_graph_walk()
157 while (likely(head != graph->tail)) { in rte_graph_walk()
175 graph->tail = 0; in rte_graph_walk()
195 tail = graph->tail; in __rte_node_enqueue_tail_update()
196 graph->cir_start[tail++] = node->off; in __rte_node_enqueue_tail_update()
197 graph->tail = tail & graph->cir_mask; in __rte_node_enqueue_tail_update()
224 __rte_node_enqueue_tail_update(graph, node); in __rte_node_enqueue_prologue()
227 __rte_node_stream_alloc(graph, node); in __rte_node_enqueue_prologue()
[all …]
H A Dgraph_stats.c19 struct graph **graphs;
151 node = graph_node_id_to_ptr(graph, id); in stats_mem_populate()
156 graph_node->node->name, graph->name); in stats_mem_populate()
176 node = graph_node_id_to_ptr(graph, id); in stats_mem_populate()
206 cluster_add(struct cluster *cluster, struct graph *graph) in cluster_add() argument
213 if (cluster->graphs[count] == graph) in cluster_add()
243 struct graph *graph; in expand_pattern_to_cluster() local
249 if (cluster_add(cluster, graph)) in expand_pattern_to_cluster()
269 struct graph *graph; in rte_graph_cluster_stats_create() local
300 graph = cluster.graphs[i]; in rte_graph_cluster_stats_create()
[all …]
H A Drte_graph.h99 typedef uint16_t (*rte_node_process_t)(struct rte_graph *graph,
119 typedef int (*rte_node_init_t)(const struct rte_graph *graph,
135 typedef void (*rte_node_fini_t)(const struct rte_graph *graph,
340 void rte_graph_obj_dump(FILE *f, struct rte_graph *graph, bool all);
343 #define rte_graph_foreach_node(count, off, graph, node) \ argument
344 for (count = 0, off = graph->nodes_start, \
345 node = RTE_PTR_ADD(graph, off); \
346 count < graph->nb_nodes; \
347 off = node->next, node = RTE_PTR_ADD(graph, off), count++)
375 struct rte_node *rte_graph_node_get_by_name(const char *graph,
H A Dgraph_debug.c9 graph_dump(FILE *f, struct graph *g) in graph_dump()
19 fprintf(f, " graph=%p\n", g->graph); in graph_dump()
H A Dmeson.build12 'graph.c',
/dpdk/doc/guides/sample_app_ug/
H A Dl3_forward_graph.rst9 Graph framework and nodes written for graph framework.
14 The application demonstrates the use of the graph framework and graph nodes
19 There is also additional initialization of graph for graph object creation
25 graph using ``rte_graph_walk()`` with graph objects created one per worker lcore.
30 configured and provided to ``ip4_lookup`` graph node and ``ip4_rewrite`` graph node
127 is same as graph id.
131 specific graph object.
136 :end-before: >8 End of graph creation.
143 A graph object returned after graph creation is a per lcore object and
159 :end-before: >8 End of graph initialization.
[all …]
/dpdk/doc/guides/prog_guide/
H A Dgraph_lib.rst11 The graph library provides API to enable graph framework operations such as
38 graph.
94 node gets detached to a graph.
172 Create the graph object
178 nodes or graph is not allowed.
192 Multicore graph processing
197 The fast path API works on graph object, So the multi-core graph
225 ``struct rte_graph *`` fast-path graph object while others works on graph ID or name.
230 multiple graph objects. Especially the situation where each graph object bound
235 graph cluster with multiple graph objects and ``rte_graph_cluster_stats_get()``
[all …]
/dpdk/lib/node/
H A Dpkt_cls.c30 pkt_cls_node_process(struct rte_graph *graph, struct rte_node *node, in pkt_cls_node_process() argument
58 to_next = rte_node_next_stream_get(graph, node, in pkt_cls_node_process()
107 rte_node_enqueue_x1(graph, node, in pkt_cls_node_process()
117 rte_node_enqueue_x1(graph, node, in pkt_cls_node_process()
127 rte_node_enqueue_x1(graph, node, in pkt_cls_node_process()
137 rte_node_enqueue_x1(graph, node, in pkt_cls_node_process()
147 rte_node_next_stream_put(graph, node, in pkt_cls_node_process()
155 to_next = rte_node_next_stream_get(graph, node, in pkt_cls_node_process()
186 rte_node_enqueue_x1(graph, node, in pkt_cls_node_process()
196 rte_node_next_stream_move(graph, node, next_index); in pkt_cls_node_process()
[all …]
H A Dip4_rewrite.c34 ip4_rewrite_node_process(struct rte_graph *graph, struct rte_node *node, in ip4_rewrite_node_process() argument
154 rte_node_enqueue_x1(graph, node, next0, in ip4_rewrite_node_process()
164 rte_node_enqueue_x1(graph, node, next1, in ip4_rewrite_node_process()
174 rte_node_enqueue_x1(graph, node, next2, in ip4_rewrite_node_process()
184 rte_node_enqueue_x1(graph, node, next3, in ip4_rewrite_node_process()
193 rte_node_next_stream_put(graph, node, in ip4_rewrite_node_process()
200 graph, node, next_index, nb_objs); in ip4_rewrite_node_process()
236 rte_node_enqueue_x1(graph, node, next0, from[0]); in ip4_rewrite_node_process()
245 rte_node_next_stream_move(graph, node, next_index); in ip4_rewrite_node_process()
251 rte_node_next_stream_put(graph, node, next_index, held); in ip4_rewrite_node_process()
[all …]
H A Dip4_lookup.c51 ip4_lookup_node_process_scalar(struct rte_graph *graph, struct rte_node *node, in ip4_lookup_node_process_scalar() argument
72 to_next = rte_node_next_stream_get(graph, node, next_index, nb_objs); in ip4_lookup_node_process_scalar()
102 rte_node_enqueue_x1(graph, node, next, from[0]); in ip4_lookup_node_process_scalar()
111 rte_node_next_stream_move(graph, node, next_index); in ip4_lookup_node_process_scalar()
116 rte_node_next_stream_put(graph, node, next_index, held); in ip4_lookup_node_process_scalar()
178 ip4_lookup_node_init(const struct rte_graph *graph, struct rte_node *node) in ip4_lookup_node_init() argument
184 RTE_SET_USED(graph); in ip4_lookup_node_init()
209 IP4_LOOKUP_NODE_LPM(node->ctx) = ip4_lookup_nm.lpm_tbl[graph->socket]; in ip4_lookup_node_init()
H A Dip4_lookup_neon.h10 ip4_lookup_node_process_vec(struct rte_graph *graph, struct rte_node *node, in ip4_lookup_node_process_vec() argument
47 to_next = rte_node_next_stream_get(graph, node, next_index, nb_objs); in ip4_lookup_node_process_vec()
145 rte_node_enqueue_x1(graph, node, result.u16[1], in ip4_lookup_node_process_vec()
155 rte_node_enqueue_x1(graph, node, result.u16[3], in ip4_lookup_node_process_vec()
165 rte_node_enqueue_x1(graph, node, result.u16[5], in ip4_lookup_node_process_vec()
175 rte_node_enqueue_x1(graph, node, result.u16[7], in ip4_lookup_node_process_vec()
217 rte_node_enqueue_x1(graph, node, next0, from[0]); in ip4_lookup_node_process_vec()
226 rte_node_next_stream_move(graph, node, next_index); in ip4_lookup_node_process_vec()
231 rte_node_next_stream_put(graph, node, next_index, held); in ip4_lookup_node_process_vec()
H A Dip4_lookup_sse.h10 ip4_lookup_node_process_vec(struct rte_graph *graph, struct rte_node *node, in ip4_lookup_node_process_vec() argument
44 to_next = rte_node_next_stream_get(graph, node, next_index, nb_objs); in ip4_lookup_node_process_vec()
150 rte_node_enqueue_x1(graph, node, next0, in ip4_lookup_node_process_vec()
160 rte_node_enqueue_x1(graph, node, next1, in ip4_lookup_node_process_vec()
170 rte_node_enqueue_x1(graph, node, next2, in ip4_lookup_node_process_vec()
180 rte_node_enqueue_x1(graph, node, next3, in ip4_lookup_node_process_vec()
221 rte_node_enqueue_x1(graph, node, next0, from[0]); in ip4_lookup_node_process_vec()
230 rte_node_next_stream_move(graph, node, next_index); in ip4_lookup_node_process_vec()
237 rte_node_next_stream_put(graph, node, next_index, held); in ip4_lookup_node_process_vec()
H A Dethdev_tx.c15 ethdev_tx_node_process(struct rte_graph *graph, struct rte_node *node, in ethdev_tx_node_process() argument
31 rte_node_enqueue(graph, node, ETHDEV_TX_NEXT_PKT_DROP, in ethdev_tx_node_process()
39 ethdev_tx_node_init(const struct rte_graph *graph, struct rte_node *node) in ethdev_tx_node_init() argument
56 ctx->queue = graph->id; in ethdev_tx_node_init()
H A Dethdev_rx.c17 ethdev_rx_node_process_inline(struct rte_graph *graph, struct rte_node *node, in ethdev_rx_node_process_inline() argument
35 rte_node_next_stream_move(graph, node, next_index); in ethdev_rx_node_process_inline()
41 ethdev_rx_node_process(struct rte_graph *graph, struct rte_node *node, in ethdev_rx_node_process() argument
50 n_pkts = ethdev_rx_node_process_inline(graph, node, ctx); in ethdev_rx_node_process()
179 ethdev_rx_node_init(const struct rte_graph *graph, struct rte_node *node) in ethdev_rx_node_init() argument
184 RTE_SET_USED(graph); in ethdev_rx_node_init()
H A Dnull.c8 null(struct rte_graph *graph, struct rte_node *node, void **objs, in null() argument
13 RTE_SET_USED(graph); in null()
H A Dpkt_drop.c9 pkt_drop_process(struct rte_graph *graph, struct rte_node *node, void **objs, in pkt_drop_process() argument
13 RTE_SET_USED(graph); in pkt_drop_process()
/dpdk/app/test/
H A Dtest_graph.c36 static uint16_t test_node0_worker(struct rte_graph *graph,
40 static uint16_t test_node1_worker(struct rte_graph *graph,
44 static uint16_t test_node2_worker(struct rte_graph *graph,
48 static uint16_t test_node3_worker(struct rte_graph *graph,
145 RTE_SET_USED(graph); in node_init()
193 rte_node_next_stream_put(graph, node, next, obj_node0); in test_node_worker_source()
283 test_node1_worker(graph, node, objs, nb_objs); in test_node0_worker()
285 test_node2_worker(graph, node, objs, nb_objs); in test_node0_worker()
287 test_node3_worker(graph, node, objs, nb_objs); in test_node0_worker()
669 if (!graph) { in test_graph_walk()
[all …]
H A Dtest_graph_perf.c87 RTE_SET_USED(graph); in test_node_ctx_init()
175 rte_node_next_stream_move(graph, node, node->ctx[1]); in test_perf_node_worker()
187 rte_node_enqueue_x4(graph, node, next, objs[0], in test_perf_node_worker()
193 rte_node_enqueue_x1(graph, node, next, objs[0]); in test_perf_node_worker()
198 rte_node_enqueue_x2(graph, node, next, objs[0], in test_perf_node_worker()
204 rte_node_enqueue_x2(graph, node, next, objs[0], in test_perf_node_worker()
206 rte_node_enqueue_x1(graph, node, next, objs[0]); in test_perf_node_worker()
215 rte_node_enqueue(graph, node, next, objs, nb_objs - enq); in test_perf_node_worker()
233 RTE_SET_USED(graph); in test_perf_node_sink()
616 struct rte_graph *graph; in _graph_perf_wrapper() local
[all …]
/dpdk/examples/l3fwd-graph/
H A Dmain.c90 struct rte_graph *graph; member
678 struct rte_graph *graph; in graph_main_loop() local
685 graph = qconf->graph; in graph_main_loop()
687 if (!graph) { in graph_main_loop()
695 qconf->name, graph); in graph_main_loop()
698 rte_graph_walk(graph); in graph_main_loop()
1063 qconf->graph = rte_graph_lookup(qconf->name); in main()
1065 if (!qconf->graph) in main()
H A Dmeson.build9 deps += ['graph', 'eal', 'lpm', 'ethdev', 'node' ]
/dpdk/doc/guides/tools/
H A Dcryptoperf.rst470 The ``dpdk-graph-crypto-perf.py`` tool is a simple script to automate
475 These are output to PDF files, with one PDF per test suite graph type.
540 ./dpdk-graph-crypto-perf <config_file>
547 ./dpdk-graph-crypto-perf configs/crypto-perf-aesni-mb.json
562 ./dpdk-graph-crypto-perf <config_file> \
573 ./dpdk-graph-crypto-perf configs/crypto-perf-qat -t latency
579 ./dpdk-graph-crypto-perf configs/crypto-perf-aesni-mb -t throughput latency
588 ./dpdk-graph-crypto-perf <config_file> -o <output_dir>
596 ./dpdk-graph-crypto-perf <config_file> -v

12