suricata
runmode-erf-dag.c
Go to the documentation of this file.
1/* Copyright (C) 2007-2010 Open Information Security Foundation
2 *
3 * You can copy, redistribute or modify this Program under the terms of
4 * the GNU General Public License version 2 as published by the Free
5 * Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 * You should have received a copy of the GNU General Public License
13 * version 2 along with this program; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
15 * 02110-1301, USA.
16 */
17
18#include "suricata-common.h"
19#include "tm-threads.h"
20#include "conf.h"
21#include "runmodes.h"
22#include "runmode-erf-dag.h"
23#include "output.h"
24
25#include "detect-engine.h"
26
27#include "util-debug.h"
28#include "util-time.h"
29#include "util-cpu.h"
30#include "util-affinity.h"
31#include "util-runmodes.h"
32
33static int DagConfigGetThreadCount(void *conf)
34{
35 return 1;
36}
37
38static void *ParseDagConfig(const char *iface)
39{
40 return (void *)iface;
41}
42
44{
45 return "autofp";
46}
47
49{
51 "Multi threaded DAG mode. Packets from "
52 "each flow are assigned to a single detect "
53 "thread, unlike \"dag_auto\" where packets "
54 "from the same flow can be processed by any "
55 "detect thread",
57
59 RUNMODE_DAG, "single", "Singled threaded DAG mode", RunModeIdsErfDagSingle, NULL);
60
62 "Workers DAG mode, each thread does all "
63 " tasks from acquisition to logging",
65}
66
68{
69 int ret;
70
71 SCEnter();
72
74
75 ret = RunModeSetLiveCaptureSingle(ParseDagConfig,
76 DagConfigGetThreadCount,
77 "ReceiveErfDag",
78 "DecodeErfDag",
80 NULL);
81 if (ret != 0) {
82 FatalError("DAG single runmode failed to start");
83 }
84
85 SCLogInfo("RunModeIdsDagSingle initialised");
86
87 SCReturnInt(0);
88}
89
91{
92 int ret;
93
94 SCEnter();
95
97
98 ret = RunModeSetLiveCaptureAutoFp(ParseDagConfig, DagConfigGetThreadCount, "ReceiveErfDag",
99 "DecodeErfDag", thread_name_autofp, NULL);
100 if (ret != 0) {
101 FatalError("DAG autofp runmode failed to start");
102 }
103
104 SCLogInfo("RunModeIdsDagAutoFp initialised");
105
106 SCReturnInt(0);
107}
108
110{
111 int ret;
112
113 SCEnter();
114
116
117 ret = RunModeSetLiveCaptureWorkers(ParseDagConfig, DagConfigGetThreadCount, "ReceiveErfDag",
118 "DecodeErfDag", thread_name_workers, NULL);
119 if (ret != 0) {
120 FatalError("DAG workers runmode failed to start");
121 }
122
123 SCLogInfo("RunModeIdsErfDagWorkers initialised");
124
125 SCReturnInt(0);
126}
void RunModeErfDagRegister(void)
const char * RunModeErfDagGetDefaultMode(void)
int RunModeIdsErfDagAutoFp(void)
int RunModeIdsErfDagSingle(void)
int RunModeIdsErfDagWorkers(void)
const char * thread_name_single
Definition runmodes.c:67
void RunModeRegisterNewRunMode(enum SCRunModes runmode, const char *name, const char *description, int(*RunModeFunc)(void), int(*RunModeIsIPSEnabled)(void))
Registers a new runmode.
Definition runmodes.c:486
const char * thread_name_autofp
Definition runmodes.c:66
const char * thread_name_workers
Definition runmodes.c:68
@ RUNMODE_DAG
Definition runmodes.h:35
#define SCEnter(...)
Definition util-debug.h:277
#define FatalError(...)
Definition util-debug.h:510
#define SCReturnInt(x)
Definition util-debug.h:281
#define SCLogInfo(...)
Macro used to log INFORMATIONAL messages.
Definition util-debug.h:225
int RunModeSetLiveCaptureSingle(ConfigIfaceParserFunc ConfigParser, ConfigIfaceThreadsCountFunc ModThreadsCount, const char *recv_mod_name, const char *decode_mod_name, const char *thread_name, const char *live_dev)
int RunModeSetLiveCaptureWorkers(ConfigIfaceParserFunc ConfigParser, ConfigIfaceThreadsCountFunc ModThreadsCount, const char *recv_mod_name, const char *decode_mod_name, const char *thread_name, const char *live_dev)
int RunModeSetLiveCaptureAutoFp(ConfigIfaceParserFunc ConfigParser, ConfigIfaceThreadsCountFunc ModThreadsCount, const char *recv_mod_name, const char *decode_mod_name, const char *thread_name, const char *live_dev)
void TimeModeSetLive(void)
Definition util-time.c:99