suricata
runmodes.c File Reference
#include "suricata-common.h"
#include "detect.h"
#include "detect-engine.h"
#include "detect-engine-mpm.h"
#include "app-layer-parser.h"
#include "tm-threads.h"
#include "util-debug.h"
#include "util-time.h"
#include "util-cpu.h"
#include "util-byte.h"
#include "util-affinity.h"
#include "conf.h"
#include "queue.h"
#include "runmodes.h"
#include "util-unittest.h"
#include "util-misc.h"
#include "output.h"
#include "alert-fastlog.h"
#include "alert-prelude.h"
#include "alert-debuglog.h"
#include "log-httplog.h"
#include "source-pfring.h"
#include "tmqh-flow.h"
#include "flow-manager.h"
#include "flow-bypass.h"
#include "counters.h"
Include dependency graph for runmodes.c:

Go to the source code of this file.

Data Structures

struct  RunMode_
 Holds description for a runmode. More...
 
struct  RunModes_
 
struct  OutputFreeList_
 

Typedefs

typedef struct RunMode_ RunMode
 Holds description for a runmode. More...
 
typedef struct RunModes_ RunModes
 
typedef struct OutputFreeList_ OutputFreeList
 

Functions

char * RunmodeGetActive (void)
 
const char * RunModeGetMainMode (void)
 
void RunModeRegisterRunModes (void)
 Register all runmodes in the engine. More...
 
void RunModeListRunmodes (void)
 Lists all registered runmodes. More...
 
void RunModeDispatch (int runmode, const char *custom_mode)
 
void RunModeEnablesBypassManager (void)
 
int RunModeNeedsBypassManager (void)
 
void RunModeRegisterNewRunMode (enum RunModes runmode, const char *name, const char *description, int(*RunModeFunc)(void))
 Registers a new runmode. More...
 
int RunModeOutputFileEnabled (void)
 
int RunModeOutputFiledataEnabled (void)
 
bool IsRunModeSystem (enum RunModes run_mode_to_check)
 
bool IsRunModeOffline (enum RunModes run_mode_to_check)
 
void RunModeShutDown (void)
 
void RunModeInitializeOutputs (void)
 
void RunModeInitialize (void)
 

Variables

int debuglog_enabled = 0
 
int threading_set_cpu_affinity = FALSE
 
const char * thread_name_autofp = "RX"
 
const char * thread_name_single = "W"
 
const char * thread_name_workers = "W"
 
const char * thread_name_verdict = "TX"
 
const char * thread_name_flow_mgr = "FM"
 
const char * thread_name_flow_rec = "FR"
 
const char * thread_name_flow_bypass = "FB"
 
const char * thread_name_unix_socket = "US"
 
const char * thread_name_detect_loader = "DL"
 
const char * thread_name_counter_stats = "CS"
 
const char * thread_name_counter_wakeup = "CW"
 
float threading_detect_ratio = 1
 

Detailed Description

Author
Victor Julien victo.nosp@m.r@in.nosp@m.linia.nosp@m.c.ne.nosp@m.t

Pre-cooked threading runmodes.

Definition in file runmodes.c.

Typedef Documentation

◆ OutputFreeList

◆ RunMode

typedef struct RunMode_ RunMode

Holds description for a runmode.

◆ RunModes

typedef struct RunModes_ RunModes

Function Documentation

◆ IsRunModeOffline()

bool IsRunModeOffline ( enum RunModes  run_mode_to_check)

bool indicating if run mode is offline

Definition at line 504 of file runmodes.c.

References RUNMODE_CONF_TEST, RUNMODE_ENGINE_ANALYSIS, RUNMODE_ERF_FILE, RUNMODE_PCAP_FILE, and RUNMODE_UNIX_SOCKET.

Referenced by ConfUnixSocketIsEnable().

Here is the caller graph for this function:

◆ IsRunModeSystem()

bool IsRunModeSystem ( enum RunModes  run_mode_to_check)

Definition at line 491 of file runmodes.c.

References RUNMODE_ENGINE_ANALYSIS, RUNMODE_ERF_FILE, and RUNMODE_PCAP_FILE.

◆ RunModeDispatch()

◆ RunModeEnablesBypassManager()

void RunModeEnablesBypassManager ( void  )

Definition at line 398 of file runmodes.c.

◆ RunmodeGetActive()

char* RunmodeGetActive ( void  )

Return the running mode

The returned string must not be freed.

Returns
a string containing the current running mode

