基于TTCN-3的RLC层协议一致性测试*

2016-12-14 09:08方一鸣张涵嫣谷小勇
广东通信技术 2016年8期
关键词:重传级联字节

[方一鸣 张涵嫣 谷小勇]

基于TTCN-3的RLC层协议一致性测试*

[方一鸣 张涵嫣 谷小勇]

在系统级测试仪表的开发过程中,对协议栈各层功能的测试和验证是关键性一步,其中对RLC(Radio Link Control)层的功能测试也不例外,依据3GPP 最新发布的Release 12标准,首先搭建了基于TTCN-3(Testing and Test Control Notation version 3)的单层测试平台,并在此平台上对分组数据汇聚协议层功能进行了协议一致性测试,通过测试结果来验证RLC层核心功能实现的正确性。

TTCN-3 一致性测试 分组数据汇聚协议层 数据处理

方一鸣

硕士研究生,重庆邮电大学,重庆市移动通信技术重点实验室,主要研究方向:TD-LTE系统协议栈开发,RRM一致性测试仪表开发。

张涵嫣

硕士研究生,重庆邮电大学,重庆市移动通信技术重点实验室,主要研究方向:TD-LTE系统协议栈开发,RRM一致性测试仪表开发。

谷小勇

硕士研究生,重庆邮电大学,重庆市移动通信技术重点实验室,主要研究方向:TD-LTE系统协议栈开发,RRM一致性测试仪表开发。

引言

无线链路控制层(Radio Link Control,RLC)位于协议栈分组数据汇聚协议层(Packet Data Convergence Protocol,PDCP)和媒体接入控制层(Medium Access Control,MAC)之间,功能是对来自PDCP层的RLC PDU(Protocol Data Unit,PDU)进行格式化,以适应MAC层所提供资源的大小[1]。本文基于TD-LTE TTCN扩展测试仪表开发,通过实现网络端协议栈各个层功能来验证终端功能的正确性,RLC层位于LTE协议栈的接入层,它的功能能否正确实现是整个测试仪表开发的重要部分。

本文以RLC层AM模式下数据的级联重组功能和ARQ(Automatic Repeat reQuest)功能为例,首先在TTWorkBench测试软件上搭建了基于TTCN-3的单层测试平台,并对分组数据汇聚协议层功能进行了协议一致性测试,通过比较TTCN-3收到的消息与期望收到的消息内容的匹配程度来判断来验证RLC层核心功能实现的正确性[2]。

1 测试方案

RLC层功能测试平台的搭建主要有3部分组成,它们分别是测试模块、中转模块以及被测模块[3]。其中TTCN-3作为测试系统的控制部分,主要实现测试例的流程控制以及协议栈RRC层和非接入层的功能。TTCN-3与主控制器(Main Controller,MC)之间通过用户数据报协议(User Datagram Protocol,UDP)进行通信,包括多个编号各异的端口。MC主要用于TTCN-3与协议栈处理单元之间的数据转发工作[4]。具体测试模块如图1所示。

图1 基于TTCN-3的单层测试平台

测试系统的核心组件说明如下:

TTCN-3执行部分(TTCN-3 Executable,TE):编写测试数据以及测试用例。测试用例加载过后,在此界面对其进行调试、执行。

系统适配器(System Adapter,SA):实现TTCN-3执行部分与被测系统之间的通信,在系统适配器上可以调用TTCN-3运行接口(TTCN-3 Runtime Interface,TRI)提供的应用程序编程接口(Application Programming Interface,API)函数。

TTCN-3执行模块主要负责对测试套进行加载,同时提供执行过程中的异常信息判断。适配器则负责与通信接口进行连接,以保证TTCN-3测试平台和待测模块或系统能够进行正常的信令交互,从而为整个测试过程的顺利进行提供保障。

2 基于TTCN-3的单层测试

