diff --git a/src/runmode-nfq.c b/src/runmode-nfq.c index 704b1de4a2..4839fbc52d 100644 --- a/src/runmode-nfq.c +++ b/src/runmode-nfq.c @@ -53,6 +53,10 @@ void RunModeIpsNFQRegister(void) RunModeRegisterNewRunMode(RUNMODE_NFQ, "autofp", "Multi threaded NFQ IPS mode with respect to flow", RunModeIpsNFQAutoFp); + + RunModeRegisterNewRunMode(RUNMODE_NFQ, "worker", + "Multi queue NFQ IPS mode with one thread per queue", + RunModeIpsNFQWorker); return; } @@ -113,3 +117,22 @@ int RunModeIpsNFQAutoFp(DetectEngineCtx *de_ctx) #endif /* NFQ */ return ret; } + +int RunModeIpsNFQWorker(DetectEngineCtx *de_ctx) +{ + SCEnter(); + int ret = 0; +#ifdef NFQ + + RunModeInitialize(); + + TimeModeSetLive(); + + ret = RunModeSetIPSWorker(de_ctx, + NFQGetThread, + "ReceiveNFQ", + "VerdictNFQ", + "DecodeNFQ"); +#endif /* NFQ */ + return ret; +} diff --git a/src/runmode-nfq.h b/src/runmode-nfq.h index bc95c5f097..677fff682b 100644 --- a/src/runmode-nfq.h +++ b/src/runmode-nfq.h @@ -25,6 +25,7 @@ int RunModeIpsNFQAuto(DetectEngineCtx *); int RunModeIpsNFQAutoFp(DetectEngineCtx *); +int RunModeIpsNFQWorker(DetectEngineCtx *); void RunModeIpsNFQRegister(void); const char *RunModeIpsNFQGetDefaultMode(void);