vlib: only dump 1st buffer in chain by default
Several nodes include buffers in their traces, but only the 1st. When formatting the trace we must not try to iterate through all chained buffers. Default to display only the 1st buffer. Type: fix Change-Id: Ib3c668bbf4ab70ae68eba2ac402c7b7329825b70 Signed-off-by: Benoît Ganne <bganne@cisco.com>
This commit is contained in:

committed by
Damjan Marion

parent
c520fe7ab9
commit
4354317bf3
@ -92,7 +92,7 @@ vlib_buffer_length_in_chain_slow_path (vlib_main_t * vm,
|
||||
}
|
||||
|
||||
u8 *
|
||||
format_vlib_buffer (u8 * s, va_list * args)
|
||||
format_vlib_buffer_no_chain (u8 * s, va_list * args)
|
||||
{
|
||||
vlib_buffer_t *b = va_arg (*args, vlib_buffer_t *);
|
||||
u32 indent = format_get_indent (s);
|
||||
@ -118,9 +118,20 @@ format_vlib_buffer (u8 * s, va_list * args)
|
||||
s = format (s, "\n%U%v", format_white_space, indent, a);
|
||||
vec_free (a);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
u8 *
|
||||
format_vlib_buffer (u8 * s, va_list * args)
|
||||
{
|
||||
vlib_main_t *vm = vlib_get_main ();
|
||||
vlib_buffer_t *b = va_arg (*args, vlib_buffer_t *);
|
||||
u32 indent = format_get_indent (s);
|
||||
|
||||
s = format (s, "%U", format_vlib_buffer_no_chain, b);
|
||||
|
||||
while (b->flags & VLIB_BUFFER_NEXT_PRESENT)
|
||||
{
|
||||
vlib_main_t *vm = vlib_get_main ();
|
||||
u32 next_buffer = b->next_buffer;
|
||||
b = vlib_get_buffer (vm, next_buffer);
|
||||
|
||||
|
Reference in New Issue
Block a user