Definition at line 187 of file runmodes.c.

◆ RunModeGetMainMode()

const char* RunModeGetMainMode ( void  )

Return the running mode

The returned string must not be freed.

Returns
a string containing the current running mode

Definition at line 199 of file runmodes.c.

References RunmodeGetCurrent().

Here is the call graph for this function:

◆ RunModeInitialize()

◆ RunModeInitializeOutputs()

void RunModeInitializeOutputs ( void  )

Initialize the output modules.

Definition at line 716 of file runmodes.c.

References ConfGetNode().

Referenced by PreRunPostPrivsDropInit().

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

◆ RunModeListRunmodes()

void RunModeListRunmodes ( void  )

Lists all registered runmodes.

Definition at line 235 of file runmodes.c.

References RUNMODE_UNKNOWN, and RUNMODE_USER_MAX.

◆ RunModeNeedsBypassManager()

int RunModeNeedsBypassManager ( void  )

Definition at line 403 of file runmodes.c.

◆ RunModeOutputFiledataEnabled()

int RunModeOutputFiledataEnabled ( void  )

Definition at line 486 of file runmodes.c.

◆ RunModeOutputFileEnabled()

int RunModeOutputFileEnabled ( void  )

Definition at line 481 of file runmodes.c.

◆ RunModeRegisterNewRunMode()

void RunModeRegisterNewRunMode ( enum RunModes  runmode,
const char *  name,
const char *  description,
int(*)(void)  RunModeFunc 
)

Registers a new runmode.

Parameters
runmodeRunmode type.
nameCustom mode for this specific runmode type. Within each runmode type, each custom name is a primary key.
descriptionDescription for this runmode.
RunModeFuncThe function to be run for this runmode.

Definition at line 419 of file runmodes.c.

Referenced by RunModeErfDagRegister(), RunModeErfFileRegister(), RunModeFilePcapRegister(), RunModeIdsAFPRegister(), RunModeIdsNetmapRegister(), RunModeIdsNflogRegister(), RunModeIdsPcapRegister(), RunModeIdsPfringRegister(), RunModeIpsIPFWRegister(), RunModeIpsNFQRegister(), RunModeIpsWinDivertRegister(), RunModeNapatechRegister(), RunModeUnixSocketRegister(), and UtRunModeRegister().

Here is the caller graph for this function:

◆ RunModeRegisterRunModes()

void RunModeRegisterRunModes ( void  )

Register all runmodes in the engine.

Definition at line 209 of file runmodes.c.

Referenced by InitGlobal().

Here is the caller graph for this function:

◆ RunModeShutDown()

void RunModeShutDown ( void  )

Cleanup the run mode.

Definition at line 522 of file runmodes.c.

Variable Documentation

◆ debuglog_enabled

int debuglog_enabled = 0

Definition at line 57 of file runmodes.c.

◆ thread_name_autofp

const char* thread_name_autofp = "RX"

◆ thread_name_counter_stats

const char* thread_name_counter_stats = "CS"

Definition at line 70 of file runmodes.c.

◆ thread_name_counter_wakeup

const char* thread_name_counter_wakeup = "CW"

Definition at line 71 of file runmodes.c.

◆ thread_name_detect_loader

const char* thread_name_detect_loader = "DL"

Definition at line 69 of file runmodes.c.

◆ thread_name_flow_bypass

const char* thread_name_flow_bypass = "FB"

Definition at line 67 of file runmodes.c.

Referenced by BypassedFlowManagerThreadSpawn().

◆ thread_name_flow_mgr

const char* thread_name_flow_mgr = "FM"

Definition at line 65 of file runmodes.c.

◆ thread_name_flow_rec

const char* thread_name_flow_rec = "FR"

Definition at line 66 of file runmodes.c.

◆ thread_name_single

const char* thread_name_single = "W"

◆ thread_name_unix_socket

const char* thread_name_unix_socket = "US"

Definition at line 68 of file runmodes.c.

◆ thread_name_verdict

const char* thread_name_verdict = "TX"

Definition at line 64 of file runmodes.c.

Referenced by RunModeSetIPSAutoFp().

◆ thread_name_workers

◆ threading_detect_ratio

float threading_detect_ratio = 1

◆ threading_set_cpu_affinity

int threading_set_cpu_affinity = FALSE

Definition at line 58 of file runmodes.c.

Referenced by RunModeErfFileAutoFp(), RunModeInitialize(), and TmThreadSetCPU().