]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
mpm: register algo features
authorVictor Julien <vjulien@oisf.net>
Tue, 19 Dec 2023 10:42:42 +0000 (11:42 +0100)
committerVictor Julien <victor@inliniac.net>
Sat, 16 Mar 2024 08:29:34 +0000 (09:29 +0100)
This is so patterns can reply on mpm match meaning a full match.

Not yet used.

src/util-mpm-ac-ks.c
src/util-mpm-ac.c
src/util-mpm-hs.c
src/util-mpm.h

index df36452be3f36226144df5ae9dee79c5157f8850..60bb1b7a9e42a672080604fd2f0b293c24f54439 100644 (file)
@@ -1408,6 +1408,7 @@ void MpmACTileRegister(void)
 #ifdef UNITTESTS
     mpm_table[MPM_AC_KS].RegisterUnittests = SCACTileRegisterTests;
 #endif
+    mpm_table[MPM_AC_KS].feature_flags = MPM_FEATURE_FLAG_DEPTH | MPM_FEATURE_FLAG_OFFSET;
 }
 
 
index e7eb63cf4fc5335566d4de4ae4a198a8b65710ed..e85b6e503215ec7e548c73f8cb25d2bfe9eaeb48 100644 (file)
@@ -1127,6 +1127,7 @@ void MpmACRegister(void)
 #ifdef UNITTESTS
     mpm_table[MPM_AC].RegisterUnittests = SCACRegisterTests;
 #endif
+    mpm_table[MPM_AC].feature_flags = MPM_FEATURE_FLAG_DEPTH | MPM_FEATURE_FLAG_OFFSET;
     return;
 }
 
index 5c241991842e645aaa105e50483a6aa21845b3b8..b22b6f869db6523ea7e6e03a6179485d62efbd08 100644 (file)
@@ -1055,6 +1055,7 @@ void MpmHSRegister(void)
 #ifdef UNITTESTS
     mpm_table[MPM_HS].RegisterUnittests = SCHSRegisterTests;
 #endif
+    mpm_table[MPM_HS].feature_flags = MPM_FEATURE_FLAG_DEPTH | MPM_FEATURE_FLAG_OFFSET;
     /* Set Hyperscan memory allocators */
     SCHSSetAllocators();
 }
index c3b12d8a1afd14af9ecef30b77dd8a7a5d8ad3fe..2df692040aba55570a04a4616714ee9caa2ed526 100644 (file)
@@ -138,6 +138,9 @@ typedef struct MpmCtxFactoryContainer_ {
  *  what is passed through the API */
 #define MPM_PATTERN_CTX_OWNS_ID     0x20
 
+#define MPM_FEATURE_FLAG_DEPTH  BIT_U8(0)
+#define MPM_FEATURE_FLAG_OFFSET BIT_U8(1)
+
 typedef struct MpmTableElmt_ {
     const char *name;
     void (*InitCtx)(struct MpmCtx_ *);
@@ -166,6 +169,7 @@ typedef struct MpmTableElmt_ {
 #ifdef UNITTESTS
     void (*RegisterUnittests)(void);
 #endif
+    uint8_t feature_flags;
 } MpmTableElmt;
 
 extern MpmTableElmt mpm_table[MPM_TABLE_SIZE];