From c1f679d3f3564fd3a2ab3b157880e22e1b936a7a Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Sun, 29 May 2016 11:29:30 +0200 Subject: [PATCH] flow worker: move UDP app-layer into main function This way it's more clean what happens and we can profile it. --- src/flow-worker.c | 13 ++++++++----- src/flow-worker.h | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/flow-worker.c b/src/flow-worker.c index 21a210fee7..4f96ac1f63 100644 --- a/src/flow-worker.c +++ b/src/flow-worker.c @@ -73,11 +73,6 @@ typedef struct FlowWorkerThreadData_ { static void FlowUpdate(ThreadVars *tv, StreamTcpThread *stt, Packet *p) { FlowHandlePacketUpdate(p->flow, p); - - /* handle the app layer part of the UDP packet payload */ - if (p->proto == IPPROTO_UDP) { - AppLayerHandleUdp(tv, stt->ra_ctx->app_tctx, p, p->flow); - } } static TmEcode FlowWorkerThreadInit(ThreadVars *tv, void *initdata, void **data) @@ -206,6 +201,12 @@ TmEcode FlowWorker(ThreadVars *tv, Packet *p, void *data, PacketQueue *preq, Pac * by the other thread modules before packet 'p'. */ PacketEnqueue(preq, x); } + + /* handle the app layer part of the UDP packet payload */ + } else if (p->flow && p->proto == IPPROTO_UDP) { + FLOWWORKER_PROFILING_START(p, PROFILE_FLOWWORKER_APPLAYERUDP); + AppLayerHandleUdp(tv, fw->stream_thread->ra_ctx->app_tctx, p, p->flow); + FLOWWORKER_PROFILING_END(p, PROFILE_FLOWWORKER_APPLAYERUDP); } /* handle Detect */ @@ -252,6 +253,8 @@ const char *ProfileFlowWorkerIdToString(enum ProfileFlowWorkerId fwi) return "flow"; case PROFILE_FLOWWORKER_STREAM: return "stream"; + case PROFILE_FLOWWORKER_APPLAYERUDP: + return "app-layer"; case PROFILE_FLOWWORKER_DETECT: return "detect"; case PROFILE_FLOWWORKER_SIZE: diff --git a/src/flow-worker.h b/src/flow-worker.h index bda621063c..418ea05d6c 100644 --- a/src/flow-worker.h +++ b/src/flow-worker.h @@ -21,6 +21,7 @@ enum ProfileFlowWorkerId { PROFILE_FLOWWORKER_FLOW = 0, PROFILE_FLOWWORKER_STREAM, + PROFILE_FLOWWORKER_APPLAYERUDP, PROFILE_FLOWWORKER_DETECT, PROFILE_FLOWWORKER_SIZE };