From 7989e3c05874cdd11288d235a934c0d6f26d38ed Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Mon, 15 May 2023 10:02:26 +0200 Subject: [PATCH] flowworker: simplify pseudo packet use Pseudo packets originating in the flow worker do not need to leave the flow worker. Putting those in the ThreadVars::decode_pq will make them be evaluated by the next steps in the pipeline, but those will all ignore pseudo packets. Instead, this patch returns them to the packet pool, while still honoring the IPS verdict logic. (cherry picked from commit 3247e39f0c6824b0fde20cfa8f4bbb596217eed2) --- src/flow-worker.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/flow-worker.c b/src/flow-worker.c index 5d4ccd28eb..cac66ced4a 100644 --- a/src/flow-worker.c +++ b/src/flow-worker.c @@ -395,12 +395,13 @@ static inline void FlowWorkerStreamTCPUpdate(ThreadVars *tv, FlowWorkerThreadDat /* no need to keep a flow ref beyond this point */ FlowDeReference(&x->flow); + /* no further work to do for this pseudo packet, so we can return + * it to the pool immediately. */ if (timeout) { PacketPoolReturnPacket(x); } else { - /* put these packets in the preq queue so that they are - * by the other thread modules before packet 'p'. */ - PacketEnqueueNoLock(&tv->decode_pq, x); + /* to support IPS verdict logic, in the non-timeout case we need to do a bit more */ + TmqhOutputPacketpool(tv, x); } } } -- 2.47.2