实现cfm中高频连续性检测的装置及方法

文档序号:7706679阅读:238来源:国知局
专利名称:实现cfm中高频连续性检测的装置及方法
技术领域
本发明涉及基于IEEE 802. lag标准的以太网运营、管理和维护,特别是 涉及一种实现CFM中高频连续性检测的装置及方法。
背景技术
连续性检测(CC, Continuity Check)功能是CFM中的一个最基本也是最 重要的功能,它为CFM的实现提供了可能。
CC功能实现的思路是当网络环境建立并配置了相应正确的以太网运行、 管理禾口维护(OAM, Operation Administration and Maintains)酉己置之后,在 同一个维护集(MA, Maintenance Associations)中的本地维护集端点(MEP, Maintenance Associations End Point)会向所有其他非本地MEP发送CCM (Continuity Check Message);同时其他非本地MEP也会发出CCM给所有对 端。注意CC功能是单向的,也就是说一个MEP只周期性的发送,不期望得到 回复的。当本地MEP收到远端发送给自己的CCM之后,首先检查该CCM中的信 息是否有效,如果有效再对照本地存储的MEPCCM数据库,如果没有该MEP的 条目就学习CCM中的内容建立一个新的MEP条目;如果有则不做操作。此时一 个双向连接的链路就得到了保证。如果链路中单向或者双向连通性出现了任何 问题都可以提示用户本地MEP与远端哪个MEP出现了连通性丢失。在链路上维 护域中间点(MIP, Maintenance Domain Intermediate Point)通过学习经过 它的CCM来建立一个MIP CCM数据库,这个数据库可以保证在转发表和洪泛都失效(这里的失效是对以太网OAM来说不可用的时候,不一定是转发表或者洪 泛都出现了故障)时以太网OAM帧仍然可以正确的抵达目的地MEP。可以看出 MIP CCM数据库的作用是建立一张通过该MIP可抵达MEP的转发表(前提条件 是MEP发送的CCM经过了该MIP,并且该MIP能够且允许建立MIP CCM数据库)。 基于上述分析,CC功能在周期性发送CCM时最高频率要达到300Hz,这还 是一个MEP发送组播CCM的时候,如果按照满配情况考虑有4094个VLAN, 假设每个VLAN配置10个MEP,每个MEP收发CCM,那么CPU在1秒内将要处 理的CCM帧数量为4094X10X2X300=24, 564, 000个,高频的CC帧在配置复 杂的环境中会让交换机的CPU满载,导致设备重启或者将其他协议模块的帧被

