diff options
author | Benoît Ganne <bganne@cisco.com> | 2024-09-03 18:01:05 +0200 |
---|---|---|
committer | Beno�t Ganne <bganne@cisco.com> | 2024-11-13 15:06:42 +0000 |
commit | f611870e8d8237f860cd607a98ad9a406a88a98f (patch) | |
tree | 6e4780d4c90468f154fb35daf7be1c7a88c79cf4 /src | |
parent | 661fb34a90a131658abd726f4faebdc566230cd8 (diff) |
tracenode: fix pcap capture if packet is also traced
Type: fix
Change-Id: Ifc259d87a086f686ce273f543632bd122b506c31
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/tracenode/node.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/plugins/tracenode/node.c b/src/plugins/tracenode/node.c index 444d93f1708..c56df589826 100644 --- a/src/plugins/tracenode/node.c +++ b/src/plugins/tracenode/node.c @@ -55,23 +55,19 @@ tracenode_inline (vlib_main_t *vm, vlib_node_runtime_t *node, /* enqueue b0 to the current next frame */ vnet_feature_next_u16 (next, b[0]); - /* buffer already traced */ - if (PREDICT_FALSE (b[0]->flags & VLIB_BUFFER_IS_TRACED)) - goto skip; - if (is_pcap && vnet_is_packet_pcaped (pp, b[0], ~0)) { pcap_add_buffer (&pp->pcap_main, vm, from0[0], pp->max_bytes_per_pkt); } - else if (!is_pcap && vlib_trace_buffer (vm, node, next[0], b[0], - 1 /* follow_chain */)) + else if (!is_pcap && !(b[0]->flags & VLIB_BUFFER_IS_TRACED) && + vlib_trace_buffer (vm, node, next[0], b[0], + 1 /* follow_chain */)) { tracenode_trace_t *tr = vlib_add_trace (vm, node, b[0], sizeof *tr); tr->sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_RX]; } - skip: b++; from0++; next++; |