一種無源光纖網絡協(xié)議棧的傳值方法
【專利摘要】本發(fā)明提供的無源光纖網絡協(xié)議棧的傳值方法中,底層驅動通過設置在其相應接口處的hook函數,直接調取上層OAM協(xié)議棧所需數據來封裝成數據報文,并將該數據報文直接發(fā)送給所述OAM協(xié)議棧,而不是由兩者之間的SUBSYSTEM系統(tǒng)或HAL層轉發(fā)。所述底層驅動或HAL層,根據OAM協(xié)議棧的報文頭部解析部分,對OAM協(xié)議棧所發(fā)送消息中的報文頭部進行解析,獲知所需數據在底層驅動上相應的接口,以便設置hook函數。所述OAM協(xié)議棧讀取數據報文進行處理后,可以直接向底層驅動發(fā)送回復信息。本發(fā)明可以靈活地切換數據報文的處理位置,效率更高。
【專利說明】一種無源光纖網絡協(xié)議棧的傳值方法
【技術領域】
[0001]本發(fā)明涉及網絡領域,特別涉及一種無源光纖網絡協(xié)議棧的傳值方法。
【背景技術】
[0002]一般網管類的協(xié)議棧往往是為了管理ONU (光網絡單元)設備而建立的,這種協(xié)議棧一般采取慢速協(xié)議,同時采用的是基于1ctrl (即設備驅動程序中對設備I/O通道進行管理的函數)的信息存取方法。
[0003]但PON (無源光纖網絡)的協(xié)議棧的技術卻有所區(qū)別,PON協(xié)議棧的定位固然是網管類的協(xié)議棧,但同樣也包含了對PON模塊的控制,用以維持PON鏈路的持續(xù)通信??梢哉fPON協(xié)議棧不僅僅是一個上層的純數據的管理模塊,他的存在還包含了不少硬件方面的管理,是一個關鍵性的協(xié)議棧。
[0004]目前處理這類數據的模式,往往是將OAM (操作管理維護)和OMCI (0ΝΤ管理控制接口,其中ONT為光網絡終端)的協(xié)議棧,作為一個純上層的應用獨立于整個系統(tǒng),然后再需要時進行加載,具體數據通過中間的HAL層(硬件抽象層)抽象后利用消息進行轉發(fā)。
[0005]上述現(xiàn)有處理方式的模型固然在結構的清晰度上有很高的優(yōu)勢,能夠將工作完全的模塊化以及程序結構化,但相對來說,這種模型的缺點是適應性不強,如果底層驅動和上層應用之間用來獲取模塊的方式不一致,那么傳統(tǒng)的1ctl的傳值方法就會對端相互不可達,數據傳輸過程就會被打斷。
[0006]為了維持PON鏈路的信息底層驅動和頁面?zhèn)髦档臅惩ǎ讓域寗雍蜕蠈討弥g必須保持一個消息機制,那么在現(xiàn)有模型下,協(xié)議棧每秒都至少有一個數據報文會從底層驅動獲取后進入HAL層,再經過HAL層和SUBSYSTEM (連接器參數,用來指定程序的入口函數)系統(tǒng)的轉發(fā),轉移到最上層的OAM協(xié)議棧,處理完以后,再按原路返回。
[0007]但其實,傳統(tǒng)的1ctrl機制一般都是封裝好的,僅在外部設置一個接口,上層OAM協(xié)議棧發(fā)送一個消息給底層驅動,底層驅動接收到這樣的消息之后,調用相應的接口獲得硬件參數。可是這樣的方法在針對底層驅動不是用1ctrl傳值的時候,就遇上了瓶頸:首先需要把不同的底層接口寫在一個結構體內,然后對這樣的一個結構體進行封裝,再發(fā)送消息到1ctrl里,這樣就進行了三層傳輸。而且在針對PON報文本身的數據中,有些數據在上層是不需要讀取的,比如鏈路維持,或者是硬件廠商自己定義的數據,如果對其也進行整體封裝,重復讀取,將極大地損耗系統(tǒng)運行的效率,浪費大量的系統(tǒng)資源。
[0008]假設使用的是一些比較強大的主控芯片,則這種現(xiàn)象根本不足為慮,其強大的處理能力足夠完成這些資源的開銷;但隨著大量成本降低需求的出現(xiàn),芯片的處理能力越來越弱,如果不采取一些比較高效的算法,將無法承受這樣的資源開銷。
【發(fā)明內容】
[0009]本發(fā)明的目的在于提供一種無源光纖網絡協(xié)議棧的傳值方法,來解決決底層驅動的光基本信息和上層應用獲取的交互問題,提高運行處理效率。
[0010]為了達到上述目的,本發(fā)明的第一個技術方案是提供一種無源光纖網絡協(xié)議棧的傳值方法,其中,在底層驅動的相應接口處添加hook函數;
當向上層OAM協(xié)議棧發(fā)送消息時,底層驅動調用所述hook函數以獲取所述上層OAM協(xié)議棧所需的數據,并將獲取到的數據封裝成數據報文后發(fā)送給所述OAM協(xié)議棧。
[0011]優(yōu)選地,所述的傳值方法還包括:在底層驅動的相應接口處添加hook函數的步驟之前,由所述底層驅動根據OAM協(xié)議棧的報文頭部解析部分,對OAM協(xié)議棧所發(fā)送消息中的報文頭部進行解析,獲知所需數據在底層驅動上所對應的接口。
[0012]優(yōu)選地,所述的傳值方法還包括:在底層驅動的相應接口處添加hook函數的步驟之前,由所述HAL層根據OAM協(xié)議棧的報文頭部解析部分,對OAM協(xié)議棧所發(fā)送消息中的報文頭部進行解析,獲知所需數據在底層驅動上相應的接口并告知底層驅動。
[0013]優(yōu)選地,所述的傳值方法還包括:所述OAM協(xié)議棧在對讀取到的數據報文進行處理后向底層驅動發(fā)送回復信息。
[0014]本發(fā)明的第二個技術方案是提供一種無源光纖網絡協(xié)議棧的傳值方法,其中包含以下步驟:
51、將OAM協(xié)議棧的報文頭部解析部分復制一份發(fā)送至底層驅動;
52、OAM協(xié)議棧向底層驅動發(fā)送消息,以要求獲取所需數據;
53、底層驅動接收消息并對其中的報文頭部進行解析,獲知所需數據在底層驅動上相應的接口 ;
54、在底層驅動的相應接口處添加hook函數;
55、底層驅動調用hook函數從相應接口處獲得OAM協(xié)議棧所需的數據;
56、底層驅動對獲得的數據進行封裝后形成數據報文,并發(fā)送至所述OAM協(xié)議棧。
[0015]優(yōu)選地,所述OAM協(xié)議棧在對讀取的數據報文進行處理后,向底層驅動發(fā)送回復信息。
[0016]本發(fā)明的第三個技術方案是提供一種無源光纖網絡協(xié)議棧的傳值方法,其中包含以下步驟:
SI’、將OAM協(xié)議棧的報文頭部解析部分復制一份發(fā)送至HAL層;
S2’、OAM協(xié)議棧向HAL層發(fā)送消息,要求從底層驅動獲取所需數據;
S3’、HAL層接收消息并對其中的報文頭部進行解析,獲知所需數據在底層驅動上相應的接口后告知底層驅動;
54、在底層驅動的相應接口處添加hook函數;
55、底層驅動調用hook函數從相應接口處獲得OAM協(xié)議棧所需的數據;
56、底層驅動對獲得的數據進行封裝后形成數據報文,并直接發(fā)送至所述OAM協(xié)議棧。
[0017]優(yōu)選地,所述OAM協(xié)議棧在對讀取的數據報文進行處理后,向底層驅動發(fā)送回復信息。
[0018]本發(fā)明所述無源光纖網絡協(xié)議棧的傳值方法,是在設備底層驅動或者在HAL層中,對數據報文做一次粗解析,使用hook函數,在底層驅動中有選擇的調用所需要的接口,只需要進行一次封裝,形成一個可獨立完成的功能數據報文,那么就不用轉發(fā),被上層應用讀取,直接回復。
[0019]與現(xiàn)有最好技術相比,本發(fā)明的優(yōu)點在于: 本發(fā)明的效率更高,而且可以靈活的切換數據報文的處理位置,并不影響遠設計邏輯,對于上層不需要處理的數據,主動放棄,不予讀取,不會出錯。
【專利附圖】
【附圖說明】
[0020]圖1是適用于本發(fā)明所述無源光纖網絡協(xié)議棧的傳值方法的系統(tǒng)架構示意圖;
圖2、圖3分別是本發(fā)明所述無源光纖網絡協(xié)議棧的傳值方法兩個實施例的流程圖。
【具體實施方式】
[0021]以下結合【專利附圖】
【附圖說明】本發(fā)明的【具體實施方式】。
[0022]如圖1所示,本發(fā)明所述無源光纖網絡協(xié)議棧的傳值方法,適用于以下系統(tǒng)架構,其中依次有:作為上層應用的OAM協(xié)議棧,SUBSYSTEM系統(tǒng),HAL層,底層驅動。
[0023]如圖2所示,本發(fā)明的所述傳值方法,包含以下步驟:
51、將OAM協(xié)議棧的報文頭部解析部分復制一份發(fā)送至底層驅動;
52、OAM協(xié)議棧向底層驅動發(fā)送消息,要求獲取某項或某些數據;
53、底層驅動接收消息后對其報文頭部進行解析,獲知所需數據對應的接口;
54、在底層驅動的相應接口處添加hook(鉤子)函數;
55、在需要向上層發(fā)送消息時,底層驅動調用hook函數,從對應的接口處直接調用所需數據;而對于上層不需要處理的數據,底層驅動主動放棄,不予讀取;
56、底層驅動得到的所需數據進行一次封裝后形成數據報文,不需要轉發(fā)而能夠由底層驅動直接發(fā)送至上層的OAM協(xié)議棧。上層的OAM協(xié)議棧讀取數據報文進行處理后,可以直接回復底層驅動。
[0024]如圖3所示,本發(fā)明在另一個實施例中所述的傳值方法,包含以下步驟:
SI’、將OAM協(xié)議棧的報文頭部解析部分復制一份發(fā)送至HAL層;
S2’、OAM協(xié)議棧向HAL層發(fā)送消息,要求底層驅動獲取某項或某些數據;
S3’、HAL層接收消息后對其報文頭部進行解析,獲知所需數據對應的接口后告知底層驅動;
54、在底層驅動的相應接口處添加hook函數;
55、在需要向上層發(fā)送消息時,底層驅動調用hook函數,從對應的接口處直接調用所需數據;
56、底層驅動得到的所需數據進行一次封裝后形成的數據報文,直接發(fā)送至上層的OAM協(xié)議棧。
[0025]在一個示例中,僅僅需要獲取PON協(xié)議棧的鏈接狀態(tài),則其中包含:
先是在底層驅動的相應接口添加hook函數:
void ponReg_hook(void 氺phook)
{
PonReg_hook = (PPonReg) phook;
printk (〃PonReg_hook = %X\r\n〃,(unsigned int)PonReg_hook);
}
然后,在要發(fā)送消息時,底層驅動調用這個hook函數,獲取所需要的鏈路狀態(tài)值:
event = ponReg_hook(board_send_msg_handler);
最后,底層驅動把獲取到參數值發(fā)送給上層應用: g_ponStatus = event ;
需要說明的是,上述示例并非對本發(fā)明中可以獲取的參數進行限制。實際應用中,對于GPON模塊以及其他存在可以自身獨立完成功能的協(xié)議棧也都可以按本發(fā)明的方法改造。
[0026]綜上所述,本發(fā)明所述的傳值方法,利用底層驅動加入hook函數對報文進行粗解析,然后直接獲取需要調用的參數到上層應用中,就可以大量減少不必要的報文傳遞,以提升OAM數據的工作效率。
[0027]盡管本發(fā)明的內容已經通過上述優(yōu)選實施例作了詳細介紹,但應當認識到上述的描述不應被認為是對本發(fā)明的限制。在本領域技術人員閱讀了上述內容后,對于本發(fā)明的多種修改和替代都將是顯而易見的。因此,本發(fā)明的保護范圍應由所附的權利要求來限定。
【權利要求】
1.一種無源光纖網絡協(xié)議棧的傳值方法,其特征在于, 在底層驅動的相應接口處添加hook函數; 當向上層OAM協(xié)議棧發(fā)送消息時,底層驅動調用所述hook函數以獲取所述上層OAM協(xié)議棧所需的數據,并將獲取到的數據封裝成數據報文后發(fā)送給所述OAM協(xié)議棧。
2.如權利要求1所述的傳值方法,其特征在于,還包括:在底層驅動的相應接口處添加hook函數的步驟之前,由所述底層驅動根據OAM協(xié)議棧的報文頭部解析部分,對OAM協(xié)議棧所發(fā)送消息中的報文頭部進行解析,獲知所需數據在底層驅動上所對應的接口。
3.如權利要求1所述的傳值方法,其特征在于,還包括:在底層驅動的相應接口處添加hook函數的步驟之前,由所述HAL層根據OAM協(xié)議棧的報文頭部解析部分,對OAM協(xié)議棧所發(fā)送消息中的報文頭部進行解析,獲知所需數據在底層驅動上相應的接口并告知底層驅動。
4.如權利要求1所述的傳值方法,其特征在于,還包括:所述OAM協(xié)議棧在對讀取到的數據報文進行處理后向底層驅動發(fā)送回復信息。
5.一種無源光纖網絡協(xié)議棧的傳值方法,其特征在于,包含以下步驟: 51、將OAM協(xié)議棧的報文頭部解析部分復制一份發(fā)送至底層驅動; 52、OAM協(xié)議棧向底層驅動發(fā)送消息,以要求獲取所需數據; 53、底層驅動接收消息并對其中的報文頭部進行解析,獲知所需數據在底層驅動上相應的接口 ; 54、在底層驅動的相應接口處添加hook函數; 55、底層驅動調用hook函數從相應接口處獲得OAM協(xié)議棧所需的數據; 56、底層驅動對獲得的數據進行封裝后形成數據報文,并發(fā)送至所述OAM協(xié)議棧。
6.如權利要求5所述的傳值方法,其特征在于, 所述OAM協(xié)議棧在對讀取的數據報文進行處理后,向底層驅動發(fā)送回復信息。
7.一種無源光纖網絡協(xié)議棧的傳值方法,其特征在于,包含以下步驟: SI’、將OAM協(xié)議棧的報文頭部解析部分復制一份發(fā)送至HAL層; S2’、OAM協(xié)議棧向HAL層發(fā)送消息,要求從底層驅動獲取所需數據; S3’、HAL層接收消息并對其中的報文頭部進行解析,獲知所需數據在底層驅動上相應的接口后告知底層驅動; 54、在底層驅動的相應接口處添加hook函數; 55、底層驅動調用hook函數從相應接口處獲得OAM協(xié)議棧所需的數據; 56、底層驅動對獲得的數據進行封裝后形成數據報文,并直接發(fā)送至所述OAM協(xié)議棧。
8.如權利要求7所述的傳值方法,其特征在于, 所述OAM協(xié)議棧在對讀取的數據報文進行處理后,向底層驅動發(fā)送回復信息。
【文檔編號】H04Q11/00GK104283892SQ201410585586
【公開日】2015年1月14日 申請日期:2014年10月28日 優(yōu)先權日:2014年10月28日
【發(fā)明者】崔媛媛 申請人:上海斐訊數據通信技術有限公司