APP下载

LTE网络测试仪IP流量生成技术的研究与实现*

2012-06-27王晓娇张治中

电信科学 2012年12期
关键词:测试仪内存分组

王晓娇,张治中

(重庆邮电大学通信网与测试技术重点实验室 重庆 400065)

1 引言

随着LTE(long term evolution,长期演进)网络规模的扩大、带宽的不断提升,基于全IP的业务应用发展迅速,对网络流量生成技术也提出了新的挑战。部署LTE网络的采集机、交换机、路由器等网络设备的新产品、新协议的开发过程中,IP流量发生器可以在简单的测试环境中,模拟LTE现网的IP数据和流量以及各种异常的数据分组,为生产、测试、研发提供信号源[1],是网络模拟和网络设备测试中的重要工具。

目前流量生成技术主要基于通用处理器、ASIC(application specific integrated circuit,专用集成电路)专用芯片或FPGA(field programmable gate array,现场可编程门阵列)实现。第一种方法可以模拟较低速率的网络流量;第二种方法是采用专用硬件器件实现,虽然可以生成高速率的流量,满足吉比特线速的速率环境要求,但成本昂贵,实现复杂;而采用可编程器件的方式,利用FPGA可以有效兼顾性能与成本[1~3]。

本文设计了一种基于LTE网络测试仪数据采集平台的IP流量发生器,该硬件平台采用全FPGA架构,重点研究了在Windows平台下用软件方式实现高速流量的生成方法,分析了性能模式和仿真模式两种工作模式的软件设计方案。在性能模式下能够精准地定速、定量发送用户指定长度的单个IP数据分组,在仿真模式下可以发送批量IP数据分组,包括短分组、长分组、超长分组,两者均能同时支持多路发送,拥有很好的灵活性,对LTE网络测试仪的数据采集测试、模拟高速网络环境具有重要的应用价值。

2 总体设计方案

LTE网络测试仪的IP流量发生器基于IP数据采集卡硬件平台进行开发,该硬件平台采用全FPGA架构,其总体模块化设计如图1所示。由于待发送的IP数据分组已封装成MAC帧,因此应用层控制模块直接将待发送的MAC帧依次写入板卡的发送内存中,并与FPGA层的BMD(bus master DMA,总线主控DMA)模块通过约定好的交互机制,控制数据的发送与更新。由于采用新一代总线接口PCI-E X4连接PC机和板卡,BMD模块通过与PCI-E core模块配合,向操作系统申请PCI-E协议事务层的TLP(transaction layer packet,事务层分组),返回的TLP称为CplD(completion with data,携带数据的完成分组)。BMD 中的CplD重组模块对乱序的CplD进行重新排序,按照正确的序列写入发送FIFO中,通过发送调度模块[4],控制发送的速率和顺序,将IP数据分组送入下一级的MAC模块进行复制、分流处理,最后通过相应的SFP端口将数据发出。由此可见,在数据传输通道已建立的情况下,保证该IP流量发生器功能与性能的关键是应用层控制模块与BMD模块的交互机制设计。

3 性能模式设计方案

3.1 流量控制算法设计

在性能模式下,IP流量发生器可实现单个IP数据分组的多次或无限次发送,重点关注发送速率的可控性,即发送数据的速率可由上层用户进行设定。速率控制的关键在于BMD中发送调度模块的流量控制算法设计,实现方法的基本思想是:在两个相邻MAC帧之间插入一定数量的空闲周期,空闲周期数的取值与BMD模块的FPGA时钟周期有关。

以下对该方案的发送速率进行逐步推导。

发送数据比特率的原始计算式为式(1),其中,Speed为发送速率,mrd_len_real_byte为发送的MAC帧帧长,单位为bit,frm_send_gap为两个相邻MAC帧之间的空闲周期数,periodtrm_clk为时钟周期,[mrd_len_real_byte/8]表示总是向上取整。

在实际应用中,考虑到后级模块会添加4 byte校验位和20 byte的间隙,因此发送速率的修正计算式如下:

若发送特定比特率的数据流,由式(1)反演得到:

其中,ftrm_clk为时钟频率,与periodtrm_clk成倒数关系。从式 (2)可以看出,发送速率Speed与 MAC帧长mrd_len_real_byte成正比,与发送间隙frm_send_gap成反比。因为frm_send_gap≥0,可以通过式(4)得到Speed的理论最大值为:

由于BMD模块实际取时钟频率ftrm_clk为125 MHz,即时钟周期为8 ns,可以达到Speed≤1 Gbit/s的理论上限。又因为在MAC帧长mrd_len_real_byte、时钟周期periodtrm_clk一定的情况下,发送速率Speed只与发送间隙frm_send_gap相关,根据式(2)可得frm_send_gap的计算式为:

因此,上层用户设定发送速率后,应用层控制模块根据发送的MAC帧长与速率,计算出发送间隙数frm_send_gap,其粒度为8 ns。并根据约定好的交互机制,向BMD模块提供该参数,使其根据该空闲周期数,控制MAC帧的发送节奏,以达到定速的目的。

3.2 软件配置流程

IP流量发生器的主控方在PC机端,在性能模式下,是进行单个IP数据分组的发送,因此应用层程序将待发送的IP数据分组拷贝到板卡的发送内存中即可,无需更新数据。然后,根据用户设置的相关参数,配置好相关寄存器,启动数据发送命令,后续的发送控制工作将完全交由BMD模块进行处理。软件配置流程如图2所示。

