欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存、查詢及回放方法與流程

文檔序號(hào):11929980閱讀:534來源:國知局
LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存、查詢及回放方法與流程

本發(fā)明涉及LTE空口監(jiān)測(cè)儀的設(shè)計(jì)技術(shù),具體涉及到一種LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存、查詢及回放方法。



背景技術(shù):

LTE空口監(jiān)測(cè)儀是采集和解析LTE空口信號(hào)的儀器,其產(chǎn)生是LTE網(wǎng)絡(luò)架構(gòu)扁平化的結(jié)果,相對(duì)于3G網(wǎng)絡(luò),LTE網(wǎng)絡(luò)減少了無線網(wǎng)絡(luò)控制器RNC網(wǎng)元和Iub接口。在3G網(wǎng)絡(luò)中可通過Iub接口監(jiān)測(cè)的信息,在LTE網(wǎng)絡(luò)中需要在Uu接口監(jiān)測(cè)獲取,由此,空口監(jiān)測(cè)儀表的作用尤為重要。

Iub是RNC和NODE B之間的接口,用來傳輸RNC和NODE B之間的信令以及來自無線接口的數(shù)據(jù)。空中接口(無線接口)主要用來建立、重配置和釋放各種無線承載業(yè)務(wù),和Iu接口一樣,空中接口也是一個(gè)完全開放的接口。

現(xiàn)有技術(shù)LTE空口監(jiān)測(cè)儀通常包括輸入數(shù)據(jù)解析模塊、數(shù)據(jù)存儲(chǔ)模塊、LTE載荷數(shù)據(jù)解析模塊、無線資源控制RRC解析模塊和配置模塊。其中,輸入數(shù)據(jù)解析模塊主要功能是獲取其他單板寫入的數(shù)據(jù),并進(jìn)行解析分類,然后把數(shù)據(jù)傳遞給對(duì)應(yīng)的后續(xù)處理模塊。數(shù)據(jù)存儲(chǔ)模塊功能主要是存儲(chǔ)輸入數(shù)據(jù),并包含數(shù)據(jù)查詢;LTE載荷數(shù)據(jù)解析模塊主要功能是解析輸入的LTE載荷,包含媒體接入控制MAC子層、無線鏈路控制RLC子層及分組匯聚協(xié)議PDCP子層等LTE Layer2協(xié)議解析;RRC解析模塊主要功能是解析信令無線承載SRB0、SRB1、SRB2數(shù)據(jù),并把基帶板需要的配置信息傳輸給基帶板;配置模塊的主要功能是根據(jù)輸入數(shù)據(jù)或者解析結(jié)果配置層二板及基帶板。

現(xiàn)有技術(shù)LTE空口監(jiān)測(cè)儀表中,層二板需要與基帶板及主控板進(jìn)行數(shù)據(jù)交互,在基帶板的原始數(shù)據(jù)保存查詢及回放的過程中,需要占用較大的存儲(chǔ)空間,使其對(duì)原始數(shù)據(jù)查詢工作困難,很難對(duì)原始數(shù)據(jù)做到有序的回放。

顯然,現(xiàn)有技術(shù)LTE空口監(jiān)測(cè)儀表存在著基帶板在原始數(shù)據(jù)保存查詢及回放的過程中,需要占用較大的存儲(chǔ)空間,使其對(duì)原始數(shù)據(jù)查詢工作困難,很難對(duì)原始數(shù)據(jù)做到有序的回放等問題。



技術(shù)實(shí)現(xiàn)要素:

為解決現(xiàn)有技術(shù)LTE空口監(jiān)測(cè)儀表存在的基帶板在原始數(shù)據(jù)保存查詢及回放的過程中,需要占用較大的存儲(chǔ)空間,使其對(duì)原始數(shù)據(jù)查詢工作困難,很難對(duì)原始數(shù)據(jù)做到有序的回放等問題,本發(fā)明提出一種LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存、查詢及回放方法。

本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存、查詢及回放方法,采用數(shù)據(jù)文件和索引文件的方式保存、查詢或回放數(shù)據(jù);在讀取基帶板原始數(shù)據(jù)的同時(shí)對(duì)每一個(gè)基帶板原始數(shù)據(jù)按基帶板卡獨(dú)立連續(xù)的編號(hào),為每一個(gè)數(shù)據(jù)包創(chuàng)建索引節(jié)點(diǎn)信息并記錄其大小和存儲(chǔ)在數(shù)據(jù)文件中的位置;同時(shí),將原始數(shù)據(jù)保存在數(shù)據(jù)文件中的對(duì)應(yīng)位置,將索引節(jié)點(diǎn)信息保存在索引文件中。

