| /dpdk/lib/graph/ |
| H A D | graph.c | 164 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 D | graph_populate.c | 14 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 D | graph_private.h | 78 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 D | graph_ops.c | 34 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 D | rte_graph_worker.h | 132 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 D | graph_stats.c | 19 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 D | rte_graph.h | 99 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 D | graph_debug.c | 9 graph_dump(FILE *f, struct graph *g) in graph_dump() 19 fprintf(f, " graph=%p\n", g->graph); in graph_dump()
|
| H A D | meson.build | 12 'graph.c',
|
| /dpdk/doc/guides/sample_app_ug/ |
| H A D | l3_forward_graph.rst | 9 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 D | graph_lib.rst | 11 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 D | pkt_cls.c | 30 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 D | ip4_rewrite.c | 34 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 D | ip4_lookup.c | 51 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 D | ip4_lookup_neon.h | 10 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 D | ip4_lookup_sse.h | 10 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 D | ethdev_tx.c | 15 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 D | ethdev_rx.c | 17 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 D | null.c | 8 null(struct rte_graph *graph, struct rte_node *node, void **objs, in null() argument 13 RTE_SET_USED(graph); in null()
|
| H A D | pkt_drop.c | 9 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 D | test_graph.c | 36 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 D | test_graph_perf.c | 87 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 D | main.c | 90 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 D | meson.build | 9 deps += ['graph', 'eal', 'lpm', 'ethdev', 'node' ]
|
| /dpdk/doc/guides/tools/ |
| H A D | cryptoperf.rst | 470 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
|