suricata 3.1 源码分析2

原创 2016年08月29日 16:53:01

原文链接:http://www.9mblog.com/64.html
这次要说的是一个十分重要的函数

RunModeRegisterRunModes();

主要是完成运行模式的注册,我们添加的所有运行模式都要通过这个函数注册。下面是它的内部实现。

void RunModeRegisterRunModes(void)
{
    memset(runmodes, 0, sizeof(runmodes));

    RunModeIdsPcapRegister();           //Pcap模式注册
    RunModeFilePcapRegister();      //PcapFile模式注册,用于直接读取、解析pcap文件
    RunModeIdsPfringRegister();     //Pfring模式注册,用于解析通过Pfring抓到的包
    RunModeIpsNFQRegister();
    RunModeIpsIPFWRegister();
    RunModeErfFileRegister();
    RunModeErfDagRegister();
    RunModeNapatechRegister();      //Napatech模式注册,解析Napatech网卡抓到的包
    RunModeIdsAFPRegister();
    RunModeIdsNetmapRegister();     //Netmap模式注册,用于解析通过Netmap抓到的包
    RunModeIdsNflogRegister();
    RunModeTileMpipeRegister();
    RunModeUnixSocketRegister();

    #ifdef UNITTESTS
    UtRunModeRegister();
    #endif

    return;
}

其它模式没有了解过,也就不胡乱写了。
针对于运行模式注册这块的内容,后面会对Pcap,FilePcap,以及Netmap模式进行详细分析。

版权声明:本文为博主原创文章,未经博主允许不得转载。

suricata 3.1 源码分析22 (数据包处理2)

对数据包进行进一步处理的TmThreadsSlotVarRun函数原型如下: TmEcode TmThreadsSlotVarRun(ThreadVars *tv, Packet *...

suricata 3.1 源码分析33 (FlowWorker处理流程2 - FlowHandlePacket)

void FlowHandlePacket(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p) { /* Get this packet's f...

suricata 3.1 源码分析17 (流管理2)

TmThreadsManagementstatic void *TmThreadsManagement(void *td) { /* block usr2. usr2 to be handl...

suricata 3.1 源码分析32 (FlowWorker处理流程1)

TmEcode FlowWorker(ThreadVars *tv, Packet *p, void *data, PacketQueue *preq, PacketQueue *unused) { ...

suricata 3.1 源码分析21 (数据包处理1)

进一步的数据包处理是在TmThreadsSlotProcessPkt中完成,其原型为: static inline TmEcode TmThreadsSlotProcessPkt(T...

suricata 3.1 源码分析16 (流管理1)

在suricata.c的main函数执行完RunModeDispatch之后会在判断是否使用UNIX_SOCKET中调用FlowManagerThreadSpawn创建流管理线程。/** \brief...

suricata 3.1 源码分析20 (数据包封装)

在Suricata中,用来封装数据包的结构体为Packet,核心字段如下: 字段 含义 src/dst、sp/dp、proto 五元组信息:源/目的地址,源/目的端口号,传输层协议(TC...

suricata 3.1 源码分析27 (数据包IPv4解码)

int DecodeIPV4(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p, uint8_t *pkt, uint16_t len, PacketQ...

suricata 3.1 源码分析23 (数据包解码模块注册及初始化)

简介 Suricata的解码模块与数据包获取模块是一一对应的,例如DecodePcap对应ReceivePcap,DecodeAFP对应ReceiveAFP。 然而,我们知道数据包格式都是协议规定...

suricata 3.1 源码分析3

继续main函数下面的内容。/* By default use IDS mode, but if nfq or ipfw * are specified, IPS mode wil...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:suricata 3.1 源码分析2
举报原因:
原因补充:

(最多只允许输入30个字)