LTE-Uu接口协议栈中ASN.1模块的设计与应用*

2010-03-14 09:04李校林文小强
电视技术 2010年10期
关键词:编解码信令解码

李校林 ,文小强

(1.重庆信科设计有限公司,重庆 400065;2.重庆邮电大学,通信新技术应用研究所,重庆 400065)

1 引言

随着移动通信技术的蓬勃发展,以及移动通信与宽带无线接入技术的相互融合,3GPP开展了UTRA长期演进(Long Term Evolution,LTE)技术的研究。与以往的TDSCDMA等3G移动通信系统相比,LTE能提供对各种数据传输的支持和比以往所有移动通信系统更高的数据传输率,这必然会加大用户设备(UE)与eNodeB之间的信令交互。在3GPP制定的标准中,引入了使用UPER编码规则的ASN.1语言来描述LTE-Uu接口协议栈信令消息[1]。ASN.1的数据类型可分为简单类型和复合类型两大类。简单类型是通过直接规定一组该类型值而定义的不可分解的基本数据类型,包括 Null,Bool,Integer,Bit String,Octet String,Object Identifier等。复合类型是引用一个或多个其他类型构成的任意复杂的数据类型,这里的其他类型可以是简单类型,也可以是复合类型。复合类型有Sequence,Choice,Set,Sequence of,Set of等[2]。 LTE-Uu 接口协议栈信令消息采用的均是紧凑而快的编码方式,从而能获得更高的通信效率。需要指出的是,ASN.1中数据类型的编码,具体实现时必须严格按照X.691协议来完成。否则即使是编解码过程中1 bit的差错,也可能使整个LTE系统无法正常运行[3]。

文献[4-7]讨论了提出开发自动编译器和新ASN.1运行库等的解决方法,但这些都主要针对TD-SCDMA及其他协议标准,而且一方面LTE-Uu接口协议栈的大部分功能与TD-SCDMA等相比已经有了很大的变化,另一方面信令消息随着LTE协议版本的变化仍然在不断改变。因此,笔者结合文献[4-7]各自ASN.1方案具有的优点,对LTE-Uu接口协议栈中ASN.1语言描述信令消息的编码和解码技术及在此基础上的一致性测试应用做了探索性的研究。

2 LTE-Uu接口协议栈结构

在3GPP协议中,LTE-Uu接口协议栈从功能和任务上来看,分为物理层(L1)、数据链路层(L2)和无线资源控制层(L3)。数据链路层又分为媒介接入控制(Medium AccessControl,MAC)层、无线链路控制(Radio Link Control,RLC)层和分组数据汇聚协议(Packet Date Convergence Protocol,PDCP)层[8]。

ASN.1编解码模块处于LTERRC层中信息的最关键部分,是LTE-Uu接口协议栈信息块重组过程的核心之一[1]。L3 RRC层消息在发送端首先经过ASN.1编解码模块的编码,形成RRC的PDU模块,再分别经L2的PDCP,RLC层和MAC层处理后,经L1物理层发送出去。在接收端,则需要进行发送端的逆过程,经L1物理层接收后,经过L2的MAC,RLC和PDCP层的处理,再送往L3 RRC层的ASN.1编解码模块进行信令消息的解码,完成信令消息的解析。

其中,MAC层的主要任务是完成逻辑信道与传输信道之间的映射,因此发送端的MAC层实体需要通过对不同映射关系下的数据添加不同的MAC头来区分不同类型的数据。接收端则需要根据不同的传输信道指示及数据格式去掉相应的MAC头;RLC层的功能主要完成数据的分段、重组及确保数据的正确有序传输;PDCP层主要完成对信令消息的加密和完整性保护;最后是RRC层进行ASN.1消息编解码的模块化处理及解析。

3 ASN.1UPER编解码模块设计与实现

目前,国内外通信软件协议栈制造商对LTE中各个接口协议栈都十分重视。OSSNokalva和Trillium公司推出的软件除了信令消息分析功能外,有的还具备部分协议模拟功能。虽然ASN.1编解码部分在这些软件中的形式各有千秋,但其达到的效果是完全一致的。ASN.1编解码处理流程如图1所示。

在对LTE-Uu接口协议栈的ASN.1编解码模块的设计中提出了软件设计中模块定义和代码实现的方案,并给出了实际开发中遇到的某些困难的解决方法。要实现ASN.1编解码模块,需要:

1)将该协议栈中用ASN.1记法描述的消息(rrc.asn)编译成C语言描述的源文件(rrc.h);

2)生成ASN.1记法描述的消息(rrc.asn)中对应C数据结构的编解码函数(rrc.c)。

图1中的编译是指将ASN.1记法描述的rrc.asn文件编译成rrc.h文件以及与rrc.h对应的rrc.c文件。其中rrc.h文件用于声明编译之后生成的C数据类型和编解码函数,rrc.c文件用于实现编解码函数。这些编解码函数再调用图1中的ASN.1编解码基本函数库(Basic_asn.h,Basic_asn.c)实现编解码功能。最后得到用于LTE-Uu接口协议栈的可执行文件,从而完成从ASN.1描述到二进制比特流的转换,使得其信息能在LTE系统网络中传输。

图1的编译过程比较繁杂,因为如果将TD-SCDMA空中接口的ASN.1消息手工翻译成C文件则会多达数万行,任务庞大。不过LTE RRC的ASN.1消息相对TD-SCDMA来说,简化了很多。笔者通过剔除不必要的ASN.1类型并设计特定的数据结构,将LTE RRC的这些消息经过ASN.1映射成C文件后,再加上其他一些优化措施,将整个LTE RRC 消息的 C 文件(rrc.c,rrc.h)压缩至 1~2Mbyte。

LTERRC消息编译成C代码文件后,还需进行编解码函数库的编写。ASN.1模块的比较核心部分就是编解码函数库,它包括ASN.1的各个数据类型所对应的编解码函数,具体实现必须严格根据X.691协议中的UPER编码规则来编写。之后,再进行一系列的严格测试才能确定其正确性。最后完整的ASN.1编解码函数库的源代码约为6 000行。

4 ASN.1编解码模块的测试与应用

由于LTE RRC的ASN.1消息中包含很多协议数据单元(PDU),不同的PDU下面又包含许多复杂结构。因此使用结构测试的方法对ASN.1编解码模块进行测试,同时通过观察该模块在一致性测试中的应用来进一步验证ASN.1编解码模块的可靠性。

4.1 ASN.1模块的结构测试

结构测试又称为“白盒测试”或单元测试,它是基于软件内部结构进行测试的,其目的是通过执行每条语句、遍历程序的各个分支来检查整个程序代码的正确性。在测试的实现中采取了有步骤分层次的方法:先对简单类型编解码函数进行测试,然后对复杂类型编解码函数进行测试。

为确保测试的准确性和可靠性,在复杂类型测试中采用了两种方法:一种是采用手工对接口信令消息中包含RRC-Connection-Setup消息的DL-CCCH-Message进行赋值,先调用ASN.1编解码模块进行编码,对于编码后的结果再调用ASN.l编解码模块进行解码。选取DL-CCCH-Mes-sage消息是因为这种类型消息包含了几乎所有的ASN.1的数据类型,并且包含的复合结构比较多,具有很强的通用性。经多次符合X.691标准的随机赋值测试后发现,解码后的结果与开始的赋值是完全一致的。

另外一种方式是结合OSSNokalva公司的OSSASN.1 GUI软件对DL-CCCH-Message消息赋值,通过该软件生成符合UPER编码规则的比特流。先调用ASN.1编解码模块解码,对解码后的结果再调用ASN.1编解码模块进行编码。最后将输入的比特流和解码后的比特流进行比较,看两者是否一致。由于某些消息编码后比特流比较庞大,因此改进的措施是将解码之后的比特流输出到文件,使用Ultra Compare Professional工具进行比较。

通过反复多次随机取值的结构测试,各个PDU预输入的比特流和编码后比特流经软件比较仍然一致,这说明ASN.1编解码模块通过了结构测试。由于在实际的连接消息通信过程中,消息的各项参数值是很难预测的,所以仅通过结构测试是不够的,还必须与一致性测试中ASN.1编解码模块应用结合起来。

4.2 ASN.1编解码模块的应用

对于LTE协议栈的开发测试而言,比较关心的是开发是否满足标准,是否能与其他基于同一个协议标准的产品实现互通等问题。而协议一致性测试可以检测所实现的协议实体与协议规范是否一致,是协议实体之间互操作性和性能保证的基本前提。在测试系统和被测实体之间通过发送、接收信令数据来完成协议一致性测试。

