桌面epon文章oam軟件設(shè)計(jì)方案_第1頁
桌面epon文章oam軟件設(shè)計(jì)方案_第2頁
桌面epon文章oam軟件設(shè)計(jì)方案_第3頁
桌面epon文章oam軟件設(shè)計(jì)方案_第4頁
桌面epon文章oam軟件設(shè)計(jì)方案_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

OAMOAMOAM子層處于數(shù)據(jù)鏈路層中。所有數(shù)據(jù)都通過MAC層向上或向下傳送,MAC 責(zé)接收和發(fā)送MAC幀,處理數(shù)據(jù)業(yè)務(wù);OAMC1lent負(fù)責(zé)配置OAM信息參數(shù),接收和發(fā)業(yè)務(wù)。OAM子層中有三個功能模塊:Control(控制)模塊、Paser(解析)模塊和Multiplexer(復(fù)用)模塊,其結(jié)構(gòu)見圖1:ControlControlMACMACOAMOAMOAMMACparser模1MAC三個子功能模塊功能各異,controlOAM的發(fā)現(xiàn)、OAMPDU的控制發(fā)送;C語言進(jìn)行實(shí)現(xiàn)。EPONOAMOAM軟件開發(fā)流程(PAS-SOFTAPIAPI接口進(jìn)行各功能模塊的開發(fā)。按照軟件的功能要求對各種幀及其進(jìn)試測試軟件是否能夠穩(wěn)定高效的完OAM調(diào)用construct_oam_pdu構(gòu)造eventnotification調(diào)用construct_oam_pdu構(gòu)造eventnotification將變量的值放入分別對local_par_actionOAMPDU的數(shù)據(jù)域調(diào)及l(fā)ocal_mux_action賦用construct_oam_pdu() 值,調(diào)用構(gòu)造variablerequest construct_oam_pdu()構(gòu) 造informationoampduOAMMIB中MIBLoopback標(biāo)志位,判斷是否需要進(jìn)行回環(huán)鏈路測試;OAMPDUMIB中相應(yīng)參數(shù)進(jìn)行寫操作。OAM子程序響應(yīng)局端的各種命令,若是收到變量請求幀,則將相OAM信息幀通知局端,完成回環(huán)測試功能。另外,OAM子程序還//以下是定義OAMPDU各數(shù)值域在數(shù)組中的位置#defineOAMTYPE0x8809 #defineOAM_SUBTYPE0x03 unsignedcharOAMDESTINATION0x02}//typedef{ OAM_CODE_EVENT_NOTIFICATION=0x01, OAM_CODE_VARIABLE_RESPONSE=0x03,OAM_CODE_LOOPBACK_CONTROL=0x04}OAM_code_t;unsignedchar //OAMshortintdata_size,void*frame,shortint*frame{ //oam_frame[OAM_TYPE_BEGIN_CE]=(unsignedchar)((OAM_TYPE&0xff00)>>8);oam_frame[OAM_TYPE_BEGIN_CE+1]=(unsignedchar)(OAM_TYPE&0x00ff); //OAM OAMPDUdataoam }OAM_flags_tflags,OAM_code_t*code,void**data)//OAMPDU//if(parseoamframe_flags(frame,frame_size,F(xiàn)ALSE,flags)!=OAM_EXIT_OK)return(OAM_PARSEMSG_ERROR); }Int *frame,short 1,則失敗。 *frame,short Voidmonitor(void //PAS_SOFT還提供了對異常的函數(shù)將異常信息放在指針?biāo)赶虻臄?shù)據(jù)域二、ONUOAMOAMOLT發(fā)起,OLT發(fā)送的本地配置ONU;ONUOAMPDULocalInformationTLVRemoteInformationTLVOAMLocalInformationTLVOAMOLT;OLTONUOAM配置信息,則再次OAMONUOLT端的發(fā)現(xiàn)過程;ONU接收到此幀后,OAMPDU:當(dāng)鏈路失效或OAMPDU、LocalInformationTLV、InformationonuOAMshortintoam_discovery_onu(intlocal_pdu,intlocal_mode,intlocal_statble,intOAMPDU的發(fā)送過程。Discovery過程結(jié)束,OAMOAMPDUtransmit過程中需要作,完成OAMPDU的發(fā)送,定時器和計(jì)數(shù)器的設(shè)計(jì)暫定為以通知的方式通知鏈路。10OAMPDU到復(fù)用模塊當(dāng)定時器超時并且這一秒內(nèi)OAM無OAMPDU發(fā)送時則必須直接發(fā)送informationOAMPDU到復(fù)用模塊,其他情況時均返回計(jì)數(shù)器和定時器初始化狀態(tài)。該過程一旦開始就一直運(yùn)行,直到出現(xiàn)鏈路錯誤或者重啟再重新進(jìn)入Discovery過程。voidintintpdu_nps=0;//OAMPDU每秒發(fā)送的最大數(shù)目startpdu_timer;//計(jì)時器開始計(jì)時start voidOAMI.request(DA,SA,oam_service_data_unit,//OAMPDUelseif(pdu_nps>10)gotowait;} //OAMPDUgotoelse(pdu_nps=0)返回初始化狀態(tài)gotowait;}else(pdu_timer<=0)gotowait;voidOAMI.request(DA,SA,oam_service_data_unit,//informationOAMPDU}}解析(Parser)MACMAC客戶5OAMOAMDiscovery過程。在規(guī)定的5秒時間內(nèi),如收到的以太幀為OAMPDU(type=0x8809,解析模塊通過CTL:OAMII服務(wù)原語(OAMI.indication)將數(shù)據(jù)幀送至控制(control)模塊處理,LocalInformationTLVlocal_par_actionparameterFWD,non-OAMPDU經(jīng)由WAIT_FOR_RX狀態(tài)。如果LocalInformationTLV中l(wèi)ocal_par_actionparameter為LB,non-OAMPDU經(jīng)由WAIT_FOR_RX狀態(tài)。數(shù)據(jù),將定時器,使其重新開始定時。而后返回WAIT_FOR_RX狀態(tài)。{Startlocal_lost_lick_timer;//計(jì)時器開始計(jì)時if (local_lost_lick_timer5)&& {OAMI.indication(DA,SA,oam_service_data_unit,frame_check_sequence,//control模塊gotoloop;//返回等待狀態(tài)}elseif(local_lost_lick_timer5)//non-{switchlocal_par_action)//localinformationTLVlocal_par_action{’:case‘LB’OAMI.request;break;//環(huán)回幀case‘DISCARD’:break;//丟棄default}gotoloop;//返回等待狀態(tài)} shortintoam_discovery_onu();//voidMA_DATA.indication(ind_DA,ind_SA,ind_mac_service_data_unit,//MACvoidOAMI.request(DA,SA,oam_service_data_unit,}OAM復(fù)用模塊的實(shí)現(xiàn)在OLT端和ONU端略有不同。在OLT端沒有對回環(huán)幀的處理。在OLT的復(fù)用模塊中,接收到要處理的幀,然后用if語句判斷幀的類型。如果type等于0x8809那么說明這個幀是OAM客戶端,那么通過MAC層發(fā)送到對端。在ONU中,如果判斷出來幀是OAM幀即type等于0x8809,說明這個幀是OAM客戶端或者解析模塊發(fā)送的還要在判斷code,看它是屬于幀還是回環(huán)幀是幀就通過MAC層發(fā)送到對端,是回環(huán)幀通過MAC層發(fā)到對端。如果復(fù)用模塊接收到的幀不是OAMPDU,那么,用if語句判斷l(xiāng)ocal_mux_action的值,是DISCARD的話,在OLT中代表是在初始化回環(huán)測試,要關(guān)閉本地MAC 幀的發(fā)送,在ONU端代表此時接收到OLT的LoopbackControlOAMPDU,發(fā)送MAC幀,要原封不動的轉(zhuǎn)發(fā)解析模塊傳來的Loopack測試針,已完成回環(huán),這時將丟棄該幀;或者local_mux_action的值是FWD,那么直接將該幀通過MAC層發(fā)送到對端。OAMOAMstruct{u_int8ether_dhost[ETHER_ADDR_LEN];/*目的MAC地址*/u_int8ether_shost[ETHER_ADDR_LEN];/*源MAC地址*/u_int16_ttype; /*協(xié)議子類型 /*編碼域MAC幀格式:stuctMAC_hdr{u_int8MAC_leadcode[7/*MAC幀的前導(dǎo)碼*/u_int8startofframedelimiter;/*幀首定界符*/u_int8MAC_DA[8];/*MAC地址*/u_int8MAC_SA[8];*MAC地址*/u_int16_ttype;/*協(xié)議類型*/stuct{u_int8DA[8];/*目的地址*/u_int8SA[8];/*源地址*/u_int16_ttype*協(xié)議類型*/voidoam_multiplexer_onu(int{if{if(OAM.ether_code={ //OAMPDUMAC}if(OAM.ether_code={ //MAC}}{ifsend_frame();MAC}}OLTOAMONU端相同,只是在各模塊函數(shù)的實(shí)現(xiàn)細(xì)節(jié)PASSAVEAPIOAM的設(shè)計(jì)。系統(tǒng)設(shè)計(jì)如下圖所PAS_SOFTOAMFLASHAPIOAM層的功能以及對SNMPEPON的管理主要集中在鏈路管理上,基本配置和網(wǎng)絡(luò)拓?fù)淠K屬于配置管理范疇;和統(tǒng)計(jì)參量模塊完能和故障管理(1)基本配置模塊:它對OLT和多個ONU進(jìn)行配置,包括網(wǎng)絡(luò)初始化參數(shù)(例如周

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論