40 #ifndef included_vlib_trace_funcs_h 41 #define included_vlib_trace_funcs_h 66 n_data_bytes =
round_pow2 (n_data_bytes,
sizeof (h[0]));
67 n_data_words = n_data_bytes /
sizeof (h[0]);
81 {
return h + 1 + h->
n_data; }
166 ASSERT (count <= tn->limit);
176 uword next_buffer_stride,
177 uword n_buffer_data_bytes_in_trace);
always_inline uword round_pow2(uword x, uword pow2)
void vlib_trace_frame_buffers_only(vlib_main_t *vm, vlib_node_runtime_t *node, u32 *buffers, uword n_buffers, uword next_buffer_stride, uword n_buffer_data_bytes_in_trace)
always_inline void vlib_trace_next_frame(vlib_main_t *vm, vlib_node_runtime_t *r, u32 next_index)
vlib_trace_node_t * nodes
always_inline vlib_next_frame_t * vlib_node_runtime_get_next_frame(vlib_main_t *vm, vlib_node_runtime_t *n, u32 next_index)
#define vec_add2_aligned(V, P, N, A)
Add N elements to end of vector V, return pointer to new elements in P.
always_inline void vlib_set_trace_count(vlib_main_t *vm, vlib_node_runtime_t *rt, u32 count)
vlib_trace_header_t ** trace_buffer_pool
always_inline u32 vlib_get_trace_count(vlib_main_t *vm, vlib_node_runtime_t *rt)
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
always_inline void vlib_buffer_copy_trace_flag(vlib_main_t *vm, vlib_buffer_t *b, u32 bi_target)
always_inline vlib_buffer_t * vlib_get_next_buffer(vlib_main_t *vm, vlib_buffer_t *b)
Get next buffer in buffer linklist, or zero for end of list.
void trace_apply_filter(vlib_main_t *vm)
always_inline vlib_trace_header_t * vlib_trace_header_next(vlib_trace_header_t *h)
#define pool_is_free_index(P, I)
#define pool_put_index(p, i)
vlib_trace_main_t trace_main
#define VLIB_BUFFER_IS_TRACED
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
always_inline void * vlib_add_trace(vlib_main_t *vm, vlib_node_runtime_t *r, vlib_buffer_t *b, u32 n_data_bytes)
always_inline void vlib_free_trace(vlib_main_t *vm, vlib_buffer_t *b)
always_inline void vlib_validate_trace(vlib_trace_main_t *tm, vlib_buffer_t *b)
u32 flags
buffer flags: VLIB_BUFFER_IS_TRACED: trace this buffer.
always_inline void vlib_trace_buffer(vlib_main_t *vm, vlib_node_runtime_t *r, u32 next_index, vlib_buffer_t *b, int follow_chain)
always_inline vlib_buffer_t * vlib_get_buffer(vlib_main_t *vm, u32 buffer_index)
Translate buffer index into buffer pointer.
u32 trace_index
Specifies index into trace buffer if VLIB_PACKET_IS_TRACED flag is set.
u64 cpu_time_last_node_dispatch