xref: /dpdk/lib/graph/graph_pcap_private.h (revision 9b72ea1fc3ccdd3cb3f8a01daefea5d4300221e0)
1*9b72ea1fSAmit Prakash Shukla /* SPDX-License-Identifier: BSD-3-Clause
2*9b72ea1fSAmit Prakash Shukla  * Copyright(C) 2023 Marvell International Ltd.
3*9b72ea1fSAmit Prakash Shukla  */
4*9b72ea1fSAmit Prakash Shukla 
5*9b72ea1fSAmit Prakash Shukla #ifndef _RTE_GRAPH_PCAP_PRIVATE_H_
6*9b72ea1fSAmit Prakash Shukla #define _RTE_GRAPH_PCAP_PRIVATE_H_
7*9b72ea1fSAmit Prakash Shukla 
8*9b72ea1fSAmit Prakash Shukla #include <stdint.h>
9*9b72ea1fSAmit Prakash Shukla #include <sys/types.h>
10*9b72ea1fSAmit Prakash Shukla 
11*9b72ea1fSAmit Prakash Shukla #include "graph_private.h"
12*9b72ea1fSAmit Prakash Shukla 
13*9b72ea1fSAmit Prakash Shukla /**
14*9b72ea1fSAmit Prakash Shukla  * @internal
15*9b72ea1fSAmit Prakash Shukla  *
16*9b72ea1fSAmit Prakash Shukla  * Pcap trace enable/disable function.
17*9b72ea1fSAmit Prakash Shukla  *
18*9b72ea1fSAmit Prakash Shukla  * The function is called to enable/disable graph pcap trace functionality.
19*9b72ea1fSAmit Prakash Shukla  *
20*9b72ea1fSAmit Prakash Shukla  * @param val
21*9b72ea1fSAmit Prakash Shukla  *   Value to be set to enable/disable graph pcap trace.
22*9b72ea1fSAmit Prakash Shukla  */
23*9b72ea1fSAmit Prakash Shukla void graph_pcap_enable(bool val);
24*9b72ea1fSAmit Prakash Shukla 
25*9b72ea1fSAmit Prakash Shukla /**
26*9b72ea1fSAmit Prakash Shukla  * @internal
27*9b72ea1fSAmit Prakash Shukla  *
28*9b72ea1fSAmit Prakash Shukla  * Check graph pcap trace is enable/disable.
29*9b72ea1fSAmit Prakash Shukla  *
30*9b72ea1fSAmit Prakash Shukla  * The function is called to check if the graph pcap trace is enabled/disabled.
31*9b72ea1fSAmit Prakash Shukla  *
32*9b72ea1fSAmit Prakash Shukla  * @return
33*9b72ea1fSAmit Prakash Shukla  *   - 1: Enable
34*9b72ea1fSAmit Prakash Shukla  *   - 0: Disable
35*9b72ea1fSAmit Prakash Shukla  */
36*9b72ea1fSAmit Prakash Shukla int graph_pcap_is_enable(void);
37*9b72ea1fSAmit Prakash Shukla 
38*9b72ea1fSAmit Prakash Shukla /**
39*9b72ea1fSAmit Prakash Shukla  * @internal
40*9b72ea1fSAmit Prakash Shukla  *
41*9b72ea1fSAmit Prakash Shukla  * Initialise graph pcap trace functionality.
42*9b72ea1fSAmit Prakash Shukla  *
43*9b72ea1fSAmit Prakash Shukla  * The function invoked to allocate mempool.
44*9b72ea1fSAmit Prakash Shukla  *
45*9b72ea1fSAmit Prakash Shukla  * @return
46*9b72ea1fSAmit Prakash Shukla  *   0 on success and -1 on failure.
47*9b72ea1fSAmit Prakash Shukla  */
48*9b72ea1fSAmit Prakash Shukla int graph_pcap_mp_init(void);
49*9b72ea1fSAmit Prakash Shukla 
50*9b72ea1fSAmit Prakash Shukla /**
51*9b72ea1fSAmit Prakash Shukla  * @internal
52*9b72ea1fSAmit Prakash Shukla  *
53*9b72ea1fSAmit Prakash Shukla  * Initialise graph pcap trace functionality.
54*9b72ea1fSAmit Prakash Shukla  *
55*9b72ea1fSAmit Prakash Shukla  * The function invoked to open pcap file.
56*9b72ea1fSAmit Prakash Shukla  *
57*9b72ea1fSAmit Prakash Shukla  * @param filename
58*9b72ea1fSAmit Prakash Shukla  *   Pcap filename.
59*9b72ea1fSAmit Prakash Shukla  *
60*9b72ea1fSAmit Prakash Shukla  * @return
61*9b72ea1fSAmit Prakash Shukla  *   0 on success and -1 on failure.
62*9b72ea1fSAmit Prakash Shukla  */
63*9b72ea1fSAmit Prakash Shukla int graph_pcap_file_open(const char *filename);
64*9b72ea1fSAmit Prakash Shukla 
65*9b72ea1fSAmit Prakash Shukla /**
66*9b72ea1fSAmit Prakash Shukla  * @internal
67*9b72ea1fSAmit Prakash Shukla  *
68*9b72ea1fSAmit Prakash Shukla  * Initialise graph pcap trace functionality.
69*9b72ea1fSAmit Prakash Shukla  *
70*9b72ea1fSAmit Prakash Shukla  * The function invoked when the graph pcap trace is enabled. This function
71*9b72ea1fSAmit Prakash Shukla  * open's pcap file and allocates mempool. Information needed for secondary
72*9b72ea1fSAmit Prakash Shukla  * process is populated.
73*9b72ea1fSAmit Prakash Shukla  *
74*9b72ea1fSAmit Prakash Shukla  * @param graph
75*9b72ea1fSAmit Prakash Shukla  *   Pointer to graph structure.
76*9b72ea1fSAmit Prakash Shukla  *
77*9b72ea1fSAmit Prakash Shukla  * @return
78*9b72ea1fSAmit Prakash Shukla  *   0 on success and -1 on failure.
79*9b72ea1fSAmit Prakash Shukla  */
80*9b72ea1fSAmit Prakash Shukla int graph_pcap_init(struct graph *graph);
81*9b72ea1fSAmit Prakash Shukla 
82*9b72ea1fSAmit Prakash Shukla /**
83*9b72ea1fSAmit Prakash Shukla  * @internal
84*9b72ea1fSAmit Prakash Shukla  *
85*9b72ea1fSAmit Prakash Shukla  * Exit graph pcap trace functionality.
86*9b72ea1fSAmit Prakash Shukla  *
87*9b72ea1fSAmit Prakash Shukla  * The function is called to exit graph pcap trace and close open fd's and
88*9b72ea1fSAmit Prakash Shukla  * free up memory. Pcap trace is also disabled.
89*9b72ea1fSAmit Prakash Shukla  *
90*9b72ea1fSAmit Prakash Shukla  * @param graph
91*9b72ea1fSAmit Prakash Shukla  *   Pointer to graph structure.
92*9b72ea1fSAmit Prakash Shukla  */
93*9b72ea1fSAmit Prakash Shukla void graph_pcap_exit(struct rte_graph *graph);
94*9b72ea1fSAmit Prakash Shukla 
95*9b72ea1fSAmit Prakash Shukla /**
96*9b72ea1fSAmit Prakash Shukla  * @internal
97*9b72ea1fSAmit Prakash Shukla  *
98*9b72ea1fSAmit Prakash Shukla  * Capture mbuf metadata and node metadata to a pcap file.
99*9b72ea1fSAmit Prakash Shukla  *
100*9b72ea1fSAmit Prakash Shukla  * When graph pcap trace enabled, this function is invoked prior to each node
101*9b72ea1fSAmit Prakash Shukla  * and mbuf, node metadata is parsed and captured in a pcap file.
102*9b72ea1fSAmit Prakash Shukla  *
103*9b72ea1fSAmit Prakash Shukla  * @param graph
104*9b72ea1fSAmit Prakash Shukla  *   Pointer to the graph object.
105*9b72ea1fSAmit Prakash Shukla  * @param node
106*9b72ea1fSAmit Prakash Shukla  *   Pointer to the node object.
107*9b72ea1fSAmit Prakash Shukla  * @param objs
108*9b72ea1fSAmit Prakash Shukla  *   Pointer to an array of objects to be processed.
109*9b72ea1fSAmit Prakash Shukla  * @param nb_objs
110*9b72ea1fSAmit Prakash Shukla  *   Number of objects in the array.
111*9b72ea1fSAmit Prakash Shukla  */
112*9b72ea1fSAmit Prakash Shukla uint16_t graph_pcap_dispatch(struct rte_graph *graph,
113*9b72ea1fSAmit Prakash Shukla 				   struct rte_node *node, void **objs,
114*9b72ea1fSAmit Prakash Shukla 				   uint16_t nb_objs);
115*9b72ea1fSAmit Prakash Shukla 
116*9b72ea1fSAmit Prakash Shukla #endif /* _RTE_GRAPH_PCAP_PRIVATE_H_ */
117