LTE协议栈软件分析测试方法
0引言LTE(Long Term Evolution)是UMTS技术标准的长期演进,3GPP组织在2004年12月正式立项启动。为达到系统高速率、低时延等要求,对空中接口和系统架构进行了重新设计,来更好地应付如今呈爆炸式增长的数据流量需求。因此空中接口协议栈软件的开发显得极其重要,其软件性能更是直接关系到了网络的服务质量和用户体验。随着LTE网络的商用临近,更多的厂商将加入LTE协议栈软件的研发。
本文介绍了一种应用在LTE协议栈系统软件开发过程的测试和调试的模型,并给出了测试模型的应用结果。该模型以LTE接入网标准架构为原型,分层调试为思想,多彩模块化打印为手段,具有环境简易、调试方便的特点,对协议栈软件调试和分析具有良好的辅助作用。
1 LTE协议栈架构
LTE系统由核心网络(EPC)、无线网络(E-UTRAN)和用户设备(UE)构成。基站(eNodeB)之间通过X2接口相连组成接入网,其空口协议栈分为控制面和用户面,图1是控制面的架构,用户面与控制面架构类似。
NAS层、RRC层统称为L3层,主要负责信令和无线资源控制。PDCP层[4]、RLC层[5]、MAC层统称为L2层,主要负责数据链路,PHY层则是向高层提供数据传输服务。
图1 LTE空中接口控制架构图
2测试过程分析
2.1测试环境
测试环境模拟LTE系统架构来搭建,分别为移动管理实体(MME)/服务网关(SGW)、eNodeB和UE,整体的测试框架如图2所示,主要分为L2/L3高层协议测试和L1/L2/L3层协议测试两部分。本文测试中使用了中国科学院计算技术研究所无线通信技术中心自主研发的LTE终端协议栈软件、LTE Femtocell协议栈软件和LTE网关软件。为便于分析问题,采用了单用户模式举例,多用户情况以此类推。
图2 协议测试环境
2.2分层测试
LTE协议栈软件功能众多,按照分层化思路进行调试分析是一个不错的开始。先分别进行单层测试,确保各层功能的正确与稳定性,然后再逐层递加进行测试。
L2层数据链路通过后,再开始信令面和用户面的测试。在定位棘手的问题时,一层一层追踪数据流向,可以达到事半功倍的效果。举例来说,在测试下行用户面时,首先确认基站PDCP层是否收到数据包,确认后查看数据有没有通过PDCP层转发下去;如果PDCP层没有问题,数据是否到达RLC层;如果到达RLC层,MAC层是否进行调度发送。
2.3网络封包捕获解析
网络封包捕获解析程序可从以太网卡中捕获数据流并进行解析显示。这里推荐使用wireshark,它是一款常用的优秀开源网络封包分析软件,提供了自定义协议解析插件的编程接口,可以让使用者开发适用于自定义协议的插件。目前wireshark中已经提供了RRC层、PDCP层、RLC层、MAC层的解析插件,只需要在协议数据包前加上特殊的解析包头即可调用解析,看到各个消息的名称和字段的值。在抓包以后,可以将抓包另存为pcap文件,方便下次查看。尤其在L1/L2层集成测试时,MAC/PHY API接口是处理MAC层消息,控制并调度PHY物理层链路处理的重要接口,MAC/PHY API的高效性和完备性直接影响到物理层处理的效率和正确性。
因此需要编写能够解析MAC/PHY API的wireshark网络封包软件的插件程序,使得wireshark能够显示两层接口之间交互的信息,如图3所示。
图3 MAC/PHY API解析
2.4 udp socket发送机制
在测试L2/L3层时,可先用以太网模拟PHY层,网关程序、基站协议栈程序、终端协议栈程序、网络封包捕获解析程序分别各自运行在一台计算机中,通过udpsocket编程来发送MAC层协议数据包,同时将RRC、PD-CP、RLC、MAC层的协议数据包通过udp socket编程抄送至网络封包捕获程序,网络封包捕获程序则监视设定的udp端口来抓取数据。
2.5调试信息显示
2.5.1打印位置
调试信息的打印是测试的关键。LTE系统中传输时间间隔(TTI)被定义为1 ms,也就是说1 ms内需要将调度或者收发数据完全处理,每个子帧都有可能需要打印调试信息,将带给硬件不小的压力。在单独测试L2/L3层协议时,可以在计算机上运行程序,目前大部分计算机的性能可以满足需求,因此调试信息可以直接在窗口中打印。当加入L1层进行集成测试时,嵌入式开发板资源相对比较短缺,大量的I/O操作会严重占用CPU使用率,而CPU与以太网卡的交互速率更快。这里使用的PHY层开发板为飞思卡尔公司生产的BSC9131,专门用于开发家庭基站,CPU为单核1 GHz,打印信息较多时经常会导致开发板挂掉,解决的方法是应用udpsocket发送机制将调试信息通过以太网发送到计算机,计算机中则编写简单的wireshark解析插件后进行捕获解析。此方法经过实际项目检验有效可行,没有再出现挂掉的情况。
2.5.2模块化多色打印
直接在计算机上显示时,采用在程序中开发相应的专用打印模块的方法,不同的优先级打印信息显示不同的颜色,并且能够显示程序运行的状态、出错的位置。
在与L1层集成测试时,同样可以选择多彩化打印。
wireshark支持不同的协议或者端口显示不同的颜色,只需要简单的设置即可,这给我们调试提供了便利。应用这种方式,在调试信息繁多时可以极大的提高调试效率。图4为wireshark主窗口多色显示的结果,从图4中可见,视觉效果十分明显。
图4 wireshark多彩调试信息
3测试场景及结果
3.1 L2/L3层
该场景下,协议栈程序运行在计算机上,由以太网模拟PHY层。在网关侧和终端侧分别建立一个虚拟网卡用来模拟IP层。图5是一个终端附着过程的wire-shark抓包解析图,终端附着成功后,使用开源网络性能测试工具iperf向该socket发送指定速率的数据流。上行数据通路为:iperf客户端→终端虚拟网卡→终端协议栈→基站协议栈→服务网关→iperf服务器端;下行数据通路为:iperf客户端→服务网关→基站协议栈→终端协议栈→终端虚拟网卡→iperf服务器端。iperf可以报告带宽,延迟抖动和数据包丢失,客户端程序用于发送数据,服务器端程序用于接收数据,通过简单的命令行参数即可实现,示例如下:
图5 终端附着信令过程
3.2 L1/L2/L3层
L2/L3层场景完成后,即可将L1层加进来,进行真实情况下的测试。在项目中采用了业界普遍使用的艾法斯公司生产的TM500 LTE测试终端,基站侧L1层采用飞思卡尔公司的BSC9131处理器开发板。计算机通过PPPoE(Point-to-point Protocol over Ethernet)协议连接TM500,便可在计算机上使用iperf工具初步测试基站的性能。经过实际调试过程的检验,本文所述方案有效可行。
4结语
协议栈软件的测试需要清晰的数据流程。本文测试环境搭建简易,在与L1层集成调试时,将所有打印信息发送到wireshark软件解析显示,并且可以根据端口显示不同的颜色,协议数据状态一目了然,问题定位快捷方便,为调试协议栈软件系统时提供了很大的支持。另外,本文所述的测试环境不局限于上述,当在开发中缺少基站(终端)协议栈时,可在相应接收函数处构包模拟终端(基站)来达到测试的目的。同时,也可扩展到其他通信协议的测试,具有一定的推广性。
页:
[1]