4 仿真模式设计方案

仿真模式下,IP流量发生器可以实现对一个完整IP数据分组文件的发送,即可发送批量IP数据分组[5]。不同于性能模式,仿真模式发送时会涉及对板卡发送内存的数据更新。经前期测试,如果拷贝一个IP数据分组到发送内存,启动一次发送,再写入下一个分组,再启动一次发送,效率会很低。因此,本方案通过对数据帧进行重新封装,将发送内存划分为若干块,设定读写索引号,实现数据的“边发边写”功能,保证了较理想的发送性能。

4.1 数据帧的封装格式

为了充分利用板卡有限的发送内存空间(硬件平台实际预留了4 MB发送内存),实现一次写入多个IP数据分组,并且BMD可以定位每个IP数据分组,应用层向板卡的发送内存写入数据前,需对数据进行重新封装,封装格式如图3所示。BMD从发送内存提取数据后,首先进行解封装,根据MAC帧长字段可以定位每个MAC帧。

4.2 数据“边发边写”算法设计

4.2.1 发送内存分块

为了提高BMD每次从发送内存读取的数据量,提高处理效率,按8 kbit/s的粒度将板卡发送内存分为大小相同的若干个块,用Block表示,如图4所示。每一个Block可存放若干个数据帧,BMD每次可读取一个或多个Block。

4.2.2 读写索引号

为了能使应用层与BMD更好地识别和控制每一个Block,需要设置读索引号RdIdx和写索引号WdIdx,以对应每一个8 kbit/s的Block,第n个Block对应的读写索引号值为n。上层应用程序负责更新写索引号WdIdx以启动下层发送,下层BMD负责不断轮询WdIdx值的变化以发送数据,并更新读索引号RdIdx以反馈给上层。上层再通过读取RdIdx是否与WdIdx一致,判断下层是否已发送相应数据段,以执行后续发送和数据更新操作。

4.2.3 发送处理流程

数据发送的处理会有以下3种情况:要发送的数据(包括重复发送次数)可一次装入发送内存;第一次可拷贝的数据文件次数大于等于1,但不能把所有数据(包括重复发送次数)一次性装入发送内存中;第一次不能装下一次完整的数据。因此应用控制模块会进行判断,按情况分别处理,处理流程如图5所示。

其中,第3种情况是“边发边写”算法的难点,需要真正地边发送、边更新发送内存的数据。应用层启动发送下一个Block的同时,会更新上一个Block数据,而新写入的数据需要在整个发送文件中重新定位,才能保证发送数据的可靠性和有效性。

5 测试与分析

IP流量发生器的测试界面如图6所示,界面可以选择要发送的数据文件进行参数设定,包括工作模式、发送的MAC帧范围(起始消息号和结束消息号)、重复发送次数、发送比特率、发送端口等内容。配置成功后,可以计算出发送的第一个MAC帧长、MAC帧个数和发送间隔数。将光纤连接网络性能测试仪表作为接收端,以测试发送的速率和接收到的数据帧数,点击启动发送后,统计列表视图会显示各端口的具体发送信息。

表1 性能模式下短分组与长分组的发送速率

表2 仿真模式下IP数据分组发送情况

通过多次测试,对性能模式和仿真模式的发送情况进行了统计,部分结果分别见表1和表2。从表中可以分析出,该IP流量发生器在性能模式下可以进行有效的流量控制,在可容忍的误差范围内实现精准的定速发送;在仿真模式下,可以正确稳定地发送完整的数据文件,且长分组的发送速率可以达到630 Mbit/s,短分组的发送速率达到269 Mbit/s,能够较好地模拟网络流量,满足当前LTE网络测试仪的测试需求。

6 结束语

本文对LTE网络测试仪的IP流量生成技术进行了研究,提出了一种基于LTE网络测试仪数据采集硬件平台的IP流量发生器设计与实现方案,介绍了性能模式和仿真模式下的软件实现方法,重点研究了流量控制算法和数据“边发边写”的软件控制方法。实际测试表明,该IP流量发生器在性能模式下能够实现精准的定速发送,在仿真模式下能够正确稳定地发送批量IP数据,具有良好的发送性能,满足LTE网络测试的流量模拟需求,在LTE网络测试系统中具有重要的应用价值。

1 王一强.IP流量发生器的研究与实现.成都理工大学硕士学位论文,2010

2 Antichi G,Di Pietro A,Ficara D,et al.Design of a high performance traffic generatoron network processor.Digital System Design Architectures,Methods and Tools,DSD’08,2008:438~441

3 张铮,赵荣彩,邰铭等.一种灵活的基于网络处理器的流量生成方法.计算机工程与应用,2007,43(21):137~140

4 陈玉花,张治中,杜西亚.IPTV测试仪网络层测试的设计与实现.电子技术应用,2009(6):102~105,109

5 李明,雒江涛,邓炳光.一种E1多模式数据仿真测试平台的研究与实现.电视技术,2011,35(5):113~116

猜你喜欢

测试仪内存分组
SDL Atlas推出第二代HydroPro耐静水压测试仪
使用快速水洗色牢度测试仪检测超细纤维脱落
“春夏秋冬”的内存
分组搭配
便携式转辙机转换力测试仪
怎么分组
分组
基于单片机的PM2.5测试仪设计与应用
内存搭配DDR4、DDR3L还是DDR3?
基于内存的地理信息访问技术