suricata
util-mpm-ac-ks.c File Reference
#include "suricata-common.h"
#include "suricata.h"
#include "detect.h"
#include "detect-parse.h"
#include "detect-engine.h"
#include "detect-engine-build.h"
#include "conf.h"
#include "util-debug.h"
#include "util-unittest.h"
#include "util-unittest-helper.h"
#include "util-memcmp.h"
#include "util-memcpy.h"
#include "util-validate.h"
#include "util-mpm-ac-ks.h"
#include "util-mpm-ac-ks-small.c"
#include "detect-engine-alert.h"
Include dependency graph for util-mpm-ac-ks.c:

Go to the source code of this file.

Data Structures

struct  StateQueue_
 Helper structure used by AC during state table creation. More...
 

Macros

#define SC_AC_TILE_FAIL   (-1)
 
#define STATE_QUEUE_CONTAINER_SIZE   65536
 
#define SCHECK(x)   ((x) > 0)
 
#define BUF_TYPE   int32_t
 
#define BYTE0(x)   (((x) & 0x000000ff) >> 0)
 
#define BYTE1(x)   (((x) & 0x0000ff00) >> 8)
 
#define BYTE2(x)   (((x) & 0x00ff0000) >> 16)
 
#define BYTE3(x)   (((x) & 0xff000000) >> 24)
 
#define EXTRA   4
 
#define SINDEX_INTERNAL(y, x, log_mult, width)   ((1<<log_mult) * (x & ((1<<width) - 1)))
 
#define STYPE   int16_t
 
#define SLOAD(x)   *(STYPE * restrict)(x)
 
#define FUNC_NAME   SCACTileSearchSmall256
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 8, 15)
 
#define FUNC_NAME   SCACTileSearchSmall128
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 7, 15)
 
#define FUNC_NAME   SCACTileSearchSmall64
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 6, 15)
 
#define FUNC_NAME   SCACTileSearchSmall32
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 5, 15)
 
#define FUNC_NAME   SCACTileSearchSmall16
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 4, 15)
 
#define FUNC_NAME   SCACTileSearchSmall8
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 3, 15)
 
#define STYPE   int8_t
 
#define FUNC_NAME   SCACTileSearchTiny256
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 8, 7)
 
#define FUNC_NAME   SCACTileSearchTiny128
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 7, 7)
 
#define FUNC_NAME   SCACTileSearchTiny64
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 6, 7)
 
#define FUNC_NAME   SCACTileSearchTiny32
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 5, 7)
 
#define FUNC_NAME   SCACTileSearchTiny16
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 4, 7)
 
#define FUNC_NAME   SCACTileSearchTiny8
 
#define SINDEX(y, x)   SINDEX_INTERNAL(y, x, 3, 7)
 

Typedefs

typedef struct StateQueue_ StateQueue
 Helper structure used by AC during state table creation. More...
 

Functions

void SCACTileInitCtx (MpmCtx *mpm_ctx)
 Initialize the AC context. More...
 
void SCACTileDestroyCtx (MpmCtx *mpm_ctx)
 Destroy the mpm context. More...
 
int SCACTileAddPatternCI (MpmCtx *mpm_ctx, uint8_t *pat, uint16_t patlen, uint16_t offset, uint16_t depth, uint32_t pid, SigIntId sid, uint8_t flags)
 Add a case insensitive pattern. Although we have different calls for adding case sensitive and insensitive patterns, we make a single call for either case. No special treatment for either case. More...
 
int SCACTileAddPatternCS (MpmCtx *mpm_ctx, uint8_t *pat, uint16_t patlen, uint16_t offset, uint16_t depth, uint32_t pid, SigIntId sid, uint8_t flags)
 Add a case sensitive pattern. Although we have different calls for adding case sensitive and insensitive patterns, we make a single call for either case. No special treatment for either case. More...
 
int SCACTilePreparePatterns (MpmCtx *mpm_ctx)
 Process the patterns added to the mpm, and create the internal tables. More...
 
