stats分配的芯片实现方法技术

技术编号:12990062 阅读:96 留言:0更新日期:2016-03-10 01:05
本发明专利技术揭示了一种stats分配的芯片实现方法,包括报文在芯片内的入端口、队列模块和出端口均使能做公共统计,在入方向处理模块和出方向处理模块均做独有统计,所述公共统计过程包括:为每类统计分配一个地址索引,所述地址索引指向已分配给每类统计的RAM中的存储位置,更新所述RAM;所述独有统计过程包括:根据报文的种类信息,选择需统计的种类,并为每类统计分配一个地址索引,所述地址索引包括选择的RAM标号及在相应RAM中的存储位置,更新所述RAM,其中,所述RAM个数为每个报文需要做统计的种类的最大值。本发明专利技术提高了stats存储的灵活性,降低因设定优先级而产生的冲突。

【技术实现步骤摘要】

本专利技术涉及一种报文统计技术,尤其是涉及一种灵活的stats分配的芯片实现方法
技术介绍
为了方便管理员对交换机进行故障排查和流量监控,需要交换机在工作过程中统计各种报文的数目和总报文长度,比如进出port端口的报文数目、三层转发的报文数目、符合某条ACE(访问控制条目,即ACL中的条目)规则的报文数目等。报文统计时,软件会为其分配RAM的地址索引作为起始存储空间,不同类型的统计信息分配不同存储空间,实现报文的统计。现有技术主要采用的常见方案是:设计多块RAM,为每一类stats(统计)分配固定的RAM,每一类stats只能在指定的RAM中进行存储,存储在指定RAM的哪个位置由软件静态分配。当需要统计的stats种类多于RAM的个数时,采用多个种类的stats固定存储优先级、分配同一块RAM不同存储位置的方案。若要保证每种stats分配一块RAM,成本比较高,占用芯片的面积较大。实际应用中考虑成本等的设计,需要统计的stats种类往往会多于RAM的个数。如果一次转发过程中,报文需要做多种stats统计,这几种stats又恰巧被固定分配同一块RAM时,stats产生冲突,RAM只能更新优先级最高的stats对应的报文数和报文长度,优先级低的stats不会被更新。而其他不需要做的stats的RAM此时就是空闲状态。因此采用固定分配RAM的方案极大的限制了stats存储的灵活性,导致stats统计的可靠性降低。
技术实现思路
本专利技术的目的在于克服现有技术的缺陷,提供一种stats分配的芯片实现方法,为每一个报文都能够做的公共stats分配独立的RAM,为不同报文所独有的stats种类分配共享、可自由选择的RAM,以实现动态灵活分配stats存储的RAM。为实现上述目的,本专利技术提出如下技术方案:一种stats分配的芯片实现方法,包括:报文依次进入芯片的入端口、入方向处理模块、队列模块、出方向处理模块和出端口,在所述入端口、队列模块和出端口均使能做公共统计,在所述入方向处理模块和出方向处理模块均做独有统计,其中,所述公共统计过程包括:为每类统计分配一个地址索引,所述地址索引指向已分配给每类统计的RAM中的存储位置,更新所述RAM;所述独有统计过程包括:根据报文的种类信息,选择需统计的种类,并为每类统计分配一个地址索引,所述地址索引包括选择的RAM标号及在相应RAM中的存储位置,更新所述RAM,其中,所述RAM个数为每个报文需要做统计的种类的最大值。优选地,在做所述公共统计时,所述每种统计存储的RAM标号是静态分配的,所述每种统计在分配到的RAM中的存储位置是动态分配。优选地,在做所述独有统计时,所述每种统计存储的RAM标号和在分配到的RAM中的存储位置均是由动态分配的。优选地,公共统计和独有统计在地址索引完成后,更新所述RAM相应存储位置中统计的报文个数和报文长度信息。优选地,报文进入交换芯片的物理入端口后,入端口检测到有报文进入,根据使能信息做入口方向的每个端口的输入流量的公共统计。优选地,报文进入入口方向处理模块,做包括基于VlanId的、基于MAC的、基于ACL等的独有统计。优选地,报文进入队列模块,根据使能信息做统计队列模块不同队列ID中的报文流量的公共统计。优选地,报文进入出口方向处理模块,做包括基于报文编辑的、基于VlanId的独有统计。优选地,报文到达特定的物理出端口,根据使能信息做出口方向的每个端口的输出流量的公共统计。本专利技术为每一个报文都能够做的公共stats分配独立的RAM,为不同报文所独有的stats种类分配共享、可自由选择的RAM。软件自由分配给stats共享的存储空间指针时,不再是只分配RAM内部的地址指针,而是将RAMID和RAM内部地址同时分配给stats,这样stats能够自由选用RAM,多个stats同时要存储时,只需要分配不同的RAM,不会因固定分配RAM带来冲突。本专利技术技术方案提高了stats存储的灵活性,降低因设定优先级而产生的冲突。附图说明图1是本专利技术公共stats分配独立RAM的示意图;图2是本专利技术独有stats分配共享RAM示意图;图3和图4是本专利技术一种stats分配的芯片实现方法的流程示意图。具体实施方式下面将结合本专利技术的附图,对本专利技术实施例的技术方案进行清楚、完整的描述。本专利技术揭示的一种stats分配的芯片实现方法,支持独立RAM和共享RAM并存的stats存储方式。独立RAM的存储主要存储基于每种报文流(flow)共有的stats,共享RAM的存储主要针对每个flow独有的统计。如图1所示,假设本专利技术技术方案支持L个独立RAM,独立RAM1~独立RAML,支持K种stats的统计,其中L=K。L/K的取值为每种flow共有的stats种类数。每种共有stats对应一块RAM,在做公共统计时,每种统计存储的RAM标号是静态分配的,且每种统计在分配到的RAM中的存储位置是动态分配。设本专利技术技术方案支持N个共享的RAM,共享RAM1~共享RAMN,支持M种stats的统计,其中M>N,M的取值为各种flow需要做stats的种类之和,N的取值为各种flow需要做stats的种类的最大值。每种stats存储的RAM标号(RAMID)由软件动态分配,且在分配到的RAM中的存储位置也是由动态分配的,保证每一类报文需要做的stats都能够实现,又不会产生冲突。具体地,如图1所示,为本专利技术技术方案中公共stats分配独立RAM的示意图,其处理过程如下:使能做公共stats,报文进入芯片,为该类stats分配一个地址索引,该地址索引指向已经静态分配给该类stats的RAM中的相应存储位置,更新该存储位置中统计的报文个数和报文长度信息。如图2所示,为本方案中独有stats分配共享RAM示意图,其处理过程如下:报文进入芯片,根据报文的种类信息,从独有stats中选择需要统计的种类,图2中StatsMux(stats选择器)部分实现为该类stats分配一个地址索引,该索引包括选择的RAMID以及在该RAM中的存储位置。一个报文进来可能会做多个种类的stats,分配索引时要保证为每一种stats分配不同的RAM。方案中共享RAM个数的设计各种flow需要做stats的种类的最大值,显然能够满足为每一种stats分配不同的本文档来自技高网
...

