misc: add tracedump API plugin
[vpp.git] / src / plugins / tracedump / tracedump.h
1
2 /*
3  * tracedump.h - skeleton vpp engine plug-in header file
4  *
5  * Copyright (c) <current-year> <your-organization>
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at:
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 #ifndef __included_tracedump_h__
19 #define __included_tracedump_h__
20
21 #include <vnet/vnet.h>
22 #include <vnet/ip/ip.h>
23 #include <vnet/ethernet/ethernet.h>
24
25 #include <vppinfra/hash.h>
26 #include <vppinfra/error.h>
27
28 typedef struct
29 {
30   /* API message ID base */
31   u16 msg_id_base;
32
33   /*
34    * cached reply data
35    * traces [client_id][thread_id][trace]
36    */
37   vlib_trace_header_t ****traces;
38
39   /* convenience */
40   vlib_main_t *vlib_main;
41   vnet_main_t *vnet_main;
42   ethernet_main_t *ethernet_main;
43 } tracedump_main_t;
44
45 extern tracedump_main_t tracedump_main;
46
47 #endif /* __included_tracedump_h__ */
48
49 /*
50  * fd.io coding-style-patch-verification: ON
51  *
52  * Local Variables:
53  * eval: (c-set-style "gnu")
54  * End:
55  */