发明内容
本发明所要解决的技术问题是解决CC功能在高频发送CCM时由于CPU负 担过重而难于实现的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种基于FPGA 实现CFM中高频连续性检测的装置,包括CC模块、FPGA模块和接口模块,所 述CC模块用于处理本地MEP通过FPGA模块收发的CCM信息;所述FPGA模块 用于收发高频CCM信息;所述接口模块用于CC模块和FPGA模块之间的互通, 所述接口模块将CC模块发出的CCM信息翻译成FPGA模块可以识别的表项,将 FPGA处理之后的CCM信息翻译成中断或者将CCM信息透传给CC模块进行逻辑 处理。
上述方案中,所述实现高频收发CC帧的FPGA模块具有四种工作状态; 当FPGA模块判断发起CC的本地MEP处于无连接状态时,处于第一工作状态,此状态下FPGA模块向远端MEP发送高频CCM帧,并期待收到远端MEP发 出的CCM帧;
当FPGA模块判断发起CC的本地MEP与远端MEP连接中断时,处于第二工 作状态时,此状态下FPGA模块将其连通位赋O,中断位赋l;
当FPGA模块判断发起CC的本地MEP与远端MEP连通时,处于第三工作状 态时,此状态下FPGA模块将其连通位赋1 ,将中断位赋O;
当FPGA模块判断发起CC的本地MEP去使能CC功能时,处于第四工作状 态,此状态下FPGA模块删除对应表项。
本发明还提供了一种基于FPGA实现CFM中高频连续性检测的方法,包括 以下步骤
步骤401: CC模块使能CC功能,并判断使能的CC功能是高频还是低频; 步骤402:若使能的是高速收发IEEE 802. lag中CCM帧的功能,则通过接
口模块转到FPGA模块处理,即转至步骤601;
步骤403:若使能的是低频CC功能,则进入软件流程,此时根据用户的配
置发送CCM帧,等待收到远端MEP发出的CCM帧;
步骤404:如果收到低频CCM帧,则与本地MEP CCM数据库中的条目比对; 步骤405:若有匹配的条目存在,则保持本地MEP CCM数据库中该条目的
存在;
步骤406:若没有匹配的条目存在,则与本地MEP的CFM配置进行比对; 步骤407:若比对的结果相同则将该CCM携带的信息存储在在本地MEP CCM 数据库中,即新建一个条目与该远端MEP对应;
步骤408:若比对的结果不同则判断是否比该MEP的MD层级高;步骤409:若比该MEP的层级高,则直接转发; 步骤410:若比该MEP的层级低,则丢弃;
其中FPGA模块的处理流程包括以下步骤
步骤601:判断CC模块发出的指令是使能还是去使能CC功能;
步骤602:如果是去使能CC功能,则停止发送高频CCM帧,并将FPGA使 用的表项删除;
步骤603:如果是使能CC功能,则通过接口模块传来的指令和参数建立表 项,并发送高频CCM帧,同时期待接收到远端MEP的CCM帧;
步骤604: FPGA模块接收到远端MEP发出的CCM之后转至步骤605;
步骤605:当FPGA模块收到远端MEP的CCM帧时判断该CCM帧的参数是否 与本地FPGA模块使用的所有表项中的相匹配,如果不匹配,且接收CCM中的 MD层级比本地配置的MD层级低,则将此CCM帧直接丢弃并返回步骤604,继 续等待;若有匹配的表项则转步骤606;
步骤606: FPGA模块将其连通位置1,中断位置O,并将收到的CCM参数 和建立连通性的状态传给接口模块,让其通知CC模块,连接已建立;
步骤607:在连通位为1的情况下,判断是否在3. 5倍配置CCM发送周期 后仍然没有收到匹配表项的CCM帧,如果在3. 5倍周期内,收到1或者2个CCM, 则连通性没有丢失,同时转至步骤606;
步骤608:如果大于等于3. 5倍周期时没有收到匹配表项的CCM帧,则FPGA 模块将其连通位置O,中断位置l,表明本地MEP与远端MEP的连通性丢失, 同时将中断传给接口模块,让其通知CC模块;同时转至步骤604。
在上述方案的基础上,所述CCM帧数据结构中的保留字段第59字节到70字节定义为TxFCf、 RxFCb、 TxFCb,其值O。
使能CC模块时,只将CCM帧数据结构中发送时需要改变的部分传给FPGA, 其他部分固定。
给FPGA发送CCM帧时,将该CCM帧维护域的后7字节和短MA名的后9字 节固定填0,它们分别对应的长度也固定为标准要求的最长长度。
当进行高频CCM时,如果输入的维护域名或短MA名过长则自动截断。 本发明,利用软硬件结合的方式辅助CFM中的CC模块实现高频收、发包, 减轻了 CPU的负担,高效率的实现了 CC功能的高频能力。同时,减少了其他 模块丢包的概率,从而保证了其他模块的可靠性,更好地保证了设备的稳定性。


