高效实现网络芯片流量统计的方法及装置制造方法及图纸

技术编号:12489236 阅读:72 留言:0更新日期:2015-12-11 03:51
本发明专利技术揭示了一种高效实现网络芯片流量统计的方法及装置,所述方法包括:报文查找芯片中的ACL流表,找到匹配的流表并关联流统计的行为;根据关联的流统计行为更新RAM内存中的信息;DMA控制器周期性地进行:定时读取RAM内存中的统计数据,同时读取DMA内存中的数据,将读取的RAM内存中的统计数据和DMA内存中的数据累加,再写回到DMA内存中;其中,DMA内存是由CPU为芯片DMA分配的指定地址的CPU内存。本发明专利技术完全由芯片DMA来实现统计的同步和累加到CPU内存,整个过程中基本不需要软件参与,可以大大降低CPU的占用率,同时高效完成flow stats的功能。

【技术实现步骤摘要】

本专利技术涉及一种流量统计技术,尤其是涉及一种高效实现网络芯片流量统计的方法及装置
技术介绍
Flow stats (流量统计)是一种依靠ACL (访问控制列表)实现流量统计的技术,对流量分析、问题定位等都广泛的应用。根据ACL识别特定的流,并关联stats表项,将识别到的流统计到stats表项中,Stats表项在芯片内使用物理存储器实现,表项规格有限制。为了防止溢出导致统计反转,现有大部分芯片的做法是设定阈值,达到阈值会触发中断,此时cpu (中央处理器)接管中断,读取芯片ram(随机存取存储器)中的stats统计,并清O。最终的stats统计是依靠软件多次读取的结果累加后返回。由于stats表项占用ram资源,不可能设置过多的位宽,按100G的流量来计算,Is中的报文统计就需要占用34个位宽的ram资源,同时中断需要达到至少Is —次才能有效的防止反转,这种情况下对cpu的冲击很大,效率很低。
技术实现思路
本专利技术的目的在于克服现有技术的缺陷,提供一种高效实现网络芯片流量统计的方法及装置,利用DMA和CPU可共享内存的特点,采用芯片的DMA控制器以实现流量统计。为实现上述目的,本专利技术提出如下技术方案:一种高效实现网络芯片流量统计的方法,所述芯片内包括ACL流表、流统计、RAM内存和DMA控制器,所述方法包括:SI,报文进入芯片,根据自身携带的报文信息查找芯片中的ACL流表,找到匹配的流表并关联所述流统计的行为;S2,根据关联的所述流统计行为更新所述RAM内存中的信息;S3,DMA控制器周期性地进行:定时读取所述RAM内存中的统计数据,同时读取DMA内存中的数据,将读取的RAM内存中的统计数据和DMA内存中的数据累加,再写回到所述DMA内存中;其中,所述DMA内存是由CPU为芯片DMA分配的指定地址的CPU内存。优选地,所述报文自身携带的报文信息包括报文的五元组信息,所述五元组信息包括报文的目的mac地址、源mac地址、目的IP地址和源IP地址。优选地,更新所述RAM内存中的信息包括:将报文的个数和长度统计到所述RAM内存中。优选地,步骤S3中,芯片启用DAM功能,DMA控制器根据配置的时间间隔周期性地进行操作。优选地,通过直接读取所述CPU内存中数据,以获得流量统计数据。本专利技术还提出了一种高效实现网络芯片流量统计的装置,包括芯片内的ACL流表、流统计、RAM内存、DMA控制器,CPU及DMA内存,其中,所述ACL流表用于供进入芯片的报文根据自身携带的报文信息进行流表查找,匹配到的流表关联所述流统计的行为。所述RAM内存用于根据关联的所述流统计行为更新所储存的信息,做流量统计;所述DMA控制器用于周期性地进行:定时读取所述RAM内存中的统计数据,同时读取DMA内存中的数据,将读取的RAM内存中的统计数据和DMA内存中的数据累加,再写回到所述DMA内存中;所述CPU用于为芯片DMA分配指定地址的CPU内存做为所述DMA内存。优选地,所述RAM内存统计报文的个数和长度,以更新其内部储存信息。优选地,所述装置还包括数据读取模块,所述数据读取模块用于读取所述CPU内存中数据,以获得流量统计数据。与现有技术相比,本专利技术的有益效果是:通过本专利技术不需要频繁中断,完全由芯片DMA来实现统计的同步和累加到CPU内存,整个过程中基本不需要软件参与,可以大大降低CPU的占用率,同时高效完成flow stats的功能。【附图说明】图1是本专利技术高效实现网络芯片流量统计的装置的原理示意图;图2是本专利技术高效实现网络芯片流量统计的方法的流程示意图。【具体实施方式】下面将结合本专利技术的附图,对本专利技术实施例的技术方案进行清楚、完整的描述。本专利技术利用直接存储访问(DMA)和CPU会共享内存的特点,由芯片的DMA控制器来自动实现流量统计。如图1所示,本专利技术实施例所揭示的一种高效实现网络芯片流量统计的装置,包括芯片、CPU及DMA内存,芯片内包括ACL流表、流统计、RAM内存和DMA控制器。图2为本专利技术高效实现网络芯片流量统计的方法的流程示意图,结合图1和图2所示,报文进入芯片后,根据携带的目的mac地址(MacDa) /源mac地址(MacSa) /目的IP地址(IPda)/源IP地址(IPsa)等五元组信息查找芯片中ACL流表(图1中的步骤I),找到匹配的流表并关联流统计的行为(Act1n)来做流量统计(图1中的步骤2)。需要说明的是,报文自身携带的报文信息包括但不仅限于五元组信息,除这里提及的报文的目的mac地址,源mac地址,目的IP地址,源IP地址外,还包括目的端口,源端口等。流量统计是利用芯片中的一块Ram资源(即RAM内存)来实现,当匹配到的ACL流表中有统计的Act1n时,就会更新这块Ram内存中的信息,将报文个数和长度统计到Ram资源中(图1中的步骤3)。芯片启用DMA功能,CPU为DMA分配指定地址的CPU内存做为DMA内存来使用,由DMA控制器定时去读取Ram中的统计数据(图1中的步骤4)。同时读取已经分配的DMA内存中的数据(图1中的步骤5),将步骤4和步骤5中的数据进行累加,再回写到DMA内存(图1中的步骤6),DMA根据已经配置好的时间间隔周期性的进行步骤4到步骤6的操作。这样,流量统计的数据就会不断的更新到DMA内存,由于DMA和CPU是共享同一块内存,当需要获取流量统计时,只需要读取相应CPU内存中的数据即可(图1中的步骤7),可通过一数据读取模块(图未示)来读取。需要说明的是,本专利技术中所指芯片不局限于专用集成电路(ASIC)芯片,还包括现场可编程门阵列(FPGA)或网络处理器NP等。本专利技术的
技术实现思路
及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本专利技术的教示及揭示而作种种不背离本专利技术精神的替换及修饰,因此,本专利技术保护范围应不限于实施例所揭示的内容,而应包括各种不背离本专利技术的替换及修饰,并为本专利申请权利要求所涵盖。【主权项】1.一种高效实现网络芯片流量统计的方法,其特征在于,所述芯片内包括ACL流表、流统计、RAM内存和DMA控制器,所述方法包括: SI,报文进入芯片,根据自身携带的报文信息查找芯片中的ACL流表,找到匹配的流表并关联所述流统计的行为; S2,根据关联的所述流统计行为更新所述RAM内存中的信息; S3,DMA控制器周期性地进行:定时读取所述RAM内存中的统计数据,同时读取DMA内存中的数据,将读取的RAM内存中的统计数据和DMA内存中的数据累加,再写回到所述DMA内存中;其中,所述DMA内存是由CPU为芯片DMA分配的指定地址的CPU内存。2.根据权利要求1所述的高效实现网络芯片流量统计的方法,其特征在于,所述报文自身携带的报文信息包括报文的五元组信息,所述五元组信息包括报文的目的mac地址、源mac地址、目的IP地址和源IP地址。3.根据权利要求1所述的高效实现网络芯片流量统计的方法,其特征在于,更新所述RAM内存中的信息包括:将报文的个数和长度统计到所述RAM内存中。4.根据权利要求1所述的高效实现网络芯片流量统计的方法,其特征在于,步骤S3中,芯片启用DAM功能,DMA控制器根据配置的时间间隔周期性地进行操作。5.根据权利要求1所述的高效实现网络芯片流本文档来自技高网
...

【技术保护点】
一种高效实现网络芯片流量统计的方法,其特征在于,所述芯片内包括ACL流表、流统计、RAM内存和DMA控制器,所述方法包括:S1,报文进入芯片,根据自身携带的报文信息查找芯片中的ACL流表,找到匹配的流表并关联所述流统计的行为;S2,根据关联的所述流统计行为更新所述RAM内存中的信息;S3,DMA控制器周期性地进行:定时读取所述RAM内存中的统计数据,同时读取DMA内存中的数据,将读取的RAM内存中的统计数据和DMA内存中的数据累加,再写回到所述DMA内存中;其中,所述DMA内存是由CPU为芯片DMA分配的指定地址的CPU内存。

【技术特征摘要】

【专利技术属性】
技术研发人员:李磊赵茂聪贾复山
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1