uint32_t SCACTileSearch (const MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 The aho corasick search function. More...
 
void SCACTilePrintInfo (MpmCtx *mpm_ctx)
 
uint32_t SCACTileSearchLarge (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchSmall256 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchSmall128 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchSmall64 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchSmall32 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchSmall16 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchSmall8 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchTiny256 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchTiny128 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchTiny64 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchTiny32 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchTiny16 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
uint32_t SCACTileSearchTiny8 (const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, PrefilterRuleStore *pmq, const uint8_t *buf, uint32_t buflen)
 
void MpmACTileRegister (void)
 Register the aho-corasick mpm 'ks' originally developed by Ken Steele for Tilera Tile-Gx processor. More...
 

Detailed Description

Author
Ken Steele suric.nosp@m.ata@.nosp@m.tiler.nosp@m.a.co.nosp@m.m
Anoop Saldanha anoop.nosp@m.sald.nosp@m.anha@.nosp@m.gmai.nosp@m.l.com
    Aho-corasick MPM optimized for the Tilera Tile-Gx architecture.

    Efficient String Matching: An Aid to Bibliographic Search
    Alfred V. Aho and Margaret J. Corasick

    - Started with util-mpm-ac.c:
        - Uses the delta table for calculating transitions,
          instead of having separate goto and failure
          transitions.
        - If we cross 2 ** 16 states, we use 4 bytes in the
          transition table to hold each state, otherwise we use
          2 bytes.
        - This version of the MPM is heavy on memory, but it
          performs well.  If you can fit the ruleset with this
          mpm on your box without hitting swap, this is the MPM
          to go for.

    - Added these optimizations:
        - Compress the input alphabet from 256 characters down
          to the actual characters used in the patterns, plus
          one character for all the unused characters.
        - Reduce the size of the delta table so that each state
          is the smallest power of two that is larger than the
          size of the compressed alphabet.
        - Specialized the search function based on state count
          (small for 8-bit large for 16-bit) and the size of
          the alphabet, so that it is constant inside the
          function for better optimization.
Todo:
  • Do a proper analysis of our existing MPMs and suggest a good one based on the pattern distribution and the expected traffic(say http).
  • Irrespective of whether we cross 2 ** 16 states or not,shift to using uint32_t for state type, so that we can integrate it's status as a final state or not in the topmost byte. We are already doing it if state_count is > 2 ** 16.
  • Test case-sensitive patterns if they have any ascii chars. If they don't treat them as nocase.
  • Reorder the compressed alphabet to put the most common characters first.

Definition in file util-mpm-ac-ks.c.

Macro Definition Documentation

◆ BUF_TYPE

#define BUF_TYPE   int32_t

Definition at line 1109 of file util-mpm-ac-ks.c.

◆ BYTE0

#define BYTE0 (   x)    (((x) & 0x000000ff) >> 0)

Definition at line 1111 of file util-mpm-ac-ks.c.

◆ BYTE1

#define BYTE1 (   x)    (((x) & 0x0000ff00) >> 8)

Definition at line 1112 of file util-mpm-ac-ks.c.

◆ BYTE2

#define BYTE2 (   x)    (((x) & 0x00ff0000) >> 16)

Definition at line 1113 of file util-mpm-ac-ks.c.

◆ BYTE3

#define BYTE3 (   x)    (((x) & 0xff000000) >> 24)

Definition at line 1114 of file util-mpm-ac-ks.c.

◆ EXTRA

#define EXTRA   4

Definition at line 1115 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [1/12]

#define FUNC_NAME   SCACTileSearchSmall256

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [2/12]

#define FUNC_NAME   SCACTileSearchSmall128

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [3/12]

#define FUNC_NAME   SCACTileSearchSmall64

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [4/12]

#define FUNC_NAME   SCACTileSearchSmall32

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [5/12]

#define FUNC_NAME   SCACTileSearchSmall16

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [6/12]

#define FUNC_NAME   SCACTileSearchSmall8

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [7/12]

#define FUNC_NAME   SCACTileSearchTiny256

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [8/12]

#define FUNC_NAME   SCACTileSearchTiny128

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [9/12]

#define FUNC_NAME   SCACTileSearchTiny64

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [10/12]

#define FUNC_NAME   SCACTileSearchTiny32

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [11/12]

#define FUNC_NAME   SCACTileSearchTiny16

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ FUNC_NAME [12/12]

#define FUNC_NAME   SCACTileSearchTiny8

Definition at line 1316 of file util-mpm-ac-ks.c.

◆ SC_AC_TILE_FAIL

#define SC_AC_TILE_FAIL   (-1)

Definition at line 149 of file util-mpm-ac-ks.c.

◆ SCHECK

#define SCHECK (   x)    ((x) > 0)

Definition at line 1108 of file util-mpm-ac-ks.c.

◆ SINDEX [1/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 8, 15)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX [2/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 7, 15)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX [3/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 6, 15)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX [4/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 5, 15)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX [5/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 4, 15)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX [6/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 3, 15)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX [7/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 8, 7)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX [8/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 7, 7)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX [9/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 6, 7)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX [10/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 5, 7)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX [11/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 4, 7)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX [12/12]

#define SINDEX (   y,
 
)    SINDEX_INTERNAL(y, x, 3, 7)

Definition at line 1318 of file util-mpm-ac-ks.c.

◆ SINDEX_INTERNAL

#define SINDEX_INTERNAL (   y,
  x,
  log_mult,
  width 
)    ((1<<log_mult) * (x & ((1<<width) - 1)))

