基于DSP的RLC层协议一致性测试*
2017-01-12郑辉方一鸣
[郑辉 方一鸣]
基于DSP的RLC层协议一致性测试*
[郑辉 方一鸣]
在系统级测试仪表的开发过程中,对协议栈各个层功能进行测试和验证是关键一步,其中RLC层也不例外,依据3GPP 最新发布的Release 14标准在对RLC层数据处理功能进行认真分析研究的基础上,首先利用CCS软件进行基于DSP的仿真环境搭建,并在此基础上对无线链路控制层功能进行协议一致性测试,实现了跨平台的仿真和测试,最后再利用TTworkbench开发平台进行RRM一致性测试,通过系统级测试验证该层功能的正确性。提出了通过DSP进行仿真和测试的正确性。
DSP 一致性测试 无线链路控制 数据处理
郑辉
重庆邮电大学,重庆市移动通信技术重点实验室,硕士研究生,主要研究方向: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层UM模式下数据的重组为例,首先利用CCS软件进行DSP仿真环境的搭建,并在该环境上进行RLC层单层代码的调试和验证,最后在TTworkbench开发平台上进行的RRM一致性测试,通过系统级测试验证该层功能的正确性[2]。
1 UM模式功能模块设计
1.1 UM模式PDU格式
非确认(Unacknowledged Mode, UM)模式下PDU的格式如图1所示,UMD PDU由RLC协议头和数据域两部分组成,其中,协议头包含固定部分和扩展部分。固定头部分由FI、E和SN组成,扩展头部分由LI和E组成,但扩展头部分只有当该UMD PDU包含至少2个SDU的数据域元素时才存在[3]。
3.创新工作方式。开展社会组织党建工作,必须与社会组织的日常经营活动有机结合起来,坚持“为社会组织所需要,为党员所欢迎,为职工所拥护,为所有者、经营者所理解和支持”的原则,如针对其从业人员流动性比较强的特点,要落实党的十八大报告“改进对流动党员的教育、管理、服务”要求,探索“一方隶属、多重管理”模式,并注意为其党员办理好流动党员证,针对其场室有限,可安排在附近社区活动等。实行分类指导、网络化管理的党建工作方式和“小型、业余、灵活、多样”的活动方式,增强党建工作的时效性和吸引力。
图1 UM模式PDU格式
FI(Framing Info feld,FI)域:占2 bit长度,用来描述数据域中第一个和最后一个元素是否是完整的SDU。特别的,该FI域指明数据域的第一个字节,是否对应SDU的第一个字节,以及数据域的最后一个字节是否对应SDU的最后一个字节(其中0表示对应,1表示不对应)。
E(Extension,E)域:占1 bit长度,用来指示该字段后面是数据域还是{E,LI}集合。RLC固定头部分和扩展头部分中的E域意义不同(其中0表示数据域,1表示一个E域和LI域的集合)。
SN(Sequence Number,SN)域:即PDU的序列号,SN的作用是方便接收端进行重排序和重复性检测。
LI(Length Indicator feld,LI)域:占11 bit长度,用来指示多个数据域元素存在时相应的数据域元素的长度。第一个LI与第一个数据域元素对应,第二个LI与第二个数据域元素对应,以此类推。最后一个数据域元素的长度可以根据PDU的大小以及前面的LI推断出来,所以没有LI与其对应。为实现字节对齐,当有奇数个LI时,RLC扩展头会出现4个填充比特。
1.2 UM模式传输流程设计
(1)UM模式数据接收流程的设计如图2所示。
图2 UM实体接收流程图
无线资源控制层(Radio Resource Control, RRC)利用原语CRLC_CONFIG_REQ配置RLC实体,配置完成后由NULL状态跳转到UMT(UM模式传输态)状态。UMT状态下,MAC层将RLC PDU通过原语MAC_ DATA_IND发送给RLC层。UM接收实体将接收到的RLC PDU保存到接收缓存中,并将其重组为服务数据单元(Service Data Unit, SDU),然后通过原语RLC_UM_ DATA_IND将它们发送到PDCP层。
2 CCS单层测试分析
在CCS软件上搭建DSP的运行环境,并根据测试协议TS36.508编写测试例,对RLC层的功能进行了一致性测试[4]。.
2.1 测试环境的搭建
CCS软件的工程建立选项和运行配置选项如图3和图4所示,本运行环境在以TI公司的TMS320C6670为核心器件,具体实现了TD-LTE数据链路层的代码开发工作并对RLC层进行了单层测试。利用TMS320C6670操作系统在系统初始化过程中为协议栈的MAC层、RLC层和PDCP层各创建了一个对应的任务和队列,依据下层优先级高于上层的原则为不同任务设置不同优先级,队列则作为传输中介用来传输原语消息[5]。
图3 CCS c66xx工程建立
具体步骤可以分为:
①设计调度机制:即各子层的队列及相应的队列优先级,采用轮询机制对各子层的队列进行轮询。根据协议规定,设计MAC子层的优先级最高,接着是RLC层,PDCP层的优先级最低。当操作系统监听到RLC层队列中有任务,且此时没有优先级高于RLC层的任务存在时,操作系统会调用RLC层入口函数进入RLC层状态机处理模块。按照队列中任务的先后顺序读取到第一条需要处理的原语后,它会先通过原语头解析出实例ID,然后获取当前实例的状态,最后根据原语头中的信令ID调用当前状态下相应的处理函数。进行相应的函数处理后,根据需要组装新的原语发送到相应子层的队列中,对当前实例下的RLC层进行相应的状态更新并释放该原语所占资源。该消息处理完后,RLC层入口函数会继续从RLC层队列中读取消息进行处理,直至队列为空。队列为空时,RLC层任务会被挂起,并跳出本层状态机,控制权限交还给操作系统。当操作系统检测到其他层任务被激活后,便会跳转至其它层状态机进行消息处理,对于PDCP层的处理与RLC层相似。
②设计各子层状态的跳转:根据详细设计文档规划各子层的状态,并验证各子层的各个状态能否正常跳转,其中RLC层设计了4个状态:空状态NULL、确认模式传输状态AMT、非确认模式传输状态UMT和挂起状态SUSPEND。验证代码跳转情况与状态跃迁设计图是否一致。
图4 CCS c6670运行配置
③验证各子层的通信:根据前期的详细设计,设计各子层通信的原语函数,并设计跟踪函数来验证各子层间的正确收发。
2.2 有分段情况的重组
在这个测试例中,外部环境构造3个PDU发送给RLC实体,它们分别为{0x41,0x11}、{0xc2,0x22,0x33}、{0x83,0x44,0x55,0x66},这3个PDU头中的FI域分别为01、10、11,其代表的意思为数据域中的元素头尾是否是SDU的头尾。
利用原语MAC_DATA_IND对应的处理函数将PDU发送给RLC层,经函数处理,收到PDU#1、PDU#2、PDU#3后,RLC接收实体正确重组出了SDU#1。
图5 (a)PDU#1
图5 (b)PDU#2
图5 (c)PDU#2
图5 (d)PDU#2
2.3 有级联情况的重组
有级联情况的PDU意味着其数据域元素至少有两个,则RLC头除了固定头部分还多了扩展头的部分。扩展头所携带的信息是LI域,指示每个数据域元素的大小,如果LI的长度大于该PDU自身的长度,即意味着出错,那么RLC接收实体就会丢弃这个出错的PDU,之后继续处理下一个PDU。该测试例的测试目的是检查RLC实体能否正确重组有级联情况的PDU,同时对LI异常的情况给予丢弃处理。
外部环境构造的4个PDU分别是{0x40,0x11,0x22}、{0xe1,0x00,0x20,0x33,0x44,0x55,0x66,0x77,0x88}、{0xe2,0x00,0x90,0x99,0xaa,0xbb,0xcc,0xdd}、其中以PDU#3来举例说明,将其头部数据域转换为二进制我们可以看到{1110,0010,0000,0000,1001,0000},其中FI域为11,E域为1说明有扩展头,SN号为2,10~20比特位为LI,其值为9,已超出PDU的本身大小8字节,所以该PDU将被丢弃。
图6 (a)PDU#3
图6 (b)SDU#1
由于PDU#3被丢弃,其中数据域包含SDU#2的最后部分和SDU#3的第一部分,这两部分的丢失导致重组SDU#2和SDU#3失败,RLC实体将能重组的SDU#1解出来,递交给上层。
3 RRM一致性测试
无线资源管理(Radio Resource Management,RRM)是无线网络及终端的关键功能,其功能的正确实现对终端设备性能及网络质量至关重要[6]。终端协议一致性测试的目的是验证终端是否符合协议要求,通过该方法能检验终端是否具备商用水平,是终端通向市场的第一步,其中无线资源管理是重要的一部分[7]。在TTworkbench开发平台上完成测试例的编写及调试,整体的底层支撑架构如图7所示,其中主要模块的功能有TTCN-3抽象测试套、TTCN-3执行环境、被测系统适配器、通信接口实现等[8]。
图7 RRM一致性测试系统整体架构
RLC模块即属于底层协议和网络的支持部分,负责实现无线接口的通信[9]。将平台搭建好后,利用编写好的测试例对终端进行RRM一致性验证。测试过程的日志图如图8所示,图中记录了部分层三的流程消息,证明TTCN-3测试系统和终端实现了通信,进一步验证了RLC层实现的正确性[10]。
图8 层三消息图
4 结束语
首先提出了RLC单层测试对系统级测试仪表开发的重要性,然后详细分析了RLC层UM模式下PDU格式以及UMT状态的详细设计流程。经实践证明,通过CCS软件和DSP搭建的仿真平台完成了单层测试,最后使用TTworkbench软件进行系统级测试,确保了该层功能的正确性并验证了DSP平台的仿真的可行性[11]。在今后的工作中,还需对如何节省缓存资源以及上下层之间内存的合理分配等问题进行更加深入的研究[12]。
1 3GPP TS 36.323 V14.0.1,Packet Data Convergence Protocol (PDCP) specifcation,2016.09
2 陈发堂,牛勇清,韩娜娜. 协议一致性测试平台的搭建及仿真实现[J]. 电子技术应用,2014,40(4):137-140
3 3GPP TS 36.322 V13.2.0,Radio Link Control (RLC) protocol specifcation,2016.06
4 3GPP. TS 36.508 Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access(E-UTRA) and Evolved Packet Core(EPC);Common test environments for Use Equipment(UE) conformance testing[S]. France: 3GPP Organizational Partners, 2016
5 辛熠,杨瑞民. 多核DSP编程技术研究[J]. 电子测试, 2011.09
6 杨爽. TD-LTE-A终端RF/RRM一致性测试系统研究与开发[D].北京邮电大学,2015
7 朱向晖,周东升,聂小逢. 通用网络协议一致性测试平台的设计与研究[J]. 电子技术. 2011(06)
8 董宏成,张宁,李小文.TTCN-3在RRC协议一致性测试中的应用[J]. 电子技术应用, 2013, 39(7):117-120
9 程方,蒲伟,张治中.TD-LTE终端协议一致性测试系统数据处理方案设计[J]. 电视技术2013,37(17):186-188
10 赖文昌. 基于软件无线电平台的TD-LTE链路级仿真平台的实现[D]. 北京邮电大学 2015
11 雷杰,赵熠飞,黄敏,齐心,周世东. 基于GPP SDR的LTE系统RLC协议层实现研究[J]. 移动通信,2011,02:45-50
12 刘斌涛,张形形,聂文霞. TD-LTE系统RLC层协议一致性测试[J]. 光通信研究,2015,05:67-70
2016-11-18)
10.3969/j.issn.1006-6403.2015.12.017
国家科技重大专项资助项目“TD-LTE TTCN 扩展测试集仪表开发(无线资源管理部分)”(No.2012ZX03001024)