stats分配的芯片實現(xiàn)方法
【技術領域】
[0001]本發(fā)明涉及一種報文統(tǒng)計技術,尤其是涉及一種靈活的stats分配的芯片實現(xiàn)方法。
【背景技術】
[0002]為了方便管理員對交換機進行故障排查和流量監(jiān)控,需要交換機在工作過程中統(tǒng)計各種報文的數(shù)目和總報文長度,比如進出port端口的報文數(shù)目、三層轉發(fā)的報文數(shù)目、符合某條ACE(訪問控制條目,即ACL中的條目)規(guī)則的報文數(shù)目等。報文統(tǒng)計時,軟件會為其分配RAM的地址索引作為起始存儲空間,不同類型的統(tǒng)計信息分配不同存儲空間,實現(xiàn)報文的統(tǒng)計。
[0003]現(xiàn)有技術主要采用的常見方案是:設計多塊RAM,為每一類stats (統(tǒng)計)分配固定的RAM,每一類stats只能在指定的RAM中進行存儲,存儲在指定RAM的哪個位置由軟件靜態(tài)分配。當需要統(tǒng)計的stats種類多于RAM的個數(shù)時,采用多個種類的stats固定存儲優(yōu)先級、分配同一塊RAM不同存儲位置的方案。
[0004]若要保證每種stats分配一塊RAM,成本比較高,占用芯片的面積較大。實際應用中考慮成本等的設計,需要統(tǒng)計的stats種類往往會多于RAM的個數(shù)。如果一次轉發(fā)過程中,報文需要做多種stats統(tǒng)計,這幾種stats又恰巧被固定分配同一塊RAM時,stats產(chǎn)生沖突,RAM只能更新優(yōu)先級最高的stats對應的報文數(shù)和報文長度,優(yōu)先級低的stats不會被更新。而其他不需要做的stats的RAM此時就是空閑狀態(tài)。因此采用固定分配RAM的方案極大的限制了 stats存儲的靈活性,導致stats統(tǒng)計的可靠性降低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于克服現(xiàn)有技術的缺陷,提供一種stats分配的芯片實現(xiàn)方法,為每一個報文都能夠做的公共stats分配獨立的RAM,為不同報文所獨有的stats種類分配共享、可自由選擇的RAM,以實現(xiàn)動態(tài)靈活分配stats存儲的RAM。
[0006]為實現(xiàn)上述目的,本發(fā)明提出如下技術方案:一種stats分配的芯片實現(xiàn)方法,包括:
[0007]報文依次進入芯片的入端口、入方向處理模塊、隊列模塊、出方向處理模塊和出端口,在所述入端口、隊列模塊和出端口均使能做公共統(tǒng)計,在所述入方向處理模塊和出方向處理模塊均做獨有統(tǒng)計,其中,
[0008]所述公共統(tǒng)計過程包括:為每類統(tǒng)計分配一個地址索引,所述地址索引指向已分配給每類統(tǒng)計的RAM中的存儲位置,更新所述RAM ;
[0009]所述獨有統(tǒng)計過程包括:根據(jù)報文的種類信息,選擇需統(tǒng)計的種類,并為每類統(tǒng)計分配一個地址索引,所述地址索引包括選擇的RAM標號及在相應RAM中的存儲位置,更新所述RAM,其中,所述RAM個數(shù)為每個報文需要做統(tǒng)計的種類的最大值。
[0010]優(yōu)選地,在做所述公共統(tǒng)計時,所述每種統(tǒng)計存儲的RAM標號是靜態(tài)分配的,所述每種統(tǒng)計在分配到的RAM中的存儲位置是動態(tài)分配。
[0011 ] 優(yōu)選地,在做所述獨有統(tǒng)計時,所述每種統(tǒng)計存儲的RAM標號和在分配到的RAM中的存儲位置均是由動態(tài)分配的。
[0012]優(yōu)選地,公共統(tǒng)計和獨有統(tǒng)計在地址索引完成后,更新所述RAM相應存儲位置中統(tǒng)計的報文個數(shù)和報文長度信息。
[0013]優(yōu)選地,報文進入交換芯片的物理入端口后,入端口檢測到有報文進入,根據(jù)使能信息做入口方向的每個端口的輸入流量的公共統(tǒng)計。
[0014]優(yōu)選地,報文進入入口方向處理模塊,做包括基于Vlan Id的、基于MAC的、基于ACL等的獨有統(tǒng)計。
[0015]優(yōu)選地,報文進入隊列模塊,根據(jù)使能信息做統(tǒng)計隊列模塊不同隊列ID中的報文流量的公共統(tǒng)計。
[0016]優(yōu)選地,報文進入出口方向處理模塊,做包括基于報文編輯的、基于Vlan Id的獨有統(tǒng)計。
[0017]優(yōu)選地,報文到達特定的物理出端口,根據(jù)使能信息做出口方向的每個端口的輸出流量的公共統(tǒng)計。
[0018]本發(fā)明為每一個報文都能夠做的公共stats分配獨立的RAM,為不同報文所獨有的stats種類分配共享、可自由選擇的RAM。軟件自由分配給stats共享的存儲空間指針時,不再是只分配RAM內(nèi)部的地址指針,而是將RAMID和RAM內(nèi)部地址同時分配給stats,這樣stats能夠自由選用RAM,多個stats同時要存儲時,只需要分配不同的RAM,不會因固定分配RAM帶來沖突。本發(fā)明技術方案提高了 stats存儲的靈活性,降低因設定優(yōu)先級而產(chǎn)生的沖突。
【附圖說明】
[0019]圖1是本發(fā)明公共stats分配獨立RAM的示意圖;
[0020]圖2是本發(fā)明獨有stats分配共享RAM示意圖;
[0021]圖3和圖4是本發(fā)明一種stats分配的芯片實現(xiàn)方法的流程示意圖。
【具體實施方式】
[0022]下面將結合本發(fā)明的附圖,對本發(fā)明實施例的技術方案進行清楚、完整的描述。
[0023]本發(fā)明揭示的一種stats分配的芯片實現(xiàn)方法,支持獨立RAM和共享RAM并存的stats存儲方式。獨立RAM的存儲主要存儲基于每種報文流(flow)共有的stats,共享RAM的存儲主要針對每個flow獨有的統(tǒng)計。
[0024]如圖1所示,假設本發(fā)明技術方案支持L個獨立RAM,獨立RAM1?獨立RAML,支持K種stats的統(tǒng)計,其中L = K。L/K的取值為每種flow共有的stats種類數(shù)。每種共有stats對應一塊RAM,在做公共統(tǒng)計時,每種統(tǒng)計存儲的RAM標號是靜態(tài)分配的,且每種統(tǒng)計在分配到的RAM中的存儲位置是動態(tài)分配。
[0025]設本發(fā)明技術方案支持N個共享的RAM,共享RAM1?共享RAMN,支持Μ種stats的統(tǒng)計,其中M>N,M的取值為各種flow需要做stats的種類之和,N的取值為各種flow需要做stats的種類的最大值。每種stats存儲的RAM標號(RAMID)由軟件動態(tài)分配,且在分配到的RAM中的存儲位置也是由動態(tài)分配的,保證每一類報文需要做的stats都能夠實現(xiàn),又不會產(chǎn)生沖突。
[0026]具體地,如圖1所示,為本發(fā)明技術方案中公共stats分配獨立RAM的示意圖,其處理過程如下:
[0027]使能做公共stats,報文進入芯片,為該類stats分配一個地址索引,該地址索引指向已經(jīng)