【技术保护点】
一种stats分配的芯片实现方法,其特征在于,包括:报文依次进入芯片的入端口、入方向处理模块、队列模块、出方向处理模块和出端口,在所述入端口、队列模块和出端口均使能做公共统计,在所述入方向处理模块和出方向处理模块均做独有统计,其中,所述公共统计过程包括:为每类统计分配一个地址索引,所述地址索引指向已分配给每类统计的RAM中的存储位置,更新所述RAM;所述独有统计过程包括:根据报文的种类信息,选择需统计的种类,并为每类统计分配一个地址索引,所述地址索引包括选择的RAM标号及在相应RAM中的存储位置,更新所述RAM,其中,所述RAM个数为每个报文需要做统计的种类的最大值。

【技术特征摘要】
1.一种stats分配的芯片实现方法,其特征在于,包括:
报文依次进入芯片的入端口、入方向处理模块、队列模块、出方向处
理模块和出端口,在所述入端口、队列模块和出端口均使能做公共统计,
在所述入方向处理模块和出方向处理模块均做独有统计,其中,
所述公共统计过程包括:为每类统计分配一个地址索引,所述地址索
引指向已分配给每类统计的RAM中的存储位置,更新所述RAM;
所述独有统计过程包括:根据报文的种类信息,选择需统计的种类,
并为每类统计分配一个地址索引,所述地址索引包括选择的RAM标号及在
相应RAM中的存储位置,更新所述RAM,其中,所述RAM个数为每个
报文需要做统计的种类的最大值。
2.根据权利要求1所述的芯片实现方法,其特征在于,在做所述公共统
计时,所述每种统计存储的RAM标号是静态分配的。
3.根据权利要求1所述的芯片实现方法,其特征在于,在做所述公共统
计时,所述每种统计在分配到的RAM中的存储位置是动态分配。
4.根据权利要求1所述的芯片实现方法,其特征在于,在做所述独有统
计时,所述每种统计存储的RAM标...

【专利技术属性】
技术研发人员:张国颖杨曙军
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏;32

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

1