進(jìn)一步的,所述數(shù)據(jù)文件和索引文件采用不同的后綴名,所述數(shù)據(jù)文件的后綴名為.dat,用于保存基帶板原始數(shù)據(jù),采用cardid_datanum.dat方式命名,其中,cardid為不同的基帶板編號(hào),datanum為數(shù)據(jù)段編號(hào),從0開始,當(dāng)該文件長度超過1GBytes時(shí)datanum依自然數(shù)依次增加;所述索引文件后綴名為.idx文件,用于搜索基帶板原始數(shù)據(jù)在.dat文件中的偏移地址及長度,包括,基帶板原始數(shù)據(jù)查詢索引cardid_idxnum.idx文件和基帶板原始數(shù)據(jù)回放索引recordname_pbidxnum.idx文件;基帶板原始數(shù)據(jù)的存放結(jié)構(gòu)即為一個(gè)名稱為recordname的文件下存放有基帶板原始數(shù)據(jù)查詢索引文件cardid_idxnum.idx、基帶板原始數(shù)據(jù)回放索引文件recordname_pbidxnum.idx和基帶板原始數(shù)據(jù)保存文件cardid_datanum.dat。

其中:

recordname為主控板通過發(fā)送層二板存儲(chǔ)記錄名稱設(shè)定數(shù)據(jù)包請(qǐng)求層二板為該條記錄設(shè)置的名稱。

cardid_idxnum.idx為基帶板原始數(shù)據(jù)查詢索引文件,用于對(duì)基帶板原始數(shù)據(jù)查詢;文件中保存有編號(hào)為cardid的基帶板原始數(shù)據(jù)媒體接入控制層分組數(shù)據(jù)單元MAC PDU的索引,每一個(gè)文件包含10000000個(gè)索引節(jié)點(diǎn),可實(shí)現(xiàn)主控板查詢?cè)紨?shù)據(jù)MAC PDU,主控板在查詢時(shí)只需提供sequence number,簡寫為seq_num;層二板可以根據(jù)record name和seq_num快速查找到指定序列號(hào)的原始數(shù)據(jù)MAC PDU位于cardid_datanum.dat的位置及長度。

recordname_pbidxnum.idx為基帶板原始數(shù)據(jù)回放索引文件,用于對(duì)基帶板原始數(shù)據(jù)進(jìn)行回放,在讀取到所有基帶板原始數(shù)據(jù)之后,將各基帶板原始數(shù)據(jù)的索引節(jié)點(diǎn)依次寫入到該文件,可實(shí)現(xiàn)基帶板原始數(shù)據(jù)回放,在回放時(shí)依次讀取索引節(jié)點(diǎn)中的每一個(gè)數(shù)據(jù)包的位置,并按照首次讀入數(shù)據(jù)的時(shí)序進(jìn)行回放。

cardid_datanum.dat為基帶板原始數(shù)據(jù)保存文件,cardid為基帶板卡編號(hào),該文件最大為1GBytes。

進(jìn)一步的,每個(gè).idx文件中存放若干個(gè)索引節(jié)點(diǎn)search_index_node數(shù)據(jù)結(jié)構(gòu),并且,

search_index_node數(shù)據(jù)結(jié)構(gòu)如下:

基帶板原始數(shù)據(jù)MAC PDU查詢請(qǐng)求數(shù)據(jù)子包載荷結(jié)構(gòu)如下:

基帶板原始數(shù)據(jù)MAC PDU回放請(qǐng)求數(shù)據(jù)子包載荷結(jié)構(gòu)如下:

并且,定義PKT_REQUEST_QUERY_MAC_PDU原始數(shù)據(jù)查詢子包為常量0x1400,PKT_REQUEST_PLAYBACK_MAC_PDU原始數(shù)據(jù)回放子包為常量0x1401,定義big_pkt_data,big_pkt_size變量,用以判斷解析結(jié)果。

進(jìn)一步的,所述LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存,包括以下步驟:

層二板接收到基帶板原始數(shù)據(jù)后均需要對(duì)其進(jìn)行保存,各基帶板原始數(shù)據(jù)的保存相互獨(dú)立且同時(shí)進(jìn)行,各基帶板原始數(shù)據(jù)的保存流程如下:

S11:基帶板原始數(shù)據(jù)輸入;

S12:層二板軟件接收基帶板原始數(shù)據(jù)并存入數(shù)據(jù)緩存區(qū);

