LTE协议栈软件分析测试方法
因此需要编写能够解析MAC/PHY API的wireshark网络封包软件的插件程序,使得wireshark能够显示两层接口之间交互的信息,如图3所示。本文引用地址:https://www.eepw.com.cn/article/201702/338695.htm
图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软件解析显示,并且可以根据端口显示不同的颜色,协议数据状态一目了然,问题定位快捷方便,为调试协议栈软件系统时提供了很大的支持。另外,本文所述的测试环境不局限于上述,当在开发中缺少基站(终端)协议栈时,可在相应接收函数处构包模拟终端(基站)来达到测试的目的。同时,也可扩展到其他通信协议的测试,具有一定的推广性。
评论