本文实现的RLC模块属于底层协议和网络的支持部分,负责实现无线接口的通信。测试方法上主要采用回环测试,即在TTCN-3中构造数据包发往下层,在RLC层处理结束之后,将其处理结果返回TTCN-3,在TTCN-3中把RLC层对数据包处理的结果与事先按照RLC层协议分析的正确结果进行匹配,最后以日志图的形式显示出来。下面以分段级联、重组、状态报告和重传为例来进行测试。

2.1 分段级联和重组

在TTCN-3中构造5个SDU发送给RLC层,其大小分别为3、1、2、1、2个字节,分别由{0x01,0x02,0x03}、{0x04}、{0x05,0x06}、{0x07}、{0x08,0x09}填充,图2中第一条数据流是原始数据,前面用矩形框标注的部分是系统消息自带的数据,可以看到后面依次发出的5个SDU。RLC被测模块收到这5个SDU后先将其存储在发送缓存中。TTCN-3作为外部环境模拟MAC层给RLC层指示传输资源大小,RLC层根据其指示的资源大小对数据进行分段级联[5],此测试例中TTCN-3先后分别指示了四次传输时机,指示的资源大小依次为:4字节、8字节、6字节、4字节。因此RLC层既需要对SDU进行分段又需要进行级联,最后一共组装了4个PDU,按照序列号从小到大分别为:{0x88,0x00,0x01,0x02}、{0x9c,0x01,0x80,0x10,0x01,0x03,0x04,0x05}、{0x94,0x02,0x00,0x10,0x06,0x07}、{0x80,0x03,0x08,0x09}。

依据AM模式数据PDU的各个位域的结构,4个PDU的FI域(2bit)分别为:01、11、11、10。E域分别:0、(1、1、0)、(1和0)、0,第2个PDU有3个不同的数据域,所以有3个扩展域,第3个PDU有2个不同的数据域,所以有2个扩展域。SN域(选择协议中的10bit)依次为0000000000(0号PDU)、0000000001(1号PDU)、0000000010(2号PDU)、0000000011(3号PDU)。LI域(11bit,多于一个数据域时才存在),第一个和最后一个PDU都只有一个数据域,所以没有LI域,第2个PDU有两个LI域,换算为十进制分别为1和1,代表该PDU中有三个不同的数据域并且第一个数据域和第二个数据域的长度均为1个字节,同理第3个LI域为1,代表该PDU中有两个不同的数据域并且第一个数据域的长度为1个字节[6]。按照协议,奇数个LI域时,头部信息中最后一个LI域之后要填充4个bit位(这里我们填0000),即在第一个PDU和最后一个PDU头部信息的最后四个比特位填充4个比特的零值。从图2中部的两条数据流可以看出,经过分段级联之后的PDU以八位组即字节组的形式显示。这里用矩形框标注为了区分4个PDU的八位组形式,该分段级联的结果和预期的结果是匹配成功的,说明RLC层分段级联的功能得到正确实现。

根据图1中RLC被测模块部分的原理图,在验证了分段级联的功能之后,我们编写测试例直接利用前面分段级联之后的数据进行逆向过程,看其能否正确进行SDU的重组过程。重组的过程是根据PDU的SN号进行的,如果由于某一个PDU的丢失导致一个或者几个SDU不能重组则进行丢弃,并且在AM模式下要组装状态报告通知发送端进行重传,关于状态报告和重传我们将在下面的小节进行测试。

从图2的最后两条数据流中可以看出,RLC层利用上面测试例中分段级联之后的数据进行重组的SDU和最原始的SDU是完全匹配的,说明RLC层重组级联的功能得以正确实现。

图2 分段级联和重组测试

2.2状态报告和重传

在TTCN-3中组装4个PDU,PDU#1:{0x88,0x00,0x01,0x02},PDU#2:{0x9c,0x01,0x80,0x10,0x01,0x03,0x04,0x05},PDU#3:{0x94,0x02,0x00,0x10,0x06,0x07},PDU#4:{0x80,0x03,0x08,0x09}。前面3个PDU原样发送,在发送第4个PDU的时候TTCN-3在该PDU中包含轮询位,即PDU#4:{0xA0,0x03,0x08,0x09}。

