detect: implement --qa-skip-prefilter

Option meant for testing performance of rule engine w/o prefilter
optimizations.
pull/10134/head
Victor Julien 3 years ago committed by Victor Julien
parent 222dcf776e
commit bd66504a43

@ -1371,6 +1371,7 @@ void SignatureSetType(DetectEngineCtx *de_ctx, Signature *s)
}
}
extern int g_skip_prefilter;
/**
* \brief Preprocess signature, classify ip-only, etc, build sig array
*
@ -1459,9 +1460,8 @@ int SigPrepareStage1(DetectEngineCtx *de_ctx)
RuleSetWhitelist(s);
/* if keyword engines are enabled in the config, handle them here */
if (de_ctx->prefilter_setting == DETECT_PREFILTER_AUTO &&
!(s->flags & SIG_FLAG_PREFILTER))
{
if (!g_skip_prefilter && de_ctx->prefilter_setting == DETECT_PREFILTER_AUTO &&
!(s->flags & SIG_FLAG_PREFILTER)) {
int prefilter_list = DETECT_TBLSIZE;
// TODO buffers?

@ -1066,8 +1066,13 @@ static SigMatch *GetMpmForList(const Signature *s, SigMatch *list, SigMatch *mpm
return mpm_sm;
}
int g_skip_prefilter = 0;
void RetrieveFPForSig(const DetectEngineCtx *de_ctx, Signature *s)
{
if (g_skip_prefilter)
return;
if (s->init_data->mpm_sm != NULL)
return;

@ -1302,6 +1302,8 @@ static bool IsLogDirectoryWritable(const char* str)
return false;
}
extern int g_skip_prefilter;
static TmEcode ParseCommandLine(int argc, char** argv, SCInstance *suri)
{
int opt;
@ -1396,6 +1398,9 @@ static TmEcode ParseCommandLine(int argc, char** argv, SCInstance *suri)
{"simulate-packet-tcp-ssn-memcap", required_argument, 0, 0},
{"simulate-packet-defrag-memcap", required_argument, 0, 0},
{"simulate-alert-queue-realloc-failure", 0, 0, 0},
{"qa-skip-prefilter", 0, &g_skip_prefilter, 1 },
{"include", required_argument, 0, 0},
{NULL, 0, NULL, 0}

Loading…
Cancel
Save