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