專利名稱:網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)網(wǎng)絡(luò)通信技術(shù),特別涉及網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法。
技術(shù)背景目前國內(nèi)外各大通信設(shè)備公司的數(shù)據(jù)產(chǎn)品中,大部分使用網(wǎng)絡(luò)處理器來實(shí)現(xiàn)各類路由轉(zhuǎn)發(fā) 業(yè)務(wù),尤其在中高端的路由器,交換機(jī)等產(chǎn)品中,由于業(yè)務(wù)的不斷疊加,功能模塊的逐步增 加,采用FPGA等硬件邏輯的方式遠(yuǎn)不如網(wǎng)絡(luò)處理器實(shí)現(xiàn)靈活,但由于網(wǎng)絡(luò)處理器的實(shí)現(xiàn)實(shí)際 上也是一種軟件的方式,在實(shí)際運(yùn)行中出現(xiàn)異常的情況相比FPGA等硬件實(shí)現(xiàn)更高。另外,采取網(wǎng)絡(luò)處理器的方式實(shí)現(xiàn)的數(shù)據(jù)產(chǎn)品,在運(yùn)行的軟件上,存在兩個(gè)相對(duì)獨(dú)立的部 分,最底層的微碼和上層的嵌入式系統(tǒng)。由于微碼指令的復(fù)雜性以及與硬件的關(guān)聯(lián)性,微引 擎出現(xiàn)的問題,相對(duì)上層更加隱蔽和難以定位,尤其在實(shí)際的運(yùn)營商網(wǎng)絡(luò)中運(yùn)行的時(shí)候,故 障常常會(huì)導(dǎo)致網(wǎng)絡(luò)或者鏈路的中斷,后果嚴(yán)重,而且對(duì)于設(shè)備廠商的維護(hù)人員來說,遠(yuǎn)程定 位相對(duì)困難。專利號(hào)為CN01120964的專利中,揭示了一種微引擎的檢測(cè)方法,即通過網(wǎng)絡(luò)處理器的內(nèi) 核上層程序向其發(fā)送特定的報(bào)文,然后通過端口的環(huán)回進(jìn)行處理,生成測(cè)試報(bào)文,這種方法 需要主動(dòng)去觸發(fā)微引擎的測(cè)試,在實(shí)際的網(wǎng)絡(luò)運(yùn)行中并不能及時(shí)發(fā)現(xiàn)問題,同時(shí)在測(cè)試的時(shí) 候,需要一個(gè)空余的端口來進(jìn)行環(huán)回。因此,如何解決及時(shí)快速地檢測(cè)到微引擎出現(xiàn)的異常情況,同時(shí)大幅度降低微引擎出現(xiàn)問 題帶來的網(wǎng)絡(luò)中斷時(shí)間成為通信設(shè)備公司越來越關(guān)心的問題。 發(fā)明內(nèi)容為了克服現(xiàn)有技術(shù)的缺陷和不足,本發(fā)明的目的在于提供一種網(wǎng)絡(luò)處理器微引擎運(yùn)行異 常的檢測(cè)處理方法,能夠及時(shí)快速地檢測(cè)到微引擎出現(xiàn)的異常情況,同時(shí)大幅度降低微引擎 出現(xiàn)問題帶來的網(wǎng)絡(luò)中斷時(shí)間。為了達(dá)到上述目的,本發(fā)明一種網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法,其特征在于,包括以下步驟(1) 定時(shí)偵測(cè)并判斷微引擎的運(yùn)行是否異常,如果出現(xiàn)異常,則進(jìn)入步驟(2);如果未出現(xiàn)異常,則步驟結(jié)束;(2) 對(duì)異常微引擎的狀態(tài)進(jìn)行記錄和告警; (3)對(duì)該異常微引擎進(jìn)行預(yù)先設(shè)置的處理。優(yōu)選地,歩驟(1)中所述偵測(cè)并判斷微引擎運(yùn)行是否異常的方法為-(A) 通過判斷接口芯片的收?qǐng)?bào)計(jì)數(shù)增加趨勢(shì)和微引擎的總處理報(bào)文計(jì)數(shù)增加趨勢(shì)是否一 致,如果一致,則判定微引擎運(yùn)行正常,如果不一致,則判定微引擎運(yùn)行出現(xiàn)異常。優(yōu)選地,所述的步驟(A)具體為-(Al)創(chuàng)建觸發(fā)消息的間隔時(shí)間為5秒鐘的循環(huán)定時(shí)器;(A2)分配存儲(chǔ)區(qū)域,分別存放最后一次讀到的芯片總收?qǐng)?bào)計(jì)數(shù)和微引擎的總處理報(bào)文計(jì)數(shù);(A3)當(dāng)定時(shí)器時(shí)間到時(shí),讀取當(dāng)前芯片的總收?qǐng)?bào)計(jì)數(shù)和微引擎的總處理報(bào)文計(jì)數(shù),并 判斷該當(dāng)前芯片和微引擎的計(jì)數(shù)針對(duì)步驟(A2)中所存放計(jì)數(shù)的變化趨勢(shì)是否一致,如果變 化趨勢(shì)不一致,則判定微引擎運(yùn)行出現(xiàn)異常,如果變化趨勢(shì)一致,則判定微引擎運(yùn)行正常。優(yōu)選地,所述的步驟(A3)具體為(A31)當(dāng)定時(shí)器時(shí)間到時(shí),讀取當(dāng)前芯片的總收?qǐng)?bào)計(jì)數(shù),并將該計(jì)數(shù)和步驟(A2)中存 放的芯片計(jì)數(shù)相比較,如果數(shù)值未增加,則步驟結(jié)束;如果數(shù)值增加,則進(jìn)入步驟(A32); (A32)更新步驟(A2)中存放的芯片總收?qǐng)?bào)計(jì)數(shù)為該當(dāng)前芯片的總收?qǐng)?bào)計(jì)數(shù); (A33)讀取當(dāng)前微引擎的總處理報(bào)文計(jì)數(shù),并將該計(jì)數(shù)和步驟(A2)中存放的芯片計(jì)數(shù) 相比較,如果數(shù)值增加,則判定微引擎運(yùn)行正常,進(jìn)入步驟(A34);否則判定微引擎運(yùn)行出 現(xiàn)異常;(A34)更新步驟(A2)中存放的微引擎的總處理報(bào)文計(jì)數(shù)為該當(dāng)前微引擎的總處理報(bào) 文計(jì)數(shù)。優(yōu)選地,歩驟(1)中所述偵測(cè)并判斷微引擎運(yùn)行是否異常的方法為(B) 判斷接口芯片送給微引擎的總計(jì)數(shù)和微引擎的總收?qǐng)?bào)計(jì)數(shù)的差值是否在界定的誤差 范圍內(nèi),如果判斷結(jié)果為是,則判定微引擎運(yùn)行正常,如果判斷結(jié)果為否,則判定微引擎運(yùn) 行出現(xiàn)異常;其中,所述的誤差為讀取芯片和讀取內(nèi)存這個(gè)時(shí)間差值內(nèi),微引擎以線速所能處理的最 大收?qǐng)?bào)數(shù)。優(yōu)選地,歩驟(1)中所述偵測(cè)并判斷微引擎運(yùn)行是否異常的方法為 (C)微引擎不斷寫標(biāo)志微引擎正常的保活信息給上層驅(qū)動(dòng)和微引擎共同約定的內(nèi)存地 址,上層驅(qū)動(dòng)定時(shí)讀取該內(nèi)存地址的信息,如果不是?;钚畔ⅲ瑒t判定微引擎運(yùn)行出現(xiàn)異常; 如果是?;钚畔ⅲ瑒t將該內(nèi)存地址清零。優(yōu)選地,所述步驟(C)具體為-(Cl)創(chuàng)建觸發(fā)消息的間隔時(shí)間為5秒鐘的循環(huán)定時(shí)器;(C2)微引擎向上層驅(qū)動(dòng)和微引擎共同約定的內(nèi)存地址寫入標(biāo)志其正常的?;钚畔ⅲ?C3)定時(shí)器時(shí)間到,上層驅(qū)動(dòng)讀取該內(nèi)存地址的值,如果該值為保活信息的值,則進(jìn) 入步驟(C4);如果該值不是?;钚畔⒌闹?,則判定微引擎運(yùn)行出現(xiàn)異常。(C4)將內(nèi)存地址的值清零后,返回步驟(C2)。優(yōu)選地,所述步驟(2)具體為(21) 記錄至少包括PC指針、狀態(tài)寄存器、信號(hào)量信息的微引擎異常的狀態(tài);(22) 將該記錄的信息發(fā)送到控制臺(tái)。優(yōu)選地,步驟(3)中所述預(yù)先設(shè)置的處理方法為重新啟動(dòng)單板、重新下載微引擎代碼 或重新下載另一套微引擎代碼。優(yōu)選地,所述步驟(3)具體為(31) 關(guān)閉網(wǎng)絡(luò)接口,并關(guān)掉所有微引擎;(32) 復(fù)位微引擎后,清空與微引擎相關(guān)聯(lián)的內(nèi)存儲(chǔ)區(qū)域;(33) 讀取配置,并根據(jù)微引擎代碼的編號(hào)計(jì)算出偏移量和實(shí)際內(nèi)存地址后,在預(yù)先設(shè) 置有微引擎代碼的內(nèi)存儲(chǔ)區(qū)域中下載相應(yīng)的微引擎代碼到微引擎中;(34) 運(yùn)行下載的微引擎代碼后,打開網(wǎng)絡(luò)接口。采用上述的方法后,通過定時(shí)對(duì)微引擎進(jìn)行檢測(cè),能夠及時(shí)快速地檢測(cè)到微引擎出現(xiàn)的 異常情況,并在微引擎異常地時(shí)候,采取預(yù)設(shè)設(shè)置的處理對(duì)故障進(jìn)行暫時(shí)性的修復(fù),能夠避 免網(wǎng)絡(luò)的永久性中斷,大幅度降低微引擎出現(xiàn)問題帶來的網(wǎng)絡(luò)中斷時(shí)間。
圖1是網(wǎng)絡(luò)處理卡的硬件基本框圖;圖2是本發(fā)明中采用芯片計(jì)數(shù)增加趨勢(shì)和微引擎計(jì)數(shù)增加趨勢(shì)來判斷異常的流程圖; 圖3是本發(fā)明中采用微引擎和上層軟件通過?;钚畔砼袛辔⒁娈惓5牧鞒虉D; 圖4是本發(fā)明中微引擎動(dòng)態(tài)下載微引擎代碼的流程圖。
具體實(shí)施方式
本發(fā)明提供一種微引擎異常的動(dòng)態(tài)檢測(cè)方法,包括以下步驟(1)定時(shí)偵測(cè)微引擎的運(yùn) 行異常;(2)對(duì)異常微引擎的狀態(tài)進(jìn)行記錄;并對(duì)微引擎運(yùn)行異常進(jìn)行告警;(3)對(duì)微引擎 發(fā)生異常的特殊情況進(jìn)行預(yù)先設(shè)置的處理。在歩驟(1)屮,微引擎的異常檢測(cè),提供如下3種詳細(xì)的方法 3,通過對(duì)接口芯片的收包計(jì)數(shù)增加趨勢(shì)和微引擎的總處理報(bào)文計(jì)數(shù)增加趨勢(shì)來判斷, 即如果硬件的收包計(jì)數(shù)在不斷增加,而微引擎的總收包計(jì)數(shù)卻不再增加的話,則可判定微引 擎存在運(yùn)行異常。b,通過對(duì)接口芯片送給微引擎的總計(jì)數(shù)和微引擎的總收?qǐng)?bào)計(jì)數(shù)是否在一定差值范圍內(nèi) 來判斷,其中接口芯片送給微引擎的總計(jì)數(shù)等于接口芯片收到的報(bào)文總數(shù)減去芯片檢測(cè)后需 要丟掉的報(bào)文總數(shù),另外接口芯片送給微引擎的報(bào)文數(shù)和微引擎總的處理報(bào)文計(jì)數(shù)的差值可 采取如下方法確定差值的最大值不超過上層驅(qū)動(dòng)在讀取芯片和讀取內(nèi)存(微引擎計(jì)數(shù)存放 位置)時(shí)間差值內(nèi)微引擎以線速所能處理的最多的報(bào)文數(shù)。C,通過微引擎不斷的寫?;钚畔⒔o上層驅(qū)動(dòng)的方法。即上層驅(qū)動(dòng)和微引擎共同約定一 個(gè)內(nèi)存地址存放微引擎的?;钚畔ⅲ⒁娌粩嘣谶@個(gè)內(nèi)存地址寫上Oxl作為其存活的標(biāo)志,上層驅(qū)動(dòng)每隔一段時(shí)間,比如5秒,讀取此位置的信息,如果為0xl,則證明微引擎存活, 同時(shí)將此位置內(nèi)存清零,如果發(fā)現(xiàn)讀取的是0x0,則證明自從上一次清零后,微引擎沒有在 此位置寫入保活信息,從而判斷微引擎異常。在步驟(2)中,微引擎異常后所記錄的信息包括A,微引擎的PC指針。B,微引擎各線程的狀態(tài)。C,微引擎的信號(hào)量,全局寄存器等。對(duì)異常情況的告警,主要的告警信息包含在上述信息中,同時(shí)包含微引擎異常發(fā)生的時(shí) 間,是否進(jìn)行了預(yù)處理,預(yù)處理是否成功等信息同時(shí)可選擇是否在控制臺(tái)進(jìn)行顯示或者直 接存儲(chǔ)在異常閂志中。在步驟(3)中,對(duì)檢測(cè)到微引擎異常后的預(yù)處理可采取如下方法1,重新啟動(dòng)單板,這種方法的優(yōu)點(diǎn)是實(shí)現(xiàn)起來較為簡單,缺點(diǎn)是重新啟動(dòng)單板會(huì)造成業(yè)務(wù)的暫時(shí)中斷。中斷時(shí)間隨啟動(dòng)時(shí)間的不同而改變, 一般在1到2分鐘以內(nèi)。 2,重新下載微引擎代碼,這種方法實(shí)現(xiàn)起來相對(duì)第一種方法復(fù)雜,具體實(shí)現(xiàn)的時(shí)候需要注意清空微引擎運(yùn)行相關(guān)的一些存儲(chǔ)區(qū)域及信號(hào)量。這種方法的優(yōu)點(diǎn)系統(tǒng)恢復(fù)時(shí)間極短, 基本在1到2秒左右。3,重新下載另一套微引擎代碼,屬于對(duì)上述第2種方法的改進(jìn),另一套微引擎代碼運(yùn) 行的時(shí)候會(huì)生成更多更詳細(xì)的調(diào)試信息,這樣當(dāng)系統(tǒng)再次出現(xiàn)問題的時(shí)候,能夠通過記錄在 存儲(chǔ)區(qū)域的更詳細(xì)的調(diào)試信息分析出現(xiàn)問題的原因。下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)說明。如圖1所示,以網(wǎng)絡(luò)處理器方式實(shí)現(xiàn)的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,通常對(duì)進(jìn)入設(shè)備的數(shù)據(jù)包處理流程為數(shù)據(jù)包首先進(jìn)入硬件芯片,硬件芯片在收到數(shù)據(jù)報(bào)文后對(duì)其進(jìn)行簡單的如校驗(yàn)處理,某些報(bào)文直接丟掉,而大部分將送給網(wǎng)絡(luò)處理器中的微引擎進(jìn)行處理(包括微引擎1、微引擎2、微引擎3、微引擎4、微引擎n等),微引擎通過對(duì)報(bào)文頭的分析,決定是送到交換網(wǎng) 上進(jìn)行轉(zhuǎn)發(fā)處理還是直接上送到上層CPU進(jìn)行處理,微引擎和上層軟件的交互通常通過觸發(fā) 中斷,而DRAM,SRAM,SCRATCH等各類型的存儲(chǔ)器則成為了信息交互的載體。另夕卜,CPU 可直接訪問到硬件芯片操作硬件寄存器,對(duì)其進(jìn)行配置和讀取。以上所述,通過硬件芯片收到的報(bào)文計(jì)數(shù)增加趨勢(shì)和微碼處理的報(bào)文計(jì)數(shù)增加趨勢(shì)能夠 判斷微引擎運(yùn)行中存在的某些異常。如圖2所示,判斷的具體流程為-步驟201:創(chuàng)建循環(huán)定時(shí)器,定時(shí)器每次觸發(fā)消息的間隔時(shí)間通常設(shè)置在5秒鐘; 步驟202:分配計(jì)數(shù)存儲(chǔ)區(qū)域,并分別存放最后一次讀到的芯片總收?qǐng)?bào)計(jì)數(shù)和微碼的總 處理報(bào)文計(jì)數(shù);步驟203:定時(shí)器事件到來后,讀取芯片總收包計(jì)數(shù);步驟204:將歩驟203中讀取的計(jì)數(shù)和步驟202中上一次讀取到的芯片計(jì)數(shù)比較是否增 加,如果增加,則進(jìn)入歩驟205;如果未增加,則證明芯片無新增收包計(jì)數(shù),此次檢查結(jié)束; 步驟205:更新步驟202中分配的芯片最后一次讀入計(jì)數(shù)為步驟204中讀取的值;步驟206:讀取微引擎的總處理報(bào)文計(jì)數(shù);步驟207:將步驟206中讀取的計(jì)數(shù)和步驟202中微引擎的最后一次處理報(bào)文總數(shù)比較, 如果數(shù)值增加,則證明微引擎的收包計(jì)數(shù)也在增加,則證明此次檢査微引擎正常,轉(zhuǎn)到步驟208;否則轉(zhuǎn)到步驟209;步驟208:更新步驟202中分配的微引擎的總處理報(bào)文計(jì)數(shù)為步驟206中讀取到的值, 并結(jié)束此次檢測(cè);步驟209:記錄微引擎異常時(shí)候的狀態(tài),包括PC指針,狀態(tài)寄存器,信號(hào)量等信息;
步驟210:將步驟209中記錄的微引擎異常信息發(fā)送到控制臺(tái); 步驟211:獲取異常處理配置,進(jìn)行異常的預(yù)處理,如微引擎代碼動(dòng)態(tài)下載等; 步驟212:通知上層平臺(tái)顯示記錄此次異常及處理情況,并同步驟209中記錄的信息一 并寫入日志中;步驟213:此次檢測(cè)結(jié)束,返回。如圖3,為采取微引擎不斷寫?;钚畔⒌姆绞?,則可采取如下實(shí)施步驟-步驟301:創(chuàng)建循環(huán)定時(shí)器,定時(shí)器每次觸發(fā)消息的間隔時(shí)間通常設(shè)置在5秒鐘;步驟302:初始化驅(qū)動(dòng)和微引擎共同約定的?;钚畔⒋鎯?chǔ)區(qū)域,此時(shí),微引擎不斷更新包括信息,為引擎將?;钚畔⑻钊朐摯鎯?chǔ)區(qū)域;步驟303:定時(shí)器事件到達(dá)后,讀取微引擎和上層軟件共同約定的?;钚畔⒋鎯?chǔ)區(qū)域; 歩驟304:判斷步驟303中讀取的值,如果?;钚畔榇婊?,則轉(zhuǎn)到步驟305;否則如果讀取到的是不存活,則證明在上一次檢査和這一次檢査的間隔中微引擎存在異常,轉(zhuǎn)到步驟306;步驟305:清空?;钚畔?,此次檢査結(jié)束,返回;步驟306:記錄微引擎異常時(shí)候的狀態(tài),包括PC指針,狀態(tài)寄存器,信號(hào)量等信息; 步驟307:將微引擎異常信息發(fā)送到控制臺(tái);歩驟308:獲取異常處理配置,進(jìn)行異常的預(yù)處理,如微引擎代碼動(dòng)態(tài)下載等;步驟309:通知上層平臺(tái)顯示記錄此次異常及處理情況,并同步驟209中記錄的信息一 并寫入日志中;步驟310:此次檢測(cè)結(jié)束,返回。在上述檢測(cè)中對(duì)異常情況的處理,圖2所示的步驟211,即對(duì)異常情況的預(yù)處理,可采取重新啟動(dòng)單板或者重新下載微代碼的方式,為了使網(wǎng)絡(luò)中斷的時(shí)間減少,我們通常采用后者,微代碼的下載又可分為下面幾個(gè)步驟(如圖4所示)步驟40h動(dòng)態(tài)下載開始,關(guān)閉網(wǎng)絡(luò)接口,使得流量無法進(jìn)入網(wǎng)絡(luò)處理器;步驟402:通知微引擎準(zhǔn)備重啟,微引擎在每個(gè)收?qǐng)?bào)入口査詢?cè)摖顟B(tài),如果發(fā)現(xiàn)置位,則將自身Kill掉;步驟403:査看微引擎是否均已經(jīng)關(guān)掉,如果沒有則繼續(xù)關(guān)掉微引擎,如果全部關(guān)掉了,則進(jìn)入步驟404;步驟404:復(fù)位微引擎;步驟405:清空微引擎相關(guān)的內(nèi)存儲(chǔ)區(qū)域,包括SDRAM,SRAM,SCRATCH等各類型的
存儲(chǔ)器,及一些狀態(tài)寄存器;步驟406:讀取微引擎配置,根據(jù)配置調(diào)入新的微引擎代碼,這里微引擎的代碼已經(jīng)預(yù)先放到了內(nèi)存儲(chǔ)區(qū)域微引擎代碼隊(duì)列中,根據(jù)微引擎代碼的編號(hào),從而計(jì)算出偏移量和實(shí)際 內(nèi)存地址,下載到微引擎中;步驟407:運(yùn)行微引擎代碼;步驟408:打開網(wǎng)絡(luò)接口,本次下載結(jié)束;在上述提供的具體實(shí)施流程中,通常會(huì)根據(jù)不同的硬件芯片來決定采取其中任一種方法, 采用硬件收包增加趨勢(shì)和微引擎總的處理包增加趨勢(shì)來判斷異常的方法,實(shí)現(xiàn)起來相對(duì)復(fù)雜 一點(diǎn),其中為了防止誤判,可以采取連續(xù)3次檢測(cè)出異常才判定為真正異常,另外還需要補(bǔ) 充的就是,如果硬件芯片并非直接連接在主處理上,而是通過"主處理器一一協(xié)處理器一一 硬件芯片"的方式,那么主處理上獲得硬件芯片的計(jì)數(shù)則需要協(xié)處理器通過消息通訊過來, 這個(gè)時(shí)候存在這樣一種情況,就是連續(xù)2次硬件芯片計(jì)數(shù)的增加會(huì)因?yàn)橄⒌淖枞谥魈?理器上呈現(xiàn)出并非間隔5秒的事件,則需要在主處理器上加入實(shí)際時(shí)間間隔的判斷。如果采 取微引擎不斷寫?;钚畔⒌姆绞?,上層軟件實(shí)現(xiàn)起來較為簡單,微引擎在不管是否有報(bào)文的 情況下,都需要更新?;钚畔?,并且?;钚畔⒉⒎怯蓴?shù)據(jù)報(bào)文驅(qū)動(dòng)。本發(fā)明通過定時(shí)對(duì)微引擎進(jìn)行檢測(cè),能夠及時(shí)快速地檢測(cè)到微引擎出現(xiàn)的異常情況,并 在微引擎異常地時(shí)候,采取預(yù)設(shè)設(shè)置的處理對(duì)故障進(jìn)行暫時(shí)性的修復(fù),能夠避免網(wǎng)絡(luò)的永久 性中斷,大幅度降低微引擎出現(xiàn)問題帶來的網(wǎng)絡(luò)中斷時(shí)間。本發(fā)明在微引擎運(yùn)行異常發(fā)生后的很短的時(shí)間,5秒以內(nèi)即可偵測(cè)到,減少了網(wǎng)絡(luò)運(yùn)行 中系統(tǒng)的中斷時(shí)間。提供3中微引擎異常的檢測(cè)方法,可根據(jù)不同接口類型芯片采取最優(yōu)的 方法。提供了在微引擎異常時(shí)候多種預(yù)處理的方法,根據(jù)預(yù)設(shè)的不同,有些處理措施實(shí)現(xiàn)簡 單,有些則大大減少轉(zhuǎn)發(fā)層面的中斷,連同收益1中的偵測(cè)異常時(shí)間,系統(tǒng)可保證在發(fā)生微 弓I擎異常到解決微引擎異常之間的時(shí)間間隔在7秒以內(nèi)。本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的 技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)涵蓋于 本發(fā)明權(quán)利要求書所限定的保護(hù)范圍內(nèi)。
權(quán)利要求
1、一種網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法,其特征在于,包括以下步驟(1)定時(shí)偵測(cè)并判斷微引擎的運(yùn)行是否異常,如果出現(xiàn)異常,則進(jìn)入步驟(2);如果未出現(xiàn)異常,則步驟結(jié)束;(2)對(duì)異常微引擎的狀態(tài)進(jìn)行記錄和告警;(3)對(duì)該異常微引擎進(jìn)行預(yù)先設(shè)置的處理。
2、 按照權(quán)利要求l所述的網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法,其特征在于,步驟(1)中所述偵測(cè)并判斷微引擎運(yùn)行是否異常的方法為(A)通過判斷接口芯片的收?qǐng)?bào)計(jì)數(shù)增加趨勢(shì)和微引擎的總處理報(bào)文計(jì)數(shù)增加趨勢(shì)是否一致,如果一致,則判定微引擎運(yùn)行正常,如果不一致,則判定微引擎運(yùn)行出現(xiàn)異常。
3、 按照權(quán)利要求2所述的網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法,其特征在于,所述的步驟(A)具體為(Al)創(chuàng)建觸發(fā)消息的間隔時(shí)間為5秒鐘的循環(huán)定時(shí)器;(A2)分配存儲(chǔ)區(qū)域,分別存放最后一次讀到的芯片總收?qǐng)?bào)計(jì)數(shù)和微引擎的總處理報(bào)文計(jì)數(shù);(A3)當(dāng)定時(shí)器時(shí)間到時(shí),讀取當(dāng)前芯片的總收?qǐng)?bào)計(jì)數(shù)和微引擎的總處理報(bào)文計(jì)數(shù),并 判斷該當(dāng)前芯片和微引擎的計(jì)數(shù)針對(duì)步驟(A2)中所存放計(jì)數(shù)的變化趨勢(shì)是否一致,如果變 化趨勢(shì)不一致,則判定微引擎運(yùn)行出現(xiàn)異常,如果變化趨勢(shì)一致,則判定微引擎運(yùn)行正常。
4、 按照權(quán)利要求3所述的網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法,其特征在于,所 述的步驟(A3)具體為(A31)當(dāng)定時(shí)器時(shí)間到時(shí),讀取當(dāng)前芯片的總收?qǐng)?bào)計(jì)數(shù),并將該計(jì)數(shù)和步驟(A2)中存 放的芯片計(jì)數(shù)相比較,如果數(shù)值未增加,則步驟結(jié)束;如果數(shù)值增加,則進(jìn)入步驟(A32); (A32)更新步驟(A2)中存放的芯片總收?qǐng)?bào)計(jì)數(shù)為該當(dāng)前芯片的總收?qǐng)?bào)計(jì)數(shù); (A33)讀取當(dāng)前微引擎的總處理報(bào)文計(jì)數(shù),并將該計(jì)數(shù)和步驟(A2)中存放的芯片計(jì)數(shù) 相比較,如果數(shù)值增加,則判定微引擎運(yùn)行正常,進(jìn)入步驟(A34);否則判定微引擎運(yùn)行出 現(xiàn)異常;(A34)更新步驟(A2)中存放的微引擎的總處理報(bào)文計(jì)數(shù)為該當(dāng)前微引擎的總處理報(bào) 文計(jì)數(shù)。
5、 按照權(quán)利要求l所述的網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法,其特征在于,步 驟(1)中所述偵測(cè)并判斷微引擎運(yùn)行是否異常的方法為(B) 判斷接口芯片送給微引擎的總計(jì)數(shù)和微引擎的總收?qǐng)?bào)計(jì)數(shù)的差值是否在界定的誤差 范圍內(nèi),如果判斷結(jié)果為是,則判定微引擎運(yùn)行正常,如果判斷結(jié)果為否,則判定微引擎運(yùn) 行出現(xiàn)異常;其中,所述的誤差為讀取芯片和讀取內(nèi)存這個(gè)時(shí)間差值內(nèi),微引擎以線速所能處理的最 大收?qǐng)?bào)數(shù)。
6、 按照權(quán)利要求l所述的網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法,其特征在于,步 驟(1)中所述偵測(cè)并判斷微引擎運(yùn)行是否異常的方法為-(C) 微引擎不斷寫標(biāo)志微引擎正常的保活信息給上層驅(qū)動(dòng)和微引擎共同約定的內(nèi)存地 址,上層驅(qū)動(dòng)定時(shí)讀取該內(nèi)存地址的信息,如果不是?;钚畔?,則判定微引擎運(yùn)行出現(xiàn)異常; 如果是?;钚畔ⅲ瑒t將該內(nèi)存地址清零。
7、 按照權(quán)利要求6所述的網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法,其特征在于,所 述步驟(C)具體為(Cl)創(chuàng)建觸發(fā)消息的間隔時(shí)間為5秒鐘的循環(huán)定時(shí)器;(C2)微引擎向上層驅(qū)動(dòng)和微引擎共同約定的內(nèi)存地址寫入標(biāo)志其正常的保活信息;(C3)定時(shí)器時(shí)間到,上層驅(qū)動(dòng)讀取該內(nèi)存地址的值,如果該值為保活信息的值,則進(jìn) 入步驟(C4);如果該值不是保活信息的值,則判定微引擎運(yùn)行出現(xiàn)異常。(C4)將內(nèi)存地址的值清零后,返回步驟(C2)。
8、 按照權(quán)利要求l所述的網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法,其特征在于,所 述步驟(2)具體為(21) 記錄至少包括PC指針、狀態(tài)寄存器、信號(hào)量信息的微引擎異常的狀態(tài);(22) 將該記錄的信息發(fā)送到控制臺(tái)。
9、 按照權(quán)利要求l所述的網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法,其特征在于,步驟(3)中所述預(yù)先設(shè)置的處理方法為重新啟動(dòng)單板、重新下載微引擎代碼或重新下載另一套微引擎代碼。
10、 按照權(quán)利要求1或9所述的網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法,其特征在于,所述步驟(3)具體為 (31) 關(guān)閉網(wǎng)絡(luò)接口,并關(guān)掉所有微引擎;(32) 復(fù)位微引擎后,清空與微引擎相關(guān)聯(lián)的內(nèi)存儲(chǔ)區(qū)域;(33) 讀取配置,并根據(jù)微引擎代碼的編號(hào)計(jì)算出偏移量和實(shí)際內(nèi)存地址后,在預(yù)先設(shè)置有微引擎代碼的內(nèi)存儲(chǔ)區(qū)域中下載相應(yīng)的微引擎代碼到微引擎中;(34) 運(yùn)行下載的微引擎代碼后,打開網(wǎng)絡(luò)接口。
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理方法。為解決現(xiàn)有技術(shù)中無法及時(shí)檢測(cè)到微引擎出現(xiàn)的異常情況,并且中斷時(shí)間過長的問題而發(fā)明。本發(fā)明網(wǎng)絡(luò)處理器微引擎運(yùn)行異常的檢測(cè)處理的方法包括(1)定時(shí)偵測(cè)并判斷微引擎的運(yùn)行是否異常,如果出現(xiàn)異常,則進(jìn)入步驟(2);如果未出現(xiàn)異常,則步驟結(jié)束;(2)對(duì)異常微引擎的狀態(tài)進(jìn)行記錄和告警;(3)對(duì)該異常微引擎進(jìn)行預(yù)先設(shè)置的處理。本發(fā)明能夠及時(shí)快速地檢測(cè)到微引擎出現(xiàn)的異常情況,同時(shí)大幅度降低微引擎出現(xiàn)問題帶來的網(wǎng)絡(luò)中斷時(shí)間。
文檔編號(hào)H04L12/26GK101166124SQ20061015063
公開日2008年4月23日 申請(qǐng)日期2006年10月20日 優(yōu)先權(quán)日2006年10月20日
發(fā)明者周文明, 李新雙, 黎定軍 申請(qǐng)人:中興通訊股份有限公司