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