S13:對(duì)每個(gè)原始數(shù)據(jù)包按照不同基帶板卡號(hào)進(jìn)行編號(hào),計(jì)算數(shù)據(jù)包在文件中的結(jié)束位置和長度,填寫查詢索引節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)至索引緩沖區(qū);

S14:判斷緩沖區(qū)是否已滿,或者文件是否大于1GBytes,兩者滿足其一即執(zhí)行步驟S15,否則,執(zhí)行步驟S16;

S15:將數(shù)據(jù)緩存區(qū)的原始數(shù)據(jù)和查詢索引緩沖區(qū)的索引數(shù)據(jù)分別寫入cardid_datanum.dat文件中和cardid_idxnum.idx文件中;該基帶板原始數(shù)據(jù)和查詢索引數(shù)據(jù)保存完成,執(zhí)行步驟S16;

其中,所述cardid_datanum.dat文件用于保存基帶板的原始數(shù)據(jù),其中,cardid為不同的基帶板編號(hào),datanum為數(shù)據(jù)段編號(hào),從0開始,當(dāng)該文件長度超過1GBytes時(shí)datanum依自然數(shù)依次增加;

所述cardid_idxnum.idx為基帶板原始數(shù)據(jù)查詢索引文件,用于對(duì)基帶板原始數(shù)據(jù)查詢;文件中保存有編號(hào)為cardid的基帶板原始數(shù)據(jù)媒體接入控制層分組數(shù)據(jù)單元MAC PDU的索引,每一個(gè)文件包含10000000個(gè)索引節(jié)點(diǎn),可實(shí)現(xiàn)主控板查詢?cè)紨?shù)據(jù)MAC PDU,主控板在查詢時(shí)只需提供sequence number,簡寫為seq_num;層二板可以根據(jù)record name和seq_num快速查找到指定序列號(hào)的原始數(shù)據(jù)MAC PDU位于cardid_datanum.dat的位置及長度;

S16:將各板卡的索引緩沖按板卡號(hào)依次連續(xù)的拷貝到另一塊索引緩沖區(qū),不進(jìn)行數(shù)據(jù)存儲(chǔ);

S17:將回放索引緩沖區(qū)數(shù)據(jù)寫入recordname_pbidxnum.idx文件中,該基帶板回放索引數(shù)據(jù)保存完成;

所述recordname_pbidxnum.idx為基帶板原始數(shù)據(jù)回放索引文件,用于對(duì)基帶板原始數(shù)據(jù)進(jìn)行回放,在讀取到所有基帶板原始數(shù)據(jù)之后,將各基帶板原始數(shù)據(jù)的索引節(jié)點(diǎn)依次寫入到該文件,可實(shí)現(xiàn)基帶板原始數(shù)據(jù)回放,在回放時(shí)依次讀取索引節(jié)點(diǎn)中的每一個(gè)數(shù)據(jù)包的位置,并按照首次讀入數(shù)據(jù)的時(shí)序進(jìn)行回放;并且,每個(gè).idx文件中存放若干個(gè)索引節(jié)點(diǎn)search_index_node數(shù)據(jù)結(jié)構(gòu),并且,search_index_node數(shù)據(jù)結(jié)構(gòu)如下:

S18:更新原始數(shù)據(jù)存儲(chǔ)文件cardid_datanum.dat、查詢索引文件cardid_idxnum.idx、回放索引文件recordname_pbidxnum.idx結(jié)尾位置,以進(jìn)行下次的原始數(shù)據(jù)存儲(chǔ);

S19:基帶板原始數(shù)據(jù)保存流程結(jié)束。

進(jìn)一步的,所述LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)查詢,包括以下步驟:

層二板在接收到一個(gè)查詢請(qǐng)求數(shù)據(jù)子包PKT_REQUEST_QUERY_MAC_PDU,將會(huì)進(jìn)入到基帶板原始數(shù)據(jù)媒體接入控制層分組數(shù)據(jù)單元MAC PDU查詢處理流程,流程如下:

S21:層二板接收主控板原始數(shù)據(jù)包;

S22:層二板對(duì)主控板原始數(shù)據(jù)包進(jìn)行解析,解析原始數(shù)據(jù)包類型;

S23:判斷原始數(shù)據(jù)包的類型是否為0x1400,即是否為查詢請(qǐng)求數(shù)據(jù)子包PKT_REQUEST_QUERY_MAC_PDU,是則,執(zhí)行步驟S24,否則,不能進(jìn)入數(shù)據(jù)查詢流程,轉(zhuǎn)為執(zhí)行步驟S27;

