stats分配的芯片实现方法

文档序号:9631496阅读:516来源:国知局
stats分配的芯片实现方法
【技术领域】
[0001]本发明涉及一种报文统计技术,尤其是涉及一种灵活的stats分配的芯片实现方法。
【背景技术】
[0002]为了方便管理员对交换机进行故障排查和流量监控,需要交换机在工作过程中统计各种报文的数目和总报文长度,比如进出port端口的报文数目、三层转发的报文数目、符合某条ACE(访问控制条目,即ACL中的条目)规则的报文数目等。报文统计时,软件会为其分配RAM的地址索引作为起始存储空间,不同类型的统计信息分配不同存储空间,实现报文的统计。
[0003]现有技术主要采用的常见方案是:设计多块RAM,为每一类stats (统计)分配固定的RAM,每一类stats只能在指定的RAM中进行存储,存储在指定RAM的哪个位置由软件静态分配。当需要统计的stats种类多于RAM的个数时,采用多个种类的stats固定存储优先级、分配同一块RAM不同存储位置的方案。
[0004]若要保证每种stats分配一块RAM,成本比较高,占用芯片的面积较大。实际应用中考虑成本等的设计,需要统计的stats种类往往会多于RAM的个数。如果一次转发过程中,报文需要做多种stats统计,这几种stats又恰巧被固定分配同一块RAM时,stats产生冲突,RAM只能更新优先级最高的stats对应的报文数和报文长度,优先级低的stats不会被更新。而其他不需要做的stats的RAM此时就是空闲状态。因此采用固定分配RAM的方案极大的限制了 stats存储的灵活性,导致stats统计的可靠性降低。

【发明内容】

[0005]本发明的目的在于克服现有技术的缺陷,提供一种stats分配的芯片实现方法,为每一个报文都能够做的公共stats分配独立的RAM,为不同报文所独有的stats种类分配共享、可自由选择的RAM,以实现动态灵活分配stats存储的RAM。
[0006]为实现上述目的,本发明提出如下技术方案:一种stats分配的芯片实现方法,包括:
[0007]报文依次进入芯片的入端口、入方向处理模块、队列模块、出方向处理模块和出端口,在所述入端口、队列模块和出端口均使能做公共统计,在所述入方向处理模块和出方向处理模块均做独有统计,其中,
[0008]所述公共统计过程包括:为每类统计分配一个地址索引,所述地址索引指向已分配给每类统计的RAM中的存储位置,更新所述RAM ;
[0009]所述独有统计过程包括:根据报文的种类信息,选择需统计的种类,并为每类统计分配一个地址索引,所述地址索引包括选择的RAM标号及在相应RAM中的存储位置,更新所述RAM,其中,所述RAM个数为每个报文需要做统计的种类的最大值。
[0010]优选地,在做所述公共统计时,所述每种统计存储的RAM标号是静态分配的,所述每种统计在分配到的RAM中的存储位置是动态分配。
[0011 ] 优选地,在做所述独有统计时,所述每种统计存储的RAM标号和在分配到的RAM中的存储位置均是由动态分配的。
[0012]优选地,公共统计和独有统计在地址索引完成后,更新所述RAM相应存储位置中统计的报文个数和报文长度信息。
[0013]优选地,报文进入交换芯片的物理入端口后,入端口检测到有报文进入,根据使能信息做入口方向的每个端口的输入流量的公共统计。
[0014]优选地,报文进入入口方向处理模块,做包括基于Vlan Id的、基于MAC的、基于ACL等的独有统计。
[0015]优选地,报文进入队列模块,根据使能信息做统计队列模块不同队列ID中的报文流量的公共统计。
[0016]优选地,报文进入出口方向处理模块,做包括基于报文编辑的、基于Vlan Id的独有统计。
[0017]优选地,报文到达特定的物理出端口,根据使能信息做出口方向的每个端口的输出流量的公共统计。
[0018]本发明为每一个报文都能够做的公共stats分配独立的RAM,为不同报文所独有的stats种类分配共享、可自由选择的RAM。软件自由分配给stats共享的存储空间指针时,不再是只分配RAM内部的地址指针,而是将RAMID和RAM内部地址同时分配给stats,这样stats能够自由选用RAM,多个stats同时要存储时,只需要分配不同的RAM,不会因固定分配RAM带来冲突。本发明技术方案提高了 stats存储的灵活性,降低因设定优先级而产生的冲突。
【附图说明】
[0019]图1是本发明公共stats分配独立RAM的示意图;
[0020]图2是本发明独有stats分配共享RAM示意图;
[0021]图3和图4是本发明一种stats分配的芯片实现方法的流程示意图。
【具体实施方式】
[0022]下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
[0023]本发明揭示的一种stats分配的芯片实现方法,支持独立RAM和共享RAM并存的stats存储方式。独立RAM的存储主要存储基于每种报文流(flow)共有的stats,共享RAM的存储主要针对每个flow独有的统计。
[0024]如图1所示,假设本发明技术方案支持L个独立RAM,独立RAM1?独立RAML,支持K种stats的统计,其中L = K。L/K的取值为每种flow共有的stats种类数。每种共有stats对应一块RAM,在做公共统计时,每种统计存储的RAM标号是静态分配的,且每种统计在分配到的RAM中的存储位置是动态分配。
[0025]设本发明技术方案支持N个共享的RAM,共享RAM1?共享RAMN,支持Μ种stats的统计,其中M>N,M的取值为各种flow需要做stats的种类之和,N的取值为各种flow需要做stats的种类的最大值。每种stats存储的RAM标号(RAMID)由软件动态分配,且在分配到的RAM中的存储位置也是由动态分配的,保证每一类报文需要做的stats都能够实现,又不会产生冲突。
[0026]具体地,如图1所示,为本发明技术方案中公共stats分配独立RAM的示意图,其处理过程如下:
[0027]使能做公共stats,报文进入芯片,为该类stats分配一个地址索引,该地址索引指向已经
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1