一种基于fpga的efmoam处理方法以及硬件实现装置的制造方法

文档序号:10538546阅读:716来源:国知局
一种基于fpga的efm oam处理方法以及硬件实现装置的制造方法
【专利摘要】本发明公开了一种基于FPGA的EFM OAM处理方法以及硬件实现装置。EFM OAM(遵循IEEE 802.3ah标准)是针对两台直连设备间的链路,提供链路性能监测、故障侦测和告警、环路测试等功能。目前业界EFM OAM基本上都是基于纯软件实现,导致OAM性能大打折扣,尤其是在链路性能监控和远端故障检测上,依赖纯软件实现几乎不现实。本发明主要是基于FPGA实现EFM OAM,实现的功能包括IEEE 802.3ah所定义的链接发现(Discovery)、远端环回(Remote Loopback)、链路监视(Link Monitoring)和远端故障指示(Remote Failure Indication)等。本发明具备支持的EFM OAM功能全面、FPGA采用Pipeline技术能实现报文线速处理、接口配置灵活(支持光口电口接入)、可扩展性强等优点。
【专利说明】
一种基于FPGA的EFM OAM处理方法以及硬件实现装置
技术领域
[0001]本发明涉及网络通信领域,具体而言,是一种实现点到多点802.3ah协议OAM的方法及系统。
【背景技术】
[0002]随着数据业务的广泛应用,以太网在通信网络中扮演着越来越重要的作用,但是以太网与传统的SDH相比,在网络故障告警、链路质量、维护手段等方面都略逊一筹。随着以太网推广的范围逐渐扩大,对以太网OAM(操作管理和维护)的需求越来越强烈。OAM可以简化网络操作,检验网络性能和降低网络运行的成本,在提供保障服务质量方面也显得尤为重要,可帮助以太网技术从局域网向城域网和广域网发展过程解决管理维护的难题。于是国际标准化组织IEEE和国际电信联盟(ITU)相继推出了很多OAM标准化协议来强化以太网在维护、告警方面的能力。其中利用802.3ah协议是一种配置方便且实现简单的方案。802.3ah协议(以下简称EFM)是链路层OAM功能和实现协议,其实现的是一种点到点的0ΑΜ,主要是链路方面的监测和维护,是一种偏物理层的0ΑΜ,它主要应用在网络的边缘设备上(接入层),且OAMPDU报文只能转发一跳,主要用来监测链路质量、收集链路告警等。EFM OAM定义的主要功能包括:链接发现(Discovery)、链路监视(Link Monitoring)、远端故障指不(Remote Failure Indicat1n)和远端环回(Remote Loopback) ο
[0003]目前业界主流EFM OAM是基于软件实现,即商业交换芯片(以下简称Switch)将接收到的OAM报文上送CPU,由CPU完成OAM报文的解析和处理,而在主动模式下,也是由CPU发送0AM PDU给Switch,再由Switch转发至远端。众所周知,软件相对硬件最大的缺陷是无法实现报文线速处理,尤其是处理EFM OAM紧急链路事件,靠软件实现几乎不现实,紧急链路事件要求本端设备掉电后,能通过设备内电容存储的电荷,将相应的Dying Gasp OAMPDU传送给对端设备,如果用软件组包,还未完成Dying Gasp 0AM PDU传送给对端,设备内电容放电已经完毕,无法事件将故障信息通知给远端实体。此外,一旦端口带宽过大,CPU无法实现报文的线速处理,只能依赖Switch对报文预过滤,摘出EFM OAM报文上送CPU,由CPU完成再次解析处理,而对非0AM PDU错误帧的统计只能依赖Switch完成,这样导致CPU主动发送0AM PDU和错误帧的统计不同步,一方面引起一般链路事件的误报,因此在实际应用中只能定性判断设备是否具备链路监视功能,但是没法定量确定链路监视功能的准确性;另一方面从架构上导致报文处理会有延时,影响时延测试精确度。

【发明内容】