S24:解析查詢請(qǐng)求數(shù)據(jù)子包得到基帶板原始數(shù)據(jù)MAC PDU查詢請(qǐng)求數(shù)據(jù)子包載荷REQ_MACPDU_sub_payload,基帶板原始數(shù)據(jù)MAC PDU查詢請(qǐng)求數(shù)據(jù)子包載荷結(jié)構(gòu)如下:

根據(jù)該結(jié)構(gòu)獲取需要查詢的存儲(chǔ)記錄名稱recordname、索引號(hào)seq_num、板卡號(hào)cardid;

通過REQ_MACPDU_sub_payload結(jié)構(gòu)體中的成員name得到recordname;

通過成員seq_num_HI的高4bit得到cardid;

通過成員seq_num_HI的低28bit向左移位28bit與成員seq_num_LO相或得到seq_num;

通過seq_num/10000000得到idxfilenum;

通過(seq_num%10000000)*sizeof(search_index_node)得到在cardid_idxnum.idx中的偏移為idx_offset;

在cardid_idxnum.idx讀取偏移為idx_offset的索引節(jié)點(diǎn)struct_search_index_node idx_node;

通過索引文件結(jié)構(gòu)體參量idx_node.pkt_len得到原始數(shù)據(jù)MAC PDU長度pktlen;

通過idx_node.file_num得到datfilenum;

通過idx_node.end_offset得到原始數(shù)據(jù)MAC PDU在cardid_datfilenum.dat中的偏移位置dat_offset;

在cardid_datnum.dat的dat_offset位置讀取pktlen長度的數(shù)據(jù)即得到了所需的原始數(shù)據(jù)MAC PDU;

S25:初始化big_pkt_data為空,big_pkt_size為0;根據(jù)板卡號(hào)cardid和索引號(hào)seq_num,讀取文件找到指定的原始數(shù)據(jù)MAC PDU所在位置,更新big_pkt_data,big_pkt_size;

S26:判斷big_pkt_data是否為空或者big_pkt_size是否為0,兩者滿足其一,說明未找到查詢數(shù)據(jù),發(fā)送定義為0x1303常量的PKT_QUERY_MAC_PDU_ACK應(yīng)答包,轉(zhuǎn)為執(zhí)行步驟S27;否則,將找到的原始數(shù)據(jù)MAC PDU數(shù)據(jù)包重組,并將組包后的數(shù)據(jù)發(fā)送到主控板,數(shù)據(jù)查詢完成;

S27:基帶板原始數(shù)據(jù)查詢流程結(jié)束。

進(jìn)一步的,所述LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)回放,包括以下步驟:

層二板在接收到一個(gè)回放請(qǐng)求數(shù)據(jù)子包PKT_REQUEST_PLAYBACK_MAC_PDU后,將會(huì)進(jìn)入到基帶板原始數(shù)據(jù)媒體接入控制層分組數(shù)據(jù)單元MAC PDU回放處理流程,流程如下:

S31:層二板接收主控板原始數(shù)據(jù)包;

S32:層二板對(duì)主控板原始數(shù)據(jù)包進(jìn)行解析,解析原始數(shù)據(jù)包類型;

S33:判斷該原始數(shù)據(jù)包類型是否為0x1401,即是否為回放請(qǐng)求數(shù)據(jù)子包PKT_REQUEST_PLAYBACK_MAC_PDU,若是,執(zhí)行步驟S34,否則,不能進(jìn)入數(shù)據(jù)回放流程,轉(zhuǎn)為執(zhí)行步驟S37;

S34:解析回放請(qǐng)求數(shù)據(jù)子包得到基帶板原始數(shù)據(jù)MAC PDU回放請(qǐng)求數(shù)據(jù)包載荷PLAYBACK_MACPDU_sub_payload,并且,基帶板原始數(shù)據(jù)MAC PDU回放請(qǐng)求數(shù)據(jù)子包載荷結(jié)構(gòu)如下:

通過該結(jié)構(gòu)獲取需要回放的存儲(chǔ)記錄名稱recordname,并在存儲(chǔ)區(qū)查找該記錄;

讀取第一個(gè)文件recordname_0.idx開始,讀取該文件中的每一個(gè)索引節(jié)點(diǎn)struct_search_index_node idx_node,根據(jù)結(jié)構(gòu)體成員idx_node.pkt_len得到原始數(shù)據(jù)MAC PDU長度pktlen;根據(jù)結(jié)構(gòu)體成員idx_node.file_num得到datfilenum,根據(jù)結(jié)構(gòu)體成員idx_node.end_offset得到原始數(shù)據(jù)MAC PDU在cardid_datnum.dat中的偏移dat_offset;

