基于交換芯片實(shí)現(xiàn)報(bào)文高速統(tǒng)計(jì)的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種基于交換芯片實(shí)現(xiàn)報(bào)文高速統(tǒng)計(jì)的方法及裝置。
【背景技術(shù)】
[0002]在現(xiàn)有的交換系統(tǒng)中,網(wǎng)絡(luò)處理器一般是基于ASIC芯片設(shè)計(jì),所述ASIC為Applicat1n Specific Integrated Circuit的英文縮寫,是一種為專門目的而設(shè)計(jì)的集成電路;其特點(diǎn)是面向特定用戶的需求,ASIC在批量生產(chǎn)時(shí)與通用集成電路相比具有體積更小、功耗更低、可靠性提高、性能提高、保密性增強(qiáng)、成本降低等優(yōu)點(diǎn)。通常情況下,報(bào)文在所述網(wǎng)絡(luò)處理器內(nèi)部不同的階段,需要做不同的統(tǒng)計(jì),在統(tǒng)計(jì)時(shí),會(huì)把統(tǒng)計(jì)指令發(fā)給統(tǒng)計(jì)模塊,現(xiàn)有技術(shù)中,該統(tǒng)計(jì)模塊通常僅基于Stats RAM進(jìn)行處理;若報(bào)文也正處于高速轉(zhuǎn)發(fā)階段,且在對(duì)報(bào)文統(tǒng)計(jì)過(guò)程中,每個(gè)報(bào)文統(tǒng)計(jì)的次數(shù)多,由于所述Stats RAM的速度比較慢,則會(huì)使統(tǒng)計(jì)模塊來(lái)不及處理報(bào)文,而導(dǎo)致報(bào)文緩存溢出,丟失部分統(tǒng)計(jì)信息。
[0003]進(jìn)一步的,為了實(shí)現(xiàn)報(bào)文的高速轉(zhuǎn)發(fā),現(xiàn)有技術(shù)中的解決方案為:限制對(duì)一個(gè)報(bào)文的統(tǒng)計(jì)次數(shù),一般將各個(gè)階段的統(tǒng)計(jì)次數(shù)限制為1-2次,然而,隨著網(wǎng)絡(luò)業(yè)務(wù)的疊加,報(bào)文在高速轉(zhuǎn)發(fā)過(guò)程中,需要能同時(shí)支持4-5次統(tǒng)計(jì),甚至更多,上述方案很難滿足實(shí)際需求,從而會(huì)因統(tǒng)計(jì)次數(shù)達(dá)不到實(shí)際要求而產(chǎn)出更多的問(wèn)題。
[0004]綜上,在報(bào)文高速轉(zhuǎn)發(fā)過(guò)程中,現(xiàn)有技術(shù)中通常采用上述兩種方案對(duì)報(bào)文進(jìn)行統(tǒng)計(jì),兩個(gè)方案需要對(duì)并行統(tǒng)計(jì)次數(shù)或并行統(tǒng)計(jì)階段做選擇取舍,而在報(bào)文高速轉(zhuǎn)發(fā)過(guò)程中,無(wú)論做哪種取舍,均對(duì)報(bào)文的傳遞結(jié)果產(chǎn)生不良的影響。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種基于交換芯片實(shí)現(xiàn)報(bào)文高速統(tǒng)計(jì)方法及裝置。
[0006]為實(shí)現(xiàn)上述目的之一,本發(fā)明一實(shí)施方式提供的基于交換芯片實(shí)現(xiàn)報(bào)文高速統(tǒng)計(jì)方法,所述方法包括:接收?qǐng)?bào)文,根據(jù)報(bào)文攜帶的信息在交換機(jī)的各個(gè)統(tǒng)計(jì)階段對(duì)所述報(bào)文做相應(yīng)統(tǒng)計(jì)生成報(bào)文統(tǒng)計(jì)信息;
將所述報(bào)文統(tǒng)計(jì)信息對(duì)應(yīng)存儲(chǔ)到所述各個(gè)統(tǒng)計(jì)階段對(duì)應(yīng)的Cache中,完成報(bào)文在所述交換機(jī)各個(gè)統(tǒng)計(jì)階段的統(tǒng)計(jì)需求;
所述Cache根據(jù)交換機(jī)各個(gè)統(tǒng)計(jì)階段的總數(shù)量以及各個(gè)統(tǒng)計(jì)階段的位置關(guān)系進(jìn)行配置,其用于記錄及存儲(chǔ)報(bào)文在各個(gè)統(tǒng)計(jì)階段的報(bào)文統(tǒng)計(jì)信息。
[0007]作為本發(fā)明的進(jìn)一步改進(jìn),所述“所述Cache根據(jù)交換機(jī)各個(gè)統(tǒng)計(jì)階段的總數(shù)量以及各個(gè)統(tǒng)計(jì)階段的位置關(guān)系進(jìn)行配置”具體包括:
對(duì)所述交換機(jī)的各個(gè)統(tǒng)計(jì)階段一對(duì)一配置Cache。
[0008]作為本發(fā)明的進(jìn)一步改進(jìn),所述“所述Cache根據(jù)交換機(jī)各個(gè)統(tǒng)計(jì)階段的總數(shù)量以及各個(gè)統(tǒng)計(jì)階段的位置關(guān)系進(jìn)行配置”具體包括:
獲取報(bào)文在通過(guò)所述交換機(jī)高速轉(zhuǎn)發(fā)過(guò)程中,所述交換機(jī)中互斥運(yùn)行的統(tǒng)計(jì)階段; 并對(duì)互斥運(yùn)行的多個(gè)統(tǒng)計(jì)階段配置同一個(gè)Cache。
[0009]作為本發(fā)明的進(jìn)一步改進(jìn),在所述交換機(jī)中配置觸發(fā)定時(shí)器和Stats RAM存儲(chǔ)器;
所述“將所述報(bào)文統(tǒng)計(jì)信息對(duì)應(yīng)存儲(chǔ)到所述各個(gè)統(tǒng)計(jì)階段對(duì)應(yīng)的Cache中”后,所述方法還包括:
在所述觸發(fā)定時(shí)器的每個(gè)掃描周期后,將各個(gè)所述Cache中的報(bào)文統(tǒng)計(jì)信息對(duì)應(yīng)累加到所述Stats RAM存儲(chǔ)器中,同時(shí),將所述Cache中的報(bào)文統(tǒng)計(jì)信息清空。
[0010]作為本發(fā)明的進(jìn)一步改進(jìn),為交換機(jī)的各個(gè)統(tǒng)計(jì)階段對(duì)應(yīng)預(yù)置不同的pointer,通過(guò)所述Pointer將各個(gè)統(tǒng)計(jì)階段生成的報(bào)文統(tǒng)計(jì)信息索引到其唯一對(duì)應(yīng)的所述Cache中;
為每個(gè)所述Cache對(duì)應(yīng)預(yù)置不同的Base,通過(guò)所述Po inter+Base將各個(gè)統(tǒng)計(jì)階段生成的報(bào)文統(tǒng)計(jì)信息索引到其唯一對(duì)應(yīng)的所述Stats RAM存儲(chǔ)器中。
[0011]為實(shí)現(xiàn)上述目的之一,本發(fā)明一實(shí)施方式提供的基于交換芯片實(shí)現(xiàn)報(bào)文高速統(tǒng)計(jì)裝置,所述裝置包括:統(tǒng)計(jì)信息生成模塊、信息處理模塊、存儲(chǔ)模塊;
統(tǒng)計(jì)信息生成模塊用于接收?qǐng)?bào)文,根據(jù)報(bào)文攜帶的信息在交換機(jī)的各個(gè)統(tǒng)計(jì)階段對(duì)所述報(bào)文做相應(yīng)統(tǒng)計(jì)生成報(bào)文統(tǒng)計(jì)信息;
信息處理模塊,用于將所述報(bào)文統(tǒng)計(jì)信息對(duì)應(yīng)存儲(chǔ)到所述各個(gè)統(tǒng)計(jì)階段對(duì)應(yīng)的Cache中,完成報(bào)文在所述交換機(jī)各個(gè)統(tǒng)計(jì)階段的統(tǒng)計(jì)需求;
所述Cache設(shè)置于所述存儲(chǔ)模塊中,其根據(jù)交換機(jī)各個(gè)統(tǒng)計(jì)階段的總數(shù)量以及各個(gè)統(tǒng)計(jì)階段的位置關(guān)系進(jìn)行配置,用于記錄及存儲(chǔ)報(bào)文在各個(gè)統(tǒng)計(jì)階段的報(bào)文統(tǒng)計(jì)信息。
[0012]作為本發(fā)明的進(jìn)一步改進(jìn),所述存儲(chǔ)模塊還用于對(duì)所述交換機(jī)的各個(gè)統(tǒng)計(jì)階段一對(duì)一配置Cache。
[0013]作為本發(fā)明的進(jìn)一步改進(jìn),所述存儲(chǔ)模塊還用于獲取報(bào)文在通過(guò)所述交換機(jī)高速轉(zhuǎn)發(fā)過(guò)程中,所述交換機(jī)中互斥運(yùn)行的統(tǒng)計(jì)階段;
并對(duì)互斥運(yùn)行的多個(gè)統(tǒng)計(jì)階段配置同一個(gè)Cache。
[0014]作為本發(fā)明的進(jìn)一步改進(jìn),所述存儲(chǔ)模塊中還配置觸發(fā)定時(shí)器和Stats RAM存儲(chǔ)器;
所述信息處理模塊還用于在所述觸發(fā)定時(shí)器的每個(gè)掃描周期后,將各個(gè)所述Cache中的報(bào)文統(tǒng)計(jì)信息對(duì)應(yīng)累加到所述Stats RAM存儲(chǔ)器中,同時(shí),將所述Cache中的報(bào)文統(tǒng)計(jì)信息清空。
[0015]作為本發(fā)明的進(jìn)一步改進(jìn),所述存儲(chǔ)模塊為交換機(jī)的各個(gè)統(tǒng)計(jì)階段對(duì)應(yīng)預(yù)置不同的pointer,所述信息處理模塊通過(guò)所述Pointer將各個(gè)統(tǒng)計(jì)階段生成的報(bào)文統(tǒng)計(jì)信息索引到其唯一對(duì)應(yīng)的所述Cache中;
所述存儲(chǔ)模塊為每個(gè)所述Cache對(duì)應(yīng)預(yù)置不同的Base,所述信息處理模塊通過(guò)所述Pointer+Base將各個(gè)統(tǒng)計(jì)階段生成的報(bào)文統(tǒng)計(jì)信息索引到其唯一對(duì)應(yīng)的所述Stats RAM存儲(chǔ)器中。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本發(fā)明的基于交換芯片實(shí)現(xiàn)報(bào)文高速統(tǒng)計(jì)方法及裝置,在交換機(jī)中增加Cache,并將生成的報(bào)文統(tǒng)計(jì)信息緩存到所述Cache中,在網(wǎng)絡(luò)處理器高速轉(zhuǎn)發(fā)的時(shí)候,有效增加對(duì)報(bào)文的統(tǒng)計(jì)次數(shù)以及統(tǒng)計(jì)準(zhǔn)確度,且支持各個(gè)不同的統(tǒng)計(jì)階段同時(shí)使能統(tǒng)計(jì)功能,以滿足各種網(wǎng)絡(luò)業(yè)務(wù)的需要。
【附圖說(shuō)明】
[0017]圖1是本發(fā)明一實(shí)施方式中基于交換芯片實(shí)現(xiàn)報(bào)文高速統(tǒng)計(jì)方法的流程圖;
圖2是本發(fā)明一實(shí)施方式中基于交換芯片實(shí)現(xiàn)報(bào)文高速統(tǒng)計(jì)方法的模塊圖;
圖3是本發(fā)明一實(shí)施方式中L2VPN場(chǎng)景下的報(bào)文經(jīng)過(guò)交換機(jī)的各個(gè)統(tǒng)計(jì)階段的結(jié)構(gòu)示意圖;
圖4是在圖3基礎(chǔ)上增加Cache的結(jié)構(gòu)示意圖;
圖5是本發(fā)明一實(shí)施方式的配置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0018]以下將結(jié)合附圖所示的【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)行詳細(xì)描述。但這些實(shí)施方式并不限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員根據(jù)這些實(shí)施方式所做出的結(jié)構(gòu)、方法、或功能上的變換均包含在本發(fā)明的保護(hù)范圍內(nèi)。
[0019]如圖1所示,在本發(fā)明的一實(shí)施方式中,所述基于交換芯片實(shí)現(xiàn)報(bào)文高速統(tǒng)計(jì)方法,包括:
接收?qǐng)?bào)文,根據(jù)報(bào)文攜帶的信息在交換機(jī)的各個(gè)統(tǒng)計(jì)階段對(duì)所述報(bào)文做相應(yīng)統(tǒng)計(jì)生成報(bào)文統(tǒng)計(jì)信息;
在報(bào)文的轉(zhuǎn)發(fā)過(guò)程中,根據(jù)報(bào)文攜帶信息的不同,以及用戶的需求,交換機(jī)中各個(gè)統(tǒng)計(jì)階段的個(gè)數(shù)是非常多的,一般會(huì)超過(guò)20個(gè),在本發(fā)明一【具體實(shí)施方式】中,為了便于描述,結(jié)合圖3所示,以L2VPN場(chǎng)景下的交換機(jī)為例做具體描述,該場(chǎng)景中,僅列舉了其中的6個(gè)統(tǒng)計(jì)階段。
[0020]本實(shí)施方式中,在L2VPN場(chǎng)景下,報(bào)文進(jìn)入交換機(jī)后,在交換機(jī)的各個(gè)統(tǒng)計(jì)階段做相應(yīng)的解析生成報(bào)文統(tǒng)計(jì)信息,并將該報(bào)文統(tǒng)計(jì)信息存儲(chǔ)在所述交換機(jī)中,待用戶對(duì)某一統(tǒng)計(jì)階段的數(shù)據(jù)有需求時(shí),調(diào)用該統(tǒng)計(jì)階段的報(bào)文統(tǒng)計(jì)信息。
[0021]報(bào)文進(jìn)入交換機(jī)后,依次通過(guò)Parser 1、L2/L3/MPLSLookup (TCAM/SRAM) ,Process,Ingress ACL、Forward、Queuing、Parser2、Packet Modificat1n、Egress ACL 后車專發(fā)到其他報(bào)文接收設(shè)備。
[0022]其中,所述Parserl基于報(bào)文的L2/L3/L4 header做解析;L2/L3/MPLSLookup (TCAM/SRAM)表示根據(jù)Parserl的信息做查表操作;Process為根據(jù)查表結(jié)果,對(duì)報(bào)文做處理,找到出端口 ;Ingress ACL表示使用訪問(wèn)控制列表,控制報(bào)文的丟棄等行為;Forward表示給報(bào)文加內(nèi)部控制頭,再發(fā)到下一個(gè)模塊;Queuing表示入queue、drop queue以及對(duì)報(bào)文做調(diào)度等;Parser2表示Egress方向的報(bào)文解析;Packet Modificat1n表示對(duì)報(bào)文進(jìn)行編輯Egress ACL表示使用訪問(wèn)控制列表,控制報(bào)文的丟棄等行為。
[0023]在交換機(jī)的上述行為中,對(duì)報(bào)文先后做6次統(tǒng)計(jì),報(bào)文經(jīng)過(guò)Process時(shí),對(duì)報(bào)文解封裝處理,相應(yīng)對(duì)其做兩次統(tǒng)計(jì):即統(tǒng)計(jì)階段1:對(duì)外層Label統(tǒng)計(jì),統(tǒng)計(jì)階段2:對(duì)內(nèi)層Label統(tǒng)計(jì);報(bào)文經(jīng)過(guò)Queuing時(shí),對(duì)報(bào)文入queue、drop queue均會(huì)做的統(tǒng)計(jì),即統(tǒng)計(jì)階段3:入queue的統(tǒng)計(jì),統(tǒng)計(jì)階段4:drop queue的統(tǒng)計(jì);報(bào)文