




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OAMONUOLT的过程:OLTOAMInformationOAMPDU(包括本地信息、远端信息和自定义信息)ONUOAM连接。以太网OAMDiscoveryOAMOLT发现远端设备的OAM实体ONU,并与之建立稳定的过程。在这个阶段中,OLT通过交互InformationOAMPDU向ONU通报各自的以太网OAM配置信息及本地节点支持的以太网OAM能力信息。ONU收到对链路检测及链路的配置都通过检查时,以太网OAM协议将在链路层开始正常工作。以太网OAM连接建立后,OLT与ONU之间通过发送InformationOAMPDU5秒钟内没有收到对端OAM实体的InformationOAMPDU,则认为连接超时,需要重新建立OAM连接。一、功能:定义_OAM_HOAM一个普通的定义和申明模块文件1"../PON/PON_software_expo.h"2、定义了模块OAM:#define 二、OAM1shortintOAM_initializevoidOAMOAM_EXIT_OK。2shortintOAM_close(void)OAMOAM_EXIT_OK。3、调用函数boolOAM_is_oam_frame(constvoid*frame,constshortint *oam_code)unsigned code=-constunsigned char*function_log_header_s="FrameisnotOAMduetoitsoam_codeNULL,那么*oam_code=- R)),输出printf("inputparameterserror\n"),返回FALSE。检查即将成为OAM 有效帧的帧的大小,判断if PON_OAM_FRAME_MINIMUM_SIZE)||(size>PON_OAM_FRAME_UM_SIZE)),再判断ifOUT_FLAG_ENABLE_WITHOUT_OLTprintf("%sillegalsize(%d)\n",function_log_header_s,size)FALSEOAM帧的大小不正确。定义oam_frame=frame;序言和起始定界符不用检查,硬件不包含它们。需要检查的是与OAM_DESTINATION_MAC_ADDRESS相同的目的地址:执行if PARE(&oam_frame[OAM_DESTINATION_ADDRESS_BEGINNING_CE],OAM_DESTINATION_MAC_ADDRESS)!=0),再执行OUT_FLAG_ENABLE_WITHOUT_OLT,如果是则输出printf("%sIllegaldestinationMACaddress\n",function_log_header_s)FALSE,OAM的目的帧地址不合法。没有检查源MAC地址,检查OAM帧的类型:首先获得type的值type=PE_END_CE],判断如果 的值不为 OAM_TYPE,执行 OUT_FLAG_ENABLE_WITHOUT_OLT,若为真输出printf("%sframetype(%d)whichisnotOAMtype\n",function_log_header_s,type),返回FALSE,说明此帧的类型不是OAM的类型。检查帧的子类型是不是EFM(EthernetintheFirst )OAM帧的子类型:判断如果 CE]不为OAM_SUB_TYPE_EFM,那么执行ifOUT_FLAG_ENABLE_WITHOUT_OLT,为真则输出printf("%sframesub-type(%d)whichisnotEFMOAM\n",function_log_header_s,oam_frame[OAM_SUBTYPE_ CE])说明这个子类型的帧不是EFMOAM的。判断这个OAM 版本是否是这个阶段唯一支持的版本:执行if CE]!=OAM_EFM_VERSION),若为真继续执行ifOUT_FLAG_ENABLE_WITHOUT_OLT,为真输出printf("%sframeOAMversion(%d)whichnotsupported\n",function_log_header_s,oam_frame[OAM_VERSION_ 说明此OAM版本不予支持。检查OAM的帧是否是有效帧,及满足(code>=0andcode<=OAM_CODE_LAST_CODE):执行if(oam_frame[OAM_CODE_ CE]>OAM_CODE_LAST_CODE),为真则判断是否已 为 (%d)\n",function_log_header_s,oam_frame[OAM_CODE_CE]),返回FALSE,说明不满足OAM有效帧。没有检查数据,有可能作为新标准的一部分是全新的代码。codeOAM_code_t)oam_frame[OAM_CODE_CE];判断if(oam_code!=NULL)*oam_code=code;则返回TRUEOAM帧。4shortintParse_oam_frame_flagsconstvoid*frame,constshortintsize,constboolcheck_validity,OAM_1_2_flags_tflags),定义#defineFILL_FLAG(flag_name,flag_mask){flags[flag_name]=((flag_field&flag_mask)>0);}和constunsigned*oam_frame;unsigned flag_field;if(check_validity)(!OAM_is_oam_frame(frame,size,NULL/*oam_code*/)),为真返回(OAM_PARAMETER_ERROR);oam_frame=frame和flag_field=((oam_frame[OAM_FLAGS_CE_BEGINNING_CE])<<BITS_IN_BYTE) OAM_ZERO_FLAGS_STRUCT(flags),申明关于OAMFLAG的一些列函数。最后返回5、调用函数voidOAM_print_flags(const flags定义#definePRINT_OAM_FLAG_CODE(nameif(flagsnameENABLE){printf#name"flag,;foundboolfoundFALSEifflagsNULL)returnOAM_FLAG_CODE的有OAMflags");6、调用函数shortintOAM_parse_information_frame(constvoid*frame,constshortint mon_frame_data_t mon_data,*local_tlv_tuple,OAM_1_2_tlv_tuple_t*remote_tlv_tuple,bool*passave_originated定义constunsignedchar constunsignedchar 执行if(Parse_oam_frame(frame, mon_data->oam_flags,&oam_code,&oam_data)!=OAM_EXIT_OK),为真返回OAM_PARSE_MSG_ERROR。执行if(oam_code!= PON_PAS_LOG_FLAG_ERROR)),为真输出printf("ErrorOAMcode(%d)\n",oam_code);返 CE]获frame_dataTLV解析:执行if(Parse_tlv_data(frame_data,"local",local_tlv_tuple)!=OAM_EXIT_OK),为真返回(OAM_PARSE_MSG_ERROR);确定Passave设备是否产生这个信息帧,AM路径:如果代码被激活,那么当用ONU相关的发现序列时,这个代码将会出错:passave_originated ATE_ENTERPRISE_NUMBER_PASSAVE_VALUE);TLV解析:ifParse_tlv_data(frame_data+OAM_INFORMATION_TLV_TOTAL_SIZE,"remote",remote_tlv_tuple)!=OAM_EXIT_OK)return(OAM_PARSE_MSG_ERROR)为真,OAM_PARSE_MSG_ERROR。7、调用函数staticshortintParse_tlv_data(constunsignedchar *tlv_beginning_ce,const *tlv_tuple)定义unsignedlongoampdu_configuration,upper_extension,判断tlv_beginning_ce是否为NULLERROR_DEBUG如果ifR)),为真,输出printf("Error%sTLVbeginningce\n",tlv_name),返回的情况下,执行if PON_AS_LOG_FLAG_ERROR)) TLV_TYPE_VALUE)为真,在定义了ERROR_DEBUG的情况下,执行ifR)),为真则输出 TLV (%d)\n", , 如 NGTH_VALUE)为真,在定义了ERROR_DEBUG 的情况下,执行if ,为真输出 tlv_tuple8、调用函数shortintOAM_fill_olt_local_tlv_tuple(OAM_1_2_tlv_tuple_t *olt_tlv_tuple),如果olt_tlv_tuple得值为NULL,那么在定义了ERROR_DEBUG的情况下,执行ifR)),为真输出printf("Error,NULLinputparameter\n"),返回OAM_PARAMETER_ERROR定义构建OLT的tlv_tuple的相关参数,返回OAM_EXIT_OK。9、调用函数shortintOAM_construct_information_frame(constmac_address_tsource_address,constOAM_1_2_tlv_tuple_t *local_tlv_tuple,void*frame,shortint *frame_size,shortintoam_information_data_size=0;shortintunsignedlongoampdu_configuration=0x0,enterprise_identifier=0x0,=首先数据缓冲区: 执行 首先数据缓冲区:=TLVoam_information_data中的有关数据。TLVoam_information_data10shortintOAM_parse_event_notification_frame(constvoid*frame,constshort mon_data,bool定义constunsignedchar 执行if(Parse_oam_frame(frame,frame_size, mon_data->oam_flags,&oam_code,&oam_data)OAM_EXIT_OKoam_frameif那么在定义了ERROR_DEBUG的情况下输出printf("ErrorOAMcode(%d)\n",oam_code), ENT_TLV_CE]!=OAM_EVENT_NOTIFICATION_TLV_NOT_EXIST_VALUE);返回11、调用函数shortintOAM_construct_loopback_control_frame(constmac_address_tsource_address,constunsignedshortloopback_time,void*frame,shortint*frame_size),ifdef_PON_ONU_ASIC_1_0_,那么执行#defineLOOPBACK_TIME0xffff构建回环控制帧:注意,回环定时器参数被忽略,LOOPBACK_TIME如果定义了_PON_ONU_ASIC_1_0_,则执行USHORT_2_UBUFFER(LOOPBACK_TIME,loopback_data如果定义了_PON_ONU_ASIC_1_1_USHORT_2_UBUFFER(loopback_time,loopback_data)ERROR_DEBUG,则执行if(PON_log_active_olt_state(PON_OLT_ID_NOT_AVAILABLE)),为真输出printf("Error,unsupportedONUversiondefinition\n")OAM_NOT_IMPLEMENTEDConstruct_oam_frameframe_size));判断,用语句if判断函数Construct_variable_descr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 动物行为训练技术试题及答案
- 消防设施操作员科目测试试题及答案细节
- 黄金卷06(重庆专用)-【赢在中考·黄金预测卷】2025年中考
- 2023二年级数学上册 九 除法第2课时 长颈鹿与小鸟(2)配套教学实录 北师大版
- 计算机二级考试相关试题及答案
- 2025年碳纤维正交三向织物项目合作计划书
- 消防设施实务考场指导试题及答案
- 大数据与消费者心理行为的关联研究
- 2024年五年级语文上册 第四单元 12 古诗三首教学实录 新人教版
- 创意盆栽DIY盆栽制作教程分享
- JT-T-795-2011事故汽车修复技术规范
- (高清版)TDT 1063-2021 国土空间规划城市体检评估规程
- 个人借条电子版模板
- 柳公权玄秘塔碑(高清打印版字帖)
- 智能家居控制系统设计开题报告
- 冬天的艺术-完整版PPT
- 中国传统七夕节牛郎织女浪漫汇 课件(共31张ppt) 传统文化
- 部编版八年级历史(下)全册教案
- 泌尿外科手术配合-ppt课件
- YSJ 007-1990 有色金属选矿厂 试验室、化验室及技术检查站工艺设计标准(试行)(附条文说明)
- 丽声英语百科分级读物第一级Legs课件
评论
0/150
提交评论