王曉嬌,張治中
(重慶郵電大學通信網與測試技術重點實驗室 重慶 400065)
隨著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網絡測試儀的數據采集測試、模擬高速網絡環境具有重要的應用價值。
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模塊的交互機制設計。

在性能模式下,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幀的發送節奏,以達到定速的目的。
IP流量發生器的主控方在PC機端,在性能模式下,是進行單個IP數據分組的發送,因此應用層程序將待發送的IP數據分組拷貝到板卡的發送內存中即可,無需更新數據。然后,根據用戶設置的相關參數,配置好相關寄存器,啟動數據發送命令,后續的發送控制工作將完全交由BMD模塊進行處理。軟件配置流程如圖2所示。

仿真模式下,IP流量發生器可以實現對一個完整IP數據分組文件的發送,即可發送批量IP數據分組[5]。不同于性能模式,仿真模式發送時會涉及對板卡發送內存的數據更新。經前期測試,如果拷貝一個IP數據分組到發送內存,啟動一次發送,再寫入下一個分組,再啟動一次發送,效率會很低。因此,本方案通過對數據幀進行重新封裝,將發送內存劃分為若干塊,設定讀寫索引號,實現數據的“邊發邊寫”功能,保證了較理想的發送性能。
為了充分利用板卡有限的發送內存空間(硬件平臺實際預留了4 MB發送內存),實現一次寫入多個IP數據分組,并且BMD可以定位每個IP數據分組,應用層向板卡的發送內存寫入數據前,需對數據進行重新封裝,封裝格式如圖3所示。BMD從發送內存提取數據后,首先進行解封裝,根據MAC幀長字段可以定位每個MAC幀。

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數據,而新寫入的數據需要在整個發送文件中重新定位,才能保證發送數據的可靠性和有效性。
IP流量發生器的測試界面如圖6所示,界面可以選擇要發送的數據文件進行參數設定,包括工作模式、發送的MAC幀范圍(起始消息號和結束消息號)、重復發送次數、發送比特率、發送端口等內容。配置成功后,可以計算出發送的第一個MAC幀長、MAC幀個數和發送間隔數。將光纖連接網絡性能測試儀表作為接收端,以測試發送的速率和接收到的數據幀數,點擊啟動發送后,統計列表視圖會顯示各端口的具體發送信息。


表1 性能模式下短分組與長分組的發送速率

表2 仿真模式下IP數據分組發送情況
通過多次測試,對性能模式和仿真模式的發送情況進行了統計,部分結果分別見表1和表2。從表中可以分析出,該IP流量發生器在性能模式下可以進行有效的流量控制,在可容忍的誤差范圍內實現精準的定速發送;在仿真模式下,可以正確穩定地發送完整的數據文件,且長分組的發送速率可以達到630 Mbit/s,短分組的發送速率達到269 Mbit/s,能夠較好地模擬網絡流量,滿足當前LTE網絡測試儀的測試需求。
本文對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