From 0a809bf577d08cb15a93fe56bd15c460607d7384 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Thu, 7 Nov 2019 08:57:20 +0100 Subject: [PATCH] packet: set unique pkt_src 'flush' packets Set unique type for capture timeout and for detect reload flush to assist in debugging. --- src/decode.c | 6 ++++++ src/decode.h | 2 ++ src/detect-engine.c | 1 + src/tm-threads.h | 1 + 4 files changed, 10 insertions(+) diff --git a/src/decode.c b/src/decode.c index 82b076aba1..a9f32fda44 100644 --- a/src/decode.c +++ b/src/decode.c @@ -693,6 +693,12 @@ const char *PktSrcToString(enum PktSrcEnum pkt_src) case PKT_SRC_DECODER_VXLAN: pkt_src_str = "vxlan encapsulation"; break; + case PKT_SRC_DETECT_RELOAD_FLUSH: + pkt_src_str = "detect reload flush"; + break; + case PKT_SRC_CAPTURE_TIMEOUT: + pkt_src_str = "capture timeout flush"; + break; } return pkt_src_str; } diff --git a/src/decode.h b/src/decode.h index 67ba29976f..c31b83792a 100644 --- a/src/decode.h +++ b/src/decode.h @@ -55,6 +55,8 @@ enum PktSrcEnum { PKT_SRC_FFR, PKT_SRC_STREAM_TCP_DETECTLOG_FLUSH, PKT_SRC_DECODER_VXLAN, + PKT_SRC_DETECT_RELOAD_FLUSH, + PKT_SRC_CAPTURE_TIMEOUT, }; #include "source-nflog.h" diff --git a/src/detect-engine.c b/src/detect-engine.c index 78cc2248c2..fac0a8a7a6 100644 --- a/src/detect-engine.c +++ b/src/detect-engine.c @@ -1726,6 +1726,7 @@ static void InjectPackets(ThreadVars **detect_tvs, Packet *p = PacketGetFromAlloc(); if (p != NULL) { p->flags |= PKT_PSEUDO_STREAM_END; + PKT_SET_SRC(p, PKT_SRC_DETECT_RELOAD_FLUSH); PacketQueue *q = &trans_q[detect_tvs[i]->inq->id]; SCMutexLock(&q->mutex_q); PacketEnqueue(q, p); diff --git a/src/tm-threads.h b/src/tm-threads.h index 5acd9616f6..eff914313c 100644 --- a/src/tm-threads.h +++ b/src/tm-threads.h @@ -258,6 +258,7 @@ static inline void TmThreadsCaptureInjectPacket(ThreadVars *tv, TmSlot *slot, Pa p = PacketGetFromQueueOrAlloc(); if (p != NULL) { p->flags |= PKT_PSEUDO_STREAM_END; + PKT_SET_SRC(p, PKT_SRC_CAPTURE_TIMEOUT); if (TmThreadsSlotProcessPkt(tv, slot, p) != TM_ECODE_OK) { TmqhOutputPacketpool(tv, p); }