基于fpga生成多协议错误管理报文的方法及系统的制作方法

文档序号:7795504阅读:111来源:国知局
基于fpga生成多协议错误管理报文的方法及系统的制作方法
【专利摘要】本发明提供一种基于FPGA生成多协议FM报文的方法,所述方法包括:分别在多个本地维护实体端点中设置各个所述本地维护实体端点要发送的错误管理报文相关信息;得到某种报文类型的发送命令后执行:根据所述报文类型对多个本地维护实体端点轮询处理:确定所述本地维护实体端点的报文协议类型;得到所述报文协议类型相关信息;获取所述协议类型下所述报文类型相关信息;根据所述报文协议类型相关信息和至少一组所述报文类型相关字段信息生成对应数量的错误管理报文并输出所述错误管理报文。所述方法能够在一片FPGA中实现ETH、ITU和IETF三种协议下CCM,LCK,AIS报文的发送工作,有效提高了产品的兼容性和竞争力。
【专利说明】基于FPGA生成多协议错误管理报文的方法及系统
【技术领域】
[0001]本发明涉及一种计算机网络领域,特别是涉及一种基于FPGA生成多协议错误管理报文的方法及系统。
【背景技术】
[0002]LMEPCLocal Maintenance Entity Group End Point,本地维护实体端点),用于网络的检测维护。FM (Fault Management,错误管理)报文是一种在本地维护实体端点中使用的报文。通常,FM报文包括CCM (Continuity Check Message,连续性检查消息)报文,AIS(Alarm Indication Signal,告警指不信号)报文,LCK (Lock,锁定信号)报文三种。其中,AIS报文实现告警抑制功能,用来减少故障告警的上报数量。LCK报文实现锁定信号功能。CCM报文用来检测MEP (维护实体端点)之间的连通状态。连通失败可能由设备故障或配置错误造成。
[0003]在IETF (Internet Engineering Task Force,互联网工程任务组)协议中,LCK 报文被称为 LI (Lock Instruction)报文;CCM 报文有两种:BFD (Bidirectional ForwardingDetection)报文和LSP (Label Switched Paths)报文。在不同的协议中,相应的FM报文格式也有所不同。在相同的协议中,不同FM报文的roWProtocol Data Unit,协议数据单元)的格式不同,其他部分基本相同。
[0004]现场可编程门阵列FPGA (Field Programmable Gate Array)是美国 Xilinx 公司于1984年首先开发的一种通用型用户可编程器件。FPGA既具有门阵列器件的高集成度和通用性,又有可编程逻辑器件用户可编程的灵活性。FPGA的结构灵活,其逻辑单元、可编程内部连线和1/0单元都可以由用户编程,可以实现任何逻辑功能,满足各种设计需求。其速度快,功耗低,通用性强,特别适用于复杂系统的设计。使用FPGA还可以实现动态配置、在线系统重构(可以在系统运行的不同时刻,按需要改变电路的功能,使系统具备多种空间相关或时间相关的任务)及硬件软化、软件硬化等功能。
[0005]由于每种协议的每种报文的格式和长度都不一致,而在有关项目中又有需要发送不同协议类型的FM报文,因此,基于FPGA实现多本地维护实体端点(LMEP)中多协议错误管理报文的生成就成为了需要解决的问题。

【发明内容】

