]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
logging: add profiling back for non-tmm loggers
authorJason Ish <ish@unx.ca>
Sat, 28 May 2016 00:57:06 +0000 (18:57 -0600)
committerVictor Julien <victor@inliniac.net>
Mon, 19 Sep 2016 11:47:52 +0000 (13:47 +0200)
The loggers moved away from a TMM required a new
profiling support.

43 files changed:
src/alert-debuglog.c
src/alert-fastlog.c
src/alert-prelude.c
src/alert-syslog.c
src/alert-unified2-alert.c
src/decode.h
src/log-dnslog.c
src/log-droplog.c
src/log-file.c
src/log-filestore.c
src/log-httplog.c
src/log-stats.c
src/log-tcp-data.c
src/log-tlslog.c
src/log-tlsstore.c
src/output-file.c
src/output-file.h
src/output-filedata.c
src/output-filedata.h
src/output-json-alert.c
src/output-json-dns.c
src/output-json-drop.c
src/output-json-file.c
src/output-json-flow.c
src/output-json-http.c
src/output-json-netflow.c
src/output-json-smtp.c
src/output-json-ssh.c
src/output-json-stats.c
src/output-json-template.c
src/output-json-tls.c
src/output-packet.c
src/output-packet.h
src/output-streaming.c
src/output-streaming.h
src/output-tx.c
src/output-tx.h
src/output.c
src/output.h
src/runmodes.c
src/suricata-common.h
src/util-profiling.c
src/util-profiling.h

