專利名稱:一種基于tlv格式協(xié)議的編解碼代碼生成裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信網(wǎng)絡(luò)協(xié)議仿真測試分析技術(shù)應(yīng)用領(lǐng)域,尤其是涉及一種基于TLV格式協(xié)議的編解碼代碼生成裝置及方法。
背景技術(shù):
作為3G (Third Generation)的演進技術(shù),LTE(長期演進)不僅可以提供更高的數(shù)據(jù)速率和容量、更大的覆蓋范圍,還可以降低業(yè)務(wù)的延遲以及系統(tǒng)的運營成本,有利于運營商推出更多實時性、高速率業(yè)務(wù),從而吸引更多的高端用戶。而相對于UMTS系統(tǒng),LTE系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)和協(xié)議也發(fā)生了很大的變化,其LTE網(wǎng)絡(luò)結(jié)構(gòu)如
圖1所示。如圖1所示,LTE系統(tǒng)的無線接入部分由eNodeB(增強節(jié)點B) —種節(jié)點組成,核心網(wǎng)部分主要由MME (移動管理實體)、S-Gff (服務(wù)網(wǎng)關(guān)ServingGateway)實體、TONGateway (分組數(shù)據(jù)網(wǎng)絡(luò)網(wǎng)關(guān))實體及PCRF (策略與計費規(guī)則功能)實體等組成,HSS為所有移動網(wǎng)絡(luò)的共孚實體。相關(guān)的接口和協(xié)議如以下所述Sl-MME接口,eNodeB實體和MME實體之間的接口,該接口上傳輸?shù)氖荢lAP(SI接口應(yīng)用部分協(xié)議),并在SlAP消息中會嵌套傳輸NAS (非接入層協(xié)議)消息,其中NAS協(xié)議就是屬于TLV(類型/長度/值)格式的,是標準的層3消息。SlO接口,為MME實體之間的接口,在該接口上傳輸?shù)氖荊TPv2_C (GTP控制協(xié)議版本2)消息。S6a接口,為MME實體與HSS實體之間的接口,該接口上傳輸?shù)氖荄iameter ( 一種AAA協(xié)議)消息。 在LTE網(wǎng)絡(luò)中,一個標準的層3協(xié)議消息包含一個必選的部分和一個非必選的部分,非必選的部分在必選部分的后面,而消息中必選部分由一個消息頭部和剩下部分組成,消息結(jié)構(gòu)如圖2所示。消息中的必選部分的非頭部部分和消息的非必選部分都是由連續(xù)的標準的IE (information element信息元素)組成,一個標準的IE按順序可能由以下三部分組成一個 IE 的標識 IEI (information element identifier)、一個長度標識 LI (lengthindicator)、一個值部分。—個標準的IE可以是以下表中幾種格式的之一
權(quán)利要求
1.一種基于TLV格式協(xié)議的編解碼代碼生成裝置,其特征在于該裝置包括以下模塊TLV格式協(xié)議的配置文件生成模塊,將LTE的TLV格式協(xié)議所有消息用一種樹形結(jié)構(gòu)進行表示;配置文件解析和編解碼代碼生成模塊,用于對輸入的TLV格式協(xié)議配置文件進行解析,并根據(jù)代碼生成規(guī)則產(chǎn)生相應(yīng)的TLV格式協(xié)議的編解碼代碼;編解碼代碼文件生成模塊,TLV格式協(xié)議的編解碼代碼采用類結(jié)構(gòu)進行實現(xiàn),即協(xié)議配置文件生成模塊中的配置文件中的樹形結(jié)構(gòu)的節(jié)點都由相應(yīng)的類類型進行表示。
2 根據(jù)權(quán)利要求1所述的裝置,其特征在于在生成的TLV格式協(xié)議的配置文件中的節(jié)點包括以下字段ID = #N,用于表示該節(jié)點在樹形結(jié)構(gòu)中相對于兄弟節(jié)點的順序ID ;MAN = Y/N,用于表示該節(jié)點是否為必選,即記錄協(xié)議消息中的某字段是否為必選字段,Y為必選字段,N為可選字段;`NAME =字符串,用于表示該節(jié)點的名字,即記錄協(xié)議消息中的某字段名稱;NEXT =字符串,用于表示該節(jié)點是否為樹形結(jié)構(gòu)中的葉子節(jié)點,如果為葉子節(jié)點則值為NoField,如果為非葉子節(jié)點,則值為該節(jié)點的所有子節(jié)點的集合名稱;TYPE =節(jié)點類型,用于表示節(jié)點的類型;LENGTH =棚,當(dāng)節(jié)點為葉子節(jié)點時,用于表示該葉子節(jié)點所表示的值的長度;TAG = #N,當(dāng)節(jié)點為 TLVSequence_TV、TLVSequence_TLV、TLVSequence_TLVE 類型時,用于記錄該節(jié)點的TAG值;RelationID = #N,當(dāng)該節(jié)點為葉子節(jié)點時,用于記錄和該節(jié)點有關(guān)聯(lián)的節(jié)點ID,—般會從關(guān)聯(lián)節(jié)點得到該節(jié)點所表示值的長度信息。
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于TLV格式協(xié)議的配置文件中用樹形結(jié)構(gòu)將所有節(jié)點組織起來,節(jié)點的樹形結(jié)構(gòu)采用父節(jié)點記錄子節(jié)點集合名稱的方式實現(xiàn)。
4.根據(jù)權(quán)利要求3所述的裝置,其特征在于為了表示“父節(jié)點”和所有子節(jié)點之間的父子關(guān)系,先將所有子節(jié)點表示在集合中,然后在父節(jié)點的字段中指定子節(jié)點的集合,建立父節(jié)點和子節(jié)點之間的關(guān)系,子節(jié)點又可以指定自己的子節(jié)點集合,形成節(jié)點的樹形結(jié)構(gòu);而TLV格式協(xié)議的每一個消息就是從樹形結(jié)構(gòu)的根節(jié)點開始的一個子樹。
5.根據(jù)權(quán)利要求1所述的裝置,其特征在于配置文件解析和編解碼代碼生成模塊進一步包括讀入模塊,用于讀入TLV格式協(xié)議的配置文件,生成一個節(jié)點隊列,讀出樹形結(jié)構(gòu)的根節(jié)點,并將根節(jié)點加入隊列;第一判斷模塊,判斷節(jié)點隊列是否為空,如果為空則轉(zhuǎn)到終止模塊,否則轉(zhuǎn)入取出模塊;取出模塊,從節(jié)點隊列中取出一個節(jié)點;生成模塊,判斷取出的節(jié)點類型,并根據(jù)節(jié)點的類型在TLV協(xié)議編解碼代碼中生成該節(jié)點類型所對應(yīng)的類實例;信息讀取模塊,讀取該取出節(jié)點所帶的信息,并將這些信息賦值到為該節(jié)點所生成的類實例中; 父子關(guān)系形成模塊,將為該取出的節(jié)點所生成的類實例添加到該節(jié)點的父節(jié)點所對應(yīng)的類實例的孩子列表中,也即在TLV格式協(xié)議的編解碼代碼中使該節(jié)點和父節(jié)點分別對應(yīng)的類實例形成父子關(guān)系,并記錄在父節(jié)點的類實例代碼中; 第二判斷模塊,判斷該取出的節(jié)點是否為葉子節(jié)點,通過節(jié)點的字段的值進行判斷,如果判斷為葉子節(jié)點,轉(zhuǎn)到第一判斷模塊;否則為非葉子節(jié)點,轉(zhuǎn)到加入模塊; 加入模塊,將該非葉子節(jié)點的所有子節(jié)點按順序加入到節(jié)點隊列中,轉(zhuǎn)到第一判斷模塊; 終止模塊,結(jié)束配置文件的解析和代碼生成。
6.根據(jù)權(quán)利要求1所述的裝置,其特征在于類類型中包括以下各個類 類CBaseNode,為所有節(jié)點類型的基類,用于提供記錄節(jié)點的ID、RelationID、出現(xiàn)屬性,出現(xiàn)屬性對應(yīng)樹形節(jié)點的MAN = Y/N,以及節(jié)點數(shù)組,該數(shù)組用于保存非葉子節(jié)點的所有子節(jié)點; 類CTLVBase,為所有TLV類型的基類,用于聲明所有TLV類型的接口 ; 類CTLVChoice,配置文件中TLVChoice類型節(jié)點的代碼實現(xiàn),用于提供其子節(jié)點只能出現(xiàn)一個操作屬性; 類CTLVSequence,配置文件中TLVSequence類型節(jié)點的代碼實現(xiàn),用于提供其所有字節(jié)點按順序出現(xiàn)的操作屬性; 類CTLVSequenceOf,配置文件中TLVSequenceOf類型節(jié)點的代碼實現(xiàn),用于提供其只有一種類型的子節(jié)點,但可以重復(fù)出現(xiàn)多次的操作屬性; 類CTLVSequence_TV,配置文件中TLVSequence_TV類型節(jié)點的代碼實現(xiàn),用于提供對協(xié)議消息中TV格式IE的操作; 類CTLVSequence_TLV,配置文件中TLVSequence_TLV類型節(jié)點的代碼實現(xiàn),用于提供對協(xié)議消息中TLV格式IE的操作; 類CTLVSequence_TLVE,配置文件中TLVSequence_TLVE類型節(jié)點的代碼實現(xiàn),用于提供對協(xié)議消息中TLVE格式IE的操作; 類CBitString,配置文件中BitString類型葉子節(jié)點的代碼實現(xiàn),用于提供對協(xié)議消息中值類型為BitString的字段操作; 類COctetString,配置文件中OctetString類型葉節(jié)點的代碼實現(xiàn),用于提供對協(xié)議消息中值類型為OctetString的字段操作; 類CSignlnteger,配置文件中Signlnteger類型葉節(jié)點的代碼實現(xiàn),用于提供對協(xié)議消息中值類型為Signlnteger的字段操作; 類CUnsignlnteger,配置文件中Unsignlnteger類型葉節(jié)點的代碼實現(xiàn),用于提供對協(xié)議消息中值類型為Unsignlnteger的字段操作; 類CAscString,配置文件中AscString類型葉節(jié)點的代碼實現(xiàn),用于提供對協(xié)議消息中值類型為AscString的字段操作。
7.一種基于TLV格式協(xié)議的編解碼代碼生成方法,其特征在于該方法包括以下步驟 TLV格式協(xié)議的配置文件生成步驟,將LTE的TLV格式協(xié)議所有消息用一種樹形結(jié)構(gòu)進行表示;配置文件解析和編解碼代碼生成步驟,用于對輸入的TLV格式協(xié)議配置文件進行解析,并根據(jù)代碼生成規(guī)則產(chǎn)生相應(yīng)的TLV格式協(xié)議的編解碼代碼;編解碼代碼文件生成步驟,TLV格式協(xié)議的編解碼代碼采用類結(jié)構(gòu)進行實現(xiàn),即協(xié)議配置文件生成模塊中的配置文件中的樹形結(jié)構(gòu)的節(jié)點都由相應(yīng)的類類型進行表示。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于TLV格式協(xié)議的配置文件中用樹形結(jié)構(gòu)將所有節(jié)點組織起來,節(jié)點的樹形結(jié)構(gòu)采用父節(jié)點記錄子節(jié)點集合名稱的方式實現(xiàn)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于為了表示“父節(jié)點”和所有子節(jié)點之間的父子關(guān)系,先將所有子節(jié)點表示在集合中,然后在父節(jié)點的字段中指定子節(jié)點的集合,建立父節(jié)點和子節(jié)點之間的關(guān)系,子節(jié)點又可以指定自己的子節(jié)點集合,形成節(jié)點的樹形結(jié)構(gòu);而TLV格式協(xié)議的每一個消息就是從樹形結(jié)構(gòu)的根節(jié)點開始的一個子樹。
10.根據(jù)權(quán)利要求7所述的方法,其特征在于配置文件解析和編解碼代碼生成步驟進一步包括步驟(I)用于讀入TLV格式協(xié)議的配置文件,生成一個節(jié)點隊列,讀出樹形結(jié)構(gòu)的根節(jié)點,并將根節(jié)點加入隊列;步驟(2),判斷節(jié)點隊列是否為空,如果為空則轉(zhuǎn)到步驟(9),否則轉(zhuǎn)入步驟(3);步驟(3),從節(jié)點隊列中取出一個節(jié)點;步驟(4),判斷取出的節(jié)點類型,并根據(jù)節(jié)點的類型在TLV協(xié)議編解碼代碼中生成該節(jié)點類型所對應(yīng)的類實例;步驟(5),讀取該取出節(jié)點所帶的信息,并將這些信息賦值到為該節(jié)點所生成的類實例中;步驟出),將為該取出的節(jié)點所生成的類實例添加到該節(jié)點的父節(jié)點所對應(yīng)的類實例的孩子列表中,也即在TLV格式協(xié)議的編解碼代碼中使該節(jié)點和父節(jié)點分別對應(yīng)的類實例形成父子關(guān)系,并記錄在父節(jié)點的類實例代碼中;步驟(7),判斷該取出的節(jié)點是否為葉子節(jié)點,通過節(jié)點的字段的值進行判斷,如果判斷為葉子節(jié)點,轉(zhuǎn)到步驟⑵;否則為非葉子節(jié)點,轉(zhuǎn)到步驟⑶;步驟(8),將該非葉子節(jié)點的所有子節(jié)點按順序加入到節(jié)點隊列中,轉(zhuǎn)到步驟(2);步驟(9),結(jié)束配置文件的解析和代碼生成。
全文摘要
本發(fā)明公開了一種基于TLV格式協(xié)議的編解碼代碼生成裝置及方法,包括以下模塊TLV格式協(xié)議的配置文件生成模塊,將LTE的TLV格式協(xié)議所有消息用一種樹形結(jié)構(gòu)進行表示;配置文件解析和編解碼代碼生成模塊,用于對輸入的TLV格式協(xié)議配置文件進行解析,并根據(jù)代碼生成規(guī)則產(chǎn)生相應(yīng)的TLV格式協(xié)議的編解碼代碼;編解碼代碼文件生成模塊,TLV格式協(xié)議的編解碼代碼采用類結(jié)構(gòu)進行實現(xiàn),即協(xié)議配置文件生成模塊中的配置文件中的樹形結(jié)構(gòu)的節(jié)點都由相應(yīng)的類類型進行表示。
文檔編號H04L29/06GK103036877SQ20121052475
公開日2013年4月10日 申請日期2012年12月10日 優(yōu)先權(quán)日2012年12月10日
發(fā)明者劉元凱, 張立 申請人:北京中創(chuàng)信測科技股份有限公司