[0006]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于FPGA生成多协议错误管理报文的方法及装置,用于解决现有技术中需要在一个FPGA中实现多个本地维护实体端点多协议报文的生成的问题。
[0007]为实现上述目的及其他相关目的,本发明提供一种基于FPGA生成多协议错误管理报文的方法,所述方法包括:分别在多个本地维护实体端点中设置各个所述本地维护实体端点要发送的错误管理报文相关信息,所述错误管理报文相关信息包括唯一确定的报文协议类型、所述报文协议类型相关信息,以及多种报文类型相关信息,每种所述报文类型相关信息包括至少一组报文类型相关字段信息,一组所述报文类型相关字段信息用于生成一个所述报文类型的报文;得到某种报文类型的发送命令后执行:根据所述报文类型对多个本地维护实体端点轮询处理;对每个所述本地维护实体端点进行处理的过程包括:确定所述本地维护实体端点的报文协议类型;得到所述报文协议类型相关信息;获取所述协议类型下所述报文类型相关信息;根据所述报文协议类型相关信息和至少一组所述报文类型相关字段信息生成对应数量的错误管理报文并输出所述错误管理报文。
[0008]优选地,所述方法包括对所述发送命令的处理,用以保证每个所述发送命令有足够的执行时间完成。
[0009]优选地,所述方法包括修改所述本地维护实体端点中的错误管理报文相关信息。
[0010]优选地,所述错误管理报文相关信息包括所述报文类型使能信息,所述方法还包括从所述本地维护实体端点中获取所述报文类型的使能信息,并根据所述使能信息判断是否生成所述错误管理报文。
[0011 ] 优选地,所述方法包括将所述错误管理报文输出到缓存发送。
[0012]优选地,所述报文类型包括连续性检查消息报文,锁定信号报文,告警指示信号报文。
[0013]优选地,所述协议类型包括以太网协议,国际电信联盟协议,互联网工程任务组协议。
[0014]优选地,所述本地维护实体端点的错误管理报文相关信息包括用于生成一组连续性检查消息报文的相应信息,用于生成一组锁定信号报文的相应信息,用于生成八组告警指示信号报文的相应信息。
[0015]本发明还提供一种基于FPGA生成多协议错误管理报文的系统,所述系统包括本地维护实体端点模块,命令控制模块,报文组帧模块;所述本地维护实体端点模块包括多个本地维护实体端点,每个本地维护实体端点包括所述本地维护实体端点要发送的错误管理报文相关信息,所述错误管理报文相关信息包括唯一确定的报文协议类型及相关信息,多种报文类型相关信息,每种所述报文类型相关信息包括至少一组所述报文类型相关字段信息,一组所述报文类型相关字段信息用于生成一个所述报文类型的报文;所述命令控制模块与所述本地维护实体端点模块以及报文组帧模块相连,用于得到某种报文类型的发送命令,根据所述报文类型的发送命令对所述本地维护实体端点模块的多个本地维护实体端点轮询:确定是否生成错误管理报文,如果生成,则将生成信息发送给所述报文组帧模块;所述报文组帧模块与所述命令控制模块以及所述本地维护实体端点模块相连,根据得到的所述生成信息获取所述本地维护实体端点中所述报文协议类型相关信息以及至少一组所述报文类型相关字段信息生成对应数量的错误管理报文并输出。
[0016]优选地,所述系统还包括本地维护实体端点修改模块,与所述本地维护实体端点模块相连,用于设置或修改所述本地维护实体端点模块的多个所述本地维护实体端点中的所述错误管理报文相关信息。
[0017]优选地,所述系统还包括缓存输出模块,所述缓存输出模块与报文组帧模块相连,接收所述报文组帧模块输出的所述错误管理报文,并缓存输出。
[0018]如上所述,本发明的基于FPGA生成多协议错误管理报文的方法及系统,具有以下有益效果:在一片FPGA中实现ETH (以太网协议)、ITU (国际电信联盟协议)和IETF (互联网工程任务组协议)三种协议下CCM,LCK, AIS报文的发送工作,有效提高了产品的兼容性和竞争力。
【专利附图】

