
AN5516-01设备以太网OAM模块详细设计.doc
65页FH/TRXXSJ/ X.XXX.XXX(XXXXXX)/RAAN5516-01设备以太网OAM模块软件详细设计设备型号:AN5516-01产品代号:项目代号:部 门:烽火通信科技股份有限公司宽带产品部拟 制:2009年 5月 11 日审 核:年 月 日批 准:年 月 日以太网OAM模块软件详细设计(技术开发) FH/TRXXSJ/X.XXX.XXX(XXXXXX)/RA目 录0 版本记录 41 参考资料 42 术语与缩写解释 43 需求概述 54 总体设计 54.1 软件结构 54.2 对外提供接口 64.3 需要外部提供接口 75 主控模块描述 85.1 功能 85.2 相关源文件 85.3 数据结构 85.4 全局变量 115.5 程序逻辑 125.6 主要函数定义 135.7 802.1ag网管配置管理函数 215.8 Y1731网管配置管理函数 255.9 告警相关函数 285.10 802.1ag本地命令行 295.11 Y1731本地命令行 306 CC模块描述 326.1 功能 326.2 相关源文件 326.3 数据结构 326.4 全局变量 336.5 程序逻辑 336.6 主要函数定义 367 LB模块描述 397.1 功能 397.2 相关源文件 397.3 数据结构 407.4 全局变量 407.5 程序逻辑 417.6 主要函数定义 438 LT模块描述 468.1 功能 468.2 相关源文件 468.3 数据结构 468.4 全局变量 478.5 程序逻辑 478.6 主要函数定义 509 OAM帧收发模块描述 549.1 功能 549.2 相关源文件 549.3 数据结构 549.4 全局变量 559.5 程序逻辑 559.6 主要函数定义 5710 定时器模块描述 5910.1 功能 5910.2 相关源文件 5910.3 数据结构 5910.4 全局变量 6010.5 程序逻辑 6010.6 主要函数定义 6011 告警 6212 测试方案 6212.1 测试组网图 6212.2 以太网连续性检查(ETH-CC) 6212.3 以太网环回(ETH-LB) 6312.4 以太网链路跟踪(ETH-LT) 640 版本记录序号版本号生成时间主 要 修 改 记 录作者备注1RA2009-5-11初始化贺超2341 参考资料编号资料名称简介出版单位1以太网运行和维护要求2007信息产业部标准文本中华人民共和国信息产业部2ITU-T Recommendation Y.1731(formerly Y.17ethoam),OAM functions and mechanisms for Ethernet based networks.Y.1731协议文本ITU-T3IEEE P802.1ag/D6.9Draft Standard for Local and Metropolitan Area Networks —Virtual Bridged Local Area Networks—Amendment 5:Connectivity Fault Management.802.1ag协议文本IEEE2 术语与缩写解释缩写、术语解释OAMOperation, Administration and Maintenance 操作,管理,维护MDMaintenance Domain 维护域MAMaintenance Association 维护关联MDLMaintenance Domain Level 维护域等级MEGMaintenance Entity Group 维护实体组MELMaintenance Entity Group Level 维护实体组等级MEPMA/MEG End Point MA/MEG端点MIPMD/MEG Intermediate Point MA/MEG中间点ETH-CCEthernet Continuity Check function 以太网连续性检查ETH-LBEthernet LoopBack function 以太网环回ETH-LTEthernet Link Trace function 以太网链路跟踪CCMContinuity Check Message 连续性检查消息LBMLoopBack Message 环回消息LBRLoopBack Reply 环回响应LTMLink Trace Message 链路跟踪消息LTRLink Trace Reply 链路跟踪响应3 需求概述遵照《以太网运行和维护要求2007》、Y1731和802.1ag标准,在AN5516-01设备的主控盘上,针对每个上联端口实现标准的以太网OAM协议。
具体需求如下:1. 同时支持Y1731和802.1ag标准,其中Y1731支持最新的8.1版本2. 仅实现标准的连续性检测功能、环回功能监视功能、链路跟踪功能,对于Y1731中其他的功能如AIS,LCK,性能监测暂不实现;3. 在每个上联端口上实现DOWN MEP,对于UP MEP和MIP暂不实现,如无特殊说明,本文档中提到的MEP均指DOWN MEP;4. 每个上联端口可以配置多个MEP;5. 每个上联端口可以配置独立的MAC地址;6. 所有OAM帧必须携带VLAN,而且仅支持一层VLAN;4 总体设计4.1 软件结构由于Y1731是对802.1ag的扩展,所有802.1ag定义的功能Y1731中都有定义,虽然在具体的细节上有所差异,但差异部分很小,因此OAM模块对这两种协议将使用统一的数据结构管理OAM模块分为以下几个子模块:主控模块,定时器模块,OAM帧收发模块,CC模块,LB模块和LT模块,每个模块的功能如下:主控模块: 1. 管理OAM协议中定义的对象的数据结构,包括MD,MA,MEP,MIP;2. 提供本地命令行;3. 处理网管模块下发的控制命令;4. 收集CC,LB,LT模块的告警信息,上报给告警模块;5. 对从OAM帧收发模块收到的合法OAM帧以及从定时器模块收到的超时事件进行解析,然后调用CC,LB,LT模块的接口进处理;定时器模块:定时器模块通过看门狗实现,提供相应的创建、删除、开始、停止等接口供CC,LB,LT模块调用;OAM帧收发模块:该模块对收到的OAM帧进行MAC地址、VLAN和OAM头部的合法性检测,丢弃非法的OAM帧,将合法的OAM帧发送到主控模块的队列。
同时该模块还提供OAM消息的发送接口给CC,LB,LT模块调用;CC模块:该模块完成ETH-CC功能,包括CC使能的情况下,定时的发送CCM,并对收到的CCM帧进行处理;LB模块:该模块完成ETH-LB功能,包括使能LB时定时的发送一定数量的LBM消息,并对收到的LBR进行处理,同时LB模块还需要对收到的LBM进行合法性判断,对于合法的LBM应答相应的LBR;LT模块:该模块完成ETH-LT功能,包括使能LT时,发送一个LTM消息,然后对收到的LTR进行处理,同时LT模块还需要对收到的LTM进行合法性判断,对于合法的LTM应答相应的LTR;4.2 对外提供接口4.2.1 OAM模块初始化STATUS oamModuleInit()功能:初始化整个OAM模块,初始化的内容包括:模块版本信息、基础函数库、定时器、队列、OAM帧和事件处理任务、本地命令行、图形网管命令等输入参数:输出参数:返回值:总是返回OK;4.2.2 接收OAM帧STATUS dot1agOamRecv(char * bufPtr,uint32 len,uint16 port,uint32 vlanid)功能:提供给交换驱动模块调用,交换芯片收到OAM帧后,调用该接口将数据送到OAM模块处理;。
输入参数:bufPtr:存放OAM帧的buf指针;len:OAM帧长度;port:接收OAM帧的端口号;vlanid:OAM帧携带的VLAN;输出参数:返回值:返回被调函数OAM_Recv的返回值;4.3 需要外部提供接口4.3.1 OAM帧发送函数STATUS oamSend (uint16 port ,char * bufPtr,uint32 len)功能:向指定的端口发送OAM帧输入参数:Port:物理端口号;bufPtr:数据包的buf;len:数据长度;输出参数:返回值:发送失败,返回ERROR,否则返回OK;4.3.2 获取系统MAC地址STATUS sysMacAddrGet(char * macAddrPtr)功能:获取系统的MAC地址输入参数:输出参数:macAddrPtr:指向6个字节的数组,用于存放系统MAC地址;返回值:获取MAC地址失败,返回ERROR,否则返回OK;4.3.3 上报告警int raiseEv_trap(int alarmId, TRAP_DATA *trapdata)功能:向告警模块上报告警消息输入参数:alarmId:告警ID;trapdata:告警信息;输出参数:返回值:上报告警失败,返回ERROR,否则返回OK;4.3.4 网管命令处理函数注册 RegisterHookFunc(int (*writFunc)(...) , int (*readFunc)(...),int MODULE_ID);功能:注册网管命令处理函数。
输入参数:writFunc:配置命令的处理函数;readFunc:回读命令的处理函数;MODULE_ID:模块ID;输出参数:返回值:注册失败,返回ERROR,否则返回OK;5 主控模块描述5.1 功能主控模块功能如下:1. 管理OAM协议中定义的对象的数据结构,包括MD,MA,MEP,MIP;2. 提供本地命令行;3. 处理网管模块下发的控制命令;4. 收集CC,LB,LT模块的告警信息,上报给告警模块;5. 对从OAM帧收发模块收到的合法OAM帧以及从定时器模块收到的超时事件进行解析,然后调用CC,LB,LT模块的接口进处理;5.2 相关源文件序号文件名称描述1oamCommFun.c基本bit和字符的操作函数2oamCommFun.h自定义数据类型3oamDefs.h协议相关的宏定义4oamMain.cOAM帧和事件处理任务相关的函数5oamMain.h主要数据结构的定义,包括MD,MA,MEP等oam_nm.c对MD,MA,MEP进行设置和读取相关的函数Oam_nm.h设置和读取相关的宏和枚举定。