Definition at line 1215 of file util-mpm-ac-ks.c.

◆ SLOAD

#define SLOAD (   x)    *(STYPE * restrict)(x)

Definition at line 1220 of file util-mpm-ac-ks.c.

◆ STATE_QUEUE_CONTAINER_SIZE

#define STATE_QUEUE_CONTAINER_SIZE   65536

Definition at line 151 of file util-mpm-ac-ks.c.

◆ STYPE [1/2]

#define STYPE   int16_t

Definition at line 1272 of file util-mpm-ac-ks.c.

◆ STYPE [2/2]

#define STYPE   int8_t

Definition at line 1272 of file util-mpm-ac-ks.c.

Typedef Documentation

◆ StateQueue

typedef struct StateQueue_ StateQueue

Helper structure used by AC during state table creation.

Function Documentation

◆ MpmACTileRegister()

void MpmACTileRegister ( void  )

Register the aho-corasick mpm 'ks' originally developed by Ken Steele for Tilera Tile-Gx processor.

Definition at line 1398 of file util-mpm-ac-ks.c.

References MpmTableElmt_::AddPattern, MpmTableElmt_::AddPatternNocase, MpmTableElmt_::DestroyCtx, MpmTableElmt_::InitCtx, MPM_AC_KS, mpm_table, MpmTableElmt_::name, MpmTableElmt_::Prepare, MpmTableElmt_::PrintCtx, MpmTableElmt_::RegisterUnittests, SCACTileAddPatternCI(), SCACTileAddPatternCS(), SCACTileDestroyCtx(), SCACTileInitCtx(), SCACTilePreparePatterns(), SCACTilePrintInfo(), SCACTileSearch(), and MpmTableElmt_::Search.

Referenced by MpmTableSetup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SCACTileAddPatternCI()

int SCACTileAddPatternCI ( MpmCtx mpm_ctx,
uint8_t *  pat,
uint16_t  patlen,
uint16_t  offset,
uint16_t  depth,
uint32_t  pid,
SigIntId  sid,
uint8_t  flags 
)

Add a case insensitive pattern. Although we have different calls for adding case sensitive and insensitive patterns, we make a single call for either case. No special treatment for either case.

Parameters
mpm_ctxPointer to the mpm context.
patThe pattern to add.
patnenThe pattern length.
offsetIgnored.
depthIgnored.
pidThe pattern id.
sidIgnored.
flagsFlags associated with this pattern.
Return values
0On success.
-1On failure.

Definition at line 1338 of file util-mpm-ac-ks.c.

References flags, MPM_PATTERN_FLAG_NOCASE, MpmAddPattern(), and offset.

Referenced by MpmACTileRegister().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SCACTileAddPatternCS()

int SCACTileAddPatternCS ( MpmCtx mpm_ctx,
uint8_t *  pat,
uint16_t  patlen,
uint16_t  offset,
uint16_t  depth,
uint32_t  pid,
SigIntId  sid,
uint8_t  flags 
)

Add a case sensitive pattern. Although we have different calls for adding case sensitive and insensitive patterns, we make a single call for either case. No special treatment for either case.

Parameters
mpm_ctxPointer to the mpm context.
patThe pattern to add.
patnenThe pattern length.
offsetIgnored.
depthIgnored.
pidThe pattern id.
sidIgnored.
flagsFlags associated with this pattern.
Return values
0On success.
-1On failure.

Definition at line 1364 of file util-mpm-ac-ks.c.

