|
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) |
| void * | FlowWorkerGetThreadData (void *flow_worker) |
| bool | FlowWorkerGetFlushAck (void *flow_worker) |
| void | FlowWorkerSetFlushAck (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 2337 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 747 of file flow-worker.c.
References SC_ATOMIC_GET.
| bool FlowWorkerGetFlushAck | ( | void * | flow_worker | ) |
Definition at line 759 of file flow-worker.c.
References SC_ATOMIC_GET.
| void* FlowWorkerGetThreadData | ( | void * | flow_worker | ) |
Definition at line 754 of file flow-worker.c.
| void FlowWorkerReplaceDetectCtx | ( | void * | flow_worker, |
| void * | detect_ctx | ||
| ) |
Definition at line 740 of file flow-worker.c.
References SC_ATOMIC_SET.
| void FlowWorkerSetFlushAck | ( | void * | flow_worker | ) |
Definition at line 765 of file flow-worker.c.
References SC_ATOMIC_SET.
| const char* ProfileFlowWorkerIdToString | ( | enum ProfileFlowWorkerId | fwi | ) |
Definition at line 771 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 6057 of file stream-tcp.c.
| void TmModuleFlowWorkerRegister | ( | void | ) |
Definition at line 814 of file flow-worker.c.
References TmModule_::name, TmModule_::ThreadInit, TMM_FLOWWORKER, and tmm_modules.
Referenced by RegisterAllModules().