在cardid_datnum.dat的dat_offset位置讀取pktlen長度的數(shù)據(jù)即得到了所需的原始數(shù)據(jù)MAC PDU;

S35:初始化big_pkt_data為空,big_pkt_size為0;根據(jù)板卡號(hào)cardid和索引號(hào)seq_num,讀取文件找到指定的原始數(shù)據(jù)MAC PDU所在位置,更新big_pkt_data,big_pkt_size;

S36:判斷big_pkt_data是否為空或者big_pkt_size是否為0,兩者滿足其一,退出該流程,即未查詢到請(qǐng)求回放的原始數(shù)據(jù)MAC PDU,轉(zhuǎn)為執(zhí)行步驟S37;否則,數(shù)據(jù)回放完成,進(jìn)入LTE載荷處理,并將原始數(shù)據(jù)交給層二協(xié)議棧處理;

S37:基帶板原始數(shù)據(jù)回放流程結(jié)束。

本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存、查詢及回放方法的有益技術(shù)效果是可實(shí)現(xiàn)主控板快速準(zhǔn)確地查找到指定的原始數(shù)據(jù)MAC PDU以及對(duì)原始數(shù)據(jù)按照輸入的時(shí)序有序地進(jìn)行回放操作,有利于Layer2軟件數(shù)據(jù)解析,提高解析效率。

附圖說明

附圖1為本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存流程示意圖;

附圖2為本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)查詢流程示意圖;

附圖3為本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)回放流程示意圖。

下面結(jié)合附圖對(duì)本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存、查詢及回放方法作進(jìn)一步的說明。

具體實(shí)施方式

顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。

本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存、查詢及回放方法,采用數(shù)據(jù)文件和索引文件的方式保存、查詢或回放數(shù)據(jù);在讀取基帶板原始數(shù)據(jù)的同時(shí)對(duì)每一個(gè)基帶板原始數(shù)據(jù)按基帶板卡獨(dú)立連續(xù)的編號(hào),為每一個(gè)數(shù)據(jù)包創(chuàng)建索引節(jié)點(diǎn)信息并記錄其大小和存儲(chǔ)在數(shù)據(jù)文件中的位置;同時(shí),將原始數(shù)據(jù)保存在數(shù)據(jù)文件中的對(duì)應(yīng)位置,將索引節(jié)點(diǎn)信息保存在索引文件中。其中,所述數(shù)據(jù)文件和索引文件采用不同的后綴名,所述數(shù)據(jù)文件的后綴名為.dat,用于保存基帶板原始數(shù)據(jù),采用cardid_datanum.dat方式命名,其中,cardid為不同的基帶板編號(hào),datanum為數(shù)據(jù)段編號(hào),從0開始,當(dāng)該文件長度超過1GBytes時(shí)datanum依自然數(shù)依次增加;所述索引文件后綴名為.idx文件,用于搜索基帶板原始數(shù)據(jù)在.dat文件中的偏移地址及長度,包括,基帶板原始數(shù)據(jù)查詢索引cardid_idxnum.idx文件和基帶板原始數(shù)據(jù)回放索引recordname_pbidxnum.idx文件;基帶板原始數(shù)據(jù)的存放結(jié)構(gòu)即為一個(gè)名稱為recordname的文件下存放有基帶板原始數(shù)據(jù)查詢索引文件cardid_idxnum.idx、基帶板原始數(shù)據(jù)回放索引文件recordname_pbidxnum.idx和基帶板原始數(shù)據(jù)保存文件cardid_datanum.dat;

其中:

recordname為主控板通過發(fā)送層二板存儲(chǔ)記錄名稱設(shè)定數(shù)據(jù)包請(qǐng)求層二板為該條記錄設(shè)置的名稱。

cardid_idxnum.idx為基帶板原始數(shù)據(jù)查詢索引文件,用于對(duì)基帶板原始數(shù)據(jù)查詢;文件中保存有編號(hào)為cardid的基帶板原始數(shù)據(jù)媒體接入控制層分組數(shù)據(jù)單元MAC PDU的索引,每一個(gè)文件包含10000000個(gè)索引節(jié)點(diǎn),可實(shí)現(xiàn)主控板查詢?cè)紨?shù)據(jù)MAC PDU,主控板在查詢時(shí)只需提供sequence number,簡寫為seq_num;層二板可以根據(jù)record name和seq_num快速查找到指定序列號(hào)的原始數(shù)據(jù)MAC PDU位于cardid_datanum.dat的位置及長度。

