suricata
|
#include "suricata-common.h"
#include "suricata.h"
#include "action-globals.h"
#include "packet.h"
#include "decode.h"
#include "detect.h"
#include "stream-tcp.h"
#include "app-layer.h"
#include "detect-engine.h"
#include "output.h"
#include "app-layer-parser.h"
#include "app-layer-frames.h"
#include "util-profiling.h"
#include "util-validate.h"
#include "util-time.h"
#include "tmqh-packetpool.h"
#include "flow-util.h"
#include "flow-manager.h"
#include "flow-timeout.h"
#include "flow-spare-pool.h"
#include "flow-worker.h"
Go to the source code of this file.
Data Structures | |
struct | FlowTimeoutCounters |
struct | FlowWorkerThreadData_ |
Typedefs | |
typedef DetectEngineThreadCtx * | DetectEngineThreadCtxPtr |
typedef struct FlowTimeoutCounters | FlowTimeoutCounters |
typedef struct FlowWorkerThreadData_ | FlowWorkerThreadData |
Functions | |
TmEcode | Detect (ThreadVars *tv, Packet *p, void *data) |
Detection engine thread wrapper. More... | |
TmEcode | StreamTcp (ThreadVars *, Packet *, void *, PacketQueueNoLock *pq) |
void | FlowWorkerReplaceDetectCtx (void *flow_worker, void *detect_ctx) |
void * | FlowWorkerGetDetectCtxPtr (void *flow_worker) |
const char * | ProfileFlowWorkerIdToString (enum ProfileFlowWorkerId fwi) |
void | TmModuleFlowWorkerRegister (void) |
Flow Workers are single thread modules taking care of (almost) everything related to packets with flows:
This all while holding the flow lock.
Definition in file flow-worker.c.
Definition at line 59 of file flow-worker.c.
typedef struct FlowTimeoutCounters FlowTimeoutCounters |
typedef struct FlowWorkerThreadData_ FlowWorkerThreadData |
TmEcode Detect | ( | ThreadVars * | tv, |
Packet * | p, | ||
void * | data | ||
) |
Detection engine thread wrapper.
tv | thread vars |
p | packet to inspect |
data | thread specific data |
pq | packet queue |
TM_ECODE_FAILED | error |
TM_ECODE_OK | ok |
Definition at line 1871 of file detect.c.
References de_ctx, DEBUG_VALIDATE_PACKET, DetectEngineThreadCtx_::mt_det_ctxs_cnt, SC_ATOMIC_GET, SC_ATOMIC_SET, SCLogDebug, Packet_::tenant_id, DetectEngineThreadCtx_::TenantGetId, and unlikely.
void* FlowWorkerGetDetectCtxPtr | ( | void * | flow_worker | ) |
Definition at line 715 of file flow-worker.c.
References SC_ATOMIC_GET.
void FlowWorkerReplaceDetectCtx | ( | void * | flow_worker, |
void * | detect_ctx | ||
) |
Definition at line 708 of file flow-worker.c.
References SC_ATOMIC_SET.
const char* ProfileFlowWorkerIdToString | ( | enum ProfileFlowWorkerId | fwi | ) |
Definition at line 722 of file flow-worker.c.
References PROFILE_FLOWWORKER_APPLAYERUDP, PROFILE_FLOWWORKER_DETECT, PROFILE_FLOWWORKER_FLOW, PROFILE_FLOWWORKER_FLOW_EVICTED, PROFILE_FLOWWORKER_FLOW_INJECTED, PROFILE_FLOWWORKER_SIZE, PROFILE_FLOWWORKER_STREAM, and PROFILE_FLOWWORKER_TCPPRUNE.
TmEcode StreamTcp | ( | ThreadVars * | , |
Packet * | , | ||
void * | , | ||
PacketQueueNoLock * | pq | ||
) |
Definition at line 5972 of file stream-tcp.c.
void TmModuleFlowWorkerRegister | ( | void | ) |
Definition at line 765 of file flow-worker.c.
References TmModule_::name, TmModule_::ThreadInit, TMM_FLOWWORKER, and tmm_modules.
Referenced by RegisterAllModules().