References flags, MpmAddPattern(), and offset.

Referenced by MpmACTileRegister().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SCACTileDestroyCtx()

void SCACTileDestroyCtx ( MpmCtx mpm_ctx)

Destroy the mpm context.

Parameters
mpm_ctxPointer to the mpm context.

Definition at line 1065 of file util-mpm-ac-ks.c.

References MpmCtx_::ctx.

Referenced by MpmACTileRegister().

Here is the caller graph for this function:

◆ SCACTileInitCtx()

void SCACTileInitCtx ( MpmCtx mpm_ctx)

Initialize the AC context.

Parameters
mpm_ctxMpm context.

Definition at line 964 of file util-mpm-ac-ks.c.

References MpmCtx_::ctx, SCACTileSearchCtx_::init_ctx, MpmCtx_::init_hash, MpmCtx_::memory_cnt, MpmCtx_::memory_size, MPM_INIT_HASH_SIZE, and SCCalloc.

Referenced by MpmACTileRegister().

Here is the caller graph for this function:

◆ SCACTilePreparePatterns()

int SCACTilePreparePatterns ( MpmCtx mpm_ctx)

Process the patterns added to the mpm, and create the internal tables.

Parameters
mpm_ctxPointer to the mpm context.

Definition at line 864 of file util-mpm-ac-ks.c.

References ctx, MpmCtx_::ctx, SCACTileSearchCtx_::init_ctx, MpmCtx_::init_hash, MPM_INIT_HASH_SIZE, MpmPattern_::next, MpmCtx_::pattern_cnt, SCCalloc, and SCLogDebug.

Referenced by MpmACTileRegister().

Here is the caller graph for this function:

◆ SCACTilePrintInfo()

void SCACTilePrintInfo ( MpmCtx mpm_ctx)

Definition at line 1372 of file util-mpm-ac-ks.c.

References ctx, MpmCtx_::ctx, SCACTileSearchCtx_::init_ctx, MpmCtx_::maxlen, MpmCtx_::memory_cnt, MpmCtx_::memory_size, MpmCtx_::minlen, and MpmCtx_::pattern_cnt.

Referenced by MpmACTileRegister().

Here is the caller graph for this function:

◆ SCACTileSearch()

uint32_t SCACTileSearch ( const MpmCtx mpm_ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

The aho corasick search function.

Parameters
mpm_ctxPointer to the mpm context.
mpm_thread_ctxPointer to the mpm thread context.
pmqPointer to the Pattern Matcher Queue to hold search matches.
bufBuffer to be searched.
buflenBuffer length.
Return values
matchesMatch count.

Definition at line 1172 of file util-mpm-ac-ks.c.

References MpmCtx_::ctx, and SCACTileSearchCtx_::Search.

Referenced by MpmACTileRegister().

Here is the caller graph for this function:

◆ SCACTileSearchLarge()

uint32_t SCACTileSearchLarge ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

Definition at line 1185 of file util-mpm-ac-ks.c.

References ctx, DEBUG_VALIDATE_BUG_ON, and SCHECK.

◆ SCACTileSearchSmall128()

uint32_t SCACTileSearchSmall128 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

◆ SCACTileSearchSmall16()

uint32_t SCACTileSearchSmall16 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

◆ SCACTileSearchSmall256()

uint32_t SCACTileSearchSmall256 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

◆ SCACTileSearchSmall32()

uint32_t SCACTileSearchSmall32 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

◆ SCACTileSearchSmall64()

uint32_t SCACTileSearchSmall64 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

◆ SCACTileSearchSmall8()

uint32_t SCACTileSearchSmall8 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

◆ SCACTileSearchTiny128()

uint32_t SCACTileSearchTiny128 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

◆ SCACTileSearchTiny16()

uint32_t SCACTileSearchTiny16 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

◆ SCACTileSearchTiny256()

uint32_t SCACTileSearchTiny256 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

◆ SCACTileSearchTiny32()

uint32_t SCACTileSearchTiny32 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

◆ SCACTileSearchTiny64()

uint32_t SCACTileSearchTiny64 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)

◆ SCACTileSearchTiny8()

uint32_t SCACTileSearchTiny8 ( const SCACTileSearchCtx ctx,
MpmThreadCtx mpm_thread_ctx,
PrefilterRuleStore pmq,
const uint8_t *  buf,
uint32_t  buflen 
)