一種分層狀態(tài)機實現(xiàn)pon線卡熱插拔機制的方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及數(shù)據(jù)通信領域,尤其是一種分層狀態(tài)機實現(xiàn)PON線卡熱插拔機制的方法及裝置。
【背景技術】
[0002]隨著EPON設備在廣電市場的推廣發(fā)展和運用,框式EPON設備下面級聯(lián)的ONU越來越多,用戶指數(shù)級增長,以9U級別的OLT框式設備為例,OLT里一個PON線卡可以支持IK個ONU,I臺9U的OLT設備就可以支持近萬個ONU,因此,在OLT設備的軟件系統(tǒng)架構(gòu)中,如果沒有熱插拔的機制,那么在不斷電的前提下,無論是拔掉某個線卡,還是插上某個線卡,這個線卡的業(yè)務都不會恢復,而處于脫管狀態(tài)。并且,當線卡發(fā)生故障,即使拔下修好后再插上,也是不可用的。同時,拔插線卡還可能影響到其他槽位線卡的業(yè)務,嚴重時會導致主控板死機等致命問題,一塊線卡的局部現(xiàn)場問題,有可能會擴散到整臺OLT設備不可用,這將大大減少用戶使用的滿意度,風險很大。對于一款用戶量巨大的局端EPON設備來講,這是不可接受的。
[0003]針對以上問題場景,熱插拔功能應運而生。
[0004]熱插拔功能是提供給所有能夠操作設備的人員使用,在主控板運行正常的前提下,不斷電插拔線卡后,不影響該線卡、主控板和其他線卡的使用和運行。
[0005]熱插拔框架模塊作為OLT設備中主控軟件的一個子模塊,需要處理各種各樣的事件類型,有通過用戶在命令行或者網(wǎng)管配置來的事件,比如增刪邏輯線卡、復位線卡等等事件,也有硬件產(chǎn)生的各種事件,比如拔插事件、硬件故障事件等。同時,由于EPON設備規(guī)格多樣,容量級別不一樣,硬件形態(tài)也不一樣,產(chǎn)生的硬件事件及其來源也會不同,因此,設計者需要針對不同的硬件設備做不同的熱插拔機制的考慮和實現(xiàn),這樣會對設備的開發(fā)人員和維護人員都帶來巨大的工作量,因此,怎么樣設計一套可用于各種不同規(guī)格的框式設備使用的熱插拔的機制,就顯得尤為重要了。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術問題是:針對不同規(guī)格和不同硬件形態(tài)的OLT框式設備實現(xiàn)同一套熱插拔機制的問題,提供一種分層狀態(tài)機實現(xiàn)PON線卡熱插拔機制的方法及裝置。該方法及裝置使得熱插拔框架可適用于不同類型的框式設備,使該熱插拔框架具備了很高的可擴展性和可移植性。基于分層狀態(tài)機的熱插拔框架,為以后增加新的線卡類型,集中式與分布式兼容等應用需求也帶來了極大的好處,熱插拔框架的核心抽象部分(包括狀態(tài)機,關鍵數(shù)據(jù)結(jié)構(gòu)、操作線卡的動作事件等)不需要做任何改動,只需針對該新增線卡做具體實例的適配,例如派生類的定義,驅(qū)動的具體實現(xiàn)等。而且,在一套產(chǎn)品系統(tǒng)中,熱插拔框架可以獨立分布于主控板和載板,同時運行并感知不同層次槽位的熱插拔事件。
[0007]本發(fā)明采用的技術方案如下:
一種分層狀態(tài)機實現(xiàn)PON線卡熱插拔機制的方法包括: 步驟I:在添加某一個PON線卡之前,用戶通過邏輯卡管理模塊發(fā)送添加邏輯線卡命令給主控板,并通過主控板中的上層狀態(tài)機創(chuàng)建對應邏輯線卡,并為其分配對應的內(nèi)存存儲區(qū);
步驟2:當添加對應PON線卡,則用戶在對應槽位上插入PON線卡,主控板的驅(qū)動模塊完成PON線卡啟動初始化;當PON線卡初始化完成后,PON線卡會通過主控板消息處理模塊將此消息發(fā)送給下層狀態(tài)機;下層狀態(tài)機詢問PON線卡的硬件消息,并向上層狀態(tài)機發(fā)送檢測到PON線卡的硬件消息;
步驟3:上層狀態(tài)機收到來自下層狀態(tài)機的推送消息后,解析此消息,并根據(jù)獲取到的硬件信息,判斷邏輯線卡與物理線卡的類型是否匹配,若類型匹配,則上層狀態(tài)機校驗通過,執(zhí)行步驟4;否則,返回失??;
步驟4:上層狀態(tài)機通過驅(qū)動代理模塊加載該PON線卡真實驅(qū)動,下發(fā)配置數(shù)據(jù)給PON線卡,完成PON線卡熱插拔操作。
[0008]進一步的,所述步驟I具體包括:
步驟11:在添加某一個PON線卡之前,用戶通過邏輯卡管理模塊發(fā)送添加邏輯線卡命令給主控板;主控板的處理模塊解析此命令并將其發(fā)送給熱插拔框架模塊處理;
步驟12:熱插拔框架模塊接收到此解析命令后,發(fā)送安裝命令給上層狀態(tài)機,上層狀態(tài)機創(chuàng)建對應的邏輯線卡,為其分配對應的內(nèi)存儲存區(qū),同時所述上層狀態(tài)機由空置狀態(tài)變?yōu)榘惭b狀態(tài)。
[0009]進一步,所述步驟2:具體包括:
步驟21:當添加對應PON線卡時,用戶在對應槽位上插入PON線卡;當主控板的驅(qū)動模塊檢測到PON線卡插入時,驅(qū)動模塊將有PON線卡插入的消息上報給主控板的熱插拔框架模塊;熱插拔框架模塊發(fā)送命令給下層狀態(tài)機表明此時有PON線卡插入;下層狀態(tài)機等待PON線卡啟動完成,同時下層狀態(tài)機由空置狀態(tài)變?yōu)槌跏蓟癄顟B(tài);
步驟22:當插入的PON線卡啟動初始化完成后,PON線卡發(fā)送啟動命令給主控板,主控板的消息處理模塊將此消息轉(zhuǎn)發(fā)給下層狀態(tài)機,當下層狀態(tài)機此刻狀態(tài)為初始化狀態(tài)時,下層狀態(tài)機發(fā)送詢問PON線卡硬件信息給PON線卡,并將所述PON線卡的硬件消息發(fā)送給上層狀態(tài)機;此時下層狀態(tài)機狀態(tài)由初始化狀態(tài)變?yōu)闇蕚錉顟B(tài)。
[0010]進一步的,所述步驟4具體包括:
步驟41:上層狀態(tài)機通知驅(qū)動代理模塊加載真實驅(qū)動,下發(fā)配置數(shù)據(jù)到物理線卡,同時,上層狀態(tài)機FFSM的狀態(tài)由安裝完成狀態(tài)轉(zhuǎn)換為運行配置狀態(tài);
步驟42:驅(qū)動代理模塊下發(fā)配置完成后,會產(chǎn)生配置完成命令給上層狀態(tài)機,上層狀態(tài)機由運行配置狀態(tài)迀至運行態(tài)。
[0011 ] 一種分層狀態(tài)機實現(xiàn)PON線卡熱插拔機制的裝置包括:
邏輯線卡管理模塊,用于在添加某一個PON線卡之前,用戶通過邏輯卡管理模塊發(fā)送添加邏輯線卡命令給主控板,并通過主控板中的上層狀態(tài)機創(chuàng)建對應邏輯線卡,并為其分配對應的內(nèi)存存儲區(qū);
驅(qū)動模塊,用于當添加對應PON線卡,則用戶在對應槽位上插入PON線卡,主控板的驅(qū)動模塊完成PON線卡啟動初始化;
消息處理模塊,用于當PON線卡初始化完成后,PON線卡會通過消息處理模塊將此消息發(fā)送給下層狀態(tài)機;下層狀態(tài)機詢問PON線卡的硬件消息,并向上層狀態(tài)機發(fā)送檢測到PON線卡的硬件消息;
上層狀態(tài)機,用于收到來自下層狀態(tài)機的推送消息后,解析此消息,并根據(jù)獲取到的硬件信息,判斷邏輯線卡與物理線卡的類型是否匹配,若類型匹配,則上層狀態(tài)機校驗通過,上層狀態(tài)機通過驅(qū)動代理模塊加載該PON線卡真實驅(qū)動,下發(fā)配置數(shù)據(jù)給PON線卡,完成PON線卡熱插拔操作;否則,返回失??;
進一步的,所述邏輯線卡管理模塊,用于在添加某一個PON線卡之前,用戶通過邏輯卡管理模塊發(fā)送添加邏輯線卡命令給主控板,并通過主控板中的上層狀態(tài)機創(chuàng)建對應邏輯線卡,并為其分配對應的內(nèi)存存儲區(qū)具體包括:
步驟11:在添加某一個PON線卡之前,用戶通過邏輯卡管理模塊發(fā)送添加邏輯線卡命令給主控板;主控板的處理模塊解析此命令并將其發(fā)送給熱插拔框架模塊處理;
步驟12:熱插拔框架模塊接收到此解析命令后,發(fā)送安裝命令給上層狀態(tài)機,上層狀態(tài)機創(chuàng)建對應的邏輯線卡,為其分配對應的內(nèi)存儲存區(qū),同時所述上層狀態(tài)機由空置狀態(tài)變?yōu)榘惭b狀態(tài)
進一步的,所述驅(qū)動模塊,用于當添加對應PON線卡,則用戶在對應槽位上插入PON線卡,主控板的驅(qū)動模塊完成PON線卡啟動初始化;
步驟21:當添加對應PON線卡時,用戶在對應槽位上插入PON線卡;當主控板的驅(qū)動模塊檢測到PON線卡插入時,驅(qū)動模塊將有PON線卡插入的消息上報給主控板的熱插拔框架模塊;熱插拔框架模塊發(fā)送命令給下層狀態(tài)機表明此時有PON線卡插入;下層狀態(tài)機等待PON線卡啟動完成,同時下層狀態(tài)機由空置狀態(tài)變?yōu)槌跏蓟癄顟B(tài);
步驟22:當插入的PON線卡啟動初始化完成后,PON線卡發(fā)送啟動命令給主控板,主控板的消息處理模塊將此消息轉(zhuǎn)發(fā)給下層狀態(tài)機,當下層狀態(tài)機此刻狀態(tài)為初始化狀態(tài)時,下層狀態(tài)機發(fā)送詢問PON線卡硬件信息給PON線卡,并將所述PON線卡的硬件消息發(fā)送給上層狀態(tài)機;此時下層狀態(tài)機狀態(tài)由初始化狀態(tài)變?yōu)闇蕚錉顟B(tài)。
[0012]進一步的,所述上層狀態(tài)機,用于收到來自下層狀態(tài)機的推送消息后,解析此消息,并根據(jù)獲取到的硬件信息,判斷邏輯線卡與物理線卡的類型是否匹配,若類型匹配,則上層狀態(tài)機校驗通過,上層狀態(tài)機通過驅(qū)動代理模塊加載該PON線卡真實驅(qū)動,下發(fā)配置數(shù)據(jù)給PON線卡,完成PON線卡熱插拔操作;否則,返回失敗具體步驟包括:
步驟31:上層狀態(tài)機收到來自下層狀態(tài)機的推送消息后,解析此消息,并根據(jù)獲取到的硬件信息,判斷邏輯線卡與物理線卡的類型是否匹配,若類型匹配,則上層狀態(tài)機校驗通過,執(zhí)行步驟32;否則,返回失??;
步驟32:上層狀態(tài)機通知驅(qū)動代理模塊加載真實驅(qū)動,下發(fā)配置數(shù)據(jù)到物理線卡,同時,上層狀態(tài)機的狀態(tài)由安裝完成狀態(tài)轉(zhuǎn)換為運行配置狀態(tài);
步驟33:驅(qū)動代理模塊下發(fā)配置完成后,會產(chǎn)生配置完成命令給上層狀態(tài)機,上層狀態(tài)機由運行配置狀態(tài)迀至運行態(tài)。
[0013]綜上所述,由于采用了上述技術方案,本發(fā)明的有益效果是:
上下層狀態(tài)機各司其職處理不同的事件類型,兩者通過內(nèi)部事件通信來完成上下層狀態(tài)機的消息銜接,進而讓熱插拔框架有效運轉(zhuǎn)起來。并且,這樣的熱插拔框架可適用于不同類型的框式設備,使該熱插拔框架具備了很高的可擴展性和可移植性。
【具體實施方式】
[0014]本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。
[0015]本說明書(包括任何附加權(quán)利要求、摘要)中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
[0016]有限狀態(tài)機FSM(Finite State Machine)主要由事件,狀態(tài),動作三個要素構(gòu)成。這里,可以根據(jù)不同的事件類型將熱插拔框架的狀態(tài)機分為上下兩層狀態(tài)機。上層狀態(tài)機FFSM(又稱框架狀態(tài)機)負責來自于軟件業(yè)務需求的事件響應,比如:增刪邏輯線卡,復位物理線卡,隔離物理線卡,恢復物理線卡等。這部分事件與硬件不直接相關聯(lián),主要由用戶來觸發(fā);而下層狀態(tài)機BFSM(又稱BSP狀態(tài)機)主要負責來自硬件或者分布式框架的事