recordname_pbidxnum.idx為基帶板原始數(shù)據(jù)回放索引文件,用于對(duì)基帶板原始數(shù)據(jù)進(jìn)行回放,在讀取到所有基帶板原始數(shù)據(jù)之后,將各基帶板原始數(shù)據(jù)的索引節(jié)點(diǎn)依次寫入到該文件,可實(shí)現(xiàn)基帶板原始數(shù)據(jù)回放,在回放時(shí)依次讀取索引節(jié)點(diǎn)中的每一個(gè)數(shù)據(jù)包的位置,并按照首次讀入數(shù)據(jù)的時(shí)序進(jìn)行回放。

cardid_datanum.dat為基帶板原始數(shù)據(jù)保存文件,cardid為基帶板卡編號(hào),該文件最大為1GBytes。

為便于原始數(shù)據(jù)查詢和回放,本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存、查詢及回放方法的每個(gè).idx文件中存放若干個(gè)索引節(jié)點(diǎn)search_index_node數(shù)據(jù)結(jié)構(gòu),并且,

search_index_node數(shù)據(jù)結(jié)構(gòu)如下:

基帶板原始數(shù)據(jù)MAC PDU查詢請(qǐng)求數(shù)據(jù)子包載荷結(jié)構(gòu)如下:

基帶板原始數(shù)據(jù)MAC PDU回放請(qǐng)求數(shù)據(jù)子包載荷結(jié)構(gòu)如下:

并且,定義PKT_REQUEST_QUERY_MAC_PDU原始數(shù)據(jù)查詢子包為常量0x1400,PKT_REQUEST_PLAYBACK_MAC_PDU原始數(shù)據(jù)回放子包為常量0x1401,定義big_pkt_data,big_pkt_size變量,用以判斷解析結(jié)果。

附圖1為本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存流程示意圖,由圖可知,所述LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存,包括以下步驟:

層二板接收到基帶板原始數(shù)據(jù)后均需要對(duì)其進(jìn)行保存,各基帶板原始數(shù)據(jù)的保存相互獨(dú)立且同時(shí)進(jìn)行,各基帶板原始數(shù)據(jù)的保存流程如下:

S11:基帶板原始數(shù)據(jù)輸入;

S12:層二板軟件接收基帶板原始數(shù)據(jù)并存入數(shù)據(jù)緩存區(qū);

S13:對(duì)每個(gè)原始數(shù)據(jù)包按照不同基帶板卡號(hào)進(jìn)行編號(hào),計(jì)算數(shù)據(jù)包在文件中的結(jié)束位置和長度,填寫查詢索引節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)至索引緩沖區(qū);

S14:判斷緩沖區(qū)是否已滿,或者文件是否大于1GBytes,兩者滿足其一即執(zhí)行步驟S15,否則,執(zhí)行步驟S16;

S15:將數(shù)據(jù)緩存區(qū)的原始數(shù)據(jù)和查詢索引緩沖區(qū)的索引數(shù)據(jù)分別寫入cardid_datanum.dat文件中和cardid_idxnum.idx文件中;該基帶板原始數(shù)據(jù)和查詢索引數(shù)據(jù)保存完成,執(zhí)行步驟S16;其中,

所述cardid_datanum.dat文件用于保存基帶板的原始數(shù)據(jù),其中,cardid為不同的基帶板編號(hào),datanum為數(shù)據(jù)段編號(hào),從0開始,當(dāng)該文件長度超過1GBytes時(shí)datanum依自然數(shù)依次增加;

所述cardid_idxnum.idx為基帶板原始數(shù)據(jù)查詢索引文件,用于對(duì)基帶板原始數(shù)據(jù)查詢;文件中保存有編號(hào)為cardid的基帶板原始數(shù)據(jù)媒體接入控制層分組數(shù)據(jù)單元MAC PDU的索引,每一個(gè)文件包含10000000個(gè)索引節(jié)點(diǎn),可實(shí)現(xiàn)主控板查詢?cè)紨?shù)據(jù)MAC PDU,主控板在查詢時(shí)只需提供sequence number,簡寫為seq_num;層二板可以根據(jù)record name和seq_num快速查找到指定序列號(hào)的原始數(shù)據(jù)MAC PDU位于cardid_datanum.dat的位置及長度;

S16:將各板卡的索引緩沖按板卡號(hào)依次連續(xù)的拷貝到另一塊索引緩沖區(qū),不進(jìn)行數(shù)據(jù)存儲(chǔ);

S17:將回放索引緩沖區(qū)數(shù)據(jù)寫入recordname_pbidxnum.idx文件中,該基帶板回放索引數(shù)據(jù)保存完成;其中,

