aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBenoît Ganne <bganne@cisco.com>2024-09-03 18:01:05 +0200
committerBeno�t Ganne <bganne@cisco.com>2024-11-13 15:06:42 +0000
commitf611870e8d8237f860cd607a98ad9a406a88a98f (patch)
tree6e4780d4c90468f154fb35daf7be1c7a88c79cf4 /src
parent661fb34a90a131658abd726f4faebdc566230cd8 (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.c10
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++;