X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvlib%2Ftrace.h;h=f83a6d11e51fc7609d366e269e7562ba46ca2d31;hb=46d0ff3945404f7c95e0e504f98f466e155ab753;hp=fc0fc5c8ed47e4dd349edd81a58720dcaaad7032;hpb=7cd468a3d7dee7d6c92f69a0bb7061ae208ec727;p=vpp.git diff --git a/src/vlib/trace.h b/src/vlib/trace.h index fc0fc5c8ed4..f83a6d11e51 100644 --- a/src/vlib/trace.h +++ b/src/vlib/trace.h @@ -66,6 +66,20 @@ typedef struct u32 limit; } vlib_trace_node_t; +/* Callback type for post-processing the vlib trace buffer */ +struct vlib_main_t; +struct vlib_trace_main_t; +typedef void (vlib_trace_buffer_callback_t) (struct vlib_main_t *, + struct vlib_trace_main_t *); + +/* Callback type for alternate handling of vlib_add_trace internals */ +struct vlib_node_runtime_t; +struct vlib_buffer_t; +typedef void *(vlib_add_trace_callback_t) (struct vlib_main_t *, + struct vlib_node_runtime_t * r, + struct vlib_buffer_t * b, + u32 n_data_bytes); + typedef struct { /* Pool of trace buffers. */ @@ -80,15 +94,24 @@ typedef struct u32 filter_count; /* set on trace add, cleared on clear trace */ - u32 trace_active_hint; + u32 trace_enable; /* Per node trace counts. */ vlib_trace_node_t *nodes; /* verbosity */ int verbose; + + /* a callback to enable customized consumption of the trace buffer content */ + vlib_trace_buffer_callback_t *trace_buffer_callback; + + /* a callback to enable customized addition of a new trace */ + vlib_add_trace_callback_t *add_trace_callback; + } vlib_trace_main_t; +format_function_t format_vlib_trace; + #endif /* included_vlib_trace_h */ /*