【附图说明】
[0019]图1显示为本发明的基于FPGA生成多协议错误管理报文的系统的模块示意图。
[0020]图2显示为本发明的基于FPGA生成多协议错误管理报文的方法流程示意图。
[0021]元件标号说明
[0022]I基于FPGA生成多协议FM报文的系统
[0023]11命令控制模块
[0024]12本地维护实体端点模块
[0025]13报文组帧模块
[0026]14本地维护实体端点修改模块
[0027]15缓存发送模块
[0028]SI ~S9 步骤
【具体实施方式】
[0029]以下通过特定的`具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0030]需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0031]本发明提供一种基于FPGA生成多协议错误管理报文的方法,所述方法至少包括:分别在多个本地维护实体端点中设置各个所述本地维护实体端点要发送的错误管理报文相关信息,所述错误管理报文相关信息包括唯一确定的报文协议类型、所述报文协议类型相关信息,以及多种报文类型相关信息;每种所述报文类型相关信息包括至少一组报文类型相关字段信息;一组所述报文类型相关字段信息用于生成一个所述报文类型的报文;得到发送某种报文类型的命令后执行:根据所述报文类型对多个本地维护实体端点轮询处理:确定所述本地维护实体端点的报文协议类型;得到所述报文协议类型相关信息;获取所述协议类型下所述报文类型相关信息;根据所述报文协议类型相关信息和至少一组所述报文类型相关字段信息生成对应数量的错误管理报文并输出所述错误管理报文。
[0032]在本实施例中,PFGA中包含了 2048个本地维护实体端点,每个本地维护实体端点中都包含一个本地维护实体端点表格来存储本地维护实体端点所要发送的错误管理报文(FM报文)相关信息,所述错误管理报文相关信息包括以下字段:协议类型字段,协议类型相关信息,报文类型使能信息,报文类型相关信息;
[0033]协议类型字段,所述协议类型包括ETH,ITU, IETF ;协议类型相关的字段,包括该错误管理报文相关信息中的协议类型对应的数据报文头中相应的各个字段信息,如ETH报文包括源地址,目的地址,类型/长度等。报文类型字段,包括CCM报文,LCK报文,AIS报文三种类型,这三种类型的报文都属于FM报文(错误管理报文)。其中,IETF协议的CCM类型又分为BFD报文和LSP报文,IETF协议的LCK报文被称作LI报文。不同协议下的相同报文类型字段对应的相关信息并不相同,相同协议下不同报文类型字段对应的相关信息也并不相同。具体的参看协议中的规定=ETH所有的FM报文遵循的协议为ITU-T Y.1731 ;ITU所有FM报文遵循的协议为:ITU-T G.8113.1 ;IETF的BFD报文遵循的协议为:RFC5880 ;IETF的LSP报文遵循的协议为:RFC4379 ;IETF的AIS报文遵循的协议为:RFC6427 ;IETF的LI报文遵循的协议为:RFC6435。所述报文类型相关信息通常为roWProtocol Data Unit,协议数据单元)字段的内容,在协议中PDU字段通常也称作数据字段。BFD报文和LSP报文还包括Label字段的内容。
[0034]所述报文类型相关信息可以包括多组信息,每组信息对应着一个相应报文的rou(Protocol Data Unit,协议数据单元)字段,即数据字段中相应的内容,这样,一个本地维护实体端点的本地维护实体端点表中的内容可以包括某种报文的多组信息,可以生成多个这种报文。在本实施例中,一个本地维护实体端点中的内容可以包括用于生成一组CCM报文的相应信息,用于生成一组LCK报文的相应信息,用于生成八组AIS报文的相应信息。同一协议的同一类型报文中的非PDU字段的内容通常可以共用。
[0035]如图2所述,所述方法包括以下执行步骤:
[0036]首先,执行步骤SI,用于设置各个本地维护实体端点的错误管理报文相关信息,即各个本地维护实体端点表中的内容。接着执行步骤S2。
[0037]在步骤S2中,得到某种报文类型的发送命令,如发送CCM报文;这时,为保证得到的命令能够执行完成,对所述发送CCM报文的命令进行处理,FPGA中定时每隔3.3ms发送一个脉冲,接收到的发送命令必须等待出现所述脉冲时才开始执行,这样,CCM, AIS和LCK的发送时间是错开的,各有3.3ms长度的脉冲来发送三种不同的报文,当脉冲有效时,开始对本地维护实体端点表进行处理。保证CCM,AIS和LCK的发送不冲突。得到的所有报文类型的发送命令都至少有3.3ms的执行时间,确保该发送命令能执行完成。接着执行所述发送命令。
[0038]所述发送命令将根据所述报文类型对2048个本地维护实体端点轮询处理,依次对2048个本地维护实体端点执行步骤S3?S8,通常用计数器作为各本地维护实体端点的索引,从第一个本地维护实体端点开始执行。
[0039]在步骤S3中,获取所述本地维护实体端点协议类型字段的内容,判断所述本地维护实体端点协议类型是否有效且报文类型使能。如果是协议类型字段的信息表明是无效协议类型或者报文类型使能信息表明所述报文类型不使能,则执行步骤S8。否则,协议类型字段的信息表明协议类型有效且报文类型使能信息表明所述报文类型使能,则接着执行步骤S4。
[0040]在步骤S4中,从所述本地维护实体端点得到报文协议类型相关信息。所述报文协议类型相关信息通常是指所述报文协议类型报文格式中,除PDU外的其它字段(不包括校验字段FCS)的相关信息,这些相关信息在所述协议下某种协议类型的报文中是公用的。其中,所有ETH协议中不同类型的报文的公用部分都相同。而ITU和IETF协议的报文公用部分中有的字段还与报文的具体类型相关。具体地,如IETF协议中,label字段是公用字段,但BFD报文和LSP报文的label字段的值各不相同,对应着本地维护实体端点中的不同字段。BFD label字段的取值对应本地维护实体端点中的GAL label字段,LSP的label字段的取值对应本地维护实体端点中的LSP label字段。接着执行步骤S5。
[0041]在步骤S5中,从所述本地维护实体端点得到一组所述报文类型相关字段信息。具体地,所述报文类型相关字段信息通常对应着一个所述报文类型报文中rou中的相关字段,也可以根据需要包括非PDU的字段。例如,ETH和ITU的AIS报文的PDU包括以下字段:MEL,版本,OpCode,标记,TLV偏置值,终了 TLV。其中,版本,OpCode,标记,TLV偏置值,终了TLV都可采用默认值,有默认值的字段可以在本地维护实体端点中没有对应的字段,但没有默认值的,如MEL和标记在所述本地维护实体端点的一组报文类型相关字段信息中都对应着相应的字段。接着执行步骤S6。
[0042]在步骤S6中,根据所述报文协议类型相关信息和一组所述报文类型相关字段信息生成一个错误管理报文,并输出所述错误管理报文。具体地,将所述报文协议类型相关信息和报文类型相关字段信息的值相应的填入到所述协议类型的所述类型报文的各个字段中,生成一个所述协议类型的所述报文类型的错误管理报文,并输出所述错误管理报文。例如对于AIS类型的报文,如果本地维护实体端点的为ETH协议,这获取所有的相关信息生成一个ETH协议的AIS报文,这个报文显然也是个错误管理报文。然后将这个错误管理报文输出发送,或者将所述错误管理报文输出到缓存中再发送。接着执行步骤S7。
[0043]在步骤S7中,判断所述报文类型的N组相关字段信息是否处理完成。具体地,如每个本地维护实体端点中有八组AIS报文的相应信息,如果报文类型为AIS,则判断是否处理完这八组AIS报文的相应信息,如果没有处理完,则执行步骤S6,继续生成该报文类型的报文;如果处理完成,则执行步骤S8。
[0044]在步骤S8中,判断是否所述2048个本地维护实体端点处理完成。如果处理完成,则本次发送命令执行完成,执行步骤S2,等待得到下次发送命令进行处理。如果处理未完成,则执行步骤S9。
[0045]在步骤S9中,转入下一个本地维护实体端点。即对下一个本地维护实体端点开始处理。接着执行步骤S3。
[0046]所述方法还可以包括修改所述本地维护实体端点中的错误管理报文相关信息。具体地,用户可以根据需要修改本地维护实体端点中的错误管理报文相关信息,即修改所要发送的报文的字段信息。
[0047]如图1所示,本发明还提供一种基于FPGA生成多协议错误管理报文报文的系统1,基于FPGA生成多协议FM报文的系统I包括命令控制模块11,本地维护实体端点模块12,报文组帧模块13。
[0048]所述本地维护实体端点模块12包括多个本地维护实体端点。每个本地维护实体端点包括所述本地维护实体端点要发送的错误管理报文相关信息,所述错误管理报文相关信息包括唯一确定的报文协议类型及相关信息,多种报文类型相关信息,每种所述报文类型相关信息包括至少一组所述报文类型相关字段信息,一组所述报文类型相关字段信息用于生成一个所述报文类型的报文;
[0049]所述命令控制模块11,与所述本地维护实体端点模块12以及报文组帧模块13相连,用于得到某种报文类型的发送命令,根据所述报文类型的发送命令对所述本地维护实体端点模块的多个本地维护实体端点轮询:确定是否生成错误管理报文,如果生成,则将生成信息发送给所述报文组帧模块。
[0050]所述报文组帧模块13与所述命令控制模块11以及所述本地维护实体端点模块12相连,根据得到的所述生成信息获取所述本地维护实体端点中所述报文协议类型相关信息以及至少一组所述报文类型相关字段信息生成对应数量的错误管理报文并输出。具体地,根据得到的所述生成信息获取所述本地维护实体端点中所述报文协议类型相关信息,并获取多组所述报文类型相关字段信息,生成多组报文类型的报文。在一个实施例中,报文类型为AIS,本地维护实体端点中包括了八组AIS相关字段信息,则根据所述报文协议类型相关信息即公用信息和八组AIS相关字段信息(即PDU字段相关信息)生成八个AIS报文并输出。
[0051]所述基于FPGA生成多协议错误管理报文的系统I还包括本地维护实体端点修改模块14,与所述本地维护实体端点模块12相连,用于设置或修改所述本地维护实体端点模块12的多个所述本地维护实体端点所要发送的错误管理报文相关信息。具体地,本地维护实体端点修改模块14可以根据需要修改所述本地维护实体端点模块12中的任意本地维护实体端点中的错误管理报文相关信息,即修改所述本地维护实体端点所要发送的报文的字段息。
[0052]所述基于FPGA生成多协议错误管理报文的系统I还包括缓存输出模块15,所述缓存输出模块15与报文组帧模块13相连,接收所述报文组帧模块13输出的所述错误管理报文,并缓存输出。具体地,所述报文组帧模块13生成的错误管理报文将输出到所述缓存输出模块15,由缓存输出模块15发送。
[0053]综上所述,本发明基于FPGA生成多协议错误管理报文的方法及系统,在一片FPGA中实现ETH (以太网协议)、ITU (国际电信联盟协议)和IETF (互联网工程任务组协议)三种报文的发送工作,并且在得到CCM (连续性检查消息报文),LCK (锁定信号报文),AIS (告警指示信号报文)中的任一种报文类型的发送命令时,能够在3.3ms内完成多个本地维护实体端点中的所述类型的所有报文的发送,有效提高了产品的兼容性和竞争力。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0054]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属【技术领域】中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【权利要求】
1.一种基于FPGA生成多协议错误管理报文的方法,其特征在于,所述方法至少包括: 分别在多个本地维护实体端点中设置各个所述本地维护实体端点要发送的错误管理报文相关信息,所述错误管理报文相关信息包括唯一确定的报文协议类型、所述报文协议类型相关信息,以及多种报文类型相关信息;每种所述报文类型相关信息包括至少一组报文类型相关字段信息;一组所述报文类型相关字段信息用于生成一个所述报文类型的报文; 得到某种报文类型的发送命令后执行:根据所述报文类型对多个所述本地维护实体端点轮询处理; 对每个所述本地维护实体端点进行处理的过程包括:确定所述本地维护实体端点的报文协议类型;得到所述报文协议类型相关信息;获取所述协议类型下所述报文类型相关信息;根据所述报文协议类型相关信息和至少一组所述报文类型相关字段信息生成对应数量的错误管理报文并输出所述错误管理报文。
2.根据权利要求1所述的基于FPGA生成多协议错误管理报文的方法,其特征在于:所述方法包括对所述发送命令的处理,用以保证每个所述发送命令有足够的执行时间完成。
3.根据权利要求1所述的基于FPGA生成多协议错误管理报文的方法,其特征在于:所述方法包括修改所述本地 维护实体端点中的错误管理报文相关信息。
4.根据权利要求1所述的基于FPGA生成多协议错误管理报文的方法,其特征在于:所述错误管理报文相关信息包括所述报文类型使能信息,所述方法还包括从所述本地维护实体端点中获取所述报文类型的使能信息,并根据所述使能信息判断是否生成所述错误管理报文。
5.根据权利要求1所述的基于FPGA生成多协议错误管理报文的方法,其特征在于:所述方法包括将所述错误管理报文输出到缓存发送。
6.根据权利要求1所述的基于FPGA生成多协议错误管理报文的方法,其特征在于:所述报文类型包括连续性检查消息报文,锁定信号报文,告警指示信号报文。
7.根据权利要求1所述的基于FPGA生成多协议错误管理报文的方法,其特征在于:所述协议类型包括以太网协议,国际电信联盟协议,互联网工程任务组协议。
8.根据权利要求1所述的基于FPGA生成多协议错误管理报文的方法,其特征在于:所述本地维护实体端点的错误管理报文相关信息包括用于生成一组连续性检查消息报文的相应信息,用于生成一组锁定信号报文的相应信息,用于生成八组告警指示信号报文的相应信息。
9.一种基于FPGA生成多协议错误管理报文的系统,其特征在于:所述系统包括本地维护实体端点模块,命令控制模块,报文组帧模块; 所述本地维护实体端点模块包括多个本地维护实体端点,每个本地维护实体端点包括所述本地维护实体端点要发送的错误管理报文相关信息,所述错误管理报文相关信息包括唯一确定的报文协议类型及所述报文协议类型相关信息,多种报文类型相关信息;每种所述报文类型相关信息包括至少一组所述报文类型相关字段信息,一组所述报文类型相关字段信息用于生成一个所述报文类型的报文; 所述命令控制模块与所述本地维护实体端点模块以及报文组帧模块相连,用于得到某种报文类型的发送命令,根据所述报文类型的发送命令对所述本地维护实体端点模块的多个本地维护实体端点轮询处理;对本地维护实体端点进行处理的过程包括:确定是否生成错误管理报文,如果生成,则将生成信息发送给所述报文组帧模块; 所述报文组帧模块与所述命令控制模块以及所述本地维护实体端点模块相连,根据得到的所述生成信息获取所述本地维护实体端点中所述报文协议类型相关信息以及至少一组所述报文类型相关字段信息生成对应数量的错误管理报文并输出。
10.根据权利要求9所述的基于FPGA生成多协议错误管理报文的系统,其特征在于:所述系统还包括本地维护实体端点修改模块,与所述本地维护实体端点模块相连,用于设置或修改所述本地维护实体端点模块的多个所述本地维护实体端点中的所述错误管理报文相关信息。
11.根据权利要求9所述 的基于FPGA生成多协议错误管理报文的系统,其特征在于:所述系统还包括缓存输出模块,所述缓存输出模块与报文组帧模块相连,接收所述报文组帧模块输出的所述错误管理报文,并缓存输出。
【文档编号】H04L12/24GK103780427SQ201410023149
【公开日】2014年5月7日 申请日期:2014年1月17日 优先权日:2014年1月17日
【发明者】范方豪, 周建坤 申请人:加弘科技咨询(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1