if (suri.run_mode != RUNMODE_UNIX_SOCKET) {
FlowInitConfig(FLOW_VERBOSE);
初始化Flow engine。用来表示一条TCP/UDP/ICMP/SCTP流的,程序当前所记录的所有流便组成了流表,在flow引擎中,流表为flow_hash这个全局变量,其类型为FlowBucket *,而FlowBucket中则能够存储一个Flow链表,典型的一张chained hash Table。在初始化函数FlowInitConfig中,首先会使用配置文件信息填充flow_config,然后会按照配置中的hash_size为流表实际分配内存,接着按照prealloc进行流的预分配(FlowAlloc->FlowEnqueue,存储在flow_spare_q这个FlowQueue类型的队列中),最后调用FlowInitFlowProto为流表所用于的各种流协议进行配置,主要是设置timeout时间。
StreamTcpInitConfig(STREAM_VERBOSE);
初始化Stream TCP模块。其中调用了StreamTcpReassembleInit函数进行重组模块初始化。
IPPairInitConfig(IPPAIR_VERBOSE);
初始化ippair engine,默认不开启。
AppLayerRegisterGlobalCounters();
注册应用层全局计数器
“dns.memuse”,”dns.memcap_state”,”dns.memcap_global”,”http.memuse”,”http.memcap”到stats_ctx中。
}