專利名稱:吉比特?zé)o源光網(wǎng)絡(luò)終端升級(jí)中異常情況的保護(hù)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及吉比特?zé)o源光網(wǎng)絡(luò)(GPON,Gigabit Passive Optical Network)技術(shù), 尤其涉及GPON終端升級(jí)中異常情況的保護(hù)方法及系統(tǒng)。
背景技術(shù):
隨著寬帶接入技術(shù)的發(fā)展,GPON技術(shù)作為一種點(diǎn)對(duì)多點(diǎn)的光網(wǎng)絡(luò)接入技術(shù),正逐 漸成為寬帶接入技術(shù)的研究熱點(diǎn)。圖1為一種典型GPON系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),如圖1所示,在GPON系統(tǒng)中主要 由光線路終端(0LT,Optical Line Terminal)、光分配網(wǎng)絡(luò)(ODN, OpticalDistribution Network)以及光網(wǎng)絡(luò)單元/光網(wǎng)絡(luò)終端(0NU/0NT,Optical NetworkUnit/Optical Network Terminal)組成。其中,0NU/0NT是用戶端設(shè)備,在空間位置上位于用戶處,所以一般較為分 散。因此,對(duì)0NU/0NT的遠(yuǎn)程升級(jí),就成為整個(gè)GPON系統(tǒng)維護(hù)中一個(gè)不可缺少的功能。G. 984. 4標(biāo)準(zhǔn)為GPON系統(tǒng)中0NU/0NT的ONT管理和控制接口(0MCI,ONT Management and Control Interface)方式遠(yuǎn)程升級(jí)定義了統(tǒng)一的流程及方式。圖2為依據(jù)G. 984. 4標(biāo)準(zhǔn)細(xì)化的0NU/0NT升級(jí)流程相關(guān)的時(shí)序圖。從圖2中可 以看出,前后消息之間以及0NU/0NT自身升級(jí)步驟之間的關(guān)聯(lián)性較強(qiáng),一旦某個(gè)消息的時(shí) 序錯(cuò)亂或者某個(gè)步驟出錯(cuò)都將對(duì)整個(gè)升級(jí)流程產(chǎn)生不可預(yù)知的影響,甚至導(dǎo)致用戶網(wǎng)絡(luò)癱 瘓。尤其在圖中標(biāo)注的A、B、C以及D處,由于這幾處與OLT交互的信息較多且為升級(jí)狀態(tài) 遷移的關(guān)鍵點(diǎn),加之0NU/0NT執(zhí)行的動(dòng)作比較頻繁,因此,出現(xiàn)異常情況的幾率非常高。如上所述,由于0NU/0NT本身具有地域分散的特點(diǎn),加之其作為用戶接入終端的 重要性,0NU/0NT升級(jí)的成功與否,直接關(guān)系著該終端甚至用戶網(wǎng)絡(luò)能否正常運(yùn)行。因此, 如何提高0NU/0NT升級(jí)的成功率和準(zhǔn)確度就成為亟待解決的問題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種GPON終端OMCI方式升級(jí)中異常情況 的保護(hù)方法和系統(tǒng),在保證正確響應(yīng)標(biāo)準(zhǔn)所定義的OLT各類升級(jí)命令的同時(shí),提高0NU/0NT 升級(jí)的成功率和準(zhǔn)確度。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的本發(fā)明提供了一種吉比特?zé)o源光網(wǎng)絡(luò)(GPON)終端升級(jí)中異常情況的保護(hù)方法, 該方法包括對(duì)下載至GPON終端的新版本文件依次進(jìn)行完整性、正確性以及有效性的判斷處 理,燒寫新版本文件;根據(jù)光線路終端(OLT)的激活流程確定對(duì)新版本的校驗(yàn),完成GPON終端新版本的升級(jí)。上述方案中,所述新版本文件完整性的分析具體包括保存新版本文件的大小,并 設(shè)置新版本文件下載完整標(biāo)記為否;在收到下載完成通知后判斷所下載的新版本文件的大小是否與保存的新版本文件大小相同,若判斷為相同,則設(shè)置新版本數(shù)據(jù)下載完整標(biāo)記為 是,認(rèn)為下載的新版本文件完整,若判斷為不相同,則確認(rèn)新版本文件的數(shù)據(jù)不完整,應(yīng)答 OLT下載錯(cuò)誤,GPON終端結(jié)束當(dāng)前流程。上述方案中,所述新版本文件有效性的分析具體包括根據(jù)GPON終端所允許的待 燒寫新版本文件的最大值確定待燒寫的新版本文件大小適用;根據(jù)文件中的幻數(shù)確定新版 本文件合法性;對(duì)新版本文件內(nèi)核區(qū)數(shù)據(jù)進(jìn)行校驗(yàn),初步確定新版本文件的數(shù)據(jù)無丟失或 篡改;再對(duì)新版本文件系統(tǒng)區(qū)數(shù)據(jù)進(jìn)行校驗(yàn),進(jìn)一步確定新版本文件的數(shù)據(jù)無丟失或篡改。上述方案中,所述燒寫新版本文件,進(jìn)一步包括每燒寫一個(gè)數(shù)據(jù)段,就休眠一次。上述方案中,所述燒寫新版本文件完成之后,進(jìn)一步包括根據(jù)燒寫完成后給出的 函數(shù)結(jié)果判斷燒寫是否成功。上述方案中,所述對(duì)新版本的校驗(yàn)具體包括執(zhí)行來自O(shè)LT的激活命令,對(duì)新版本 內(nèi)核區(qū)數(shù)據(jù)進(jìn)行校驗(yàn),初步確定新版本文件的數(shù)據(jù)完整;對(duì)新版本文件系統(tǒng)區(qū)數(shù)據(jù)進(jìn)行校 驗(yàn),進(jìn)一步確定新版本文件的數(shù)據(jù)完整;根據(jù)內(nèi)核掛載的結(jié)果初步確定新版本文件能夠正 常工作;再根據(jù)系統(tǒng)文件掛載的結(jié)果進(jìn)一步確定新版本文件能夠正常工作并使新版本正確 成為重新引導(dǎo)的加載項(xiàng)。上述方案中,該方法進(jìn)一步包括判斷非激活分區(qū)的數(shù)據(jù)是否有效,如果是,則上 報(bào)OLT非激活分區(qū)版本文件有效,如果不是,則上報(bào)OLT非激活分區(qū)版本文件無效。本發(fā)明還提供了一種吉比特?zé)o源光網(wǎng)絡(luò)終端升級(jí)中異常情況的保護(hù)系統(tǒng),包括存 儲(chǔ)模塊,該系統(tǒng)還包括分析模塊、燒寫模塊以及校驗(yàn)?zāi)K;其中,存儲(chǔ)模塊,用于保存OLT發(fā)送的新版本文件;分析模塊,用于對(duì)存儲(chǔ)模塊保存的新版本文件依次進(jìn)行的完整性、正確性以及有 效性分析,并在判定新版本文件完整、正確以及有效時(shí),觸發(fā)燒寫模塊;燒寫模塊,用于燒寫新版本文件,燒寫完成后,觸發(fā)校驗(yàn)?zāi)K;校驗(yàn)?zāi)K,用于根據(jù)OLT的激活流程確定對(duì)新版本進(jìn)行校驗(yàn),完成GPON終端新版 本的升級(jí)。上述方案中,所述分析模塊包括分析模塊一和分析模塊二 ;其中,分析模塊一,用于判斷存儲(chǔ)模塊保存的新版本文件是否完整及正確,并根據(jù)判斷 的結(jié)果相應(yīng)的應(yīng)答0LT,并在判定新版本文件完整及正確時(shí),觸發(fā)分析模塊二 ;分析模塊二,用于進(jìn)一步新判斷版本文件是否有效,并根據(jù)判斷的結(jié)果相應(yīng)的應(yīng) 答0LT,并在判定新版本文件有效時(shí),觸發(fā)燒寫模塊。上述方案中,所述校驗(yàn)?zāi)K包括校驗(yàn)?zāi)K一、加載模塊以及校驗(yàn)?zāi)K二 ;其中,校驗(yàn)?zāi)K一,用于根據(jù)燒寫模塊燒寫新版本文件的結(jié)果,判斷燒寫是否成功,并根 據(jù)判斷的結(jié)果相應(yīng)的應(yīng)答0LT,并在判定新版本燒寫成功時(shí),觸發(fā)加載模塊;加載模塊,用于根據(jù)OLT發(fā)送的激活命令,將校驗(yàn)?zāi)K一判斷燒寫成功的新版本 進(jìn)行加載,加載過程中,觸發(fā)校驗(yàn)?zāi)K二 ;校驗(yàn)?zāi)K二,用于根據(jù)加載模塊對(duì)新版本加載的結(jié)果,判斷新版本是否加載成功。上述方案中,所述系統(tǒng)進(jìn)一步包括判斷模塊,用于根據(jù)校驗(yàn)?zāi)K二判斷新版本加 載成功,進(jìn)一步判斷加載的新版本是否有效,并根據(jù)判斷的結(jié)果相應(yīng)的應(yīng)答0LT。本發(fā)明提供的方案,通過設(shè)置下載完整標(biāo)記可以確保準(zhǔn)確判斷OLT端下載數(shù)據(jù)的完整性;通過比較版本數(shù)據(jù)的32位循環(huán)冗余校驗(yàn)(CRC32)值,可以保證下載數(shù)據(jù)的正確性; 通過對(duì)版本文件大小以及文件中的幻數(shù)的判斷,確定了所下載的版本文件是合法的版本; 通過內(nèi)核區(qū)數(shù)據(jù)及文件系統(tǒng)區(qū)數(shù)據(jù)的CRC校驗(yàn),進(jìn)一步確定了所下載的版本文件的數(shù)據(jù)不 存在丟失或篡改的情況,即保證了版本文件的有效性,提高了 0NU/0NT升級(jí)的成功率和準(zhǔn) 確度,進(jìn)而提高0NU/0NT的可維護(hù)性和健壯性。本發(fā)明的燒寫流程,采用燒寫一個(gè)數(shù)據(jù)段就休眠一次的方式,通過休眠的方式讓 出了部分CPU的時(shí)間片,進(jìn)而使得負(fù)責(zé)與OLT相互交互的進(jìn)程能夠順利及時(shí)的應(yīng)答0LT,以 維持交互鏈路的正常進(jìn)行。本發(fā)明的方案,在燒寫完成后進(jìn)一步判斷燒寫是否成功,保證了激活命令的順利 執(zhí)行,確保0NU/0NT可以成功加載新版本。本發(fā)明的方案,在加載新版本的過程中對(duì)新版本內(nèi)核區(qū)數(shù)據(jù)和文件系統(tǒng)區(qū)數(shù)據(jù)進(jìn) 行了完整性分析,并對(duì)每一步加載進(jìn)行判斷,進(jìn)一步保證了新版本加載的成功性。本發(fā)明的方案,同時(shí)還對(duì)非激活分區(qū)的數(shù)據(jù)進(jìn)行有效性的分析,避免了在后續(xù)系 統(tǒng)運(yùn)行中當(dāng)OLT要求0NU/0NT切換工作版本時(shí)出現(xiàn)一個(gè)版本無效的異常情況發(fā)生。
圖1為典型GPON系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)示意圖;圖2為依據(jù)G. 984. 4標(biāo)準(zhǔn)細(xì)化的0UT/0NT升級(jí)流程相關(guān)的時(shí)序圖;圖3為本發(fā)明GPON終端升級(jí)中異常情況的保護(hù)方法流程圖;圖4為實(shí)現(xiàn)圖3所示流程圖中步驟302的下載版本數(shù)據(jù)是否完整及正確的判斷方 法流程圖;圖5為實(shí)現(xiàn)圖3所示流程圖中步驟303的方法流程圖;
圖6為實(shí)現(xiàn)圖3所示流程圖中步驟304的方法流程圖;圖7為實(shí)現(xiàn)圖3所示流程圖中步驟308的方法流程圖;圖8為本發(fā)明GPON終端升級(jí)中異常情況的保護(hù)系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說明。本發(fā)明實(shí)現(xiàn)GPON終端升級(jí)中異常情況的保護(hù)方法如圖3所示,包括以下步驟步驟301 :0NU/0NT接到來自O(shè)LT的下載結(jié)束(End download)命令,0NU/0NT結(jié)束 下載并保存版本文件。步驟302 :0NU/0NT判斷下載的版本文件是否完整及正確,如果完整并正確,則執(zhí) 行步驟303,同時(shí)應(yīng)答OLT設(shè)備忙;如果不完整或不正確,則應(yīng)答OLT命令處理錯(cuò)誤,結(jié)束當(dāng) 前處理流程。步驟303 :0NU/0NT準(zhǔn)備燒寫版本文件,啟動(dòng)燒寫程序,進(jìn)一步判斷待燒寫版本文 件是否有效,如果有效,則執(zhí)行步驟304 ;如果無效,則以文件非法結(jié)束燒寫流程,結(jié)束當(dāng)前 處理流程。步驟304 :0NU/0NT燒寫版本文件,同時(shí)以設(shè)備忙應(yīng)答OLT的Enddownload命令。步驟305 :0NU/0NT判斷版本文件燒寫是否成功,如果成功,則執(zhí)行步驟306,同時(shí)應(yīng)答OLT成功;如果不成功,則應(yīng)答OLT失敗,并結(jié)束當(dāng)前處理流程;這里,版本文件燒寫完 成后會(huì)直接給出表示燒寫成功的函數(shù)結(jié)果或表示不成功的函數(shù)結(jié)果。步驟306 :0NU/0NT接到來自O(shè)LT的激活(Active)命令,判斷目標(biāo)版本文件是否為 新更新的版本,如果目標(biāo)版本文件為新更新的版本,則進(jìn)一步根據(jù)燒寫完成后給出的函數(shù) 結(jié)果判斷新更新的版本文件是否燒寫成功,如果成功,則應(yīng)答OLT成功,執(zhí)行Active命令, 并執(zhí)行步驟307,如果不成功,則應(yīng)答OLT失敗,結(jié)束當(dāng)前處理流程;如果目標(biāo)版本文件不是 新更新的版本,則應(yīng)答OLT成功,執(zhí)行Active命令,并結(jié)束當(dāng)前處理流程。步驟307 從目標(biāo)版本分區(qū)重新引導(dǎo)(reboot)和加載版本。步驟308 判斷新版本文件的加載是否成功并使新版本正確成為reboot的加載 項(xiàng),如果成功,則結(jié)束當(dāng)前處理流程;如果不成功,更改啟動(dòng)(boot)引導(dǎo)項(xiàng),回滾至舊版本, 并結(jié)束處理流程。其中,所述方法還可以進(jìn)一步包括步驟309:進(jìn)一步判斷非激活分區(qū)版本是否有 效,如果是,則上報(bào)OLT非激活分區(qū)版本文件有效,結(jié)束當(dāng)前處理流程;如果不是,則上報(bào) OLT非激活分區(qū)版本文件無效,結(jié)束當(dāng)前處理流程;這里,根據(jù)G. 984. 4標(biāo)準(zhǔn),0NU/0NT自身 有兩個(gè)可以使用的版本文件,因此,除了新更新的版本文件外,在另一個(gè)區(qū)還存放著一個(gè)可 以使用的版本文件,稱之為舊版本文件,相應(yīng)的,存放舊版本文件的區(qū)稱之為非激活分區(qū)版 本。其中,步驟302中下載的新版本文件是否完整以及正確的判斷方法如圖4所示,包 括以下步驟步驟401 :0NU/0NT 收到 End download 命令。步驟402 :0NU/0NT判斷新版本文件是否下載完整,如果是,則執(zhí)行步驟403,如果 不是,則判斷新版本文件的數(shù)據(jù)不完整,應(yīng)答OLT下載錯(cuò)誤,0NU/0NT結(jié)束當(dāng)前流程,并忽略 OLT后續(xù)可能下傳的版本文件數(shù)據(jù)。這里,判斷新版本文件下載是否完整具體為在開始下載時(shí),0NU/0NT保存命令 中版本文件的大小(VersionSize),并設(shè)置版本文件下載完整標(biāo)記QntegralityFlag)為 否(False);收到End download命令后計(jì)算所下載的新版本文件的VersionSize,并與預(yù) 先保存的VersionSize進(jìn)行比較,根據(jù)比較的結(jié)果進(jìn)行判斷,如果二者大小相同,則設(shè)置 htegralityFlag為是(True),表明新版本文件下載完整;如果二者大小不相同,則設(shè)置 IntegralityFlag為i^alse,表明新版本文件下載不完整。步驟403 :0NU/0NT進(jìn)一步判斷下載新版本文件是否通過CRC32校驗(yàn),如果通過, 則表明下載的新版本文件數(shù)據(jù)正確,啟動(dòng)燒寫版本流程,應(yīng)答OLT當(dāng)前設(shè)備忙;如果沒有通 過,則表明下載的新版本文件數(shù)據(jù)不正確,應(yīng)答OLT命令處理錯(cuò)誤,0NU/0NT結(jié)束當(dāng)前流程, 并忽略O(shè)LT后續(xù)可能下傳的版本文件數(shù)據(jù)。這里,0NU/0NT計(jì)算本地新版本文件的CRC32值時(shí),以0NU/0NT收到Mart download命令中新版本文件的大小,結(jié)合收到版本數(shù)據(jù)為計(jì)算CRC32值的參數(shù),而不是以 實(shí)際傳輸中接收到的實(shí)際新版本文件大小為依據(jù);OLT下發(fā)End download命令的同時(shí),告知0NU/0NT所下載的版本文件的CRC32值, 將0NU/0NT本地版本文件的CRC32值與告知的所下載的版本文件的CRC32值相比較,如果 一致,則表明下載的新版本文件數(shù)據(jù)正確;如果不一致,表明下載的新版本文件數(shù)據(jù)不正確。其中,如圖5所示,步驟303具體可以為步驟501 :0NU/0NT準(zhǔn)備燒寫版本文件。步驟502 :0NU/0NT讀取系統(tǒng)的環(huán)境變量,獲取0NU/0NT所允許的待燒寫新版本文 件大小的最大值;這里,0NU/0NT所允許的待燒寫新版本文件大小的最大值具體是指0NU/0NT的閃 存(Flash)所容許存放的版本文件的最大空間(VerSizeMax)。步驟503 :0NU/0NT判斷待燒寫的新版本文件的大小是否不大于VerSizeMax,確定 待燒寫的新版本文件大小是否適用,如果不大于,則執(zhí)行步驟504;如果大于,則以文件非 法結(jié)束燒寫流程。步驟504 :0NU/0NT探測待燒寫的新版本文件,進(jìn)一步判斷是否能夠探測到幻數(shù) (Magic number),確定新版本文件是否合法,如果能夠探測到,則執(zhí)行步驟505 ;如果不能探 測到,則以文件非法結(jié)束燒寫流程。這里,幻數(shù),保存于下載新版本文件的文件頭中,是用于檢查版本文件是否合法的 特殊的固定格式的數(shù)據(jù)。步驟505 :0NU/0NT判斷待燒寫新版本文件內(nèi)核區(qū)數(shù)據(jù)段的校驗(yàn)是否正確,初步確 定新版本文件的數(shù)據(jù)是否無丟失或篡改,如果正確,則執(zhí)行步驟506 ;如果不正確,則以文 件非法結(jié)束燒寫流程;這里,內(nèi)核區(qū)數(shù)據(jù)段的校驗(yàn)具體為根據(jù)新版本文件內(nèi)核區(qū)數(shù)據(jù)的信息計(jì)算新版 本文件內(nèi)核區(qū)數(shù)據(jù)段的CRC值,并與保存的內(nèi)核區(qū)數(shù)據(jù)段的CRC進(jìn)行校驗(yàn),如果一致,表明 校驗(yàn)正確,如果不一致,則表明校驗(yàn)校驗(yàn)不正確;內(nèi)核區(qū)數(shù)據(jù)段的CRC校驗(yàn)碼保存于下載新 版本文件的文件頭中。步驟506 :0NU/0NT判斷待燒寫新版本文件的文件系統(tǒng)區(qū)數(shù)據(jù)段校驗(yàn)是否正確,進(jìn) 一步確定新版本文件的數(shù)據(jù)是否無丟失或篡改,如果正確,則表明版本文件有效,開始燒寫 版本;如果不正確,則以文件非法結(jié)束燒寫流程。這里,文件系統(tǒng)區(qū)數(shù)據(jù)段校驗(yàn)具體為根據(jù)新版本文件系統(tǒng)區(qū)數(shù)據(jù)的信息計(jì)算文 件系統(tǒng)區(qū)數(shù)據(jù)段的CRC值,并與保存的文件系統(tǒng)區(qū)數(shù)據(jù)段的CRC值進(jìn)行校驗(yàn),如果一致,表 明校驗(yàn)正確,如果不一致,則表明校驗(yàn)校驗(yàn)不正確;其中,文件系統(tǒng)區(qū)數(shù)據(jù)段的CRC校驗(yàn)碼 保存于下載新版本文件的文件頭中。其中,如圖6所示,步驟304具體為步驟601 :0NU/0NT燒寫新版本文件的數(shù)據(jù)段;這里,一個(gè)數(shù)據(jù)段的大小依據(jù)CPU主頻、0NU/0NT與OLT交互超時(shí)時(shí)長以及Flash 性能等實(shí)際環(huán)境進(jìn)行設(shè)定。步驟602 :0NU/0NT判斷是否完成一個(gè)數(shù)據(jù)段的寫操作,如果完成,則執(zhí)行步驟 603;如果未完成,則執(zhí)行步驟601,繼續(xù)當(dāng)前數(shù)據(jù)段的寫操作。步驟603 :0NU/0NT根據(jù)燒寫完成后給出的函數(shù)結(jié)果進(jìn)一步判斷新版本文件是否 燒寫完成,如果是,則退出燒寫流程;如果不是,則休眠該進(jìn)程。這里,休眠時(shí)長依據(jù)CPU主頻、0NU/0NT與OLT交互超時(shí)時(shí)長以及Flash性能等實(shí) 際環(huán)境進(jìn)行設(shè)定。
其中,如圖7所示,步驟308具體可以為步驟701 :0NU/0NT執(zhí)行來自O(shè)LT的Active命令,開始加載新版本。步驟702 :0NU/0NT檢查新版本內(nèi)核區(qū)數(shù)據(jù)并判斷內(nèi)核區(qū)數(shù)據(jù)是否完整,如果是, 則執(zhí)行步驟703,否則,則更改boot引導(dǎo)項(xiàng),回滾至舊版本;這里,所述判斷內(nèi)核區(qū)數(shù)據(jù)是否完整具體為根據(jù)新版本內(nèi)核區(qū)數(shù)據(jù)的信息計(jì)算 新版本內(nèi)核區(qū)數(shù)據(jù)段的CRC值,并與新版本攜帶的內(nèi)核區(qū)數(shù)據(jù)段的CRC進(jìn)行校驗(yàn),如果一 致,表明校驗(yàn)正確,如果不一致,則表明校驗(yàn)不正確。步驟703 :0NU/0NT進(jìn)一步檢查新版本文件系統(tǒng)區(qū)數(shù)據(jù)并判斷文件系統(tǒng)區(qū)數(shù)據(jù)是 否完整,如果是,則執(zhí)行步驟704 ;否則,則更改boot引導(dǎo)項(xiàng),回滾至舊版本;這里,所述判斷文件系統(tǒng)區(qū)區(qū)數(shù)據(jù)是否完整具體為根據(jù)新版本文件系統(tǒng)區(qū)數(shù)據(jù) 的大小計(jì)算文件系統(tǒng)區(qū)數(shù)據(jù)段的CRC值,并與新版本攜帶的文件系統(tǒng)區(qū)數(shù)據(jù)段的CRC值進(jìn) 行校驗(yàn),如果一致,表明校驗(yàn)正確,如果不一致,則表明校驗(yàn)不正確。步驟704 0NU/0NT掛載新版本內(nèi)核。步驟705 :0NU/0NT判斷內(nèi)核是否掛載成功,如果成功,則執(zhí)行步驟706 ;否則,則更 改boot引導(dǎo)項(xiàng),回滾至舊版本;這里,所述判斷內(nèi)核是否掛載成功可以從監(jiān)控系統(tǒng)直接得到。步驟706 :0NU/0NT掛載新版本文件系統(tǒng)。步驟707 :0NU/0NT判斷新版本文件系統(tǒng)是否掛載成功并使新版本正確成為 reboot的加載項(xiàng),如果成功,則結(jié)束當(dāng)前處理流程;否則,則更改boot引導(dǎo)項(xiàng),回滾至舊版 本;這里,所述判斷文件系統(tǒng)是否掛載成功可以從監(jiān)控系統(tǒng)直接得到。。以上所述方案中的0NU/0NT可以統(tǒng)稱為GPON終端。基于上述方法,如圖8所示,本發(fā)明GPON終端升級(jí)中異常情況的保護(hù)系統(tǒng)包括存 儲(chǔ)模塊81、分析模塊82、燒寫模塊83、校驗(yàn)?zāi)K84 ;其中,存儲(chǔ)模塊81,用于保存OLT發(fā)送的新版本文件,一般為閃存(flash)或者內(nèi)存堆棧 區(qū);分析模塊82,用于對(duì)存儲(chǔ)模塊81保存的新版本文件依次進(jìn)行的完整性、正確性以 及有效性分析,并在判定新版本文件完整、正確以及有效時(shí),觸發(fā)燒寫模塊83;燒寫模塊83,用于燒寫新版本文件,并應(yīng)答OLT設(shè)備忙,燒寫完成后,觸發(fā)校驗(yàn)?zāi)?塊84 ;校驗(yàn)?zāi)K84 用于根據(jù)OLT的激活流程確定對(duì)新版本進(jìn)行校驗(yàn),完成GPON終端新 版本的升級(jí)。其中,分析模塊82包括分析模塊一,用于判斷存儲(chǔ)模塊81保存的新版本文件是否完整及正確,并根據(jù)判 斷的結(jié)果相應(yīng)的應(yīng)答0LT,并在判定新版本文件完整及正確時(shí),觸發(fā)分析模塊二;分析模塊二,用于進(jìn)一步新判斷版本文件是否有效,并根據(jù)判斷的結(jié)果相應(yīng)的應(yīng) 答0LT,并在判定新版本文件有效時(shí),觸發(fā)燒寫模塊83。其中,校驗(yàn)?zāi)K84包括校驗(yàn)?zāi)K一,用于根據(jù)燒寫模塊83燒寫新版本的結(jié)果,判斷燒寫是否成功,并根據(jù)判斷的結(jié)果相應(yīng)的應(yīng)答0LT,并在判定新版本燒寫成功時(shí),觸發(fā)加載模塊;加載模塊,用于根據(jù)OLT發(fā)送的Active命令,將校驗(yàn)?zāi)K一判斷燒寫成功的新版 本進(jìn)行加載,加載過程中,觸發(fā)校驗(yàn)?zāi)K二 ;校驗(yàn)?zāi)K二,用于根據(jù)加載模塊對(duì)新版本加載的結(jié)果,判斷新版本是否加載成功。其中,所述裝置還可以包括判斷模塊85,用于根據(jù)校驗(yàn)?zāi)K二判斷新版本加載成 功,判斷非激活區(qū)的版本是否有效,并根據(jù)判斷的結(jié)果相應(yīng)的應(yīng)答0LT。其中,所述分析模塊一具體用于根據(jù)設(shè)置的VersionSize,判斷新版本文件的完 整性,再根據(jù)完整的新版本文件,進(jìn)行CRC32校驗(yàn),判斷新版本文件的正確性。所述分析模塊二具體用于首先,根據(jù)Flash所容許存放的版本的VerSizeMax確 定待燒寫的新版本文件大小適用;接著,根據(jù)文件的幻數(shù)確定新版本文件適用;然后,對(duì)新 版本文件內(nèi)核區(qū)數(shù)據(jù)進(jìn)行校驗(yàn),確定新版本文件的數(shù)據(jù)無丟失或篡改;再對(duì)新版本文件系 統(tǒng)區(qū)數(shù)據(jù)進(jìn)行校驗(yàn),進(jìn)一步確定新版本文件的數(shù)據(jù)無丟失或篡改。所述燒寫模塊83具體用于燒寫新版本文件,每完成新版本文件一個(gè)數(shù)據(jù)段的燒 寫,就休眠一次。所述判校驗(yàn)?zāi)K二具體用于首先,對(duì)新版本內(nèi)核區(qū)數(shù)據(jù)進(jìn)行校驗(yàn),確定新版本 的數(shù)據(jù)完整;接著,對(duì)新版本文件系統(tǒng)區(qū)數(shù)據(jù)進(jìn)行校驗(yàn),進(jìn)一步確定新版本的數(shù)據(jù)完整;然 后,根據(jù)內(nèi)核掛載的結(jié)果確定新版本可以工作;再根據(jù)系統(tǒng)文件掛載的結(jié)果進(jìn)一步確定新 版本文件可以正常工作。這里,本發(fā)明的所述裝置中的各個(gè)單元的具體處理過程已在上文中詳述,不再贅 述。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在 本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù) 范圍之內(nèi)。
權(quán)利要求
1.一種吉比特?zé)o源光網(wǎng)絡(luò)(GPON)終端升級(jí)中異常情況的保護(hù)方法,其特征在于,該方 法包括對(duì)下載至GPON終端的新版本文件依次進(jìn)行完整性、正確性以及有效性的判斷處理,燒 寫新版本文件;根據(jù)光線路終端(OLT)的激活流程確定對(duì)新版本的校驗(yàn),完成GPON終端新版本的升級(jí)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述新版本文件完整性的分析具體包括 保存新版本文件的大小,并設(shè)置新版本文件下載完整標(biāo)記為否;在收到下載完成通知后判 斷所下載的新版本文件的大小是否與保存的新版本文件大小相同,若判斷為相同,則設(shè)置 新版本數(shù)據(jù)下載完整標(biāo)記為是,認(rèn)為下載的新版本文件完整,若判斷為不相同,則確認(rèn)新版 本文件的數(shù)據(jù)不完整,應(yīng)答OLT下載錯(cuò)誤,GPON終端結(jié)束當(dāng)前流程。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述新版本文件有效性的分析具體包括 根據(jù)GPON終端所允許的待燒寫新版本文件的最大值確定待燒寫的新版本文件大小適用; 根據(jù)文件中的幻數(shù)確定新版本文件合法性;對(duì)新版本文件內(nèi)核區(qū)數(shù)據(jù)進(jìn)行校驗(yàn),初步確定 新版本文件的數(shù)據(jù)無丟失或篡改;再對(duì)新版本文件系統(tǒng)區(qū)數(shù)據(jù)進(jìn)行校驗(yàn),進(jìn)一步確定新版 本文件的數(shù)據(jù)無丟失或篡改。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述燒寫新版本文件,進(jìn)一步包括每燒 寫一個(gè)數(shù)據(jù)段,就休眠一次。
5.根據(jù)權(quán)利要求1至4任一所述的方法,其特征在于,所述燒寫新版本文件完成之后, 進(jìn)一步包括根據(jù)燒寫完成后給出的函數(shù)結(jié)果判斷燒寫是否成功。
6.根據(jù)權(quán)利要求1至4任一所述的方法,其特征在于,所述對(duì)新版本的校驗(yàn)具體包括 執(zhí)行來自O(shè)LT的激活命令,對(duì)新版本內(nèi)核區(qū)數(shù)據(jù)進(jìn)行校驗(yàn),初步確定新版本文件的數(shù)據(jù)完 整;對(duì)新版本文件系統(tǒng)區(qū)數(shù)據(jù)進(jìn)行校驗(yàn),進(jìn)一步確定新版本文件的數(shù)據(jù)完整;根據(jù)內(nèi)核掛 載的結(jié)果初步確定新版本文件能夠正常工作;再根據(jù)系統(tǒng)文件掛載的結(jié)果進(jìn)一步確定新版 本文件能夠正常工作并使新版本正確成為重新引導(dǎo)的加載項(xiàng)。
7.根據(jù)權(quán)利要求1至4任一所述的方法,其特征在于,該方法進(jìn)一步包括判斷非激活 分區(qū)的數(shù)據(jù)是否有效,如果是,則上報(bào)OLT非激活分區(qū)版本文件有效,如果不是,則上報(bào)OLT 非激活分區(qū)版本文件無效。
8.—種吉比特?zé)o源光網(wǎng)絡(luò)終端升級(jí)中異常情況的保護(hù)系統(tǒng),包括存儲(chǔ)模塊,其特征在 于,該系統(tǒng)還包括分析模塊、燒寫模塊以及校驗(yàn)?zāi)K;其中,存儲(chǔ)模塊,用于保存OLT發(fā)送的新版本文件;分析模塊,用于對(duì)存儲(chǔ)模塊保存的新版本文件依次進(jìn)行的完整性、正確性以及有效性 分析,并在判定新版本文件完整、正確以及有效時(shí),觸發(fā)燒寫模塊;燒寫模塊,用于燒寫新版本文件,燒寫完成后,觸發(fā)校驗(yàn)?zāi)K;校驗(yàn)?zāi)K,用于根據(jù)OLT的激活流程確定對(duì)新版本進(jìn)行校驗(yàn),完成GPON終端新版本的 升級(jí)。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述分析模塊包括分析模塊一和分析模 塊二;其中,分析模塊一,用于判斷存儲(chǔ)模塊保存的新版本文件是否完整及正確,并根據(jù)判斷的結(jié)果相應(yīng)的應(yīng)答0LT,并在判定新版本文件完整及正確時(shí),觸發(fā)分析模塊二;分析模塊二,用于進(jìn)一步新判斷版本文件是否有效,并根據(jù)判斷的結(jié)果相應(yīng)的應(yīng)答 0LT,并在判定新版本文件有效時(shí),觸發(fā)燒寫模塊。
10.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述校驗(yàn)?zāi)K包括校驗(yàn)?zāi)K一、加 載模塊以及校驗(yàn)?zāi)K二 ;其中,校驗(yàn)?zāi)K一,用于根據(jù)燒寫模塊燒寫新版本文件的結(jié)果,判斷燒寫是否成功,并根據(jù)判 斷的結(jié)果相應(yīng)的應(yīng)答0LT,并在判定新版本燒寫成功時(shí),觸發(fā)加載模塊;加載模塊,用于根據(jù)OLT發(fā)送的激活命令,將校驗(yàn)?zāi)K一判斷燒寫成功的新版本進(jìn)行 加載,加載過程中,觸發(fā)校驗(yàn)?zāi)K二 ;校驗(yàn)?zāi)K二,用于根據(jù)加載模塊對(duì)新版本加載的結(jié)果,判斷新版本是否加載成功。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述系統(tǒng)進(jìn)一步包括判斷模塊,用于根 據(jù)校驗(yàn)?zāi)K二判斷新版本加載成功,進(jìn)一步判斷加載的新版本是否有效,并根據(jù)判斷的結(jié) 果相應(yīng)的應(yīng)答OLT。
全文摘要
本發(fā)明公開了一種吉比特?zé)o源光網(wǎng)絡(luò)終端升級(jí)中異常情況的保護(hù)方法,包括對(duì)下載至GPON終端的新版本文件依次進(jìn)行完整性、正確性以及有效性的判斷處理,燒寫新版本文件;根據(jù)OLT的激活流程確定對(duì)新版本的校驗(yàn),完成GPON終端新版本的升級(jí)。本發(fā)明還同時(shí)公開了一種吉比特?zé)o源光網(wǎng)絡(luò)終端升級(jí)中異常情況的保護(hù)系統(tǒng),采用該方法和系統(tǒng)能提高GPON終端遠(yuǎn)程升級(jí)的穩(wěn)定性,進(jìn)而提升了GPON終端系統(tǒng)的可維護(hù)性和健壯性。
文檔編號(hào)H04L12/24GK102118258SQ20091021752
公開日2011年7月6日 申請(qǐng)日期2009年12月31日 優(yōu)先權(quán)日2009年12月31日
發(fā)明者張陽春 申請(qǐng)人:中興通訊股份有限公司