根据控制PDU的格式,发现轮询比特P域为1,此时被测模块就要根据当前的接收状况组装状态报告。在接收端,截止到收到发送端的轮询为止,PDU#1和PDU#2都已经确认收到,PDU#3没有收到。根据协议中状态报告的格式进行填充:D/C域为0;CPT域为000;ACK_ SN域为3,意味着后面NACK_SN域表示的是PDU#4之前所有PDU的接收情况,即PDU#4之前的PDU#1和PDU#2都已经收到了;E域为1表示后面有NACK_SN和E1以及E2的组合;NACK_SN为2,且E1和E2均为0表示整个PDU#3都没有收到。最终组装的状态报告为{0x00,0x0E,0x01,0x00}。如图3所示,为方便描述,这里仅截取PDU#4和状态报告返回的数据流,第一条数据流为TTCN-3模拟发送端向RLC被测模块发送的PDU#4,从第2条数据流可以看出RLC被测模块作为接收端成功组装了状态报告。

图3 状态报告测试结果图

被测模块成功组装了状态报告{0x00,0x0E,0x01,0x00},即整个PDU#3都没有收到,这里我们要进行对该PDU#3的重传。首先TTCN-3模拟外部环境给RLC层配置了4个SDU,RLC被测模块对SDU分段级联结束之后将这4个PDU重新发送回TTCN-3。然后TTCN-3构造关于上述4个PDU的状态报告发往RLC被测模块,其中只有PDU#3没有收到,检查RLC层是否正确进行了PDU#3的重传功能,测试结果如图4所示。

图4中第1条是TTCN-3配置给RLC被测模块的数据,第2条是RLC被测模块经过分段级联和重组之后回送给TTCN-3的数据。然后TTCN-3作为外部环境模拟接收端给RLC被测模块发送了状态报告{0x00,0x0E,0x01,0x00},RLC被测模块收到状态报告之后解析出各个数据域,重新对PDU#3进行重传。可以看到在最后一条数据流中,PDU#3被正确重传,因为这里没有别的PDU需要传输,所以PDU#3的头部信息是没有任何改变的。

图4 重传测试结果图

3 结束语

本文首先提出了RLC层功能测试对于系统级测试仪表开发的重要性,随后搭建了RLC层的单层测试平台,并在此平台上对分组数据汇聚协议层功能进行了协议一致性测试,通过测试结果来验证RLC层核心功能实现的正确性。在今后的工作中,还需对如何节省缓存资源以及上下层之间内存的合理分配等问题进行更加深入的研究。

1 3GPP TS 36.323 V12.4.0,Packet Data Convergence Protocol (PDCP)specification,2015.07

2 陈发堂,牛勇清,韩娜娜.协议一致性测试平台的搭建及仿真实现[J].电子技术应用,2014,40(4):137-140

3 申丹.TD-LTE协议测试平台中RLC实体的研究与实现[D].北京: 北京邮电大学,2013

4 董宏成,张宁,李小文.TTCN-3在RRC协议一致性测试中的应用[J].电子技术应用,2013,39(7):117-120

5 刘斌涛,张形形,聂文霞.TD-LTE系统RLC层协议一致性测试[J].光通信研究,2015(5):67-70

6 3GPP TS 36.322 V12.3.0,Radio Link Control (RLC)protocol specification,2015.09

10.3969/j.issn.1006-6403.2016.08.012

2016-07-14)

国家科技重大专项资助项目“TD-LTE TTCN 扩展测试集仪表开发(无线资源管理部分)”(No.2012ZX03001024)

猜你喜欢
重传级联字节
铀浓缩厂级联系统核安全分析
适应于WSN 的具有差错重传的轮询服务性能研究
No.8 字节跳动将推出独立出口电商APP
基于TDMA的wireless HART网络多路径重传算法
No.10 “字节跳动手机”要来了?
无线网络中基于网络编码与Hash查找的广播重传研究
富集中间组分同位素的级联
—— “T”级联
面向异构网络的多路径数据重传研究∗
简谈MC7字节码
基于级联MUSIC的面阵中的二维DOA估计算法