所述recordname_pbidxnum.idx為基帶板原始數(shù)據(jù)回放索引文件,用于對(duì)基帶板原始數(shù)據(jù)進(jìn)行回放,在讀取到所有基帶板原始數(shù)據(jù)之后,將各基帶板原始數(shù)據(jù)的索引節(jié)點(diǎn)依次寫入到該文件,可實(shí)現(xiàn)基帶板原始數(shù)據(jù)回放,在回放時(shí)依次讀取索引節(jié)點(diǎn)中的每一個(gè)數(shù)據(jù)包的位置,并按照首次讀入數(shù)據(jù)的時(shí)序進(jìn)行回放;并且,每個(gè).idx文件中存放若干個(gè)索引節(jié)點(diǎn)search_index_node數(shù)據(jù)結(jié)構(gòu),并且,search_index_node數(shù)據(jù)結(jié)構(gòu)如下:

S18:更新原始數(shù)據(jù)存儲(chǔ)文件cardid_datanum.dat、查詢索引文件cardid_idxnum.idx、回放索引文件recordname_pbidxnum.idx結(jié)尾位置,以進(jìn)行下次的原始數(shù)據(jù)存儲(chǔ);

S19:基帶板原始數(shù)據(jù)保存流程結(jié)束。

附圖2為本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)查詢流程示意圖,由圖可知,所述LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)查詢,包括以下步驟:

層二板在接收到一個(gè)查詢請(qǐng)求數(shù)據(jù)子包PKT_REQUEST_QUERY_MAC_PDU,將會(huì)進(jìn)入到基帶板原始數(shù)據(jù)媒體接入控制層分組數(shù)據(jù)單元MAC PDU查詢處理流程,流程如下:

S21:層二板接收主控板原始數(shù)據(jù)包;

S22:層二板對(duì)主控板原始數(shù)據(jù)包進(jìn)行解析,解析原始數(shù)據(jù)包類型;

S23:判斷原始數(shù)據(jù)包的類型是否為0x1400,即是否為查詢請(qǐng)求數(shù)據(jù)子包PKT_REQUEST_QUERY_MAC_PDU,是則,執(zhí)行步驟S24,否則,不能進(jìn)入數(shù)據(jù)查詢流程,轉(zhuǎn)為執(zhí)行步驟S27;

S24:解析查詢請(qǐng)求數(shù)據(jù)子包得到基帶板原始數(shù)據(jù)MAC PDU查詢請(qǐng)求數(shù)據(jù)子包載荷REQ_MACPDU_sub_payload,基帶板原始數(shù)據(jù)MAC PDU查詢請(qǐng)求數(shù)據(jù)子包載荷結(jié)構(gòu)如下:

根據(jù)該結(jié)構(gòu)獲取需要查詢的存儲(chǔ)記錄名稱recordname、索引號(hào)seq_num、板卡號(hào)cardid;

通過REQ_MACPDU_sub_payload結(jié)構(gòu)體中的成員name得到recordname;

通過成員seq_num_HI的高4bit得到cardid;

通過成員seq_num_HI的低28bit向左移位28bit與成員seq_num_LO相或得到seq_num;

通過seq_num/10000000得到idxfilenum;

通過(seq_num%10000000)*sizeof(search_index_node)得到在cardid_idxnum.idx中的偏移為idx_offset;

在cardid_idxnum.idx讀取偏移為idx_offset的索引節(jié)點(diǎn)struct_search_index_node idx_node;

通過索引文件結(jié)構(gòu)體參量idx_node.pkt_len得到原始數(shù)據(jù)MAC PDU長度pktlen;

通過idx_node.file_num得到datfilenum;

通過idx_node.end_offset得到原始數(shù)據(jù)MAC PDU在cardid_datfilenum.dat中的偏移位置dat_offset;

在cardid_datnum.dat的dat_offset位置讀取pktlen長度的數(shù)據(jù)即得到了所需的原始數(shù)據(jù)MAC PDU;

S25:初始化big_pkt_data為空,big_pkt_size為0;根據(jù)板卡號(hào)cardid和索引號(hào)seq_num,讀取文件找到指定的原始數(shù)據(jù)MAC PDU所在位置,更新big_pkt_data,big_pkt_size;

S26:判斷big_pkt_data是否為空或者big_pkt_size是否為0,兩者滿足其一,說明未找到查詢數(shù)據(jù),發(fā)送定義為0x1303常量的PKT_QUERY_MAC_PDU_ACK應(yīng)答包,轉(zhuǎn)為執(zhí)行步驟S27;否則,將找到的原始數(shù)據(jù)MAC PDU數(shù)據(jù)包重組,并將組包后的數(shù)據(jù)發(fā)送到主控板,數(shù)據(jù)查詢完成;

