Skip to content

Commit 30928f8

Browse files
florincorasDave Barach
authored andcommitted
session tcp: fix packet tracing
Type: fix Change-Id: Ib823d016c64998779fb1d00b8aad3acb5e8340be Signed-off-by: Florin Coras <[email protected]>
1 parent dda2dbe commit 30928f8

File tree

5 files changed

+15
-13
lines changed

5 files changed

+15
-13
lines changed

src/vnet/session/session_node.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ format_session_queue_trace (u8 * s, va_list * args)
501501
CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *);
502502
session_queue_trace_t *t = va_arg (*args, session_queue_trace_t *);
503503

504-
s = format (s, "SESSION_QUEUE: session index %d, server thread index %d",
504+
s = format (s, "session index %d thread index %d",
505505
t->session_index, t->server_thread_index);
506506
return s;
507507
}
@@ -543,7 +543,7 @@ session_tx_trace_frame (vlib_main_t * vm, vlib_node_runtime_t * node,
543543

544544
for (i = 0; i < clib_min (n_trace, n_segs); i++)
545545
{
546-
b = vlib_get_buffer (vm, to_next[i - n_segs]);
546+
b = vlib_get_buffer (vm, to_next[i]);
547547
vlib_trace_buffer (vm, node, next_index, b, 1 /* follow_chain */ );
548548
t = vlib_add_trace (vm, node, b, sizeof (*t));
549549
t->session_index = s->session_index;

src/vnet/tcp/tcp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1036,7 +1036,7 @@ format_tcp_vars (u8 * s, va_list * args)
10361036
return s;
10371037
}
10381038

1039-
static u8 *
1039+
u8 *
10401040
format_tcp_connection_id (u8 * s, va_list * args)
10411041
{
10421042
tcp_connection_t *tc = va_arg (*args, tcp_connection_t *);

src/vnet/tcp/tcp.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,7 @@ int tcp_configure_v6_source_address_range (vlib_main_t * vm,
761761
ip6_address_t * end, u32 table_id);
762762
void tcp_api_reference (void);
763763
u8 *format_tcp_connection (u8 * s, va_list * args);
764+
u8 *format_tcp_connection_id (u8 * s, va_list * args);
764765

765766
always_inline tcp_connection_t *
766767
tcp_listener_get (u32 tli)

src/vnet/tcp/tcp_input.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2029,12 +2029,12 @@ format_tcp_rx_trace (u8 * s, va_list * args)
20292029
CLIB_UNUSED (vlib_main_t * vm) = va_arg (*args, vlib_main_t *);
20302030
CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *);
20312031
tcp_rx_trace_t *t = va_arg (*args, tcp_rx_trace_t *);
2032+
tcp_connection_t *tc = &t->tcp_connection;
20322033
u32 indent = format_get_indent (s);
20332034

2034-
s = format (s, "%U\n%U%U",
2035-
format_tcp_header, &t->tcp_header, 128,
2036-
format_white_space, indent,
2037-
format_tcp_connection, &t->tcp_connection, 1);
2035+
s = format (s, "%U state %U\n%U%U", format_tcp_connection_id, tc,
2036+
format_tcp_state, tc->state, format_white_space, indent,
2037+
format_tcp_header, &t->tcp_header, 128);
20382038

20392039
return s;
20402040
}

src/vnet/tcp/tcp_output.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,12 @@ format_tcp_tx_trace (u8 * s, va_list * args)
5555
CLIB_UNUSED (vlib_main_t * vm) = va_arg (*args, vlib_main_t *);
5656
CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *);
5757
tcp_tx_trace_t *t = va_arg (*args, tcp_tx_trace_t *);
58+
tcp_connection_t *tc = &t->tcp_connection;
5859
u32 indent = format_get_indent (s);
5960

60-
s = format (s, "%U\n%U%U",
61-
format_tcp_header, &t->tcp_header, 128,
62-
format_white_space, indent,
63-
format_tcp_connection, &t->tcp_connection, 1);
61+
s = format (s, "%U state %U\n%U%U", format_tcp_connection_id, tc,
62+
format_tcp_state, tc->state, format_white_space, indent,
63+
format_tcp_header, &t->tcp_header, 128);
6464

6565
return s;
6666
}
@@ -2223,16 +2223,17 @@ static void
22232223
tcp46_output_trace_frame (vlib_main_t * vm, vlib_node_runtime_t * node,
22242224
u32 * to_next, u32 n_bufs)
22252225
{
2226-
u32 n_trace = vlib_get_trace_count (vm, node);
22272226
tcp_connection_t *tc;
22282227
tcp_tx_trace_t *t;
22292228
vlib_buffer_t *b;
22302229
tcp_header_t *th;
22312230
int i;
22322231

2233-
for (i = 0; i < clib_min (n_trace, n_bufs); i++)
2232+
for (i = 0; i < n_bufs; i++)
22342233
{
22352234
b = vlib_get_buffer (vm, to_next[i]);
2235+
if (!(b->flags & VLIB_BUFFER_IS_TRACED))
2236+
continue;
22362237
th = vlib_buffer_get_current (b);
22372238
tc = tcp_connection_get (vnet_buffer (b)->tcp.connection_index,
22382239
vm->thread_index);

0 commit comments

Comments
 (0)