index 1c0b4640dcbb95540070c5932343c600b836df10..931fa70cba41ad1319037f8b94ce2d2d8e1459b5 100644 (file)
@@ -512,7 +512,7 @@ static int AlertDebugLogLogger(ThreadVars *tv, void *thread_data, const Packet *
 
 void TmModuleAlertDebugLogRegister (void)
 {
-    OutputRegisterPacketModule(MODULE_NAME, "alert-debug",
+    OutputRegisterPacketModule(LOGGER_ALERT_DEBUG, MODULE_NAME, "alert-debug",
         AlertDebugLogInitCtx, AlertDebugLogLogger, AlertDebugLogCondition,
         AlertDebugLogThreadInit, AlertDebugLogThreadDeinit,
         AlertDebugLogExitPrintStats);
index 59ff045e02afde8ebd87a3ea3c6f0024454ce830..42d601997c27a061ed2b000cf5bf42768be78282 100644 (file)
@@ -78,9 +78,10 @@ int AlertFastLogger(ThreadVars *tv, void *data, const Packet *p);
 
 void TmModuleAlertFastLogRegister (void)
 {
-    OutputRegisterPacketModule(MODULE_NAME, "fast", AlertFastLogInitCtx,
-        AlertFastLogger, AlertFastLogCondition, AlertFastLogThreadInit,
-        AlertFastLogThreadDeinit, AlertFastLogExitPrintStats);
+    OutputRegisterPacketModule(LOGGER_ALERT_FAST, MODULE_NAME, "fast",
+        AlertFastLogInitCtx, AlertFastLogger, AlertFastLogCondition,
+        AlertFastLogThreadInit, AlertFastLogThreadDeinit,
+        AlertFastLogExitPrintStats);
     AlertFastLogRegisterTests();
 }
 
index b29e885fa9ce887f1dc9240bb0060936fe1fa83d..399641015581afe749c696fd0b3691623e1295d3 100644 (file)
@@ -916,7 +916,7 @@ err:
 
 void TmModuleAlertPreludeRegister (void)
 {
-    OutputRegisterPacketModule("AlertPrelude", "alert-prelude",
+    OutputRegisterPacketModule(LOGGER_PRELUDE, "AlertPrelude", "alert-prelude",
         AlertPreludeInitCtx, AlertPreludeLogger, AlertPreludeCondition,
         AlertPreludeThreadInit, AlertPreludeThreadDeinit, NULL);
 }
index a48b99f7a23b7ca3eb3d43044175d5f2f41ed61d..3d312c9a01d25f4c9ef1005eddb420e3d9c131f7 100644 (file)
@@ -411,7 +411,7 @@ static int AlertSyslogLogger(ThreadVars *tv, void *thread_data, const Packet *p)
 void TmModuleAlertSyslogRegister (void)
 {
 #ifndef OS_WIN32
-    OutputRegisterPacketModule(MODULE_NAME, "syslog",
+    OutputRegisterPacketModule(LOGGER_ALERT_SYSLOG, MODULE_NAME, "syslog",
         AlertSyslogInitCtx, AlertSyslogLogger, AlertSyslogCondition,
         AlertSyslogThreadInit, AlertSyslogThreadDeinit,
         AlertSyslogExitPrintStats);
index 89b588d0e2d4308832b93ea2d60e90eac5753ffe..a39a328c5eff95566041917fd80263b3471f87ff 100644 (file)
@@ -235,7 +235,7 @@ int Unified2Logger(ThreadVars *tv, void *data, const Packet *p);
 
 void TmModuleUnified2AlertRegister(void)
 {
-    OutputRegisterPacketModule(MODULE_NAME, "unified2-alert",
+    OutputRegisterPacketModule(LOGGER_UNIFIED2, MODULE_NAME, "unified2-alert",
         Unified2AlertInitCtx, Unified2Logger, Unified2Condition,
         Unified2AlertThreadInit, Unified2AlertThreadDeinit, NULL);
     Unified2RegisterTests();
index 2a5d39d38eae11072d5cc8c16822e153d652c317..0a829ec2fa2dc13cd60352988a5fbec851aa322f 100644 (file)
@@ -341,6 +341,12 @@ typedef struct PktProfilingAppData_ {
     uint64_t ticks_spent;
 } PktProfilingAppData;
 
+typedef struct PktProfilingLoggerData_ {
+    uint64_t ticks_start;
+    uint64_t ticks_end;
+    uint64_t ticks_spent;
+} PktProfilingLoggerData;
+
 /** \brief Per pkt stats storage */
 typedef struct PktProfiling_ {
     uint64_t ticks_start;
@@ -350,6 +356,7 @@ typedef struct PktProfiling_ {
     PktProfilingData flowworker[PROFILE_FLOWWORKER_SIZE];
     PktProfilingAppData app[ALPROTO_MAX];
     PktProfilingDetectData detect[PROF_DETECT_SIZE];
+    PktProfilingLoggerData logger[LOGGER_SIZE];
     uint64_t proto_detect;
 } PktProfiling;
 
index 5267175d5dd9c9ae9e5ec7f088866977593b5068..418b2dd47926f65db1d915106c80707f8de314a7 100644 (file)
@@ -346,7 +346,7 @@ static OutputCtx *LogDnsLogInitCtx(ConfNode *conf)
 
 void TmModuleLogDnsLogRegister (void)
 {
-    OutputRegisterTxModule(MODULE_NAME, "dns-log", LogDnsLogInitCtx,
+    OutputRegisterTxModule(LOGGER_DNS, MODULE_NAME, "dns-log", LogDnsLogInitCtx,
         ALPROTO_DNS, LogDnsLogger, LogDnsLogThreadInit, LogDnsLogThreadDeinit,
         LogDnsLogExitPrintStats);
 
index c680a4233733eced62121bef1e75a8a3fd757085..03c66c620f4c95064375a8e15e52b58ffbeee2f8 100644 (file)
@@ -494,9 +494,9 @@ static void LogDropLogRegisterTests(void)
 /** \brief function to register the drop log module */
 void TmModuleLogDropLogRegister (void)
 {
-    OutputRegisterPacketModule(MODULE_NAME, "drop", LogDropLogInitCtx,
-        LogDropLogger, LogDropCondition, LogDropLogThreadInit,
-        LogDropLogThreadDeinit, LogDropLogExitPrintStats);
+    OutputRegisterPacketModule(LOGGER_DROP, MODULE_NAME, "drop",
+        LogDropLogInitCtx, LogDropLogger, LogDropCondition,
+        LogDropLogThreadInit, LogDropLogThreadDeinit, LogDropLogExitPrintStats);
 #ifdef UNITTESTS
     LogDropLogRegisterTests();
 #endif
index 5a7e4b87a38911549e347c08f2c4c959e6a0d573..71e683a420715e8a0c50384804300d6850f0cd37 100644 (file)
@@ -455,9 +455,9 @@ int LogFileLogOpenFileCtx(LogFileCtx *file_ctx, const char *filename, const
 
 void TmModuleLogFileLogRegister (void)
 {
-    OutputRegisterFileModule(MODULE_NAME, "file-log", LogFileLogInitCtx,
-        LogFileLogger, LogFileLogThreadInit, LogFileLogThreadDeinit,
-        LogFileLogExitPrintStats);
+    OutputRegisterFileModule(LOGGER_FILE, MODULE_NAME, "file-log",
+        LogFileLogInitCtx, LogFileLogger, LogFileLogThreadInit,
+        LogFileLogThreadDeinit, LogFileLogExitPrintStats);
 
     SCLogDebug("registered");
 }
index 80c32dfd0a9f5d93429b411867c6b4d911dc24b0..aacd219433c6146163cbeff048570d487c4913a8 100644 (file)
@@ -481,10 +481,10 @@ static OutputCtx *LogFilestoreLogInitCtx(ConfNode *conf)
 
 void TmModuleLogFilestoreRegister (void)
 {
-    OutputRegisterFiledataModule(MODULE_NAME, "file", LogFilestoreLogInitCtx,
-        LogFilestoreLogger, LogFilestoreLogThreadInit,
+    OutputRegisterFiledataModule(LOGGER_FILE_STORE, MODULE_NAME, "file",
+        LogFilestoreLogInitCtx, LogFilestoreLogger, LogFilestoreLogThreadInit,
         LogFilestoreLogThreadDeinit, LogFilestoreLogExitPrintStats);
-    OutputRegisterFiledataModule(MODULE_NAME, "file-store",
+    OutputRegisterFiledataModule(LOGGER_FILE_STORE, MODULE_NAME, "file-store",
         LogFilestoreLogInitCtx, LogFilestoreLogger, LogFilestoreLogThreadInit,
         LogFilestoreLogThreadDeinit, LogFilestoreLogExitPrintStats);
 
index 64b825f89134cefab2d166efad9e2ba7f51d67af..695b98e53897eca9e5f68619fac392b88ce16761 100644 (file)
@@ -65,8 +65,8 @@ int LogHttpLogger(ThreadVars *tv, void *thread_data, const Packet *, Flow *f, vo
 
 void TmModuleLogHttpLogRegister (void)
 {
-    OutputRegisterTxModule(MODULE_NAME, "http-log", LogHttpLogInitCtx,
-        ALPROTO_HTTP, LogHttpLogger, LogHttpLogThreadInit,
+    OutputRegisterTxModule(LOGGER_HTTP, MODULE_NAME, "http-log",
+        LogHttpLogInitCtx, ALPROTO_HTTP, LogHttpLogger, LogHttpLogThreadInit,
         LogHttpLogThreadDeinit, LogHttpLogExitPrintStats);
 }
 
index 51cb56c4817e5c868e61b520eb051b3a9d5ea917..343fce06ae6fc11bbc718375face98e6a6bebd41 100644 (file)
@@ -296,7 +296,7 @@ static void LogStatsLogDeInitCtx(OutputCtx *output_ctx)
 
 void TmModuleLogStatsLogRegister (void)
 {
-    OutputRegisterStatsModule(MODULE_NAME, "stats", LogStatsLogInitCtx,
-        LogStatsLogger, LogStatsLogThreadInit, LogStatsLogThreadDeinit,
-        LogStatsLogExitPrintStats);
+    OutputRegisterStatsModule(LOGGER_STATS, MODULE_NAME, "stats",
+        LogStatsLogInitCtx, LogStatsLogger, LogStatsLogThreadInit,
+        LogStatsLogThreadDeinit, LogStatsLogExitPrintStats);
 }
index b1ebfca3976174a6d87431cc8567dec585336f6f..d56a9fc5889d30af92dda3114ca9902f8ec89c56 100644 (file)
@@ -61,10 +61,11 @@ static void LogTcpDataLogDeInitCtx(OutputCtx *);
 int LogTcpDataLogger(ThreadVars *tv, void *thread_data, const Flow *f, const uint8_t *data, uint32_t data_len, uint64_t tx_id, uint8_t flags);
 
 void TmModuleLogTcpDataLogRegister (void) {
-    OutputRegisterStreamingModule(MODULE_NAME, "tcp-data", LogTcpDataLogInitCtx,
-        LogTcpDataLogger, STREAMING_TCP_DATA, LogTcpDataLogThreadInit,
-        LogTcpDataLogThreadDeinit, LogTcpDataLogExitPrintStats);
-    OutputRegisterStreamingModule(MODULE_NAME, "http-body-data",
+    OutputRegisterStreamingModule(LOGGER_TCP_DATA, MODULE_NAME, "tcp-data",
+        LogTcpDataLogInitCtx, LogTcpDataLogger, STREAMING_TCP_DATA,
+        LogTcpDataLogThreadInit, LogTcpDataLogThreadDeinit,
+        LogTcpDataLogExitPrintStats);
+    OutputRegisterStreamingModule(LOGGER_TCP_DATA, MODULE_NAME, "http-body-data",
         LogTcpDataLogInitCtx, LogTcpDataLogger, STREAMING_HTTP_BODIES,
         LogTcpDataLogThreadInit, LogTcpDataLogThreadDeinit,
         LogTcpDataLogExitPrintStats);
index 0239606362ea0ed9f395e986794f0d106bfa837c..aa04ad11054a35d4a0426e196cbd89352844933d 100644 (file)
@@ -314,7 +314,8 @@ static int LogTlsLogger(ThreadVars *tv, void *thread_data, const Packet *p,
 
 void TmModuleLogTlsLogRegister(void)
 {
-    OutputRegisterTxModuleWithProgress(MODULE_NAME, "tls-log", LogTlsLogInitCtx,
-        ALPROTO_TLS, LogTlsLogger, TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE,
-        LogTlsLogThreadInit, LogTlsLogThreadDeinit, LogTlsLogExitPrintStats);
+    OutputRegisterTxModuleWithProgress(LOGGER_TLS, MODULE_NAME, "tls-log",
+        LogTlsLogInitCtx, ALPROTO_TLS, LogTlsLogger, TLS_HANDSHAKE_DONE,
+        TLS_HANDSHAKE_DONE, LogTlsLogThreadInit, LogTlsLogThreadDeinit,
+        LogTlsLogExitPrintStats);
 }
index d26d02e505312c0b761a1dffb58cf107f5f5b867..13840af1ec30e9dd5f3933d805a14ad08774fd72 100644 (file)
@@ -408,8 +408,8 @@ static OutputCtx *LogTlsStoreLogInitCtx(ConfNode *conf)
 
 void TmModuleLogTlsStoreRegister (void)
 {
-    OutputRegisterTxModuleWithCondition(MODULE_NAME, "tls-store",
-        LogTlsStoreLogInitCtx, ALPROTO_TLS, LogTlsStoreLogger,
+    OutputRegisterTxModuleWithCondition(LOGGER_TLS_STORE, MODULE_NAME,
+        "tls-store", LogTlsStoreLogInitCtx, ALPROTO_TLS, LogTlsStoreLogger,
         LogTlsStoreCondition, LogTlsStoreLogThreadInit,
         LogTlsStoreLogThreadDeinit, LogTlsStoreLogExitPrintStats);
 
index 50075c5b66e215816530580da71b8196d28fbed5..995e3200095bb2ba8589fa6a11f8d6517b1ffe49 100644 (file)
@@ -50,7 +50,7 @@ typedef struct OutputFileLogger_ {
     OutputCtx *output_ctx;
     struct OutputFileLogger_ *next;
     const char *name;
-    TmmId module_id;
+    LoggerId logger_id;
     ThreadInitFunc ThreadInit;
     ThreadDeinitFunc ThreadDeinit;
     ThreadExitPrintStatsFunc ThreadExitPrintStats;
@@ -58,17 +58,11 @@ typedef struct OutputFileLogger_ {
 
 static OutputFileLogger *list = NULL;
 
-int OutputRegisterFileLogger(const char *name, FileLogger LogFunc,
+int OutputRegisterFileLogger(LoggerId id, const char *name, FileLogger LogFunc,
     OutputCtx *output_ctx, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
 {
-#if 0
-    int module_id = TmModuleGetIdByName(name);
-    if (module_id < 0)
-        return -1;
-#endif
-
     OutputFileLogger *op = SCMalloc(sizeof(*op));
     if (op == NULL)
         return -1;
@@ -77,9 +71,7 @@ int OutputRegisterFileLogger(const char *name, FileLogger LogFunc,
     op->LogFunc = LogFunc;
     op->output_ctx = output_ctx;
     op->name = name;
-#if 0
-    op->module_id = (TmmId) module_id;
-#endif
+    op->logger_id = id;
     op->ThreadInit = ThreadInit;
     op->ThreadDeinit = ThreadDeinit;
     op->ThreadExitPrintStats = ThreadExitPrintStats;
@@ -162,9 +154,9 @@ static TmEcode OutputFileLog(ThreadVars *tv, Packet *p, void *thread_data, Packe
                     BUG_ON(logger->LogFunc == NULL);
 
                     SCLogDebug("logger %p", logger);
-                    PACKET_PROFILING_TMM_START(p, logger->module_id);
+                    PACKET_PROFILING_LOGGER_START(p, logger->logger_id);
                     logger->LogFunc(tv, store->thread_data, (const Packet *)p, (const File *)ff);
-                    PACKET_PROFILING_TMM_END(p, logger->module_id);
+                    PACKET_PROFILING_LOGGER_END(p, logger->logger_id);
                     file_logged = 1;
 
                     logger = logger->next;
index 75f3d8860bb53c4785647c0625e80eecf92c34c0..3f335447dafea6453bb385d7d37751f7367682ee 100644 (file)
@@ -37,8 +37,8 @@ typedef int (*FileLogger)(ThreadVars *, void *thread_data, const Packet *, const
  */
 //typedef int (*TxLogCondition)(ThreadVars *, const Packet *);
 
-int OutputRegisterFileLogger(const char *name, FileLogger LogFunc, OutputCtx *,
-    ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+int OutputRegisterFileLogger(LoggerId id, const char *name, FileLogger LogFunc,
+    OutputCtx *, ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
 
 void TmModuleFileLoggerRegister (void);
index 828dac2384df7f71fb86deba6e40a230a44772fc..75e3a83fc3413da6712937ad6ce58d9fcbc777c2 100644 (file)
@@ -51,7 +51,7 @@ typedef struct OutputFiledataLogger_ {
     OutputCtx *output_ctx;
     struct OutputFiledataLogger_ *next;
     const char *name;
-    TmmId module_id;
+    LoggerId logger_id;
     ThreadInitFunc ThreadInit;
     ThreadDeinitFunc ThreadDeinit;
     ThreadExitPrintStatsFunc ThreadExitPrintStats;
@@ -63,17 +63,11 @@ static SCMutex g_waldo_mutex = SCMUTEX_INITIALIZER;
 static int g_waldo_init = 0;
 static int g_waldo_deinit = 0;
 
-int OutputRegisterFiledataLogger(const char *name, FiledataLogger LogFunc,
-    OutputCtx *output_ctx, ThreadInitFunc ThreadInit,
+int OutputRegisterFiledataLogger(LoggerId id, const char *name,
+    FiledataLogger LogFunc, OutputCtx *output_ctx, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
 {
-#if 0
-    int module_id = TmModuleGetIdByName(name);
-    if (module_id < 0)
-        return -1;
-#endif
-
     OutputFiledataLogger *op = SCMalloc(sizeof(*op));
     if (op == NULL)
         return -1;
@@ -82,9 +76,7 @@ int OutputRegisterFiledataLogger(const char *name, FiledataLogger LogFunc,
     op->LogFunc = LogFunc;
     op->output_ctx = output_ctx;
     op->name = name;
-#if 0
-    op->module_id = (TmmId) module_id;
-#endif
+    op->logger_id = id;
     op->ThreadInit = ThreadInit;
     op->ThreadDeinit = ThreadDeinit;
     op->ThreadExitPrintStats = ThreadExitPrintStats;
@@ -116,9 +108,9 @@ static int CallLoggers(ThreadVars *tv, OutputLoggerThreadStore *store_list,
         BUG_ON(logger->LogFunc == NULL);
 
         SCLogDebug("logger %p", logger);
-        PACKET_PROFILING_TMM_START(p, logger->module_id);
+        PACKET_PROFILING_LOGGER_START(p, logger->logger_id);
         logger->LogFunc(tv, store->thread_data, (const Packet *)p, ff, data, data_len, flags);
-        PACKET_PROFILING_TMM_END(p, logger->module_id);
+        PACKET_PROFILING_LOGGER_END(p, logger->logger_id);
 
         file_logged = 1;
 
index c9478990aa587c378fbd545671096641369e1fb8..562eba6bb0fc5ea1160c5bc5f8824abfd21da069 100644 (file)
@@ -41,8 +41,9 @@ typedef int (*FiledataLogger)(ThreadVars *, void *thread_data, const Packet *,
  */
 //typedef int (*TxLogCondition)(ThreadVars *, const Packet *);
 
-int OutputRegisterFiledataLogger(const char *name, FiledataLogger LogFunc,
-    OutputCtx *, ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+int OutputRegisterFiledataLogger(LoggerId id, const char *name,
+    FiledataLogger LogFunc, OutputCtx *, ThreadInitFunc ThreadInit,
+    ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
 
 void TmModuleFiledataLoggerRegister (void);
index 79c8ea0e291af60bcc5b36dc2eb16465d6e7ac7d..ac28c6c9d695cd97a7d7a3b0320965208e5525d7 100644 (file)
@@ -741,12 +741,13 @@ error:
 
 void TmModuleJsonAlertLogRegister (void)
 {
-    OutputRegisterPacketModule(MODULE_NAME, "alert-json-log",
+    OutputRegisterPacketModule(LOGGER_JSON_ALERT, MODULE_NAME, "alert-json-log",
         JsonAlertLogInitCtx, JsonAlertLogger, JsonAlertLogCondition,
         JsonAlertLogThreadInit, JsonAlertLogThreadDeinit, NULL);
-    OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "eve-log.alert",
-        JsonAlertLogInitCtxSub, JsonAlertLogger, JsonAlertLogCondition,
-        JsonAlertLogThreadInit, JsonAlertLogThreadDeinit, NULL);
+    OutputRegisterPacketSubModule(LOGGER_JSON_ALERT, "eve-log", MODULE_NAME,
+        "eve-log.alert", JsonAlertLogInitCtxSub, JsonAlertLogger,
+        JsonAlertLogCondition, JsonAlertLogThreadInit, JsonAlertLogThreadDeinit,
+        NULL);
 }
 
 #else
index 228d575b5d953c6e56bf41c22723953cd9e917cb..8d0e8e76eddca2d10de76182b2f862d4c1026397 100644 (file)
@@ -852,24 +852,26 @@ static OutputCtx *JsonDnsLogInitCtx(ConfNode *conf)
 void TmModuleJsonDnsLogRegister (void)
 {
     /* Logger for requests. */
-    OutputRegisterTxModuleWithProgress(MODULE_NAME, "dns-json-log",
-        JsonDnsLogInitCtx, ALPROTO_DNS, JsonDnsLoggerToServer, 0, 1,
-        LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
+    OutputRegisterTxModuleWithProgress(LOGGER_JSON_DNS, MODULE_NAME,
+        "dns-json-log", JsonDnsLogInitCtx, ALPROTO_DNS, JsonDnsLoggerToServer,
+        0, 1, LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
 
     /* Logger for replies. */
-    OutputRegisterTxModuleWithProgress(MODULE_NAME, "dns-json-log",
-        JsonDnsLogInitCtx, ALPROTO_DNS, JsonDnsLoggerToClient, 1, 1,
-        LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
+    OutputRegisterTxModuleWithProgress(LOGGER_JSON_DNS, MODULE_NAME,
+        "dns-json-log", JsonDnsLogInitCtx, ALPROTO_DNS, JsonDnsLoggerToClient,
+        1, 1, LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
 
     /* Sub-logger for requests. */
-    OutputRegisterTxSubModuleWithProgress("eve-log", MODULE_NAME, "eve-log.dns",
-        JsonDnsLogInitCtxSub, ALPROTO_DNS, JsonDnsLoggerToServer, 0, 1,
-        LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
+    OutputRegisterTxSubModuleWithProgress(LOGGER_JSON_DNS, "eve-log",
+        MODULE_NAME, "eve-log.dns", JsonDnsLogInitCtxSub, ALPROTO_DNS,
+        JsonDnsLoggerToServer, 0, 1, LogDnsLogThreadInit,
+        LogDnsLogThreadDeinit, NULL);
 
     /* Sub-logger for replies. */
-    OutputRegisterTxSubModuleWithProgress("eve-log", MODULE_NAME, "eve-log.dns",
-        JsonDnsLogInitCtxSub, ALPROTO_DNS, JsonDnsLoggerToClient, 1, 1,
-        LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
+    OutputRegisterTxSubModuleWithProgress(LOGGER_JSON_DNS, "eve-log",
+        MODULE_NAME, "eve-log.dns", JsonDnsLogInitCtxSub, ALPROTO_DNS,
+        JsonDnsLoggerToClient, 1, 1, LogDnsLogThreadInit, LogDnsLogThreadDeinit,
+        NULL);
 }
 
 #else
index c7a8b18b85c98fdcd30d59d296c0c096281d503e..fa2c7de00836469fdb33366fa9f33bfda8ab0b63 100644 (file)
@@ -429,12 +429,13 @@ static int JsonDropLogCondition(ThreadVars *tv, const Packet *p)
 
 void TmModuleJsonDropLogRegister (void)
 {
-    OutputRegisterPacketModule(MODULE_NAME, "drop-json-log",
+    OutputRegisterPacketModule(LOGGER_JSON_DROP, MODULE_NAME, "drop-json-log",
         JsonDropLogInitCtx, JsonDropLogger, JsonDropLogCondition,
         JsonDropLogThreadInit, JsonDropLogThreadDeinit, NULL);
-    OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "eve-log.drop",
-        JsonDropLogInitCtxSub, JsonDropLogger, JsonDropLogCondition,
-        JsonDropLogThreadInit, JsonDropLogThreadDeinit, NULL);
+    OutputRegisterPacketSubModule(LOGGER_JSON_DROP, "eve-log", MODULE_NAME,
+        "eve-log.drop", JsonDropLogInitCtxSub, JsonDropLogger,
+        JsonDropLogCondition, JsonDropLogThreadInit, JsonDropLogThreadDeinit,
+        NULL);
 }
 
 #else
index 273750dc93995cd86b95f50fd52b355f6b70bf77..6e1ad571ff0696b9c7d3f318162c6fe581732f32 100644 (file)
@@ -291,9 +291,9 @@ OutputCtx *OutputFileLogInitSub(ConfNode *conf, OutputCtx *parent_ctx)
 void TmModuleJsonFileLogRegister (void)
 {
     /* register as child of eve-log */
-    OutputRegisterFileSubModule("eve-log", "JsonFileLog", "eve-log.files",
-        OutputFileLogInitSub, JsonFileLogger, JsonFileLogThreadInit,
-        JsonFileLogThreadDeinit, NULL);
+    OutputRegisterFileSubModule(LOGGER_JSON_FILE, "eve-log", "JsonFileLog",
+        "eve-log.files", OutputFileLogInitSub, JsonFileLogger,
+        JsonFileLogThreadInit, JsonFileLogThreadDeinit, NULL);
 }
 
 #else
index a55faa3115f1277129dad3cde277e0c5d88d7bb7..3a5902779305c79c4c9e739a47bdfabdc481a4cd 100644 (file)
@@ -451,14 +451,14 @@ static TmEcode JsonFlowLogThreadDeinit(ThreadVars *t, void *data)
 void TmModuleJsonFlowLogRegister (void)
 {
     /* register as separate module */
-    OutputRegisterFlowModule("JsonFlowLog", "flow-json-log",
+    OutputRegisterFlowModule(LOGGER_JSON_FLOW, "JsonFlowLog", "flow-json-log",
         OutputFlowLogInit, JsonFlowLogger, JsonFlowLogThreadInit,
         JsonFlowLogThreadDeinit, NULL);
 
     /* also register as child of eve-log */
-    OutputRegisterFlowSubModule("eve-log", "JsonFlowLog", "eve-log.flow",
-        OutputFlowLogInitSub, JsonFlowLogger, JsonFlowLogThreadInit,
-        JsonFlowLogThreadDeinit, NULL);
+    OutputRegisterFlowSubModule(LOGGER_JSON_FLOW, "eve-log", "JsonFlowLog",
+        "eve-log.flow", OutputFlowLogInitSub, JsonFlowLogger,
+        JsonFlowLogThreadInit, JsonFlowLogThreadDeinit, NULL);
 }
 
 #else
index fdf03a33f6f0326ec5fea33790aa63d3ac97363b..9075e0cce335f3137eed95a72df47a03f063b242 100644 (file)
@@ -585,13 +585,13 @@ static TmEcode JsonHttpLogThreadDeinit(ThreadVars *t, void *data)
 void TmModuleJsonHttpLogRegister (void)
 {
     /* register as separate module */
-    OutputRegisterTxModule("JsonHttpLog", "http-json-log", OutputHttpLogInit,
-        ALPROTO_HTTP, JsonHttpLogger, JsonHttpLogThreadInit,
+    OutputRegisterTxModule(LOGGER_JSON_HTTP, "JsonHttpLog", "http-json-log",
+        OutputHttpLogInit, ALPROTO_HTTP, JsonHttpLogger, JsonHttpLogThreadInit,
         JsonHttpLogThreadDeinit, NULL);
 
     /* also register as child of eve-log */
-    OutputRegisterTxSubModule("eve-log", "JsonHttpLog", "eve-log.http",
-        OutputHttpLogInitSub, ALPROTO_HTTP, JsonHttpLogger,
+    OutputRegisterTxSubModule(LOGGER_JSON_HTTP, "eve-log", "JsonHttpLog",
+        "eve-log.http", OutputHttpLogInitSub, ALPROTO_HTTP, JsonHttpLogger,
         JsonHttpLogThreadInit, JsonHttpLogThreadDeinit, NULL);
 }
 
index 2091be08d8967aca5abfd181ce80b30b32cb44c5..0ac1683a856c90203e6decfd34f74b4c42794a6f 100644 (file)
@@ -433,14 +433,14 @@ static TmEcode JsonNetFlowLogThreadDeinit(ThreadVars *t, void *data)
 void TmModuleJsonNetFlowLogRegister (void)
 {
     /* register as separate module */
-    OutputRegisterFlowModule("JsonNetFlowLog", "netflow-json-log",
-        OutputNetFlowLogInit, JsonNetFlowLogger, JsonNetFlowLogThreadInit,
-        JsonNetFlowLogThreadDeinit, NULL);
+    OutputRegisterFlowModule(LOGGER_JSON_NETFLOW, "JsonNetFlowLog",
+        "netflow-json-log", OutputNetFlowLogInit, JsonNetFlowLogger,
+        JsonNetFlowLogThreadInit, JsonNetFlowLogThreadDeinit, NULL);
 
     /* also register as child of eve-log */
-    OutputRegisterFlowSubModule("eve-log", "JsonNetFlowLog", "eve-log.netflow",
-        OutputNetFlowLogInitSub, JsonNetFlowLogger, JsonNetFlowLogThreadInit,
-        JsonNetFlowLogThreadDeinit, NULL);
+    OutputRegisterFlowSubModule(LOGGER_JSON_NETFLOW, "eve-log", "JsonNetFlowLog",
+        "eve-log.netflow", OutputNetFlowLogInitSub, JsonNetFlowLogger,
+        JsonNetFlowLogThreadInit, JsonNetFlowLogThreadDeinit, NULL);
 }
 
 #else
index 8bf94d260432b3df00b66775d5907f932277a420..456f2c6af0667c05e74d053ac7fec42e5c719946 100644 (file)
@@ -259,13 +259,13 @@ static TmEcode JsonSmtpLogThreadDeinit(ThreadVars *t, void *data)
 
 void TmModuleJsonSmtpLogRegister (void) {
     /* register as separate module */
-    OutputRegisterTxModule("JsonSmtpLog", "smtp-json-log", OutputSmtpLogInit,
-        ALPROTO_SMTP, JsonSmtpLogger, JsonSmtpLogThreadInit,
+    OutputRegisterTxModule(LOGGER_JSON_SMTP, "JsonSmtpLog", "smtp-json-log",
+        OutputSmtpLogInit, ALPROTO_SMTP, JsonSmtpLogger, JsonSmtpLogThreadInit,
         JsonSmtpLogThreadDeinit, NULL);
 
     /* also register as child of eve-log */
-    OutputRegisterTxSubModule("eve-log", "JsonSmtpLog", "eve-log.smtp",
-        OutputSmtpLogInitSub, ALPROTO_SMTP, JsonSmtpLogger,
+    OutputRegisterTxSubModule(LOGGER_JSON_SMTP, "eve-log", "JsonSmtpLog",
+        "eve-log.smtp", OutputSmtpLogInitSub, ALPROTO_SMTP, JsonSmtpLogger,
         JsonSmtpLogThreadInit, JsonSmtpLogThreadDeinit, NULL);
 }
 
index 313df7c824aa409b6f6c09c4fe4ebffce8f1a06d..deec854acd0c71d2a378a559b9ed957d4573ff0e 100644 (file)
@@ -317,13 +317,13 @@ dontlog:
 void TmModuleJsonSshLogRegister (void)
 {
     /* register as separate module */
-    OutputRegisterPacketModule("JsonSshLog", "ssh-json-log", OutputSshLogInit,
-        JsonSshLogger, JsonSshCondition, JsonSshLogThreadInit,
+    OutputRegisterPacketModule(LOGGER_JSON_SSH, "JsonSshLog", "ssh-json-log",
+        OutputSshLogInit, JsonSshLogger, JsonSshCondition, JsonSshLogThreadInit,
         JsonSshLogThreadDeinit, NULL);
 
     /* also register as child of eve-log */
-    OutputRegisterPacketSubModule("eve-log", "JsonSshLog", "eve-log.ssh",
-        OutputSshLogInitSub, JsonSshLogger, JsonSshCondition,
+    OutputRegisterPacketSubModule(LOGGER_JSON_SSH, "eve-log", "JsonSshLog",
+        "eve-log.ssh", OutputSshLogInitSub, JsonSshLogger, JsonSshCondition,
         JsonSshLogThreadInit, JsonSshLogThreadDeinit, NULL);
 }
 
index dbfba0c43cf71519673cb3adc9a544fb52f0f67e..ec0fc4152dfe8e14ca257076de00d7b8c4f278e9 100644 (file)
@@ -373,14 +373,14 @@ OutputCtx *OutputStatsLogInitSub(ConfNode *conf, OutputCtx *parent_ctx)
 
 void TmModuleJsonStatsLogRegister (void) {
     /* register as separate module */
-    OutputRegisterStatsModule(MODULE_NAME, "stats-json", OutputStatsLogInit,
-        JsonStatsLogger, JsonStatsLogThreadInit, JsonStatsLogThreadDeinit,
-        NULL);
+    OutputRegisterStatsModule(LOGGER_JSON_STATS, MODULE_NAME, "stats-json",
+        OutputStatsLogInit, JsonStatsLogger, JsonStatsLogThreadInit,
+        JsonStatsLogThreadDeinit, NULL);
 
     /* also register as child of eve-log */
-    OutputRegisterStatsSubModule("eve-log", MODULE_NAME, "eve-log.stats",
-        OutputStatsLogInitSub, JsonStatsLogger, JsonStatsLogThreadInit,
-        JsonStatsLogThreadDeinit, NULL);
+    OutputRegisterStatsSubModule(LOGGER_JSON_STATS, "eve-log", MODULE_NAME,
+        "eve-log.stats", OutputStatsLogInitSub, JsonStatsLogger,
+        JsonStatsLogThreadInit, JsonStatsLogThreadDeinit, NULL);
 }
 
 #else
index 195f1786f349ae1d97ee4c9c8f62075698604351..e877259de7ad8927031abc215fffc551cd0d4283 100644 (file)
@@ -198,9 +198,10 @@ void TmModuleJsonTemplateLogRegister(void)
     }
     /* TEMPLATE_END_REMOVE */
     /* Register as an eve sub-module. */
-    OutputRegisterTxSubModule("eve-log", "JsonTemplateLog", "eve-log.template",
-        OutputTemplateLogInitSub, ALPROTO_TEMPLATE, JsonTemplateLogger,
-        JsonTemplateLogThreadInit, JsonTemplateLogThreadDeinit, NULL);
+    OutputRegisterTxSubModule(LOGGER_JSON_TEMPLATE, "eve-log", "JsonTemplateLog",
+        "eve-log.template", OutputTemplateLogInitSub, ALPROTO_TEMPLATE,
+        JsonTemplateLogger, JsonTemplateLogThreadInit,
+        JsonTemplateLogThreadDeinit, NULL);
 
     SCLogNotice("Template JSON logger registered.");
 }
index 52237ba934be0833c65d94f02ed03566f953a87c..18ea2cab9443a0d1c1ac7c3d97dbaaef712e4863 100644 (file)
@@ -311,15 +311,16 @@ OutputCtx *OutputTlsLogInitSub(ConfNode *conf, OutputCtx *parent_ctx)
 void TmModuleJsonTlsLogRegister (void)
 {
     /* register as separate module */
-    OutputRegisterTxModuleWithProgress("JsonTlsLog", "tls-json-log",
-        OutputTlsLogInit, ALPROTO_TLS, JsonTlsLogger, TLS_HANDSHAKE_DONE,
-        TLS_HANDSHAKE_DONE, JsonTlsLogThreadInit, JsonTlsLogThreadDeinit, NULL);
-
-    /* also register as child of eve-log */
-    OutputRegisterTxSubModuleWithProgress("eve-log", "JsonTlsLog",
-        "eve-log.tls", OutputTlsLogInitSub, ALPROTO_TLS, JsonTlsLogger,
+    OutputRegisterTxModuleWithProgress(LOGGER_JSON_TLS, "JsonTlsLog",
+        "tls-json-log", OutputTlsLogInit, ALPROTO_TLS, JsonTlsLogger,
         TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE, JsonTlsLogThreadInit,
         JsonTlsLogThreadDeinit, NULL);
+
+    /* also register as child of eve-log */
+    OutputRegisterTxSubModuleWithProgress(LOGGER_JSON_TLS, "eve-log",
+        "JsonTlsLog", "eve-log.tls", OutputTlsLogInitSub, ALPROTO_TLS,
+        JsonTlsLogger, TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE,
+        JsonTlsLogThreadInit, JsonTlsLogThreadDeinit, NULL);
 }
 
 #else
index 376b2cd51f36f5b8311095c822369a19f31c4cf6..94197fbc9dc0c3427d91ae66f83990ef188c6997 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "suricata-common.h"
 #include "tm-modules.h"
+#include "output.h"
 #include "output-packet.h"
 #include "util-profiling.h"
 
@@ -48,7 +49,7 @@ typedef struct OutputPacketLogger_ {
     OutputCtx *output_ctx;
     struct OutputPacketLogger_ *next;
     const char *name;
-    TmmId module_id;
+    LoggerId logger_id;
     ThreadInitFunc ThreadInit;
     ThreadDeinitFunc ThreadDeinit;
     ThreadExitPrintStatsFunc ThreadExitPrintStats;
@@ -56,17 +57,12 @@ typedef struct OutputPacketLogger_ {
 
 static OutputPacketLogger *list = NULL;
 
-int OutputRegisterPacketLogger(const char *name, PacketLogger LogFunc,
-    PacketLogCondition ConditionFunc, OutputCtx *output_ctx,
-    ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+int OutputRegisterPacketLogger(LoggerId logger_id, const char *name,
+    PacketLogger LogFunc, PacketLogCondition ConditionFunc,
+    OutputCtx *output_ctx, ThreadInitFunc ThreadInit,
+    ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
 {
-#if 0
-    int module_id = TmModuleGetIdByName(name);
-    if (module_id < 0)
-        return -1;
-#endif
-
     OutputPacketLogger *op = SCMalloc(sizeof(*op));
     if (op == NULL)
         return -1;
@@ -79,9 +75,7 @@ int OutputRegisterPacketLogger(const char *name, PacketLogger LogFunc,
     op->ThreadInit = ThreadInit;
     op->ThreadDeinit = ThreadDeinit;
     op->ThreadExitPrintStats = ThreadExitPrintStats;
-#if 0
-    op->module_id = (TmmId) module_id;
-#endif
+    op->logger_id = logger_id;
 
     if (list == NULL)
         list = op;
@@ -113,9 +107,9 @@ static TmEcode OutputPacketLog(ThreadVars *tv, Packet *p, void *thread_data, Pac
         BUG_ON(logger->LogFunc == NULL || logger->ConditionFunc == NULL);
 
         if ((logger->ConditionFunc(tv, (const Packet *)p)) == TRUE) {
-            PACKET_PROFILING_TMM_START(p, logger->module_id);
+            PACKET_PROFILING_LOGGER_START(p, logger->logger_id);
             logger->LogFunc(tv, store->thread_data, (const Packet *)p);
-            PACKET_PROFILING_TMM_END(p, logger->module_id);
+            PACKET_PROFILING_LOGGER_END(p, logger->logger_id);
         }
 
         logger = logger->next;
index 431c441b11c733055eb2b431ea94f3ffd8e70a15..408be05b273de23bd11e82da5f1b513a6caafdca 100644 (file)
@@ -27,6 +27,7 @@
 #define __OUTPUT_PACKET_H__
 
 #include "decode.h"
+#include "output.h"
 
 /** packet logger function pointer type */
 typedef int (*PacketLogger)(ThreadVars *, void *thread_data, const Packet *);
@@ -36,9 +37,9 @@ typedef int (*PacketLogger)(ThreadVars *, void *thread_data, const Packet *);
  */
 typedef int (*PacketLogCondition)(ThreadVars *, const Packet *);
 
-int OutputRegisterPacketLogger(const char *name, PacketLogger LogFunc,
-    PacketLogCondition ConditionFunc, OutputCtx *, ThreadInitFunc,
-    ThreadDeinitFunc, ThreadExitPrintStatsFunc);
+int OutputRegisterPacketLogger(LoggerId logger_id, const char *name,
+    PacketLogger LogFunc, PacketLogCondition ConditionFunc, OutputCtx *,
+    ThreadInitFunc, ThreadDeinitFunc, ThreadExitPrintStatsFunc);
 
 void TmModulePacketLoggerRegister (void);
 
index b72a38a44f770e0179433e8182808fafe1bc9631..9413721986cf29621b2bd9ccec93cbfeba405df1 100644 (file)
@@ -53,7 +53,7 @@ typedef struct OutputStreamingLogger_ {
     OutputCtx *output_ctx;
     struct OutputStreamingLogger_ *next;
     const char *name;
-    TmmId module_id;
+    LoggerId logger_id;
     enum OutputStreamingType type;
     ThreadInitFunc ThreadInit;
     ThreadDeinitFunc ThreadDeinit;
@@ -62,17 +62,12 @@ typedef struct OutputStreamingLogger_ {
 
 static OutputStreamingLogger *list = NULL;
 
-int OutputRegisterStreamingLogger(const char *name, StreamingLogger LogFunc,
-    OutputCtx *output_ctx, enum OutputStreamingType type,
-    ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+int OutputRegisterStreamingLogger(LoggerId id, const char *name,
+    StreamingLogger LogFunc, OutputCtx *output_ctx,
+    enum OutputStreamingType type, ThreadInitFunc ThreadInit,
+    ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
 {
-#if 0
-    int module_id = TmModuleGetIdByName(name);
-    if (module_id < 0)
-        return -1;
-#endif
-
     OutputStreamingLogger *op = SCMalloc(sizeof(*op));
     if (op == NULL)
         return -1;
@@ -81,9 +76,7 @@ int OutputRegisterStreamingLogger(const char *name, StreamingLogger LogFunc,
     op->LogFunc = LogFunc;
     op->output_ctx = output_ctx;
     op->name = name;
-#if 0
-    op->module_id = (TmmId) module_id;
-#endif
+    op->logger_id = id;
     op->type = type;
     op->ThreadInit = ThreadInit;
     op->ThreadDeinit = ThreadDeinit;
@@ -128,9 +121,9 @@ int Streamer(void *cbdata, Flow *f, const uint8_t *data, uint32_t data_len, uint
 
         if (logger->type == streamer_cbdata->type) {
             SCLogDebug("logger %p", logger);
-            PACKET_PROFILING_TMM_START(p, logger->module_id);
+            PACKET_PROFILING_LOGGER_START(p, logger->logger_id);
             logger->LogFunc(tv, store->thread_data, (const Flow *)f, data, data_len, tx_id, flags);
-            PACKET_PROFILING_TMM_END(p, logger->module_id);
+            PACKET_PROFILING_LOGGER_END(p, logger->logger_id);
         }
 
         logger = logger->next;
index 9508903a8a0356dae380271682f73b293e20dec0..8db555f94c4cb077a4f116dc066ecbc2a9a2aba0 100644 (file)
@@ -45,9 +45,9 @@ typedef int (*StreamingLogger)(ThreadVars *, void *thread_data,
         const Flow *f, const uint8_t *data, uint32_t data_len,
         uint64_t tx_id, uint8_t flags);
 
-int OutputRegisterStreamingLogger(const char *name, StreamingLogger LogFunc,
-    OutputCtx *, enum OutputStreamingType, ThreadInitFunc ThreadInit,
-    ThreadDeinitFunc ThreadDeinit,
+int OutputRegisterStreamingLogger(LoggerId id, const char *name,
+    StreamingLogger LogFunc, OutputCtx *, enum OutputStreamingType,
+    ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
 
 void TmModuleStreamingLoggerRegister (void);
index 4a7934aad1cae5383b365d53f2130992318afe33..3d37e89e8ec3a5c6b1605d40799b6506e1426c99 100644 (file)
@@ -51,7 +51,7 @@ typedef struct OutputTxLogger_ {
     OutputCtx *output_ctx;
     struct OutputTxLogger_ *next;
     const char *name;
-    TmmId module_id;
+    LoggerId logger_id;
     uint32_t id;
     int tc_log_progress;
     int ts_log_progress;
@@ -62,7 +62,8 @@ typedef struct OutputTxLogger_ {
 
 static OutputTxLogger *list = NULL;
 
-int OutputRegisterTxLogger(const char *name, AppProto alproto, TxLogger LogFunc,
+int OutputRegisterTxLogger(LoggerId id, const char *name, AppProto alproto,
+                           TxLogger LogFunc,
                            OutputCtx *output_ctx, int tc_log_progress,
                            int ts_log_progress, TxLoggerCondition LogCondition,
                            ThreadInitFunc ThreadInit,
@@ -91,9 +92,7 @@ int OutputRegisterTxLogger(const char *name, AppProto alproto, TxLogger LogFunc,
     op->LogCondition = LogCondition;
     op->output_ctx = output_ctx;
     op->name = name;
-#if 0
-    op->module_id = (TmmId) module_id;
-#endif
+    op->logger_id = id;
     op->ThreadInit = ThreadInit;
     op->ThreadDeinit = ThreadDeinit;
     op->ThreadExitPrintStats = ThreadExitPrintStats;
@@ -230,9 +229,9 @@ static TmEcode OutputTxLog(ThreadVars *tv, Packet *p, void *thread_data, PacketQ
                     }
                 }
 
-                PACKET_PROFILING_TMM_START(p, logger->module_id);
+                PACKET_PROFILING_LOGGER_START(p, logger->logger_id);
                 logger->LogFunc(tv, store->thread_data, p, f, alstate, tx, tx_id);
-                PACKET_PROFILING_TMM_END(p, logger->module_id);
+                PACKET_PROFILING_LOGGER_END(p, logger->logger_id);
 
                 AppLayerParserSetTxLogged(p->proto, alproto, alstate, tx,
                                           logger->id);
index 53f563aca2a502b93882c3983a4c23776c4d9b08..e548cdd16092cac365565f7fa9f2d055a837f06d 100644 (file)
@@ -36,7 +36,8 @@ typedef int (*TxLogger)(ThreadVars *, void *thread_data, const Packet *, Flow *f
  */
 typedef int (*TxLoggerCondition)(ThreadVars *, const Packet *, void *state, void *tx, uint64_t tx_id);
 
-int OutputRegisterTxLogger(const char *name, AppProto alproto, TxLogger LogFunc,
+int OutputRegisterTxLogger(LoggerId id, const char *name, AppProto alproto,
+        TxLogger LogFunc,
         OutputCtx *, int tc_log_progress, int ts_log_progress,
         TxLoggerCondition LogCondition,
         ThreadInitFunc, ThreadDeinitFunc,
index 351cd294aec89db71930e94fa5c82ac0a51e1ccd..5c7e71a25c04dae96d0106a869d6a44acc926baf 100644 (file)
@@ -84,7 +84,7 @@ error:
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterPacketModule(const char *name, const char *conf_name,
+OutputRegisterPacketModule(LoggerId id, const char *name, const char *conf_name,
     OutputCtx *(*InitFunc)(ConfNode *),
     PacketLogger PacketLogFunc, PacketLogCondition PacketConditionFunc,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
@@ -99,6 +99,7 @@ OutputRegisterPacketModule(const char *name, const char *conf_name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->InitFunc = InitFunc;
@@ -125,8 +126,9 @@ error:
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterPacketSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
+OutputRegisterPacketSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
     PacketLogger PacketLogFunc, PacketLogCondition PacketConditionFunc,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
@@ -140,6 +142,7 @@ OutputRegisterPacketSubModule(const char *parent_name, const char *name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->parent_name = parent_name;
@@ -166,10 +169,10 @@ error:
  *
  * \retval Returns 0 on success, -1 on failure.
  */
-void OutputRegisterTxModuleWrapper(const char *name, const char *conf_name,
-        OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
-        TxLogger TxLogFunc, int tc_log_progress, int ts_log_progress,
-        TxLoggerCondition TxLogCondition,
+void OutputRegisterTxModuleWrapper(LoggerId id, const char *name,
+        const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+        AppProto alproto, TxLogger TxLogFunc, int tc_log_progress,
+        int ts_log_progress, TxLoggerCondition TxLogCondition,
         TmEcode (*ThreadInit)(ThreadVars *t, void *, void **),
         TmEcode (*ThreadDeinit)(ThreadVars *t, void *),
         void (*ThreadExitPrintStats)(ThreadVars *, void *))
@@ -183,6 +186,7 @@ void OutputRegisterTxModuleWrapper(const char *name, const char *conf_name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->InitFunc = InitFunc;
@@ -203,7 +207,7 @@ error:
     exit(EXIT_FAILURE);
 }
 
-void OutputRegisterTxSubModuleWrapper(const char *parent_name,
+void OutputRegisterTxSubModuleWrapper(LoggerId id, const char *parent_name,
         const char *name, const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *,
         OutputCtx *parent_ctx), AppProto alproto, TxLogger TxLogFunc,
         int tc_log_progress, int ts_log_progress,
@@ -221,6 +225,7 @@ void OutputRegisterTxSubModuleWrapper(const char *parent_name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->parent_name = parent_name;
@@ -250,25 +255,27 @@ error:
  *
  * \retval Returns 0 on success, -1 on failure.
  */
-void OutputRegisterTxModuleWithCondition(const char *name,
+void OutputRegisterTxModuleWithCondition(LoggerId id, const char *name,
     const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
     TxLogger TxLogFunc, TxLoggerCondition TxLogCondition,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
 {
-    OutputRegisterTxModuleWrapper(name, conf_name, InitFunc, alproto,
-        TxLogFunc, -1, -1, TxLogCondition, NULL, NULL, NULL);
+    OutputRegisterTxModuleWrapper(id, name, conf_name, InitFunc, alproto,
+        TxLogFunc, -1, -1, TxLogCondition, ThreadInit, ThreadDeinit,
+        ThreadExitPrintStats);
 }
 
-void OutputRegisterTxSubModuleWithCondition(const char *parent_name,
+void OutputRegisterTxSubModuleWithCondition(LoggerId id, const char *parent_name,
     const char *name, const char *conf_name,
     OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx), AppProto alproto,
     TxLogger TxLogFunc, TxLoggerCondition TxLogCondition,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
 {
-    OutputRegisterTxSubModuleWrapper(parent_name, name, conf_name, InitFunc,
-        alproto, TxLogFunc, -1, -1, TxLogCondition, NULL, NULL, NULL);
+    OutputRegisterTxSubModuleWrapper(id, parent_name, name, conf_name, InitFunc,
+        alproto, TxLogFunc, -1, -1, TxLogCondition, ThreadInit, ThreadDeinit,
+        ThreadExitPrintStats);
 }
 
 /**
@@ -279,18 +286,20 @@ void OutputRegisterTxSubModuleWithCondition(const char *parent_name,
  *
  * \retval Returns 0 on success, -1 on failure.
  */
-void OutputRegisterTxModuleWithProgress(const char *name, const char *conf_name,
-    OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
-    TxLogger TxLogFunc, int tc_log_progress, int ts_log_progress,
-    ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+void OutputRegisterTxModuleWithProgress(LoggerId id, const char *name,
+    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+    AppProto alproto, TxLogger TxLogFunc, int tc_log_progress,
+    int ts_log_progress, ThreadInitFunc ThreadInit,
+    ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
 {
-    OutputRegisterTxModuleWrapper(name, conf_name, InitFunc, alproto,
-        TxLogFunc, tc_log_progress, ts_log_progress, NULL, ThreadInit,
-        ThreadDeinit, ThreadExitPrintStats);
+    OutputRegisterTxModuleWrapper(id, name, conf_name, InitFunc, alproto,
+        TxLogFunc, tc_log_progress, ts_log_progress,
+        NULL, ThreadInit, ThreadDeinit,
+        ThreadExitPrintStats);
 }
 
-void OutputRegisterTxSubModuleWithProgress(const char *parent_name,
+void OutputRegisterTxSubModuleWithProgress(LoggerId id, const char *parent_name,
     const char *name, const char *conf_name,
     OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
     AppProto alproto, TxLogger TxLogFunc, int tc_log_progress,
@@ -298,7 +307,7 @@ void OutputRegisterTxSubModuleWithProgress(const char *parent_name,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
 {
-    OutputRegisterTxSubModuleWrapper(parent_name, name, conf_name, InitFunc,
+    OutputRegisterTxSubModuleWrapper(id, parent_name, name, conf_name, InitFunc,
         alproto, TxLogFunc, tc_log_progress, ts_log_progress, NULL, ThreadInit,
         ThreadDeinit, ThreadExitPrintStats);
 }
@@ -312,25 +321,25 @@ void OutputRegisterTxSubModuleWithProgress(const char *parent_name,
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterTxModule(const char *name, const char *conf_name,
+OutputRegisterTxModule(LoggerId id, const char *name, const char *conf_name,
     OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
     TxLogger TxLogFunc, TmEcode (*ThreadInit)(ThreadVars *, void *, void **),
     TmEcode (*ThreadDeinit)(ThreadVars *, void *),
     void (*ThreadExitPrintStats)(ThreadVars *, void *))
 {
-    OutputRegisterTxModuleWrapper(name, conf_name, InitFunc, alproto,
+    OutputRegisterTxModuleWrapper(id, name, conf_name, InitFunc, alproto,
                                   TxLogFunc, -1, -1, NULL, ThreadInit,
                                   ThreadDeinit, ThreadExitPrintStats);
 }
 
-void OutputRegisterTxSubModule(const char *parent_name, const char *name,
-    const char *conf_name,
+void OutputRegisterTxSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
     OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
     AppProto alproto, TxLogger TxLogFunc, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
 {
-    OutputRegisterTxSubModuleWrapper(parent_name, name, conf_name,
+    OutputRegisterTxSubModuleWrapper(id, parent_name, name, conf_name,
                                      InitFunc, alproto, TxLogFunc, -1, -1, NULL,
                                      ThreadInit, ThreadDeinit,
                                      ThreadExitPrintStats);
@@ -345,7 +354,7 @@ void OutputRegisterTxSubModule(const char *parent_name, const char *name,
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterFileModule(const char *name, const char *conf_name,
+OutputRegisterFileModule(LoggerId id, const char *name, const char *conf_name,
     OutputCtx *(*InitFunc)(ConfNode *), FileLogger FileLogFunc,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
@@ -359,6 +368,7 @@ OutputRegisterFileModule(const char *name, const char *conf_name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->InitFunc = InitFunc;
@@ -384,8 +394,9 @@ error:
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterFileSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+OutputRegisterFileSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
     FileLogger FileLogFunc, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
@@ -399,6 +410,7 @@ OutputRegisterFileSubModule(const char *parent_name, const char *name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->parent_name = parent_name;
@@ -425,9 +437,10 @@ error:
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterFiledataModule(const char *name, const char *conf_name,
-    OutputCtx *(*InitFunc)(ConfNode *), FiledataLogger FiledataLogFunc,
-    ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+OutputRegisterFiledataModule(LoggerId id, const char *name,
+    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+    FiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
+    ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
 {
     if (unlikely(FiledataLogFunc == NULL)) {
@@ -439,6 +452,7 @@ OutputRegisterFiledataModule(const char *name, const char *conf_name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->InitFunc = InitFunc;
@@ -464,8 +478,9 @@ error:
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterFiledataSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+OutputRegisterFiledataSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
     FiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
@@ -479,6 +494,7 @@ OutputRegisterFiledataSubModule(const char *parent_name, const char *name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->parent_name = parent_name;
@@ -505,7 +521,7 @@ error:
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterFlowModule(const char *name, const char *conf_name,
+OutputRegisterFlowModule(LoggerId id, const char *name, const char *conf_name,
     OutputCtx *(*InitFunc)(ConfNode *), FlowLogger FlowLogFunc,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
@@ -519,6 +535,7 @@ OutputRegisterFlowModule(const char *name, const char *conf_name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->InitFunc = InitFunc;
@@ -544,8 +561,9 @@ error:
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterFlowSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+OutputRegisterFlowSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
     FlowLogger FlowLogFunc, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
@@ -559,6 +577,7 @@ OutputRegisterFlowSubModule(const char *parent_name, const char *name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->parent_name = parent_name;
@@ -585,8 +604,9 @@ error:
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterStreamingModule(const char *name, const char *conf_name,
-    OutputCtx *(*InitFunc)(ConfNode *), StreamingLogger StreamingLogFunc,
+OutputRegisterStreamingModule(LoggerId id, const char *name,
+    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+    StreamingLogger StreamingLogFunc,
     enum OutputStreamingType stream_type, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
@@ -600,6 +620,7 @@ OutputRegisterStreamingModule(const char *name, const char *conf_name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->InitFunc = InitFunc;
@@ -626,8 +647,9 @@ error:
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterStreamingSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+OutputRegisterStreamingSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
     StreamingLogger StreamingLogFunc, enum OutputStreamingType stream_type,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
@@ -641,6 +663,7 @@ OutputRegisterStreamingSubModule(const char *parent_name, const char *name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->parent_name = parent_name;
@@ -668,7 +691,7 @@ error:
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterStatsModule(const char *name, const char *conf_name,
+OutputRegisterStatsModule(LoggerId id, const char *name, const char *conf_name,
     OutputCtx *(*InitFunc)(ConfNode *), StatsLogger StatsLogFunc,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
@@ -682,6 +705,7 @@ OutputRegisterStatsModule(const char *name, const char *conf_name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->InitFunc = InitFunc;
@@ -707,8 +731,9 @@ error:
  * \retval Returns 0 on success, -1 on failure.
  */
 void
-OutputRegisterStatsSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+OutputRegisterStatsSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
     StatsLogger StatsLogFunc, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats)
@@ -722,6 +747,7 @@ OutputRegisterStatsSubModule(const char *parent_name, const char *name,
         goto error;
     }
 
+    module->logger_id = id;
     module->name = name;
     module->conf_name = conf_name;
     module->parent_name = parent_name;
index e34d34379d747c2fd89a56f4bb3096882f0da4e8..ad787193689a888282a329a171a62b0e67c4c7ca 100644 (file)
@@ -39,6 +39,7 @@
 #include "output-stats.h"
 
 typedef struct OutputModule_ {
+    LoggerId logger_id;
     const char *name;
     const char *conf_name;
     const char *parent_name;
@@ -71,48 +72,49 @@ extern OutputModuleList output_modules;
 
 void OutputRegisterModule(const char *, const char *, OutputCtx *(*)(ConfNode *));
 
-void OutputRegisterPacketModule(const char *name, const char *conf_name,
-    OutputCtx *(*InitFunc)(ConfNode *),
+void OutputRegisterPacketModule(LoggerId id, const char *name,
+    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
     PacketLogger LogFunc, PacketLogCondition ConditionFunc,
     ThreadInitFunc, ThreadDeinitFunc, ThreadExitPrintStatsFunc);
-void OutputRegisterPacketSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+void OutputRegisterPacketSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
     PacketLogger LogFunc, PacketLogCondition ConditionFunc,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
 
-void OutputRegisterTxModule(const char *name, const char *conf_name,
-    OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
-    TxLogger TxLogFunc, TmEcode (*ThreadInit)(ThreadVars *t, void *, void **),
+void OutputRegisterTxModule(LoggerId id, const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto, TxLogger TxLogFunc,
+    TmEcode (*ThreadInit)(ThreadVars *t, void *, void **),
     TmEcode (*ThreadDeinit)(ThreadVars *t, void *),
     void (*ThreadExitPrintStats)(ThreadVars *, void *));
 
-void OutputRegisterTxSubModule(const char *parent_name, const char *name,
-    const char *conf_name,
+void OutputRegisterTxSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
     OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
     AppProto alproto, TxLogger TxLogFunc,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
 
-void OutputRegisterTxModuleWithCondition(const char *name,
+void OutputRegisterTxModuleWithCondition(LoggerId id, const char *name,
     const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
     TxLogger TxLogFunc, TxLoggerCondition TxLogCondition,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterTxSubModuleWithCondition(const char *parent_name,
+void OutputRegisterTxSubModuleWithCondition(LoggerId id, const char *parent_name,
     const char *name, const char *conf_name,
     OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx), AppProto alproto,
     TxLogger TxLogFunc, TxLoggerCondition TxLogCondition,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
 
-void OutputRegisterTxModuleWithProgress(const char *name, const char *conf_name,
-    OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
+void OutputRegisterTxModuleWithProgress(LoggerId id, const char *name,
+    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
     TxLogger TxLogFunc, int tc_log_progress, int ts_log_progress,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
 
-void OutputRegisterTxSubModuleWithProgress(const char *parent_name,
+void OutputRegisterTxSubModuleWithProgress(LoggerId id, const char *parent_name,
     const char *name, const char *conf_name,
     OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
     AppProto alproto, TxLogger TxLogFunc, int tc_log_progress,
@@ -120,54 +122,61 @@ void OutputRegisterTxSubModuleWithProgress(const char *parent_name,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
 
-void OutputRegisterFileModule(const char *name, const char *conf_name,
-    OutputCtx *(*InitFunc)(ConfNode *), FileLogger FileLogFunc,
-    ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
-    ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterFileSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+void OutputRegisterFileModule(LoggerId id, const char *name,
+    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
     FileLogger FileLogFunc, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
-
-void OutputRegisterFiledataModule(const char *name, const char *conf_name,
-    OutputCtx *(*InitFunc)(ConfNode *), FiledataLogger FiledataLogFunc,
+void OutputRegisterFileSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *), FileLogger FileLogFunc,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterFiledataSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+
+void OutputRegisterFiledataModule(LoggerId id, const char *name,
+    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+    FiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
+    ThreadDeinitFunc ThreadDeinit,
+    ThreadExitPrintStatsFunc ThreadExitPrintStats);
+void OutputRegisterFiledataSubModule(LoggerId, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
     FiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
 
-void OutputRegisterFlowModule(const char *name, const char *conf_name,
-    OutputCtx *(*InitFunc)(ConfNode *), FlowLogger FlowLogFunc,
-    ThreadInitFunc ThreadInit,
+void OutputRegisterFlowModule(LoggerId id, const char *name,
+    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+    FlowLogger FlowLogFunc, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterFlowSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+void OutputRegisterFlowSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
     FlowLogger FlowLogFunc, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
 
-void OutputRegisterStreamingModule(const char *name, const char *conf_name,
-    OutputCtx *(*InitFunc)(ConfNode *), StreamingLogger StreamingLogFunc,
-    enum OutputStreamingType stream_type, ThreadInitFunc ThreadInit,
-    ThreadDeinitFunc ThreadDeinit,
+void OutputRegisterStreamingModule(LoggerId id, const char *name,
+    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+    StreamingLogger StreamingLogFunc, enum OutputStreamingType stream_type,
+    ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterStreamingSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+void OutputRegisterStreamingSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
     StreamingLogger StreamingLogFunc, enum OutputStreamingType stream_type,
     ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
 
-void OutputRegisterStatsModule(const char *name, const char *conf_name,
-    OutputCtx *(*InitFunc)(ConfNode *), StatsLogger StatsLogFunc,
-    ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+void OutputRegisterStatsModule(LoggerId id, const char *name,
+    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+    StatsLogger StatsLogFunc, ThreadInitFunc ThreadInit,
+    ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterStatsSubModule(const char *parent_name, const char *name,
-    const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+void OutputRegisterStatsSubModule(LoggerId id, const char *parent_name,
+    const char *name, const char *conf_name,
+    OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
     StatsLogger StatsLogFunc, ThreadInitFunc ThreadInit,
     ThreadDeinitFunc ThreadDeinit,
     ThreadExitPrintStatsFunc ThreadExitPrintStats);
index 3f043b9409f6427daaf8c769c1c8044b3122b9e8..b4f319d4081a6ab52cbe9b0edb328cb1029d2ef1 100644 (file)
@@ -106,9 +106,6 @@ static char *active_runmode;
 
 /* free list for our outputs */
 typedef struct OutputFreeList_ {
-#if 0
-    TmModule *tm_module;
-#endif
     OutputModule *output_module;
     OutputCtx *output_ctx;
 
@@ -469,9 +466,6 @@ void RunOutputFreeList(void)
 {
     OutputFreeList *output;
     while ((output = TAILQ_FIRST(&output_free_list))) {
-#if 0
-        SCLogNotice("output %s %p %p", output->tm_module->name, output, output->output_ctx);
-#endif
         SCLogDebug("output %s %p %p", output->output_module->name, output,
             output->output_ctx);
 
@@ -535,20 +529,9 @@ void RunModeShutDown(void)
  *         the output ctx at shutdown and unix socket reload */
 static void AddOutputToFreeList(OutputModule *module, OutputCtx *output_ctx)
 {
-#if 0
-    TmModule *tm_module = TmModuleGetByName(module->name);
-    if (tm_module == NULL) {
-        SCLogError(SC_ERR_INVALID_ARGUMENT,
-                "TmModuleGetByName for %s failed", module->name);
-        exit(EXIT_FAILURE);
-    }
-#endif
     OutputFreeList *fl_output = SCCalloc(1, sizeof(OutputFreeList));
     if (unlikely(fl_output == NULL))
         return;
-#if 0
-    fl_output->tm_module = tm_module;
-#endif
     fl_output->output_module = module;
     fl_output->output_ctx = output_ctx;
     TAILQ_INSERT_TAIL(&output_free_list, fl_output, entries);
@@ -598,23 +581,16 @@ static void SetupOutput(const char *name, OutputModule *module, OutputCtx *outpu
         return;
     }
 
-#if 0
-    TmModule *tm_module = TmModuleGetByName(module->name);
-    if (tm_module == NULL) {
-        SCLogError(SC_ERR_INVALID_ARGUMENT,
-                "TmModuleGetByName for %s failed", module->name);
-        exit(EXIT_FAILURE);
-    }
-    /* XXX What to do here? */
-    if (tm_module != NULL && strcmp(tmm_modules[TMM_ALERTDEBUGLOG].name, tm_module->name) == 0)
+    if (module->logger_id == LOGGER_ALERT_DEBUG) {
         debuglog_enabled = 1;
-#endif
+    }
 
     if (module->PacketLogFunc) {
         SCLogNotice("%s is a packet logger", module->name);
-        OutputRegisterPacketLogger(module->name, module->PacketLogFunc,
-            module->PacketConditionFunc, output_ctx, module->ThreadInit,
-            module->ThreadDeinit, module->ThreadExitPrintStats);
+        OutputRegisterPacketLogger(module->logger_id, module->name,
+            module->PacketLogFunc, module->PacketConditionFunc, output_ctx,
+            module->ThreadInit, module->ThreadDeinit,
+            module->ThreadExitPrintStats);
 
         /* need one instance of the packet logger module */
         if (pkt_logger_module == NULL) {
@@ -636,7 +612,7 @@ static void SetupOutput(const char *name, OutputModule *module, OutputCtx *outpu
         }
     } else if (module->TxLogFunc) {
         SCLogDebug("%s is a tx logger", module->name);
-        OutputRegisterTxLogger(module->name, module->alproto,
+        OutputRegisterTxLogger(module->logger_id, module->name, module->alproto,
                 module->TxLogFunc, output_ctx, module->tc_log_progress,
                 module->ts_log_progress, module->TxLogCondition,
                 module->ThreadInit, module->ThreadDeinit,
@@ -662,9 +638,9 @@ static void SetupOutput(const char *name, OutputModule *module, OutputCtx *outpu
         }
     } else if (module->FiledataLogFunc) {
         SCLogDebug("%s is a filedata logger", module->name);
-        OutputRegisterFiledataLogger(module->name, module->FiledataLogFunc,
-            output_ctx, module->ThreadInit, module->ThreadDeinit,
-            module->ThreadExitPrintStats);
+        OutputRegisterFiledataLogger(module->logger_id, module->name,
+            module->FiledataLogFunc, output_ctx, module->ThreadInit,
+            module->ThreadDeinit, module->ThreadExitPrintStats);
 
         /* need one instance of the tx logger module */
         if (filedata_logger_module == NULL) {
@@ -686,9 +662,9 @@ static void SetupOutput(const char *name, OutputModule *module, OutputCtx *outpu
         }
     } else if (module->FileLogFunc) {
         SCLogDebug("%s is a file logger", module->name);
-        OutputRegisterFileLogger(module->name, module->FileLogFunc, output_ctx,
-            module->ThreadInit, module->ThreadDeinit,
-            module->ThreadExitPrintStats);
+        OutputRegisterFileLogger(module->logger_id, module->name,
+            module->FileLogFunc, output_ctx, module->ThreadInit,
+            module->ThreadDeinit, module->ThreadExitPrintStats);
 
         /* need one instance of the tx logger module */
         if (file_logger_module == NULL) {
@@ -710,9 +686,10 @@ static void SetupOutput(const char *name, OutputModule *module, OutputCtx *outpu
         }
     } else if (module->StreamingLogFunc) {
         SCLogDebug("%s is a streaming logger", module->name);
-        OutputRegisterStreamingLogger(module->name, module->StreamingLogFunc,
-            output_ctx, module->stream_type, module->ThreadInit,
-            module->ThreadDeinit, module->ThreadExitPrintStats);
+        OutputRegisterStreamingLogger(module->logger_id, module->name,
+            module->StreamingLogFunc, output_ctx, module->stream_type,
+            module->ThreadInit, module->ThreadDeinit,
+            module->ThreadExitPrintStats);
 
         /* need one instance of the streaming logger module */
         if (streaming_logger_module == NULL) {
@@ -739,9 +716,6 @@ static void SetupOutput(const char *name, OutputModule *module, OutputCtx *outpu
         if (unlikely(runmode_output == NULL))
             return;
         runmode_output->name = module->name;
-#if 0
-        runmode_output->tm_module = tm_module;
-#endif
         runmode_output->output_ctx = output_ctx;
         InsertInRunModeOutputs(runmode_output);
     }
index 0db433f9c47c802973cb8ca4ca6b87abd1f09749..b837de26addb5c3f8ef1bf9e71b135209acdbc1c 100644 (file)
@@ -341,6 +341,37 @@ typedef enum PacketProfileDetectId_ {
     PROF_DETECT_SIZE,
 } PacketProfileDetectId;
 
+typedef enum {
+    LOGGER_UNDEFINED,
+    LOGGER_ALERT_DEBUG,
+    LOGGER_ALERT_FAST,
+    LOGGER_UNIFIED2,
+    LOGGER_ALERT_SYSLOG,
+    LOGGER_DROP,
+    LOGGER_JSON_ALERT,
+    LOGGER_JSON_DROP,
+    LOGGER_JSON_SSH,
+    LOGGER_DNS,
+    LOGGER_HTTP,
+    LOGGER_JSON_DNS,
+    LOGGER_JSON_HTTP,
+    LOGGER_JSON_SMTP,
+    LOGGER_JSON_TLS,
+    LOGGER_JSON_TEMPLATE,
+    LOGGER_TLS_STORE,
+    LOGGER_TLS,
+    LOGGER_FILE,
+    LOGGER_FILE_STORE,
+    LOGGER_JSON_FILE,
+    LOGGER_TCP_DATA,
+    LOGGER_JSON_FLOW,
+    LOGGER_JSON_NETFLOW,
+    LOGGER_STATS,
+    LOGGER_JSON_STATS,
+    LOGGER_PRELUDE,
+    LOGGER_SIZE,
+} LoggerId;
+
 #include <htp/htp.h>
 #include "threads.h"
 #include "tm-threads-common.h"
index 500a3ebc8e11c2f6155c486fbc23538c199f3810..cbbef0c20a834f09ebed6fef522b6f2feadd7dc0 100644 (file)
@@ -87,6 +87,9 @@ SCProfilePacketData packet_profile_app_pd_data6[257];
 SCProfilePacketData packet_profile_detect_data4[PROF_DETECT_SIZE][257];
 SCProfilePacketData packet_profile_detect_data6[PROF_DETECT_SIZE][257];
 
+SCProfilePacketData packet_profile_log_data4[LOGGER_SIZE][256];
+SCProfilePacketData packet_profile_log_data6[LOGGER_SIZE][256];
+
 struct ProfileProtoRecords {
     SCProfilePacketData records4[257];
     SCProfilePacketData records6[257];
@@ -114,6 +117,7 @@ __thread int profiling_rules_entered = 0;
 
 void SCProfilingDumpPacketStats(void);
 const char * PacketProfileDetectIdToString(PacketProfileDetectId id);
+const char * PacketProfileLoggertIdToString(LoggerId id);
 
 static void FormatNumber(uint64_t num, char *str, size_t size)
 {
@@ -167,6 +171,8 @@ SCProfilingInit(void)
             memset(&packet_profile_app_pd_data6, 0, sizeof(packet_profile_app_pd_data6));
             memset(&packet_profile_detect_data4, 0, sizeof(packet_profile_detect_data4));
             memset(&packet_profile_detect_data6, 0, sizeof(packet_profile_detect_data6));
+            memset(&packet_profile_log_data4, 0, sizeof(packet_profile_log_data4));
+            memset(&packet_profile_log_data6, 0, sizeof(packet_profile_log_data6));
             memset(&packet_profile_flowworker_data, 0, sizeof(packet_profile_flowworker_data));
 
             const char *filename = ConfNodeLookupChildValue(conf, "filename");
@@ -685,6 +691,58 @@ void SCProfilingDumpPacketStats(void)
         }
     }
 
+    fprintf(fp, "\nLogger/output stats:\n");
+
+    total = 0;
+    for (m = 0; m < LOGGER_SIZE; m++) {
+        int p;
+        for (p = 0; p < 257; p++) {
+            SCProfilePacketData *pd = &packet_profile_log_data4[m][p];
+            total += pd->tot;
+            pd = &packet_profile_log_data6[m][p];
+            total += pd->tot;
+        }
+    }
+
+    fprintf(fp, "\n%-24s   %-6s   %-5s   %-12s   %-12s   %-12s   %-12s   %-12s\n",
+            "Logger", "IP ver", "Proto", "cnt", "min", "max", "avg", "tot");
+    fprintf(fp, "%-24s   %-6s   %-5s   %-12s   %-12s   %-12s   %-12s   %-12s\n",
+            "------------------------", "------", "-----", "----------", "------------", "------------", "-----------", "-----------");
+    for (m = 0; m < LOGGER_SIZE; m++) {
+        int p;
+        for (p = 0; p < 257; p++) {
+            SCProfilePacketData *pd = &packet_profile_log_data4[m][p];
+
+            if (pd->cnt == 0) {
+                continue;
+            }
+
+            FormatNumber(pd->tot, totalstr, sizeof(totalstr));
+            double percent = (long double)pd->tot /
+                (long double)total * 100;
+
+            fprintf(fp, "%-24s    IPv4     %3d  %12"PRIu64"     %12"PRIu64"   %12"PRIu64"  %12"PRIu64"  %12s  %-6.2f\n",
+                    PacketProfileLoggertIdToString(m), p, pd->cnt, pd->min, pd->max, (uint64_t)(pd->tot / pd->cnt), totalstr, percent);
+        }
+    }
+    for (m = 0; m < LOGGER_SIZE; m++) {
+        int p;
+        for (p = 0; p < 257; p++) {
+            SCProfilePacketData *pd = &packet_profile_log_data6[m][p];
+
+            if (pd->cnt == 0) {
+                continue;
+            }
+
+            FormatNumber(pd->tot, totalstr, sizeof(totalstr));
+            double percent = (long double)pd->tot /
+                (long double)total * 100;
+
+            fprintf(fp, "%-24s    IPv6     %3d  %12"PRIu64"     %12"PRIu64"   %12"PRIu64"  %12"PRIu64"  %12s  %-6.2f\n",
+                    PacketProfileLoggertIdToString(m), p, pd->cnt, pd->min, pd->max, (uint64_t)(pd->tot / pd->cnt), totalstr, percent);
+        }
+    }
+
     fprintf(fp, "\nGeneral detection engine stats:\n");
 
     total = 0;
@@ -984,6 +1042,45 @@ static void SCProfilingUpdatePacketGenericRecords(Packet *p, PktProfilingData *p
     }
 }
 
+static void SCProfilingUpdatePacketLogRecord(LoggerId id,
+    uint8_t ipproto, PktProfilingLoggerData *pdt, int ipver)
+{
+    if (pdt == NULL) {
+        return;
+    }
+
+    SCProfilePacketData *pd;
+    if (ipver == 4)
+        pd = &packet_profile_log_data4[id][ipproto];
+    else
+        pd = &packet_profile_log_data6[id][ipproto];
+
+    if (pd->min == 0 || pdt->ticks_spent < pd->min) {
+        pd->min = pdt->ticks_spent;
+    }
+    if (pd->max < pdt->ticks_spent) {
+        pd->max = pdt->ticks_spent;
+    }
+
+    pd->tot += pdt->ticks_spent;
+    pd->cnt++;
+}
+
+static void SCProfilingUpdatePacketLogRecords(Packet *p)
+{
+    for (LoggerId i = 0; i < LOGGER_SIZE; i++) {
+        PktProfilingLoggerData *pdt = &p->profile->logger[i];
+
+        if (pdt->ticks_spent > 0) {
+            if (PKT_IS_IPV4(p)) {
+                SCProfilingUpdatePacketLogRecord(i, p->proto, pdt, 4);
+            } else {
+                SCProfilingUpdatePacketLogRecord(i, p->proto, pdt, 6);
+            }
+        }
+    }
+}
+
 void SCProfilingAddPacket(Packet *p)
 {
     if (p == NULL || p->profile == NULL ||
@@ -1031,6 +1128,7 @@ void SCProfilingAddPacket(Packet *p)
             SCProfilingUpdatePacketTmmRecords(p);
             SCProfilingUpdatePacketAppRecords(p);
             SCProfilingUpdatePacketDetectRecords(p);
+            SCProfilingUpdatePacketLogRecords(p);
 
         } else if (PKT_IS_IPV6(p)) {
             SCProfilePacketData *pd = &packet_profile_data6[p->proto];
@@ -1066,6 +1164,7 @@ void SCProfilingAddPacket(Packet *p)
             SCProfilingUpdatePacketTmmRecords(p);
             SCProfilingUpdatePacketAppRecords(p);
             SCProfilingUpdatePacketDetectRecords(p);
+            SCProfilingUpdatePacketLogRecords(p);
         }
     }
     pthread_mutex_unlock(&packet_profile_lock);
@@ -1142,7 +1241,47 @@ const char * PacketProfileDetectIdToString(PacketProfileDetectId id)
     }
 }
 
-
+/**
+ * \brief Maps the LoggerId's to its string equivalent for profiling output.
+ *
+ * \param id LoggerId id
+ *
+ * \retval string equivalent for the LoggerId id
+ */
+const char * PacketProfileLoggertIdToString(LoggerId id)
+{
+    switch (id) {
+        CASE_CODE (LOGGER_UNDEFINED);
+        CASE_CODE (LOGGER_ALERT_DEBUG);
+        CASE_CODE (LOGGER_ALERT_FAST);
+        CASE_CODE (LOGGER_UNIFIED2);
+        CASE_CODE (LOGGER_ALERT_SYSLOG);
+        CASE_CODE (LOGGER_DROP);
+        CASE_CODE (LOGGER_JSON_ALERT);
+        CASE_CODE (LOGGER_JSON_DROP);
+        CASE_CODE (LOGGER_JSON_SSH);
+        CASE_CODE (LOGGER_DNS);
+        CASE_CODE (LOGGER_HTTP);
+        CASE_CODE (LOGGER_JSON_DNS);
+        CASE_CODE (LOGGER_JSON_HTTP);
+        CASE_CODE (LOGGER_JSON_SMTP);
+        CASE_CODE (LOGGER_JSON_TLS);
+        CASE_CODE (LOGGER_JSON_TEMPLATE);
+        CASE_CODE (LOGGER_TLS_STORE);
+        CASE_CODE (LOGGER_TLS);
+        CASE_CODE (LOGGER_FILE);
+        CASE_CODE (LOGGER_FILE_STORE);
+        CASE_CODE (LOGGER_JSON_FILE);
+        CASE_CODE (LOGGER_TCP_DATA);
+        CASE_CODE (LOGGER_JSON_FLOW);
+        CASE_CODE (LOGGER_JSON_NETFLOW);
+        CASE_CODE (LOGGER_STATS);
+        CASE_CODE (LOGGER_JSON_STATS);
+        CASE_CODE (LOGGER_PRELUDE);
+        default:
+            return "UNKNOWN";
+    }
+}
 
 #ifdef UNITTESTS
 
index 54521a42209872b444b78cda6bb7aa9f038eb2b4..990697ca1ec3739157b47a2dfd2ace9689b8bae4 100644 (file)
@@ -250,6 +250,25 @@ PktProfiling *SCProfilePacketStart(void);
         }                                                           \
     }
 
+#define PACKET_PROFILING_LOGGER_START(p, id)                        \
+    if (profiling_packets_enabled && (p)->profile != NULL) {        \
+        if ((id) < LOGGER_SIZE) {                              \
+            (p)->profile->logger[(id)].ticks_start = UtilCpuGetTicks(); \
+        }                                                           \
+    }
+
+#define PACKET_PROFILING_LOGGER_END(p, id)                          \
+    if (profiling_packets_enabled  && (p)->profile != NULL) {       \
+        if ((id) < LOGGER_SIZE) {                              \
+            (p)->profile->logger[(id)].ticks_end = UtilCpuGetTicks();\
+            if ((p)->profile->logger[(id)].ticks_start != 0 &&       \
+                    (p)->profile->logger[(id)].ticks_start < (p)->profile->logger[(id)].ticks_end) {  \
+                (p)->profile->logger[(id)].ticks_spent +=            \
+                ((p)->profile->logger[(id)].ticks_end - (p)->profile->logger[(id)].ticks_start);  \
+            }                                                       \
+        }                                                           \
+    }
+
 #define SGH_PROFILING_RECORD(det_ctx, sgh)                          \
     if (profiling_sghs_enabled) {                                   \
         SCProfilingSghUpdateCounter((det_ctx), (sgh));              \
@@ -311,6 +330,9 @@ void SCProfilingDump(void);
 #define PACKET_PROFILING_DETECT_START(p, id)
 #define PACKET_PROFILING_DETECT_END(p, id)
 
+#define PACKET_PROFILING_LOGGER_START(p, id)
+#define PACKET_PROFILING_LOGGER_END(p, id)
+
 #define SGH_PROFILING_RECORD(det_ctx, sgh)
 
 #define FLOWWORKER_PROFILING_START(p, id)