OAM概要设计Word下载.docx
- 文档编号:19854209
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:85
- 大小:1.04MB
OAM概要设计Word下载.docx
《OAM概要设计Word下载.docx》由会员分享,可在线阅读,更多相关《OAM概要设计Word下载.docx(85页珍藏版)》请在冰豆网上搜索。
LBM:
环回消息;
LCK:
锁定信号功能;
LM:
丢失性测量;
LMI:
本地管理接口;
LMM:
丢失性测量消息
LMR:
丢失性测量响应;
LOC:
连续性丢失;
LT:
链路跟踪;
LTM:
链路跟踪消息;
LTR:
链路跟踪响应;
MA:
维护集;
MAID:
维护集标识;
MD:
维护域;
ME:
维护实体;
MEP:
维护集端点;
MEPID:
维护集端点标识;
MCC:
维护通信通道;
MHF:
MIP半功能;
MIB:
管理信息库;
MIP:
维护中间点;
MP:
维护点;
OAM:
运营、管理、维护;
OUI:
组织唯一标识符;
PDU:
协议数据单元;
PHY:
以太网物理层实体;
PRBS:
Pseudorandombitsequence伪随即比特序列;
RDI:
随机缺陷指示;
SA:
源MAC地址;
STP:
生成树协议;
TC:
流量调节;
TFP:
终结流点;
TLV:
类型、长度和值;
TST:
测试协议数据单元;
TTL:
生存时间;
UNI:
用户网络接口;
UNI-C:
用户侧UNI;
UNI-N:
网络侧UNI;
VID:
VLANidentifier;
VSP:
设备制造商专用OAM功能。
1.4.参考资料
编号
资料名称
简介
出版单位
1
GB2005H19,以太网运行、管理和维护(OAM)技术要求(送审稿)。
GB2005H19标准文本
中华人民共和国信息产业部
2
ITU-TRecommendationY.1731(formerlyY.17ethoam),OAMfunctionsandmechanismsforEthernetbasednetworks.
Y.1731协议文本
ITU-T
3
ITU-TG.8021/Y.1341CharacteristicsofEthernettransportnetworkequipmentfunctionalblocks.
G.8021协议文本
4
ITU-TG.8010ETH层架构
G.8010协议文本
5
IEEEP802.1ag/D6.9DraftStandardforLocalandMetropolitanAreaNetworks—VirtualBridgedLocalAreaNetworks—Amendment5:
ConnectivityFaultManagement.
802.1ag协议文本
IEEE
6
TechnicalSpecificationMEFx.0,ServiceOAMPerformanceMonitoringImplementationAgreement,Draft0.1-September18,2007.
MEF16E-LMI协议文本
MEF
2.任务概述
2.1.目标
遵照GB2005H19和802.1ag标准,实现OAM协议。
能够实现协议标准的连续性检测功能、环回功能监视功能、链路跟踪功能、性能监控功能、告警指示功能、OAMMIB变量恢复功能和OAM发现功能,通过主流测试仪表(Testcenter、IXIA)的一致性测试。
2.2.需求概述
需要生成GB2005H19和802.1ag定义的OAM的功能;
通过最基本的连续性检测功能、环回功能监视功能、链路跟踪功能、性能监控功能、告警指示功能,与网管、保护倒换等其他外部需求联动,通过提供的外部接口提供判决条件,组合实现更多功能。
2.3.条件与限制
该OAM模块的设计中维护域的分层使用IEEE802.1ag的分法,即0-2为客户,3、4为供应商,5-7为运营商。
本OAM功能适用于使用网络管理系统和运营支持系统来管理的ETH层环境。
同时需要ITU-TG.8010中对以太网的描述作为ETH层的结构基础。
3.总体设计
3.1.总体结构和模块外部设计
3.1.1.总体结构设计
黄色部分代表外部对本模块的输入或者本模块对外的输出。
灰色表示本模块所要完成的功能。
由于定时器在本模块中的特殊地位,它会与本模块中各个组成部分发生联系。
本模块为单任务模块,并处于控制平面,从数据平面获得数据。
整个数据流程为:
1.从HAL(硬件适配层,hardwareadaptationlayer)收到OAM类型的数据包,首先进行解析;
对应不同的OpCode,将数据包送给不同的功能模块进行处理;
此时功能模块可能会调用主程序(主程序会循检网管行为的触发事件、对管理对象进行操作包括各级管理对象的添加删除等)和定时器(调用定时器,重置定时器等操作),完成以上操作之后,将处理后的结果传给分发模块;
该模块将构造好的数据包传给interfacemanagement或者HAL发出。
2.主程序因为会循检网管的触发行为,那么数据流程为:
网管发出触发行为,该行为直接导致功能模块具体功能函数被调用,功能模块完成具体功能后,将结果输出给分发模块,该模块将构造好的数据包传给interfacemanagement或者HAL发出。
通过以上过程之后,一个完整的OAM数据流程完成。
3.1.2.模块概要设计
3.1.2.1.主程序模块
主程序模块主要执行的功能包括:
1.OAM模块的内存空间分配;
2.循检网管的触发事件;
3.对管理对象进行操作。
3.1.2.2.功能模块
该模块包括5个子模块,它们分别完成:
CC、FN、LT、LB、LCK、RDI等功能。
具体实现各个定义的功能。
(1.可能要增加ETH-test功能模块,相应的要增加TST帧。
2..应该要增加LM功能模块,用以实现Y1731定义的丢失性测量功能)
3.1.2.3.分发模块
将功能模块处理的结果构造成相应的CCM、FNG、LTM、LTR、LBM、LBR等种类的消息,并发送出去。
3.1.2.4.解析模块
将从HAL接收到的数据帧进行解析,对应操作码,将相应的数据帧发送给不同的功能模块。
3.2.功能分配
表明各项功能与程序结构的关系
各项功能中有五项基本功能在程序结构中以独立的模块化形式存在,OAMMIB变量恢复功能和OAM发现功能分别需要通过与网管和五项基本功能组合来实现。
4.接口设计
4.1.外部接口
4.1.1.OAM运行状态控制
详见第6节,对各个管理对象的管理即为对OAM运行的控制。
4.1.2.OAM网管参数的设置与读取
每个能读取的参数都有一个读取函数供网管使用;
每个能设置的参数也都有一个设置函数供网管使用。
能够触发OAM发生变化的网管操作包括:
Ø
维护端点创建;
维护集级别配置;
各个功能模块的使能;
各个功能模块消息的优先级设置;
各个功能模块参数设置;
各个功能模块的禁用;
4.1.3.其它模块提供给本软件调用的接口
4.1.3.1.OS相关的函数
(1)semMCreate/semTake/semGive
这3个函数是vxworks操作系统提供的用于信号量创建、获取、释放的函数,其函数原型以及使用说明请参见vxworks说明文档;
(2)malloc、free、memset、memcpy、memcmp、strlen、strcpy
这是C语言提供的内存分配、内存释放、内存赋值、内存复制、内存比较、取字符串长度、字符串复制函数,关于这些函数的使用说明请参见C语言的库说明文档
4.1.3.2.OSAL提供的函数
(1)TmrCreateTimerList、TmrStartTimer、TmrStopTimer、TmrGetNextExpiredTimer
这是OSAL模块提供的定时器队列创建、启动定时器、停止定时器、从定时器中获取一个超时定时器并将该定时器节点从超时列表中删除的函数,关于这些函数的使用说明,请参见OSAL中的说明文档。
(2)tTMO_SLL_NODE、tTMO_SLL这是OSAL模块提供的链表的创建及其他操作函数。
(3)BufAllocate、BufAllocateLinear、BufRelease这是OSAL模块提供的关于Buffer的分配与释放的相关函数
4.2.内部接口
4.2.1.OAM初始化
建立一个OAM开关,在接口初始化之前初始化OAM
4.2.2.MEPprocessEqualCCM()函数
只要在MEP的MDlevel接收到CCM,函数MEPprocessEqualCCM()使用MEP连续性检测接受者状态机。
函数MEPprocessEqualCCM()要处理的CCM内容在CCMequalPDU中。
4.2.3.MEPprocessLowCCM()函数
函数MEPprocessLowCCM()要处理的CCM内容在CCMlowPDU中。
4.2.4.ProcessLBM()
当接收到一个LBM时,该函数使用MP环回响应者状态机。
ProcessLBM()会处理LBMPDU。
4.2.5.xmitLBM()
该函数使用ProcessLBM()以发送一个LBR。
xmitLBM()从LBM获得信息构造一个LBR,放入LBMPDU中,并使用一个M_UNITDATA.request发送到ActiveSAP。
4.2.6.函数ProcessLBR()
只要有一个LBR被接收到,ProcessLBR()使用MEP环回发起者接收状态机。
ProcessLBR()处理在LBRPDU中的LBR。
如果source_address的I/Gbit显示为一个组地址或者destination_address不与接收MP的MAC地址匹配,那么接收到的LBR将被丢弃。
ProcessLBR()确认接收到的LBR并决定是否丢弃(如果LBR已损坏)。
ProcessLBR()对接收到的LBR和LBM执行逆向bit-by-bit的比较,看是否环回处理标志符匹配,但不比较OpCode字段;
如果它们不匹配,则增加一个管理对象。
如果LBR没有被丢弃,并且LBIactive为true,LBR的环回处理标志符字段会和expectedLBRtransID相比较。
如果比较执行,且两个值相等,则expectedLBRtransID和正确接收的LBRs(详见6.6.1.3:
w)数加1。
如果比较执行,且两个值不等,则将接收到的环回处理标志符字段值拷入expectedLBRtransID,然后正确接收的LBRs数加1(详见6.6.1.3:
x)。
4.2.7.函数xmitFaultAlarm()
该函数使用故障通知发生者状态机。
发送一个故障告警详见6.6.7。
MEP的标志符和fngDefect变量(5.1.11)说明了故障告警的原因,并通过故障告警PDU发送出去。
4.2.8.函数xmitLTM()
只要发送链路跟踪消息管理操作被调用,函数xmitLTM()就被访问。
它在ActiveSAP使用M_UNITDATA.request构造并发送一个LTM。
4.2.9.函数ProcessLTR()
只要一个LTR被接收,函数ProcessLTR()使用MEPLTR接收者状态机。
4.2.10.函数ProcessLtm()
当一个LTM被接收到,使用LTM接收者状态机。
处理LTM,决定是否让ForwardLTM()函数转发LTM,并决定是否让enqueLTR()不用等待而发送一个LTR。
4.2.11.函数clearPendingLTRs()
清除在MP中未处理的LTRs队列,并重置nPendingLTRs为0。
4.2.12.函数enqueLTR()
由xmitOldestLTR()函数,构造和不排队等待的一个单一LTR,稍后发送。
4.2.13.函数xmitOldestLTR()
如果仅nPendingLTRs非零,从队列中跳出一个单一LTR并发送,然后将nPendingLTRs减1。
5.数据结构设计
5.1.结构体定义及说明
5.1.1.以太网头部
typedefstructEthernretHead
{
u_chardst_MAC[6];
u_charscr_MAC[6];
u_intVlanFlag;
u_intVlanValue;
u_intEthernetType;
}ETH_HEAD;
5.1.2.以太网OAM头部
typedefstructEthernetOAMHead
#ifHOST==OSIX_BIG_BEGIN
u_charver:
5;
u_charMAlevel:
3;
#else
#endif
u_charOpCode;
u_charFlag;
u_charTLVvalue;
}ETHOAM_HEAD;
5.1.3.TLV详细定义
5.1.3.1.数据TLV格式
typedefstructEthernetOAM_DataTLV
u_charTLVType;
u_intTLVLength;
u_charDataStyle;
/*该值应GB要求可以忽略,其长度任意*/
}EthOAM_DataTLV;
下图所示为Y.1731中定义的TLV类型值。
在ENDTLV中,类型域等于0,并且不使用长度域和值域。
5.1.3.2.测试TLV格式
typedefstructEthernetOAM_TestTLV
u_charTLVType/*默认值为32*/;
intTLVLength;
u_charstyleType;
u_charTestStyle[1479];
/*用于装入测试数据*/
}EthOAM_TestTLV;
样本类型:
表示测试样本类型,取值有:
●0x00‘不带CRC-32的Null信号’
●0x01‘带CRC-32的Null信号’
●0x02‘不带CRC-32的PRBS2-31-1’
●0x03‘带CRC-32的PRBS2-31-1’
●0x04-0xff保留,用于将来的标准化
5.1.3.3.本地存储的TLV值结构体
typedefstructEthernetOAMTLV
u_charTLVoffset;
/*存储TLV的偏移量*/
u_charHeadLength;
EthOAMTLV*NextTLV;
/*用于存储期望的下一个TLV的地址*/
}EthOAMTLV;
5.1.4.处于CCM中的MA(MEG)ID(名称对应见附录)结构体
typedefstructEthernetOAMMA
u_charreserved;
u_charMAIDFormat;
u_charMAIDLength;
u_charICC[5];
/*用于ITU运营商编码*/
u_charUMC[5];
/*唯一的MA标志符编码*//*ICC和UMC合起来组成了MA标识符*/
u_charnoting[29];
/*未用,全部为零*/
}ETHOAM_MADATA;
5.1.5.MEP结构体
typedefstructEthernetOAMMEP
tTMO_SLL_NODEnode;
u_charMALevel;
/*就是GB中所说的MEL*/
u_charMEPID;
u_charMAID;
u_charMEPMAC[6];
BOOLMEPactive;
/*告诉管理员MEP的状态,确认MEP的功能是否正常,true表示MEP功能正常。
该变量被当作一个管理对象使用*/
BOOLenableRmepDefect;
/*显示服务实例通过MEP的MA监控帧,是否允许帧通过桥端口;
同时这种监控要基于生成树协议和VLAN拓扑管理。
详见结构体后该变量说明列表*/
BOOLsomeRMEPCCMdefect;
/*说明远端MEP状态机的总的状态,true说明在最低级远端MEP状态机没有接收到正确地CCMs,false说明所有远端MEP状态机都接收到正确的CCMs,该变量是一个可读管理对象*/
BOOLsomeMACstatusDefect;
/*说明是否有一个或者多个远端MEP报错(报告有故障存在),这种报错是通过远端MEP的端口状态TLV或者接口状态TLV来实现的。
true说明不是一些远端MEP报错,它的接口没有处于isUp状态;
就是所有的远端MEP报错,它们的端口状态TLV信息中不包含psUp。
False则反之。
这两种情况就导致了需要两种条件来判决,它们分别是:
1.如果两种情况都出现,则(rMEPlastPortState!
=psUp&
&
rMEPlastPortState!
=psNoportStateTLV);
2.如果出现其中的一种,则(rMEPlastPortState!
=isUp&
rMEPlastInterfaceStatus!
=isNointerfaceStatusTLV),该变量是一个可读的管理对象*/
BOOLsomeRDIdefect;
/*用以说明远端MEP的健康状况,true说明有一个最低级远端MEP状态机接收到正确的CCMs,false说明没有一个远端MEP状态机接收到正确的CCMs,该变量是一个可读管理对象*/
BOOLMAdefectIndication;
/*说明MEP的MA的运行状态,true说明在MEP的MA中有一个最低级远端MEP配置错误;
false说明功能正常,或者MEP的活动周期小于超时间隔。
该变量的取值决定于:
如下变量有一个或多个为true:
someRDIdefect、someRMEPCCMdefect、someMACstatusDdefect、xconCCMdefect;
和变量的优先级(如下表),变量的优先级要大于等于lowestAlarmPri的优先级。
详细说明见结构体定义后列表说明*/
BOOLallRMEPsDead;
/*说明该MEP没有接收到一个远端MEP的CCMs。
取值由allRMEPsDead和rMEPCCMdefect的逻辑与决定*/
u_inthighestDefectPri;
/*说明缺陷在变量highestDefect中指定的优先级,见结构体后该变量说明列表*/
u_intlowestAlarmPri;
/*说明最低缺陷优先级能触发的故障告警。
这个变量是一个管理对象*/
u_intMEPhighestDefect;
/*其值取枚举类型highestDefect中的一个*/
void*pParam;
/*该指针的作用是:
插入不同功能模块的结构体于此,方便对象处理*/
ETHOAM_MEPInfo*nextMEP;
/*用于指向下一个MEP信息结构体*/
}ETHOAM_MEPInfo;
变量说明:
缺陷
优先级
变量
highestDefect
highestDefectPri
重要性
xconCCMdefect
DefXconCCM
最重要
errorCCMdefect
DefErrorCCM
someRMEPCCMdefect
DefRemoteCCM
someMACstatusDefect
DefMACstatus
someRDIdefect
DefRDICCM
最低
无
端口状态
桥端口在主VID的设置
端口状态TLV
enableRmepDefect
Disabled,blocked,listening,broken,DiscardingorLearing
psBlocked
false
Forwarding
No
Yes
psUp
True
inthighestDefectPri变量说明:
5.1.6.远端MEP结构体
typedefstructEthernetRemoteMEP
u_charrMALevel;
u_charrMEPID;
u_charrMAID;
u_charrMEPmacAddress[6];
/*一个远端MEP的MEPCCM数据库中每个条目的一个字段,包含从远端MEP接收到的last-receivedCCM中的source_address。
该变量被当作一个可读管理对象*/
BOOLrMEPCCMdefect;
/*报告远端MEP的状态,当最后时刻(3.25*CCIinterval)也没有收到从远端MEP发出的CCM时,值设为true*/
BOOLrMEPlastRDI;
/*从last-recrivedCCM中获得RDI标签值,该变量被当作一个管理对象使用*/
u_intrMEPlastPortState;
u_intrMEPlastInterfaceStatus;
BOOLrCCMreceived;
/*它通过MEPprocessEqualCCM()来设为true,此时表示在CCM间隔字段含有一个非零值的CCM被接收到。
通过远端MEP状态机来设为false。
*/
intrCCMsequenceErrors;
/*表示从所有远端MEPs收到的非顺序CCMs的总数。
该变量被当作一个可读管理对象。
BOOLerrorCCMreceived;
/*如果一个损坏CCM被接收到,则通过函数MEPprocessEqualCCM()设为true。
通过远端MEP错误状态机清除,重置为false。
BOOLerrorCCMdefect;
/*不论时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OAM 概要 设计