专利名称:一种oam报文定时处理系统及方法
技术领域:
本发明涉及网络通信技术,尤其涉及一种OAM报文定时处理系统及方法。
背景技术:
随着电信级以太网技术的推出,电信级OAM ( Operation 、 Administration、 Maintenance操作、管理和维护)越来越重要。目前存在着众多的OAM协议, 如CFM (IEEE P802.1ag, Connectivity Fault Management) ,TMPLS OAM等都需 要定时发送OAM报文,定时检测是否收到对端发送的OAM报文。发送周期要 求最小3.3ms,在存在多个保护实例时让CPU周期发送和检测报文,CPU负荷 很大,甚至是不可行的。
为了解决上述问题,本发明提出一种结合网络处理器来实现各种OAM报文 定时处理的方法。
发明内容
本发明提供了 一种通过CPU结合网络处理器的OAM报文定时处理系统及 方法,来实现各种OAM纟艮文的定时发送和定时一会测。
本发明公开了一种OAM报文定时处理系统,用于发送、接收、检测OAM报 文;包括建立OAM报文的发送队列表和检测队列表的CPU模块,存放OAM报文 以及所述发送队列表和检测队列表的存储器模块,以及分别定时发送和检测OAM 报文的网络处理器模块;
所述CPU模块向所述网络处理器模块写入OAM模板报文;所述网络处理器模 块根据所述OAM模板报文中的地址信息读取OAM报文发送或者检测,并且根据检 测结果向所述CPU模块发送告警信号。
在本发明的实施例中,还包括如下从属技术特征
所述网络处理器模块具有流量整形功能,设定流量整形参数使得每秒种在回环口 Interface A上发出的流量为N*M*1000/Tmin,其中N为所述发送队列表或 者检测队列表的长度,M为模板报文的字节数,Tmin为所述发送或者检测队列 表中的最小报文发送周期,流量单位为byte/s;所述网络处理器模块将所述OAM 模板报文发往回环口 Interface A,所述OAM模板报文通过内部环回通道后再进 入所述网络处理器模块时再进行发送或者检测。
同的回环次数;所述模板报文中具有回环计数值Loop—count字段,用于所述发 送队列表和检测对列表中的每个等待处理的报文的回环计数;当所述等待处理的 报文的所述回环计数达到所述回环次数时,所述网络处理器模块进行发送或者检 测所述等待处理的报文。
在本发明的一个实施例中,所述网络处理器模块根据所述OAM模板报文中的
队列指示符和模板报文地址信息查找所述发送队列表中需要发送的报文信息及
其发送周期,并根据所述回环计数值Loop—Count判断是否需要发送,需要发送
则复制一份模板报文,并在其基础上根据发送信息修改报文后发送到相应出端 口 。
在本发明的另 一个实施例中,所述网络处理器模块根据所述OAM模板报文中 的队列指示符和模板报文地址信息查找所述检测队列表得到报文计数信息及其 检测周期,并根据所述回环计数值Loop—Count判断是否需要检测,需要检测则 根据各种OAM标准看是否需要告警,需要告警则复制一份模板报文,并在其基础 上根据报文计数信息填写对应的告警类型向所述CPU模块发送告警信息。
本发明公开了一种OAM报文定时处理方法,用于发送、接收、检测OAM报 文;包括如下步骤
步骤A、 CPU模块在存储器模块中建立需要处理的OAM报文、发送队列 表和检测对列表;
步骤B、所述CPU模块向网络处理器模块写入发送和检测OAM模板报文; 步骤C、所述网络处理器模块根据所述OAM模板报文中的地址信息从所述存储器模块中读取需要处理的OAM报文写入模板,同时将模板报文中的地址指
向下一道等待处理的OAM报文;
步骤D、所述网络处理器定时发送或者检测所述需要处理的OAM报文; 循环执行步骤C和步骤D,直至所述发送队列表和检测对列表为空。 在本发明的实施例中,所述步骤D进一步包括如下步骤 步骤Dll、所述网络处理器模块预先设定流量整形参数使得每秒钟在回环
口 InterfaceA上发出的流量为N*M*1000/Tmin,其中N为所述发送队列表或者
检测队列表的长度,M为模板报文的字节数,Tmin为所述发送或者检测队列表
中的最小报文发送周期,流量单位为byte/s;
步骤D12、所述网络处理器模块将所述OAM模板报文发往回环口 Interface
A,所述OAM模板报文通过内部环回通道后再进入所述网络处理器模块时再进
行发送或者^r测。
在本发明的另一个实施例中,所述发送队列表和检测对列表中每个不同的 发送或者检测周期对应不同的回环次数;所述步骤D进一步包括如下步骤
步骤D21、所述网络处理器模块在所述发送队列表和检测对列表中的每个 等待处理的报文在每一次回环时进行回环计数;
步骤D22、所述网络处理器模块判断每一个所述等待处理的报文的所述回 环计数是否达到所述回环次数,是则发送或者检测所述等待处理的报文。
在本发明的一个实施例中,所述步骤C包括所述网络处理器模块根据所 述OAM模板报文中的队列指示符和模板报文地址信息查找到所述发送队列表中 需要发送的报文信息,并添加到复制的一份模板报文中再发送到相应出端口 。
在本发明的另一个实施例中,所述步骤C包括所述网络处理器模块根据 所述OAM模板报文中的队列指示符和模板报文地址信息查找所述检测队列表得 到需要检测的报文信息,再根据各种OAM标准看是否需要告警,需要告警则复 制一份模板报文,并在其基础上根据报文计数信息填写对应的告警类型向所述 CPU模块发送告警信息。
本发明结合CPU模块和网络处理器模块来实现各种OAM报文的定时发送
7和定时检测,使得电信级OAM的最小发送周期成为可能。本发明还利用网络处 理器模块的流量整形(shaper)功能实现定时发包和检测。本发明通过在模板报 文中增加队列回环计数值进行分频处理,实现一个队列中多周期的OAM报文混 合发送。
图1为OAM报文定时处理系统框图。 图2为OAM报文模板格式示意图。 图3为OAM报文发送队列表示意图。 图4为OAM报文检测队列表示意图。 图5为定时发送/定时检测处理流程。
具体实施例方式
下面结合附图和具体实施方式
对本发明的技术方案进行进一步的描述。
如图1所示是一种OAM报文定时处理系统的实施例,包括发送和接收OAM 报文的本端系统和对端系统;本端系统包括为网络处理器提供参数配置的CPU 模块,网络处理器模块还向CPU发送告警信号;以及与网络处理器相连接的存 储器模块;其中CPU负责建立OAM报文发送/检测队列表,以及发送/检测OAM 报文模板及相关参数的写入存储器,CPU通过网络处理器向存储器写表;存储器 用于存放OAM报文队列表;网络处理器用于对OAM报文进行定时发送/检测处理。
如图2所示为OAM报文模板格式示意图,图中的模版报文标识符是用于在 网络处理器内部指示,这是一个OAM发送/检测模版报文。图中的队列标识符用 于在标识发送/检测时决定在哪个队列中查找报文。 一般每个队列对应一个周期 值,如802. lag协议^L定CFM净艮文发送周期分为3. 3ms, 10ms, 100ms, ls, 10s, lmin, 10min 7个等级(大多数OAM协议的发送周期也是这7个等级),就需要7 个队列。图中的地址是队列内部具体表项的地址。图中的公用字段是指一些各 种OAM报文公用的字段,如本设备的mac地址等。放在此处方便定时发送时OAM报文的构造,也节省队列表的字段。图中的预留字段用于在发送OAM报文时在
此处填入报文内容。
如图3所示为OAM报文发送队列表示意图,图中的报文类型是用于说明OAM 报文类型。常见的OAM报文有CFM, TMPLSOAM, MPLS OAM, Ether-OAM, APS等。 图中的报文内容是指该OAM报文自有字段。图中的其他信息或信息索引是非报 文字段,但在发送时需要制定的如出端口信息,下一跳信息(或索引),这可以 根据具体OAM报文转发的需要进行设置。
如图4所示为OAM报文检测队列表示意图,图中的净艮文类型用于说明OAM 报文类型。常见的O旭报文有CFM, TMPLSOAM, MPLS OAM, Ether-OAM, APS等。 图中的计数信息为OAM报文自有字段,如常见需要记录在检测周期内收到多少 个对端发送过来的OAM报文,收到多少个错误OAM报文(时间不匹配,ID不匹 配等)等。图中的其他信息索引是指非报文字段,但在检测时需要进一步查找 的信息,根据具体OAM的需要进行设置。
如图5所示是一种使用CPU结合网络处理器进行定时发送和定时检测OAM 报文的流程图,具体说明如下
步骤1、 CPU建立发送/检测OAM报文队列表。
其中发送队列表包括报文类型,报文内容(参数),其他信息或信息索引等 字段(参见图3);检测队列表包括报文类型,计数信息,其他信息或信息索引 等字段(参见图4)。
报文类型用于说明OAM报文的类型,常见的OAM报文有CFM、
TMPLSOAM 、 MPLSOAM、 Ether國OAM、 APS等;
报文内容即OAM报文的自有字段,记录OAM报文的详细内容; 计数信息为OAM报文自有字段,如常见需要记录在检测周期内收到多少个
对端发送过来的OAM报文,收到多少个错误OAM报文(时间不匹配,ID不
匹配等)等;
其他信息索引并不是报文字段,但在发送时需要制定的如出端口信息,下一跳信息(或索引),或在检测时需要进一步查找的信息,根据具体的OAM报
文转发的需要进行设置。
OAM报文队列表保存在存储器中,每一个需要发送/检测的OAM报文都存 储在队列表中。
步骤2、 CPU向网络处理器写入OAM模板报文,如图5,模板报文包括模 板报文标识符、队列标识符、地址、公用字段、预留等字段。
模板报文标识符用于在网络处理器内部指示,说明这是一个OAM发送模板 报文或是一个OAM检测模板报文;
队列标识符用于标识发送/检测时在哪个队列中查找报文, 一般每个队列对 应一个周期值,如802.1ag协议身见定CFM报文发送周期分为3.3ms, 10ms, 100 ms, ls, 10 s, lmin, 10min7个等级(大多数OAM协议的发送周期也是这7 个等级),就需要7个队列;
地址字段用于记录队列内部具体表项的地址;
公用字段用于记录一些各种OAM报文公用的字段,如本设备的mac地址 等,放在此处方便定时发送时OAM报文的构造,也节省队列表的字段;
预留字段用于发送OAM报文时在此处填入报文内容。
步骤3、网络处理器收到模板报文后,根据模板报文上的标识符识别该模板 报文是发送模板报文还是检测模板报文。发送模板报文转到步骤4,检测模板报 文转到步骤5。
步骤4、网络处理器根据队列指示符和模板报文地址信息查找发送队列表得 到需要发送的报文信息和发送周期。根据发送周期和模板报文中的回环计数值 Loop_Count判断是否需要发送,不需要发送则直接跳到步骤6。需要发送则复 制一份模板报文,并在其基础上根据发送信息修改报文并发送到相应出端口 , 跳到步骤6。
步骤5,根据队列指示符和模板报文地址信息查找检测队列表得到报文计数信息以及检测周期。根据检测周期和模板报文中的回环计数值Loop_Count判断 是否需要检测,不需要发送则直接跳到步骤6。需要检测则根据各种OAM标准看 是否需要告警,需要告警则复制一份模板报文,并在其基础上根据报文计数信 息填写对应的告警类型进行告警。跳到步骤6。
步骤6,根据模板报文中的地址信息判断是否到达队列尾部,没有到达队列 尾部,模板报文地址信息加l,转向步骤8;到达尾部将模板报文地址信息清O, 跳到步骤7。
步骤7,将模板报文中各个分频计数值Loop_count力口 1,并判断是否到达 分频值,到达则将对应的Loop—count清0。
步骤8,将模板报文发往回环口,回环口的流量整形参数已经计算好,使得 时间t内通过回环口字节数为N个模板报文的字节数。其中t为最小0AM发送/ 检测周期,N为队列长度。
本发明所采用的技术方案CPU负责各种OAM报文的参数配置,将报文
同时CPU负责写入2份模板报文到网络处理器, 一份为定时发送OAM报 文的模板报文, 一份为定时检测的触发报文。只要OAM报文队列中存在有效的 报文,且OAM功能使能,这2个模板报文就一直存储在网络处理器内部。
当定时时间到,触发模板报文进入网络处理器引擎进行发送或检测处理。 有些网络处理器自身没有定时器,无法实现定时发包、检测功能。针对这 种情况,本发明给出了一种利用流量整形(shaper)来实现定时器的方法。 具体的发明内容包括以下几个方面 (一 )CPU处理
1、 CPU建立OAM队列表,将队列表保存在存储器中,每一个需要发送/ 检测的OAM报文,存储在队列表中。
2、 周期不同的OAM报文放在不同的队列中,也可以只放在一个队列中。 当周期不同的OAM报文放在同一个队列中时,需要队列的每个元素中加入周期信息,并且模板报文中要加入回环计数值Loop—count字段。
3 、添加一个需要发送/检测的OAM报文时,只需要将新建立的OAM报文 类型及内容写到发送/检测队列表中即可,删除OAM报文时在队列中再删除即可。
4 、 CPU向网络处理器写入模板报文,并根据需要在模板报文中添加回环计 凄W直Loop—count字)史。
(二) 网络处理器定时发送OAM报文
1、 网络处理器根据发送模板报文中携带的地址信息在OAM报文队列表中 查找OAM报文信息,并复制一份模板报文,在复制的模板报文的基础上构造 OAM报文,发送到对应的出端口。出端口信息可以写入队列表中,也可以从其 他表中获取,视具体OAM报文的转发流程设计而定。
2、 修改复制前的模板报文中的地址信息,作为下一个OAM报文发送时的 查找4定值。
3 、各个队列的定时时间设置发包间隔t =周期T /队列长度N。 当队列中全部OAM报文的发送/检测周期相同时,周期T即为OAM报文 队列表中任一 OAM报文的发送/检测周期;当OAM报文队列表中存在不同发 送/检测周期的OAM报文时,周期T即为OAM报文队列表中最小的OAM发送
/检测周期。
(三) 网络处理器定时检测OAM报文
1、 网络处理器根据定时检测模板报文中的地址信息,查找检测队列表。根 据检测队列表中报文类型,和表中记录的对端发送的OAM报文数目或错误报文 记录情况决定是否需要告警(与具体的OAM协议标准相关)。
2、 需要告警时复制一份模板报文,并在模板报文基础上加入告警信息,上 送CPU, CPU识别告警类型并进行相应处理。(四)利用流量整形(shaper)实现定时发包和;险测。有些网络处理器自身没有定时器,无法实现定时发包、检测功能,若网络处理器具有利用流量整形(shaper)功能,则可以用下述方法来实现定时发包和检测。
步骤1 、在网络处理器的回环口上(以下称为Interface A爽流量整形(shaper)
功能,根据本设备需要支持的最大OAM实例N、模板报文长度Mbyte、 OAM
报文最小发包间隔Tms,通过计算确定shaper参数,使得每秒钟从Interface A
上发出的流量为N*M* 1000/T byte/s。
步骤2、 OAM功能使能时,CPU向网络处理器发送一个OAM模板报文。步骤3 、网络处理器将模板报文发往回环口 Interface A,并将模板报文中的
地址信息加1,如果地址已经到达队列尾部,则将地址赋成起始地址0。
步骤4、发送到回环口 Interface A的冲莫板^艮文,经过shaper的流量整形后,
会延时一^殳时间通过内部环回通道继续进入网络处理器入口处,继续步骤3。步骤5、 OAM功能去使能时,网络处理器将模板报文丢弃即可。根据上述方法,在OAM功能去使能前,模板报文一直在网络处理器内部环
回,每环回一次的周期为T/Nms,遍历完整个队列的时间为Tms,也就达到了
每个OAM实例最小可以每Tms发送一个报文的目的。
(五)多定时器的实现发送周期不同的OAM报文可以放在发包间隔不同的队列中,实际使用中如果队列数目受到限制,可以通过在模板报文中增加队列回环计数值字段Loop—Count_M进行分频处理,同时在队列的元素中写入发送周期信息。具体方法如下
步骤l、每当模板报文到达队列尾部时,将所有的Loop—Count字段+1,同时判断是否需要清O。
例如需要在一个队列中同时支持发送周期为3.3ms, 10ms, 100ms的OAM报文,队列长度为N,则设置队列发包间隔为3.3/N ms。模板报文中设置Loop_Count_l Oms和Loop_Count_l OOms字4爻。每当模板报文到达队列尾部时,Loop—Count—10ms和Loop—Count—100ms分另'J力口 1, :fe口果LoopCountl0ms <直为2(10ms/3.33ms -1 )则将Loop_Count_10ms清0,如果Loop_Count_100ms值为29(100ms/3.33ms -1 )则将Loop—Count—10ms清0。
步骤2、 模板报文回环到队列中的第N个元素时,取出发送周期信息T。如T=10ms,则判断Loop—Count_l0ms是否为2,若为2则需要发送该元素的OAM报文,否则不发送,继续环回。
这样就可以实现一个队列中多周期的OAM报文混合发送了 。
1权利要求
1. 一种OAM报文定时处理系统,用于发送、接收、检测OAM报文;其特征在于包括建立OAM报文的发送队列表和检测队列表的CPU模块,存放OAM报文以及所述发送队列表和检测队列表的存储器模块,以及分别定时发送和检测OAM报文的网络处理器模块;所述CPU模块向所述网络处理器模块写入OAM模板报文;所述网络处理器模块根据所述OAM模板报文中的地址信息读取OAM报文发送或者检测,并且根据检测结果向所述CPU模块发送告警信号。
2. 根据权利要求1所述的系统,其特征在于所述网络处理器模块具有流量整形功能,设定流量整形参数使得每秒种在回 环口 Interface A上发出的流量为N*M*1000/Tmin,其中N为所述发送队列表或 者检测队列表的长度,M为模板报文的字节数,Tmin为所述发送或者检测队列 表中的最小报文发送周期,流量单位为byte/s;所述网络处理器模块将所述OAM模板报文发往回环口 Interface A,所述 OAM模板报文通过内部环回通道后再进入所述网络处理器模块时再进行发送或 者检测。
3. 根据权利要求1所述的系统,其特征在于 回环次数;所述模板报文中具有回环计数值Loop—count字段,用于所述发送队列表和 检测对列表中的每个等待处理的报文的回环计数;当所述等待处理的报文的所述回环计数达到所述回环次数时,所述网络处理 器模块进行发送或者检测所述等待处理的报文。
4. 根据权利要求3所述的系统,其特征在于所述网络处理器模块根据所述OAM模板报文中的队列指示符和模板报文地址信息查找所述发送队列表中需要发送的报文信息及其发送周期,并根据所述回环计数值Lo叩—Count判断是否需要发送,需要发送则复制一份模板报文,并在 其基础上根据发送信息修改报文后发送到相应出端口 。
5. 根据权利要求3所述的系统,其特征在于所述网络处理器模块根据所述0AM模板冲艮文中的队列指示符和模板报文地 址信息查找所述检测队列表得到报文计数信息及其检测周期,并根据所述回环计 数值Lo叩一Count判断是否需要检测,需要检测则根据各种OAM标准看是否需要 告警,需要告警则复制一份模板报文,并在其基础上根据报文计数信息填写对应 的告警类型向所述CPU模块发送告警信息。
6. —种OAM报文定时处理方法,用于发送、接收和检测OAM报文;其特 征在于,包括如下步骤步骤A、 CPU模块在存储器模块中建立需要处理的OAM报文、发送队列 表和检测对列表;步骤B、所述CPU模块向网络处理器模块写入发送和检测OAM模板报文; 步骤C、所述网络处理器模块根据所述OAM模板报文中的地址信息从所述存储器模块中读取需要处理的OAM报文写入模板,同时将模板报文中的地址指向下一道等待处理的OAM净艮文;步骤D、所述网络处理器定时发送或者检测所述需要处理的OAM报文; 循环执行步骤C和步骤D,直至所述发送队列表和检测对列表为空。
7. 根据权利要求6所述的方法,其特征在于,所述步骤D进一步包括如下 步骤步骤Dll、所述网络处理器模块预先设定流量整形参数使得每秒钟在回环口 Interface A上发出的流量为N*M*1000/Tmin,其中N为所述发送队列表或者检 测队列表的长度,M为模板报文的字节数,Tmin为所述发送或者4全测队列表中 的最小报文发送周期,流量单位为byte/s;步骤D12、所述网络处理器模块将所述OAM模板报文发往回环口 InterfaceA ,所述OAM模板报文通过内部环回通道后再进入所述网络处理器模块时再进 行发送或者检测。
8. 根据权利要求6所述的方法,其特征在于,所述发送队列表和检测对列 括如下步骤步骤D21 、所述网络处理器模块在所述发送队列表和检测对列表中的每个等 待处理的报文在每一次回环时进行回环计数;步骤D22、所述网络处理器模块判断每一个所述等待处理的报文的所述回环 计数是否达到所述回环次数,是则发送或者检测所述等待处理的报文。
9. 根据权利要求7或者8所述的系统,其特征在于所述步骤C包括所述网络处理器模块根据所述OAM模板报文中的队列指示 符和模板报文地址信息查找到所述发送队列表中需要发送的报文信息,并添加到 复制的一份模板报文中再发送到相应出端口 。
10. 根据权利要求7或者8所述的系统,其特征在于所述步骤C包括所述网络处理器模块根据所述0AM模板报文中的队列指示 符和模板报文地址信息查找所述检测队列表得到需要检测的报文信息,再根据各 种OAM标准看是否需要告警,需要告警则复制一份模板报文,并在其基础上根据 报文计数信息填写对应的告警类型向所述CPU模块发送告警信息。
全文摘要
本发明公开了一种OAM报文定时处理系统及方法,用于发送、接收和检测OAM报文;包括建立OAM报文的发送队列表和检测队列表的CPU模块,存放OAM报文以及所述发送队列表和检测队列表的存储器模块,以及分别定时发送和检测OAM报文的网络处理器模块;所述CPU模块向所述网络处理器模块写入OAM模板报文;所述网络处理器模块根据所述OAM模板报文中的地址信息读取OAM报文发送或者检测,并且根据检测结果向所述CPU模块发送告警信号。本发明由网络处理器完成报文的定时发送/检测,从而减轻CPU的负载,利用网络处理器模块的流量整形功能实现定时发包和检测,并支持多种OAM报文多种周期的混合发送/检测。
文档编号H04L12/24GK101478421SQ20081021827
公开日2009年7月8日 申请日期2008年12月5日 优先权日2008年12月5日
发明者张宝亚, 张胜友 申请人:中兴通讯股份有限公司