Advertisement

(Suricata 6.0) 流表管理源码注释五:(流的建立) 03:(全局flow内存池与线程自己的flow队列)(Python版本)

阅读量:

当尝试获取某条flow时,在发现当前线程所在的fls队列无法提供对应的spare_queue后,则会从全局流内存池中寻找备用的队列资源。该功能模块负责完成这一流程操作。

1. FlowSpareSync 函数

FlowHandlePacket-》FlowGetFlowFromHash-》FlowGetNew-》FlowSpareSync

从全局flow内存池FlowSparePool *flow_spare_pool获取一个flow队列。

复制代码
 /** \internal

    
  *  \brief try to fetch a new set of flows from the master flow pool.
    
  * *  If in emergency mode, do this only once a second at max to avoid trying
    
  *  to synchronise per packet in the worse case. */
    
 static inline Flow *FlowSpareSync(ThreadVars *tv, FlowLookupStruct *fls,
    
     const Packet *p, const bool emerg)
    
 {   

全部评论 (0)

还没有任何评论哟~