S27:基帶板原始數(shù)據(jù)查詢流程結(jié)束。

附圖3為本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)回放流程示意圖,由圖可知,所述LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)回放,包括以下步驟:

層二板在接收到一個(gè)回放請(qǐng)求數(shù)據(jù)子包PKT_REQUEST_PLAYBACK_MAC_PDU后,將會(huì)進(jìn)入到基帶板原始數(shù)據(jù)媒體接入控制層分組數(shù)據(jù)單元MAC PDU回放處理流程,流程如下:

S31:層二板接收主控板原始數(shù)據(jù)包;

S32:層二板對(duì)主控板原始數(shù)據(jù)包進(jìn)行解析,解析原始數(shù)據(jù)包類型;

S33:判斷該原始數(shù)據(jù)包類型是否為0x1401,即是否為回放請(qǐng)求數(shù)據(jù)子包PKT_REQUEST_PLAYBACK_MAC_PDU,若是,執(zhí)行步驟S34,否則,不能進(jìn)入數(shù)據(jù)回放流程,轉(zhuǎn)為執(zhí)行步驟S37;

S34:解析回放請(qǐng)求數(shù)據(jù)子包得到基帶板原始數(shù)據(jù)MAC PDU回放請(qǐng)求數(shù)據(jù)包載荷PLAYBACK_MACPDU_sub_payload,基帶板原始數(shù)據(jù)MAC PDU回放請(qǐng)求數(shù)據(jù)子包載荷結(jié)構(gòu)如下:

通過該結(jié)構(gòu)可獲取需要回放的存儲(chǔ)記錄名稱recordname,并在存儲(chǔ)區(qū)查找該記錄;

讀取第一個(gè)文件recordname_0.idx開始,讀取該文件中的每一個(gè)索引節(jié)點(diǎn)struct_search_index_node idx_node,根據(jù)結(jié)構(gòu)體成員idx_node.pkt_len得到原始數(shù)據(jù)MAC PDU長度pktlen;根據(jù)結(jié)構(gòu)體成員idx_node.file_num得到datfilenum,根據(jù)結(jié)構(gòu)體成員idx_node.end_offset得到原始數(shù)據(jù)MAC PDU在cardid_datnum.dat中的偏移dat_offset;

在cardid_datnum.dat的dat_offset位置讀取pktlen長度的數(shù)據(jù)即得到了所需的原始數(shù)據(jù)MAC PDU;

S35:初始化big_pkt_data為空,big_pkt_size為0;根據(jù)板卡號(hào)cardid和索引號(hào)seq_num,讀取文件找到指定的原始數(shù)據(jù)MAC PDU所在位置,更新big_pkt_data,big_pkt_size;

S36:判斷big_pkt_data是否為空或者big_pkt_size是否為0,兩者滿足其一,退出該流程,即未查詢到請(qǐng)求回放的原始數(shù)據(jù)MAC PDU,轉(zhuǎn)為執(zhí)行步驟S37;否則,數(shù)據(jù)回放完成,進(jìn)入LTE載荷處理,并將原始數(shù)據(jù)交給層二協(xié)議棧處理;

S37:基帶板原始數(shù)據(jù)回放流程結(jié)束。

顯然,本發(fā)明LTE空口監(jiān)測(cè)儀基帶板原始數(shù)據(jù)保存、查詢及回放方法的有益技術(shù)效果是可實(shí)現(xiàn)主控板快速準(zhǔn)確地查找到指定的原始數(shù)據(jù)MAC PDU以及對(duì)原始數(shù)據(jù)按照輸入的時(shí)序有序地進(jìn)行回放操作,有利于Layer2軟件數(shù)據(jù)解析,提高解析效率。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
梅河口市| 视频| 井冈山市| 南部县| 呼玛县| 中卫市| 达拉特旗| 玉树县| 阿图什市| 石泉县| 鄂托克旗| 房山区| 珠海市| 屏山县| 芒康县| 米林县| 富顺县| 弥渡县| 清新县| 玉山县| 富蕴县| 蒙阴县| 淳化县| 大安市| 丰原市| 全南县| 韩城市| 赤壁市| 惠安县| 临湘市| 信丰县| 林芝县| 寻乌县| 涡阳县| 永修县| 家居| 若尔盖县| 甘孜县| 沁阳市| 芜湖市| 大余县|