图1为CCM帧以太网头部数据格式图; 图2为CCM帧其余部分数据格式图; 图3为CC功能的流程图; 图4为FPGA模块工作流程图; 图5为接口模块工作流程图。
具体实施例方式
本发明提供了一种利用FPGA模块实现CFM中高频连续性检测的装置及方 法,利用软硬件结合的方式辅助CFM中的CC模块实现高频收、发包,减轻了 CPU的负担,高效率地实现了 CC功能的高频能力。
基于FPGA模块实现CFM中高频连续性检测的装置,包括CC模块、接口模 块和实现高频收发CCM帧的FPGA模块,其中,CC模块用于处理本地MEP通过 FPGA模块收发的CCM信息;接口模块用于CC模块和FPGA模块之间的互通,接口模块将CC模块发出的CCM信息翻译成FPGA模块可以识别的表项,同时也将 FPGA接收到CCM帧之后的处理将参数和指令传回CC模块;FPGA模块用于实际 执行收发高频CCM帧的功能,同时按要求对CCM帧做基本的判断,并将得到的 参数和指令传回给上层模块。
所述实现高频收发CC帧的FPGA模块具有以下四种工作状态
当FPGA模块判断发起CC的本地MEP处于无连接状态时,处于第一工作状 态,此状态下FPGA模块向远端MEP发送高频CCM帧;
当FPGA模块判断发起CC的本地MEP与远端MEP连接中断时,处于第二工 作状态时,此状态下FPGA模块将其连通位赋O,中断位赋l;
当FPGA模块判断发起CC的本地MEP与远端MEP连通时,处于第三工作状 态时,此状态下FPGA模块将其连通位赋1 ,将中断位赋O;
当FPGA模块判断发起CC的本地MEP去使能CC功能时,处于第四工作状 态,此状态下FPGA模块删除对应表项。
FPGA会在以上描述的4种状态中转换,完成软件所要求的高速收发IEEE 802. lag中CCM帧的功能。所述接口模块的工作流程如下,参见图5,
步骤501: CC模块需要发送高频的CCM帧,CC模块将发送CCM所需要的信
息和指令下发给接口模块;
步骤502:接口模块将下发的信息和指令翻译为FPGA可以读取的表项,让 FPGA去实现发包流程;
步骤503:如FPGA在3. 5倍本地MEP配置的CC发送周期内没有收到正确 的CCM帧,FPGA将其中断位置O,连通位置l,同时将相应的参数和中断信息 传递给接口模块;否则转步骤502;步骤504:接口模块将上述参数和中断信息传给正在运行的CC模块,让 CC模块做出相应判断。
在使用FPGA之后,CC模块与FPGA模块之间使用接口函数进行连接,对FPGA 的操作由CC模块下发指令和参数,通过接口函数翻译为FPGA模块可以识别的 表项,让FPGA去执行。当FPGA遇到需要上报的情况时,也是通过接口函数上 报给CC模块,从而完成高频CCM功能。
下面结合附图具体说明本发明基于FPGA模块实现CFM中高频连续性检测 的方法。
首先,本地的MEP发起CC功能使能指令,根据本地配置的CCM帧发送周
期,来决定CC模块是自己发包或者利用与FPGA模块的接口让FPGA辅助自己
发包,CC功能的总体流程如图3所示,步骤如下
步骤401: CC模块使能CC功能,并判断使能的CC功能是高频还是低频; 步骤402:若使能的是高速收发IEEE 802. lag中CCM帧的功能,则通过接
口模块转到FPGA模块处理,即转至步骤601,实现流程如图4所示;
步骤403:若使能的是低频CC功能,则进入软件流程,此时根据用户的配
置发送CCM帧,等待收到远端MEP发出的CCM帧;
步骤404:如果收到低频CCM帧,则与本地MEPCCM数据库中的条目比对; 步骤405:若有匹配的条目存在,则保持本地MEP CCM数据库中该条目的
存在;
步骤406:若没有匹配的条目存在,则与本地MEP的CFM配置进行比对; 步骤407:若比对的结果相同则将该CCM携带的信息存储在在本地MEP CCM 数据库中,即新建一个条目与该远端MEP对应;步骤408:若比对的结果不同则判断是否比该MEP的MD层级高;
步骤409:若比该MEP的层级高,则直接转发;
步骤410:若比该MEP的层级低,则丢弃。 其中FPGA模块完成以下工作流程,如图4所示
步骤601:判断CC模块发出的指令是使能还是去使能CC功能;
步骤602:如果是去使能CC功能,则停止发送高频CCM帧,并将FPGA使 用的表项删除;
步骤603:如果是使能CC功能,则通过接口模块传来的指令和参数建立表 项,并发送高频CCM帧,同时期待接收到远端MEP的CCM帧;
步骤604: FPGA模块接收到远端MEP发出的CCM之后转至步骤605;
步骤605:当FPGA模块收到远端MEP的CCM帧时判断该CCM帧的参数是否 与本地FPGA模块使用的所有表项中的相匹配,如果不匹配,且接收CCM中的 MD层级比本地配置的MD层级低,则将此CCM帧直接丢弃并返回步骤604,继 续等待;若有匹配的表项则转步骤606;
步骤606: FPGA模块将其连通位置1,中断位置O,并将收到的CCM参数 和建立连通性的状态传给接口模块,让其通知CC模块,连接已建立;
步骤607:在连通位为1的情况下,判断是否在3. 5倍配置CCM发送周期 后仍然没有收到匹配表项的CCM帧,如果在3. 5倍周期内,收到1或者2个CCM, 则连通性没有丢失,同时转至步骤606;
步骤608:如果大于等于3.5倍周期时没有收到匹配表项的CCM帧,则则 FPGA模块将其连通位置0,中断位置1,表明本地MEP与远端MEP的连通性丢 失,同时将中断传给接口模块,让其通知CC模块;同时转至步骤604。从以上的描述可知,在使用FPGA模块辅助实现CC功能时,FPGA模块设置 了两个标志位连通位和中断位用于标示两个状态之间变化的标识。
上述过程中,CCM帧的帧格式分为两部分,第一部分是以太网头部,该以 太网头部是所有以太网OAM帧都要携带的,只不过内容可能略有不同,但格式 一样。如图1所示。按照标准要求,以太网头部中目的MAC地址字段填写第一 类组播MAC地址,该MAC地址是携带了MD层级信息的组播MAC地址。以太网 头部其他字段根据配置MEP所继承的属性填写。第二部分是以太网0AM中CCM 部分,如图2所示。在本发明中,根据实际情况并比较了 IEEE 802. lag和Y. 1731 的CCM帧格式之后,在实现CCM帧时以IEEE 802. lag定义的帧格式为蓝本, 在不影响互通性的情况下做了非常细微的调整,该调整是在数据结构中定义 CCM帧时将原IEEE 802. lag中保留字段第59字节到70字节定义为TxFCf 、 RxFCb、 TxFCb三种如图3中竖线部分所示,其值仍然为0。这样在需要时可以 将CC功能扩展到按Y. 1731中所述测试性能。
由于FPGA使用的逻辑相对简单,且为了减轻FPGA的负担,并平衡FPGA 和CPU之间的工作而达到发送速率和逻辑处理要求,CPU只将CCM发送时可变 的部分传给FPGA,其他部分固定(如图2中斜线部分所示)。标准CCM中留给 维护域名和短MA名的字节很多, 一般情况很难用到这么多字节,在给FPGA发 送时将维护域的后7字节和短MA名的后9字节固定填0,它们分别对应的长度 也固定为标准要求的最长长度(需要说明的是标准对维护域名和短MA名都有 一些其他的规定,可以在数据结构中定义时使用C语言技巧就可以实现的)。 当使用CCM高频时,如果输入的维护域名或短MA名过长则自动截断。经过以 上平衡之后FPGA在传送CCM时需要变换部分只有183位,占整个CCM (CCM帧共600位)的30. 5%。
在使用了 FPGA之后CC功能的处理流程有些许变化,但这些变化并不影响 CC功能在标准中定义的状态机的流程,因为这些FPGA在接收到CCM帧后会首 先与下发的FPGA表项比对,发现有不同之处时才上传信息,所以它提供的是 CCM中参数和状态的改变,通过与FPGA之间协商好的接口模块可以很方便的使 CC功能处理高频的CCM帧,从而实现高频CC功能。
本发明不局限于上述最佳实施方式,任何人应该得知在本发明的启示下作 出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保 护范围之内。
权利要求
1、实现CFM中高频连续性检测的装置,其特征在于包括CC模块,用于处理本地MEP通过FPGA模块收发的CCM信息;FPGA模块,用于收发高频CCM信息;接口模块,用于CC模块和FPGA模块之间的互通,所述接口模块将CC模块发出的CCM信息翻译成FPGA模块可以识别的表项,将FPGA处理之后的CCM信息翻译成中断或者将CCM信息透传给CC模块进行逻辑处理。
2、 如权利要求1所述的实现CFM中高频连续性检测的装置,其特征在于 所述实现高频收发CC帧的FPGA模块具有四种工作状态;当FPGA模块判断发起CC的本地MEP处于无连接状态时,处于第一工作状 态,此状态下FPGA模块向远端MEP发送高频CCM帧,并期待收到远端MEP发 出的CCM帧;当FPGA模块判断发起CC的本地MEP与远端MEP连接中断时,处于第二工 作状态时,此状态下FPGA模块将其连通位赋O,中断位赋l;当FPGA模块判断发起CC的本地MEP与远端MEP连通时,处于第三工作状 态时,此状态下FPGA模块将其连通位赋1,将中断位赋O;当FPGA模块判断发起CC的本地MEP去使能CC功能时,处于第四工作状 态,此状态下FPGA模块删除对应表项。
3、 实现CFM中高频连续性检测的方法,其特征在于包括以下步骤 步骤401: CC模块使能CC功能,并判断使能的CC功能是高频还是低频; 步骤402:若使能的是高速收发IEEE 802. lag中CCM帧的功能,则通过接口模块转到FPGA模块处理,即转至步骤601;步骤403:若使能的是低频CC功能,则进入软件流程,此时根据用户的配置发送CCM帧,等待收到远端MEP发出的CCM帧;步骤404:如果收到低频CCM帧,则与本地MEPCCM数据库中的条目比对; 步骤405:若有匹配的条目存在,则保持本地MEP CCM数据库中该条目的存在;步骤406:若没有匹配的条目存在,则与本地MEP的CFM配置进行比对; 步骤407:若比对的结果相同则将该CCM携带的信息存储在在本地MEP CCM 数据库中,即新建一个条目与该远端MEP对应;步骤408:若比对的结果不同则判断是否比该MEP的MD层级高;步骤409:若比该MEP的层级高,则直接转发; 步骤410:若比该MEP的层级低,则丢弃;其中FPGA模块的处理流程包括以下步骤步骤601:判断CC模块发出的指令是使能还是去使能CC功能;步骤602:如果是去使能CC功能,则停止发送高频CCM帧,并将FPGA使 用的表项删除;步骤603:如果是使能CC功能,则通过接口模块传来的指令和参数建立表 项,并发送高频CCM帧,同时期待接收到远端MEP的CCM帧;步骤604: FPGA模块接收到远端MEP发出的CCM之后转至步骤605;步骤605:当FPGA模块收到远端MEP的CCM帧时判断该CCM帧的参数是否 与本地FPGA模块使用的所有表项中的相匹配,如果不匹配,且接收CCM中的 MD层级比本地配置的MD层级低,则将此CCM帧直接丢弃并返回步骤604,继 续等待;若有匹配的表项则转步骤606;步骤606: FPGA模块将其连通位置1 ,中断位置O,并将收到的CCM参数 和建立连通性的状态传给接口模块,让其通知CC模块,连接己建立;步骤607:在连通位为1的情况下,判断是否在3. 5倍配置CCM发送周期 后仍然没有收到匹配表项的CCM帧,如果在3. 5倍周期内,收到1或者2个CCM, 则连通性没有丢失,同时转至步骤606;步骤608:如果大于等于3. 5倍周期时没有收到匹配表项的CCM帧,则FPGA 模块将其连通位置0,中断位置1,表明本地MEP与远端MEP的连通性丢失, 同时将中断传给接口模块,让其通知CC模块;同时转至步骤604。
4、 如权利要求3所述的实现CFM中高频连续性检测的方法,其特征在于 所述CCM帧数据结构中的保留字段第59字节到70字节定义为TxFCf 、 RxFCb、 TxFCb,其值O。
5、 如权利要求3所述的实现CFM中高频连续性检测的方法,其特征在于 使能CC模块时,只将CCM帧数据结构中发送时需要改变的部分传给FPGA,其 他部分固定。
6、 如权利要求3所述的实现CFM中高频连续性检测的方法,其特征在于 给FPGA发送CCM帧时,将该CCM帧维护域的后7字节和短MA名的后9字节固 定填0,它们分别对应的长度也固定为标准要求的最长长度。
7、 如权利要求3所述的实现CFM中高频连续性检测的方法,其特征在于 当进行高频CCM时,如果输入的维护域名或短MA名过长则自动截断。
全文摘要
本发明涉及基于IEEE 802.1ag标准的以太网运营、管理和维护,是一种实现CFM中高频连续性检测的装置及方法。该装置包括CC模块、接口模块和实现高频收发CCM帧的FPGA模块,其中CC模块用于处理本地MEP通过FPGA模块收发的CCM信息;接口模块用于CC模块和FPGA模块之间的互通,将CC模块发出的CCM信息翻译成FPGA模块可以识别的表项,并将FPGA处理之后的CCM信息翻译成中断或者将CCM信息透传给CC模块进行逻辑处理。本发明利用软硬件结合的方式辅助CFM中的CC模块实现高频收、发包,减轻了CPU的负担,高效率的实现了CC功能的高频能力。同时,减少了其他模块丢包的概率,从而保证了其他模块的可靠性,更好地保证了设备的稳定性。
文档编号H04L12/26GK101499938SQ20091013190
公开日2009年8月5日 申请日期2009年3月27日 优先权日2009年3月27日
发明者张瀚之, 宁 徐, 莉 李 申请人:武汉烽火网络有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1