本文介紹了一種應用在LTE協(xié)議棧系統(tǒng)軟件開發(fā)過程的測試和調(diào)試的模型,并給出了測試模型的應用結果。該模型以LTE接入網(wǎng)標準架構為原型,分層調(diào)試為思想,多彩模塊化打印為手段,具有環(huán)境簡易、調(diào)試方便的特點,對協(xié)議棧軟件調(diào)試和分析具有良好的輔助作用。
1 LTE 協(xié)議棧架構
LTE系統(tǒng)由核心網(wǎng)絡(EPC)、無線網(wǎng)絡(E-UTRAN)和用戶設備(UE)構成?;荆╡NodeB)之間通過X2接口相連組成接入網(wǎng),其空口協(xié)議棧分為控制面和用戶面,圖1 是控制面的架構,用戶面與控制面架構類似。
NAS層、RRC層統(tǒng)稱為L3層,主要負責信令和無線資源控制。PDCP層[4]、RLC層[5]、MAC 層統(tǒng)稱為L2 層,主要負責數(shù)據(jù)鏈路,PHY層則是向高層提供數(shù)據(jù)傳輸服務。
2.1 測試環(huán)境
測試環(huán)境模擬LTE系統(tǒng)架構來搭建,分別為移動管理實體(MME)/服務網(wǎng)關(SGW)、 eNodeB和UE,整體的測試框架如圖2所示,主要分為L2/L3高層協(xié)議測試和L1/L2/L3 層協(xié)議測試兩部分。本文測試中使用了中國科學院計算技術研究所無線通信技術中心自主研發(fā)的LTE終端協(xié)議棧軟件、LTE Femtocell協(xié)議棧軟件和LTE網(wǎng)關軟件。為便于分析問題,采用了單用戶模式舉例,多用戶情況以此類推。
LTE協(xié)議棧軟件功能眾多,按照分層化思路進行調(diào)試分析是一個不錯的開始。先分別進行單層測試,確保各層功能的正確與穩(wěn)定性,然后再逐層遞加進行測試。
L2 層數(shù)據(jù)鏈路通過后,再開始信令面和用戶面的測試。在定位棘手的問題時,一層一層追蹤數(shù)據(jù)流向,可以達到事半功倍的效果。舉例來說,在測試下行用戶面時,首先確認基站PDCP 層是否收到數(shù)據(jù)包,確認后查看數(shù)據(jù)有沒有通過PDCP 層轉發(fā)下去;如果PDCP 層沒有問題,數(shù)據(jù)是否到達RLC 層;如果到達RLC 層,MAC層是否進行調(diào)度發(fā)送。
2.3 網(wǎng)絡封包捕獲解析
網(wǎng)絡封包捕獲解析程序可從以太網(wǎng)卡中捕獲數(shù)據(jù)流并進行解析顯示。這里推薦使用wireshark,它是一款常用的優(yōu)秀開源網(wǎng)絡封包分析軟件,提供了自定義協(xié)議解析插件的編程接口,可以讓使用者開發(fā)適用于自定義協(xié)議的插件。目前wireshark 中已經(jīng)提供了RRC 層、PDCP 層、RLC層、MAC層的解析插件,只需要在協(xié)議數(shù)據(jù)包前加上特殊的解析包頭即可調(diào)用解析,看到各個消息的名稱和字段的值。在抓包以后,可以將抓包另存為 pcap文件,方便下次查看。尤其在L1/L2 層集成測試時,MAC/PHY API 接口是處理MAC 層消息,控制并調(diào)度PHY物理層鏈路處理的重要接口,MAC/PHY API的高效性和完備性直接影響到物理層處理的效率和正確性。
因此需要編寫能夠解析MAC/PHY API的wireshark網(wǎng)絡封包軟件的插件程序,使得wireshark 能夠顯示兩層接口之間交互的信息,如圖3所示。
在測試L2/L3 層時,可先用以太網(wǎng)模擬PHY 層,網(wǎng)關程序、基站協(xié)議棧程序、終端協(xié)議棧程序、網(wǎng)絡封包捕獲解析程序分別各自運行在一臺計算機中,通過udpsocket編程來發(fā)送MAC層協(xié)議數(shù)據(jù)包,同時將RRC、PD-CP、RLC、MAC 層的協(xié)議數(shù)據(jù)包通過udp socket 編程抄送至網(wǎng)絡封包捕獲程序,網(wǎng)絡封包捕獲程序則監(jiān)視設定的udp端口來抓取數(shù)據(jù)。
2.5 調(diào)試信息顯示
2.5.1 打印位置
調(diào)試信息的打印是測試的關鍵。LTE 系統(tǒng)中傳輸時間間隔(TTI)被定義為1 ms,也就是說1 ms內(nèi)需要將調(diào)度或者收發(fā)數(shù)據(jù)完全處理,每個子幀都有可能需要打印調(diào)試信息,將帶給硬件不小的壓力。在單獨測試L2/L3層協(xié)議時,可以在計算機上運行程序,目前大部分計算機的性能可以滿足需求,因此調(diào)試信息可以直接在窗口中打印。當加入L1層進行集成測試時,嵌入式開發(fā)板資源相對比較短缺,大量的I/O操作會嚴重占用CPU使用率,而CPU 與以太網(wǎng)卡的交互速率更快。這里使用的PHY層開發(fā)板為飛思卡爾公司生產(chǎn)的BSC9131,專門用于開發(fā)家庭基站,CPU 為單核1 GHz,打印信息較多時經(jīng)常會導致開發(fā)板掛掉,解決的方法是應用udpsocket發(fā)送機制將調(diào)試信息通過以太網(wǎng)發(fā)送到計算機,計算機中則編寫簡單的 wireshark解析插件后進行捕獲解析。此方法經(jīng)過實際項目檢驗有效可行,沒有再出現(xiàn)掛掉的情況。
2.5.2 模塊化多色打印
直接在計算機上顯示時,采用在程序中開發(fā)相應的專用打印模塊的方法,不同的優(yōu)先級打印信息顯示不同的顏色,并且能夠顯示程序運行的狀態(tài)、出錯的位置。
在與L1 層集成測試時,同樣可以選擇多彩化打印。
wireshark支持不同的協(xié)議或者端口顯示不同的顏色,只需要簡單的設置即可,這給我們調(diào)試提供了便利。應用這種方式,在調(diào)試信息繁多時可以極大的提高調(diào)試效率。圖4為wireshark主窗口多色顯示的結果,從圖4中可見,視覺效果十分明顯。