一種協(xié)議報文上送cpu的芯片實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種協(xié)議報文的芯片處理技術(shù),尤其涉及一種協(xié)議報文上送CPU的芯片實現(xiàn)方法。
【背景技術(shù)】
[0002]報文是網(wǎng)絡(luò)中交換與傳輸?shù)臄?shù)據(jù)單元,其中包含了將要發(fā)送的完整的數(shù)據(jù)信息,同時,報文也是網(wǎng)絡(luò)傳輸?shù)膯挝?,傳輸過程中會不斷的封裝成分組、包或幀來傳輸?;ヂ?lián)網(wǎng)業(yè)務(wù)的多樣化和差異化要求網(wǎng)絡(luò)設(shè)備能夠根據(jù)網(wǎng)絡(luò)中報文的相關(guān)信息對報文進行差異化處理,針對不同類別的報文采取不同的操作。
[0003]在現(xiàn)有的系統(tǒng)中,CPU資源是有限的,大量異常報文上送CPU處理,占用CPU資源,導(dǎo)致CPU負荷過重。在以太網(wǎng)交換機中,大部分的數(shù)據(jù)報文是通過專用芯片轉(zhuǎn)發(fā)的,不需要CPU進行處理,而網(wǎng)絡(luò)中的各種協(xié)議報文則是需要經(jīng)過專用芯片傳輸?shù)较到y(tǒng)內(nèi)存中,使CPU能夠訪問并對協(xié)議報文進行處理。
[0004]因此,現(xiàn)有網(wǎng)絡(luò)芯片識別上層協(xié)議,往往使用解析模塊,然后基于解析出來的協(xié)議種類,置上(PU的動作。
[0005]上層協(xié)議的識別,一般利用每個協(xié)議層中的協(xié)議域中包含的協(xié)議ID來表示更高一層的報文類型。例如,IP頭中的協(xié)議域為17,表示高層協(xié)議為UDP(User DatagramProtocol,用戶數(shù)據(jù)協(xié)議);IP頭中的協(xié)議域為6,表示高層協(xié)議為TCP(Transmiss1nControl Protocol,傳輸控制協(xié)議);IP頭中的協(xié)議域為I,表不ICMP(Internet ControlMessage Protocol,Internet控制報文協(xié)議)c^TCP和UDP包內(nèi)的應(yīng)用程協(xié)議的類型依靠的是TCP和UDP包首部的端口號來進行區(qū)分。
[0006]但是當(dāng)遇到特殊報文時,標準解析模塊無法識別報文,于是對于一些廣播格式的協(xié)議,是否上CPU的控制往往不夠精確。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提出了一種協(xié)議報文上送CPU的芯片實現(xiàn)方法,通過一種有效的芯片識別機制,以實現(xiàn)精確控制各種格式的協(xié)議報文是否上CPU。
[0008]本發(fā)明提供了一種協(xié)議報文上送CPU的芯片實現(xiàn)方法,該方法包括:
[0009]在芯片中設(shè)置一匹配表,所述匹配表中配置有Except1n ID和策略Cl;在端口、VLAN或隧道協(xié)議的配置中設(shè)置一 Bitmap,用于控制所述策略Cl是否執(zhí)行;
[0010]協(xié)議報文進入芯片,首先進行匹配查找,根據(jù)報文中的關(guān)鍵字段查找所述匹配表,得到對應(yīng)的所述Except1n ID和策略Cl,再根據(jù)所述Bitmap決定將所述協(xié)議報文在上CPU的同時轉(zhuǎn)發(fā)或者丟棄。
[0011 ] 優(yōu)選地,所述匹配查找的關(guān)鍵字段包含源MAC地址,目的MAC地址和IP五元組,所述IP五元組為報文源IP地址,源端口,目的IP地址,目的端口和傳輸層協(xié)議。
[0012]優(yōu)選地,所述Except1n ID設(shè)置在匹配查找結(jié)果的屬性中,其取值范圍為0_N,其中,N為大于等于零的整數(shù)。
[0013]優(yōu)選地,所述策略Cl設(shè)置在匹配查找結(jié)果的屬性中。
[0014]優(yōu)選地,所述策略Cl為報文在上CPU的同時丟棄該報文,或者為報文在上CPU的同時轉(zhuǎn)發(fā)該報文。
[0015]優(yōu)選地,所述Bitmap寬度與所述Except1n ID的最大值相同。
[0016]優(yōu)選地,所述Bitmap用二進制表示。
[0017]優(yōu)選地,所述匹配查找,當(dāng)查找有結(jié)果時所述才Except1n ID生效,此時所述Except1n ID取值不為O。
[0018]優(yōu)選地,若所述二進制表示的Bitmap從低位開始的第El個比特位為O,則策略Cl不生效;若所述二進制表示的Bitmap從低位開始的第El個比特位不為O,則策略Cl生效,所述El表示Except1n ID的值。
[0019]優(yōu)選地,若所述二進制表示的Bitmap從低位開始的第El個比特位為I,則策略Cl生效,所述El表示Except1n ID的值。
[0020]本發(fā)明能精確控制各種格式的協(xié)議報文是否上CPU,并且在上CPU的同時,在端口、VLAN或隧道協(xié)議上靈活控制是否丟棄或轉(zhuǎn)發(fā)該報文。
【附圖說明】
[0021]圖1是本發(fā)明協(xié)議報文上送CPU的芯片實現(xiàn)方法的流程示意圖。
【具體實施方式】
[0022]下面將對本發(fā)明實施例的技術(shù)方案進行清楚、完整的描述。
[0023]本發(fā)明揭示了一種協(xié)議報文上送CHJ的芯片實現(xiàn)方法,通過在芯片中設(shè)置一個CAM,用來對報文進行匹配查找,在查找結(jié)果的屬性中設(shè)置Except1n ID和策略Cl,在端口、VLAN或隧道協(xié)議的配置中設(shè)置Bitmap控制策略Cl的執(zhí)行,從而對各種協(xié)議報文上送CPU的行為進行精確控制。
[0024]本發(fā)明所揭示的一種協(xié)議報文上送CPU的芯片實現(xiàn)方法,如圖1所示:
[0025]首先,在協(xié)議報文進入芯片之前,在芯片中設(shè)置一匹配表,所述匹配表中配置有Except1n ID和策略Cl;在端口、VLAN或隧道協(xié)議的配置中設(shè)置一Bitmap,用于控制所述策略Cl是否執(zhí)行。
[0026]具體地,在芯片的入方向處理引擎(IPE)中,設(shè)置一個CAM,CAM中配置有查找的關(guān)鍵字段,用于進行匹配查找,查找的關(guān)鍵字段包含源MAC地址,目的MAC地址和IP五元組,協(xié)議報文進入芯片后,根據(jù)報文中的源MAC地址,目的MAC地址和IP五元組與CAM中配置的關(guān)鍵字段進行匹配。
[0027]CAM查找結(jié)果的屬性中,為每一種協(xié)議報文設(shè)置一個Except1n ID,記為E1,取值范圍為0-Ν,Ν為大于等于O的整數(shù),即一個Except1n ID代表一種協(xié)議報文。El取值范圍為0-N,即表示支持N種協(xié)議報文。在CAM進行匹配查找時,只有查到結(jié)果,Ec^pt1n ID才有效。
[0028]報文進入芯片,在與CAM中設(shè)置好的特征字段相匹配后,在其屬性中得到此報文的Except1n ID。對于某些報文來說,需要在上CPU的同時轉(zhuǎn)發(fā)該報文到下一臺需要此報文的設(shè)備上;而某些報文則只需要上送給CPU,不需要轉(zhuǎn)發(fā),就直接丟棄。因此,本發(fā)明在CAM查找結(jié)果的屬性中,還設(shè)置了報文的處理策略,為下面描述方便,記為策略Cl。策略Cl為報文在上CPU的同時丟棄該報文或者報文在上CPU的同時轉(zhuǎn)發(fā)該報文。
[0029]對于策略Cl的執(zhí)行與否,