根据图2所示过程在Telelogic TAU的TTCN Suite环境下设计一个测试例,此环境同时支持TTCN和ASN.1两种语言。根据3GPPTS 36.331(RRC)协议的RRCConnection Establishment过程,使用TTCN和ASN.1语言在Telelogic TAU 4.0的TTCN Suite平台中构造测试例、测试集,然后脱离工具平台,完成与Windows系统集成[9]。

与Windows系统集成时具体使用VC6.0模拟出一个简单的协议实体,被测实体ITU为UE,它发送一条RRC-Connection-Request后,便会等待eNodeB返回对应的响应消息RRC-Connection-Setup,UE接收到此条消息并进行相应配置成功后会回应消息RRC-Connection-Setup-Complete。测试系统模拟基站(eNodeB),通过执行测试例发送或等待接收数据并比对得出测试结果。在进行协议一致性测试对LTE基本协议通信仿真的过程中,ASN.1编解码模块会取出其中包含RRC消息的数据流包,调用解码函数进行解码。如能正常解码,再分析消息流程是否符合3GPP制定的标准流程,这样从另一个角度验证了ASN.1编解码模块的可靠性。

对测试系统和被测系统的通信端口IP等正确配置后,运行测试例,测试系统根据图2所示的RRCConnection Establishment过程进行流程测试。将编码后的请求消息RRC-Connection-Request发送给测试系统,测试系统收到并解析为正确的请求消息后会返回1条对应的响应消息RRC-Connection-Setup,被测系统接收到该消息后进行解析,并回应RRC-Connection-Setup-Complete,测试系统接收到该消息后进行解析,得出判决结果,如图3所示。通过查看最后的判决结果,可以发现这与图2实际的LTE基本协议通信中连接建立流程是一致的。由此可知,ASN.1编解码模块能够准确解析接收到的数据,并且能准确地将描述的信息转换成比特流的形式。因此,该方案是有效、可行的。

5 小结

ASN.1编解码模块在LTE-Uu接口协议栈中占有相当重要的地位,也是决定能否与LTE系统中其他模块之间达到互通的基础。通过结构测试和在一致性测试中的应用,文中所涉及的与ASN.1编解码模块相关的协议描述及实现方法、通信协议一致性测试都是有效、可行的。对于ASN.1的诸多应用领域而言,这些方法也具有一定的通用性。

[1]3GPP.TS 36.331 v.9.1.0,3rd generation partnership project; technical specification group radioaccessnetwork;evoloved universal terresitrial radio access (E-UTRA); radio resource control (RRC) protocol specification.[S].2010.

[2]ITU-T Recommendation X.680,Abstract syntax notation(ASN.1):specification of basic notation[S].2002.

[3]ITU-TRecommendation X.691,Information technology-ASN.1 encoding rules:specification of packed encoding rules (PER)[S].2002.

[4]李小文,王宁.TD-SCDMA系统中ASN.1编译码器的设计和实现[J].重庆邮电大学学报:自然科学版,2009,21(3):358-361.

[5]赵晓华,邓秀兰,余厚金.T.38协议栈中ASN.1模块的改进设计[J].电视技术,2004,28(3):32-34.

[6]TRIVUNOVIC B D,POPOVIC M V, BASICEVIC I V, et al.A design and implementation of ASN.1 parser for H.323 protocol stack[C]//Proc.TELSIKS 2007.[S.l.]:IEEE Press,2007:60-63.

[7]LV Q,HUANG Benxiong,WANG Furong.Themechanism of ASN.1 encoding&decoding implementation in network protocols[C]//Proc.ITCC′03.[S.l.]:IEEE Press,2003: 622-626.

[8]3GPP TS 36.300 V9.2.0,Evolved universal terrestrial radio access(E-UTRA) and evolved universal terrestrial radio access network(E-UTRAN); overall description; stage 2[S].2010.

[9]李小文,李贵勇,陈贤亮.TD-SCDMA第三代移动通信系统、信令及实现[M].北京:人民邮电出版社,2003.

猜你喜欢
编解码信令解码
《解码万吨站》
1553B总线控制器编解码设计
解码eUCP2.0
SLS字段在七号信令中的运用
为多重编解码世界做好准备
大型民机试飞遥测视频编解码方法研究
移动信令在交通大数据分析中的应用探索
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
基于信令分析的TD-LTE无线网络应用研究