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