[0004]本发明所要解决的技术问题是提供一种基于FPGA的EFM OAM处理方法以及硬件实现装置,是针对上述现有设备中存在着本端紧急链路事件无法及时通知给远端、链路监视准确度以及延迟测量精确度而提出的。
[0005]为了解决上述技术问题,本发明提供了一种基于FPGA的EFM OAM处理方法以及硬件实现装置核心模块包括接收模块、解析模块、分发模块、OAM组包引擎模块、调度模块和发送模块,其特征在于:
[0006]上行方向,FPGA对接收到的报文进行错误统计(CRC错误统计),对正确的报文进行解析,解析为EFM OAM的报文会做相应的处理;
[0007]下行方向,FPGA会根据用户配置的主动模式,产生Discovery OAM FOU、LoopbackEnable OAM PDU、Loopback Disable 0AM PDU、Errored Frame Event 0AM PDU、ErroredFrame Per1d Event 0AM PDU、Errored Frame Seconds Event 0AM PDU、Link Fault 0AMPDU 和 Dying Gasp 0AM PDU。
[0008]当用户使能了 EFM 0AM发现,0AM组包引擎会按照I秒的间隔生成Di scovery OAMPDU ;
[0009]当用户开启了远端环回开启使能,OAM组包引擎会生成Loopback Enable 0AMPDU,同时按照I秒的间隔生成Discovery 0AM PDU ;
[0010]当用户开启了远端环回关闭使能,OAM组包引擎会生成Loopback Disable 0AMPDU,同时按照I秒的间隔生成Discovery 0AM PDU ;
[0011]以设定的时间为检测窗口,在窗口期内检测到的错误帧数量如果达到或超过了检测阈值,OAM组包引擎就产生一次Errored Frame Event 0AM PDU ;
[0012]以收到设定数量的帧为检测窗口,在窗口期内检测到的错误帧数量如果达到或超过了检测阈值,OAM组包引擎就产生一次Errored Frame Per1d Event 0AM PDU:
[0013]以设定的时间为检测窗口,在窗口期内检测到的错误帧秒(在某一秒内检测到至少一个错误帧,就称该秒为错误帧秒)数量如果达到或超过了检测阈值,OAM组包引擎就产生一次 Errored Frame Seconds Event 0AM PDU ;
[0014]当检测到外部电源监测芯片送给FPGA的中断信号(低电平有效),OAM组包引擎就产生Dying Gasp 0AM F1DU,发送间隔为不间断发送,当发送Dying Gasp 0AM F1DU,当OAMPDU数量达到用户配置值后停止发送;
[0015]当检测到TX Fault引脚为高,OAM组包引擎就会按照I秒的间隔生成Link Fault0AM PDU,直至TX Fault引脚拉低;
[0016]为了解决上述技术问题,本发明提供了一种基于FPGA的EFM OAM的硬件实现装置,该硬件实现装置包括:接收模块、发送模块、OAM帧解析模块、OAM组包引擎、调度和端口状态监测等功能模块。
[0017]接收和发送模块实现功能:
[0018]支持标准的GMII/RGMII/SGMII接口可配置,支持全双工工作模式;
[0019]支持最小包长64字节(含4字节CRC)的接收和发送,支持Jumbo帧的接收,支持最大包长9600字节的接收和发送(对长度大于9600字节的报文会截短成9600字节);
[0020]支持前导码检测(最小两字节的前导码);
[0021]支持CRC校验和检查,并对CRC校验和出错的报文统计后丢弃;
[0022]OAM帧解析模块功能:
[0023]支持来自远端的以太报文的解析和识别,包括业务报文和OAM的解析,对于业务报文,会按照正常流程转发或者环回,对于EFM OAM报文,解析后会按照协议类型响应相应的动作或者上报中断给网管;
[0024]调度模块功能:
[0025]支持RR调度,WRR调度和PQ调度模式可配置,WRR模式下各条流的权重可动态配置,其中O队列为绝对优先级队列,以满足管理报文和某些延时敏感类报文的要求;
[0026]OAM组包引擎功能:
[0027]实现下行方向Discovery OAM报文发送功能,当用户配置为Active mode,使能了链路发现,Discovery子模块会周期性(间隔为I秒)地向队列调度模块提出发送Discovery OAM报文的请求,队列调度模块会根据报文优先级和发送模块缓存容量适时调度Discovery OAM报文至发送模块。
[0028]实现下行方向Loopback Control OAM报文发送功能,当用户配置为Active mode,使能了远端环回,Loopback Control子模块会向队列调度模块提出发送Loopback ControlOAM报文的请求,队列调度模块会根据报文优先级和发送模块缓存容量适时调度LoopbackControl OAM报文至发送模块。
[0029]完成下行方向Event Notificat1n OAM报文发送功,来实现链路监视功能,当接收模块接收到的错误帧达到用户配置的门限,Event Notificat1n子模块会向队列调度模块提出发送Event Notificat1n OAM报文的请求,队列调度模块会根据报文优先级和发送模块缓存容量适时调度Event Notificat1n OAM报文至发送模块,本发明装置支持的Error Even包括错误帧事件(Errored Frame Event),错误帧周期事件(Errored FramePer1d Event)和错误帧秒事件(Errored Frame Seconds Event),其对应的 0AM PDU 分别为 Errored Frame Event 0AM PDU、Errored Frame Per i od Event 0AM PDU 和 ErroredFrame Seconds Event 0AM PDU。
[0030]实现下行方向Dying Gasp 0AM报文发送功能,当FPGA接收到低电压告警信号后,Dying Gasp报文处理子模块向队列调度模块提出发送Dying Gasp报文的请求,由于DyingGasp优先级最高,队列调度模块会立即响应该请求后直接从Dying Gasp报文处理模块中读取Dying Gasp报文并送给发送模块。
[0031]端口状态监测功能:
[0032]用于完成外部芯片状态监测,产生相应的中断触发信号,触发OAM组包引擎组包,将链路状态信息通知给远端设备。
【附图说明】
[0033]附图1为EFM 0AM PDU帧格式;
[0034]附图2为本发明实施例1提供的建立EFM OAM连接示意图;
[0035]附图3为本发明实施例2提供的链路监控示意图;
[0036]附图4为本发明实施例3提供的远端故障检测示意图;
[0037]附图5为本发明实施例4提供的环回示意图;
[0038]附图6为本发明实施例1提供的Discovery OAM报文模板;
[0039]附图7为本发明实施例2提供的Event Notificat1n OAM报文模板;
[0040]附图8为本发明实施例3提供的Dying Gasp OAM报文模板;
[0041]附图9为本发明实施例4提供的Loopback Control OAM报文模板;
【具体实施方式】
[0042]下面结合说明书附图和实施例对本发明作进一步说明,但是不作为对本发明的限定。
[0043]实施例1
[0044]如附图2所示,一种基于FPGA的EFM OAM的硬件实现装置,本实施例的OAM报文以链路发现报文Discovery OAM PDU为例说明,OAM PDU模板如附图6所示,具体包括以下步骤:
[0045]步骤101:配置本地设备A的端口 Portl为Active mode (寄存器地址为0x22,值0x1),配置本地设备A的端口 Portl的host_mac地址(寄存器地址为0x10?0x15),该寄存器为本机MAC地址,采用小端模式(本专利提及寄存器均遵循小端模式),如MAC地址是0xd0c78cll2233则,地址0x010存储最低16比特33 ;
[0046]步骤102:配置本地的oam_dte_states信息(寄存器地址为0x31),可以采用默认值 0x0 ;
[0047]步骤103:配置本地的oam configurat1n信息(寄存器地址为0x32),建议采用默认值Oxf ;
[0048]步骤104:配置本地的max_oampdu_size信息(寄存器地址为0x34?0x34),该寄存器指示最大OAMPDU长度,默认值1518字节,软件可配置,本发明所能支持的OAMPDU远大于1518,但是不建议软件修改此寄存器的值,与其他供应商的设备互通,配置太大没意义);
[0049]步骤105:使能以太网链路发现使能(配置寄存器efm_discovery_enable,寄存器地址0x30),则开始向对端发送Discovery 0AM PDU,发送频率为每秒一个;
[0050]步骤106:如果在5秒内,设备A的端口 Portl收到设备B的端口 Port2返回的Informat1n OAMPDU,则将Flag域为0x0050,其他字段保持不变,否则,将Flag域任然保持0x0010,并上报中断给网管,网管通过轮询查找中断寄存器,能识别链路连接失败。
[0051]实施例2
[0052]如附图3所示,一种基于FPGA的EFM OAM的硬件实现装置,本实施例的OAM报文以远端环回Event Notificat1n 0AM PDU为例说明,具体包括以下步骤:
[0053]步骤201:配置本地设备A的端口 Portl的指示时间周期寄存器errored_frame_window (寄存器地址为0x132?0x133),该寄存器指示时间周期,时间间隔为100ms,用16比特无符号整型进行编码,默认值是I秒;下限是I秒;上限是I分钟,建议采用默认值;
[0054]步骤202:配置本地设备A的端口 Port I错误帧门限寄存器errored_frame_threshold (寄存器地址为0x134?0x137),该寄存器指示事件发生时应大于或者等于的一段时间内检测到的误帧数目,该域用32bit无符号整型进行编码,默认值是I个错误帧,下限是O个错误帧,无上限规定;
[0055]步骤203:按照步骤201、202的参数配置,如果本地设备A的端口 Portl接收到设备B的端口 Port2的CRC错误报文个数大于等于I,也就是一旦受到CRC错误的报文,就触发本地设备A的OAM组包引擎生成Errored Frame Event 0AM PDU从Portl发送给设备B的端口 Port2,0AM PDU模板如附图7所示,所有参数有FPGA生成填充,各参数具体含义如下:
[0056]Event Timestamp (100ms):98表不已经经历了 98个参考时间当位,即9800毫秒,此变量由FPGA内部时戳计数器产生;
[0057]Errored Frame Window:指示时间周期为10个参考时间单位,即I秒,此变量为用户配置寄存器;
[0058]Errored Frame Threshold:指示错误帧门限为1,此变量为用户配置寄存器;
[0059]Errored Frames:指示当前错误帧事件有3个错误帧,此变量由逻辑内部错误帧统计计数器产生,该统计计数器在每个统计周期(I秒)内会清零,下一个统计周期开始重新统计;
[0060]Error Running Total:指示自从设备重置以太,总共统计到201个错误帧,此变量由逻辑内部错误帧统计计数器产生,只要设备不复位重置,该统计计数器一直累加;
[0061]Event Running Total:指示在事件时戳(9800毫秒)内,总共发生81次错误帧事件,该变量由逻辑内部的错误时间统计计数器产生,只要设备不复位重置,该统计计数器一直累累加;
[0062]实施例3
[0063]如附图4所示,一种基于FPGA的EFM OAM的硬件实现装置,本实施例的OAM报文以Dying gasp 0AM PDU为例说明,0AM PDU模板如附图8所示,具体包括以下步骤:
[0064]步骤301:配置本地设的host mac地址(寄存器地址为0x10?0x15);
[0065]步骤302:如果本地设备A监测到外部硬件传递过来的掉电中断信号,就触发本地设备A的OAM组包引擎生成Dying Gasp 0AM PDU从设备A的所有端口发出,0AM PDU模板如附图8所示。
[0066]实施例4
[0067]如附图5所示,一种基于FPGA的EFM OAM的硬件实现装置,本实施例的OAM报文以远端环回Loopback Control 0AM PDU为例说明,0AM PDU模板如附图9所示,具体包括以下步骤:
[0068]步骤401:配置本地设备A的端口 Portl为Active mode (寄存器地址为0x22,值0x1);
[0069]步骤402:设备A的端口 Portl向设备B的端口 Port2发送带有使能信息的Loopback Control 0AMPDU,并等待回复;
[0070]步骤403:设备B收到该OAMPDU后,向设备A回复状态改变的Informat1n0AMPDU,并进入环回状态(在此状态下,设备会把收到的非OAMPDU报文都按原路返回);
[0071]步骤404:设备A的端口 Portl收到回复后,开始向设备B的端口 Port2发送非OAMPDU的测试报文;
[0072]步骤405:设备B的端口 Port2收到测试报文后,将其按原路返回给设备A的端口Portl ;
[0073]步骤406:如设备A的端口 Portl需要停止远端环回时,向设备B的端口 Port2发送带有去使能信息的Loopback Control OAMPDU ;
[0074]步骤407:设备B的端口 Port2收到该OAMPDU后便退出环回状态,并向设备A的端口 Portl回复状态改变的Informat1n 0AMPDU,网管通过观察非OAMPDU报文的返回情况,可以对链路性能(包括丢包率、时延、抖动等)作出评判。
【主权项】
1.一种基于FPGA的EFM OAM处理方法以及硬件实现装置核心模块包括接收模块、解析模块、分发模块、OAM组包引擎模块、调度模块和发送模块,其特征在于: 上行方向,报文经GMII/RGMII/SGMII接口进入FPGA(以下简称FPGA),依次完成前导码检测、CRC校验和剥离、报文的解析,对于识别为管理报文(da是0180c2-000002)的,逻辑会对报文做深度解析,提取报文的以太类型字段,如果以太类型为EFM 0ΑΜ,则会提取OAMPDU的相关字段,根据OAM报文请求类型,应答对应的OAM报文,经过调度模块后,从GMII/RGMII/SGMII 接口发出; 下行方向,OAM组包引擎能根据用户配置或者外部硬件中断告警信号产生各种OAMPDU,经过调度模块后从GMII/RGMII/SGMII接口发出; 架构依照以太网数据流特点设计,以尽量减小处理延时和不必要的数据流抖动为前提,降低对缓存和芯片性能的依赖,同时架构本身考虑了日后的扩展,预留友好的接口,为二次开发和模块整合提供便利; 设计中还考虑到了功能单元的技术积累和日后的再利用,力求在统一接口和功能高耦合方面有所突破以方便日后其他设计的模块化增量开发。2.根据权利要求1所述的基于FPGA的EFMOAM处理方法以及硬件实现装置,其特征在于:所述接收模块和发送模块支持的以太网接口形态丰富,且支持GMII/RGMII/SGMII接口用户可配置。3.根据权利要求1所述的基于FPGA的EFMOAM处理方法以及硬件实现装置,其特征在于:所述的解析模块和OAM组包引擎模块,能完整的实现802.3ah所定义的OAM功能,具体包括以下: 以太网链路连通性监测功能; 支持主从模式,即同时支持初始化EFM OAM Discovery过程和对EFM OAM Discovery初始化过程的响应; 以太网链路端口环回功能; 支持根据接收到来自远端的环回控制报文执行相应的开启和取消环回, 同时支持通过配置发起环回控制请求; 以太网链路事件功能; 支持一般链路事件和紧急链路事件。4.根据权利要求2所述的基于FPGA的EFMOAM处理方法以及硬件实现装置,其特征在于:所述的一般链路事件支持接收来自远端的错误信号事件(Errored Symbol Event)、错误帧事件(Errored Frame Event)、错误帧周期事件(Errored Frame Per1d Event)和错误帧秒事件(Errored Frame Seconds Event) 0AM帧,记录事件类型,并上报中断给CPU(网管),网管可以轮询中断寄存器查询事件类型;此外,还支持对来自远端的报文做统计,根据用户配置的时间窗口和门限设置,向远端发送相应的错误帧事件(Errored FrameEvent)、错误帧周期事件(Errored Frame Per1d Event)和错误帧秒事件(Errored FrameSeconds Event) 0AM 帧。5.根据权利要求2所述的基于FPGA的EFMOAM处理方法以及硬件实现装置,其特征在于:所述的紧急链路事件支持链路故障(Link Fault)和致命故障(Dying Gasp)。即远端链路信号丢失(比如硬件PHY检测到接收方向线路错误),按照每秒发送一次的频率发送LinkFault OAM F1DU,当不可预知的状态发生(比如电源中断)时,不间断发送Dying Gasp OAMF1DU ;对于上行方向接受到的Link Fault和Dying Gasp,会产生相应的中断信号上报网管。6.根据权利要求1所述的基于FPGA的EFM OAM处理方法以及硬件实现装置,其特征在于:所述的调度模块支持RR调度,WRR调度和PQ调度模式可配置。
【文档编号】H04L29/06GK105897446SQ201410519824
【公开日】2016年8月24日
【申请日】2014年9月30日
【发明人】胡东, 包兴刚, 吴树兴, 赵忠祥, 张丰涛
【申请人】浙江亿邦通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1