一种基于FPGA的万兆以太网帧解析方法技术

技术编号:10280802 阅读:347 留言:0更新日期:2014-08-03 01:30
一种基于FPGA的万兆以太网帧解析方法。本方法通过以太网帧间插解复用,将万兆以太网帧分解到一组并行数据通道中,每个数据通道中均设计了一种带有随机读取接口功能的移位寄存器组,当以太网帧在所述移位寄存器中移位时,相对应的以太网帧解析控制状态机通过所述随机读取接口,按需读取以太网帧中的关键字段完成以太网帧解析,再通过以太网帧间插复用方法恢复原以太网帧,并将解析结果与恢复的以太网帧对齐。应用本方法,可实现对混合类型以太网帧的解析,具有实现结构简单,容易理解,适应范围广的优点,且完全避免了帧解析过程对帧延时抖动的影响。

【技术实现步骤摘要】
—种基于FPGA的万兆以太网帧解析方法
本专利技术涉及万兆以太网高速数据通信协议的数据监测领域。具体涉及一种基于FPGA的万兆以太网帧解析方法。
技术介绍
以太网服务由于简单易用、灵活和价格低廉被广泛采用,已经成为包交换业务的统一承载层,在电信级以太网上,Q-1n-Q技术、MAC-1n-MAC技术、MPLS技术以及1588时间同步技术等新技术被综合应用。因此对网络设备尤其是对手持测试设备而言,需要能够以低成本实现对可能带有多层VLAN标签、MPLS标签等多种混合类型的以太网帧进行实时解析的功能组件。为了保证以太网的向下兼容,万兆以太网仍然采用与千兆以太网相同的帧格式。若仍然沿用千兆以太网的8bit位宽,逻辑的工作时钟频率将达到1.25GHz,这无论对芯片设计还是FPGA都是难以实现的,因此802.3的协议规定万兆以太网采用64bit数据位宽的XGMII接口进行并行处理,这对可能会带有多层VLAN标签和多层MPLS标签的混合以太网帧解析设计带来了新的挑战。用于执行帧解析技术的常规技术可能不再适用于对万兆速率以太网帧低成本的处理,例如使用基于软件的帧解析技术,为能够承受高速通讯系统中的大量数据,采用大容量缓存与一组微码处理器的并行运算实现对各种混合帧格式的以太网帧分析,这种方法虽然具有灵活性高功能强大的优点,但这种帧解析方法的实现过于复杂,且帧解析过程还会因缓存的原因增加额外的抖动。此外,如使用基于硬件的分立帧解析技术,以固定格式的掩码模板来获取以太网帧中的关键字段,这种方法存在灵活性差的缺点,一般仅能适用于少数几种被支持的协议。若要增加对多种通讯协议的支持,有人额外设计一种可针对每一帧动态改变掩码模板的装置,以实现帧解析器的动态配置,所有上述的这些设计均过于复杂,不适合手持设备的低成本实现。
技术实现思路
本专利技术的目的是解决现有基于软件帧解析方法存在设计过于复杂设计难度大且解析过程对以太网帧引入额外抖动的问题,提供一种基于FPGA的万兆以太网帧解析的低成本设计方法,实现各种混合类型的以太网帧的实时帧解析,同时解决FPGA内部并行处理的困难。本专利技术的技术方案为:一种基于FPGA的万兆以太网帧解析方法,该方法包含以下步骤:第1、设置一个以太网帧间插解复用器,以帧间插解复用的方式,将收到的以太网帧依次平均推送到一组q个独立的数据通道中;具体操作步骤如下:设置一个模为q的计数器,该计数器的初始值设为0,当接收到以太网帧的结尾时,判断该计数器的值是否为q_l,若是,则该计数器赋值为O,若不是,则触发该计数器累加I ;当该计数器的值为O时,将以太网帧推送到数据通道I中,当该计数器的值为I时,将以太网数据帧推送到数据通道2中,依次类推,当计数器的值为q-Ι时,将以太网数据帧推送到数据通道q中。较佳的, q为大于等于2的整数,q值应根据待解析的以太网帧头的复杂度决定,若需要解析的以太网帧比较复杂,则应选取较大的q值,使得每个数据通道中相邻以太网帧之间的最小间隔足够大,以保证每个数据通道中前一以太网帧解析完毕后,后一以太网帧才进入到该数据通道中。第2、在每个数据通道中,均设置一个带有随机读取接口(宽度为72bit深度为m)的移位寄存器,以太网报文经由该移位寄存器延迟后输出,同时根据需要读取的关键字段地址在移位寄存器组中搜索需要获取的关键字段结果,输出该关键字段的值;具体步骤如下:对应移位寄存器的每一列均设置I个地址计数器,当移位寄存器中的某一列中没有包含有效以太网帧的数据时,该地址计数器置0,否则累加I ;将需要搜索的关键字段地址右移3bit,并与这m个地址计数器逐一进行比较,选取比较结果相等的那一列及相邻列的移位寄存器中的数据,再根据关键字段地址的低3bit控制,选取其中某两个byte的数据输出。较佳的,所述移位寄存器组的深度m值在资源允许的情况下应尽可能大,但应满足公式(I)所述的条件,以保证每一时刻出现在移位寄存器组中的帧只有一个。本文档来自技高网
...
一种基于FPGA的万兆以太网帧解析方法

【技术保护点】
一种基于FPGA的万兆以太网帧解析方法,其特征在于,该方法包含以下步骤:第1、设置一个以太网帧间插解复用器,以帧间插解复用的方式将收到的以太网帧依次推送到一组q个独立的数据通道中;第2、在每个数据通道中,设置一个带有随机读取接口的移位寄存器,以太网报文经由该移位寄存器延迟后输出,同时根据需要读取的关键字段地址在移位寄存器中搜索需要获取的关键字段结果,输出该关键字段的值;第3、在每个数据通道中,设置一个与所述移位寄存器相对应的帧解析控制状态机,该帧解析控制状态机的下一跳根据所述移位寄存器组输出的关键字段进行跳转,实现对可能的多协议混合以太网帧的识别;与此同时根据该帧解析控制状态机的当前状态,产生需搜索的关键字段地址;根据所述帧解析控制状态机的跳转历程得到以太网帧的解析结果,并将结果写入FIFO中进行缓存;第4、设置一个以太网帧间插复用器,将各数据通道中输出的以太网报文以帧间插复用的方式恢复为原来的以太网数据帧,同时读取所述每个数据通道中FIFO里的帧解析结果,使恢复的以太网数据帧与帧解析结果对齐。

【技术特征摘要】
1.一种基于FPGA的万兆以太网帧解析方法,其特征在于,该方法包含以下步骤: 第1、设置一个以太网帧间插解复用器,以帧间插解复用的方式将收到的以太网帧依次推送到一组q个独立的数据通道中; 第2、在每个数据通道中,设置一个带有随机读取接口的移位寄存器,以太网报文经由该移位寄存器延迟后输出,同时根据需要读取的关键字段地址在移位寄存器中搜索需要获取的关键字段结果,输出该关键字段的值; 第3、在每个数据通道中,设置一个与所述移位寄存器相对应的帧解析控制状态机,该帧解析控制状态机的下一跳根据所述移位寄存器组输出的关键字段进行跳转,实现对可能的多协议混合以太网帧的识别;与此同时根据该帧解析控制状态机的当前状态,产生需搜索的关键字段地址;根据所述帧解析控制状态机的跳转历程得到以太网帧的解析结果,并将结果写入FIFO中进行缓存; 第4、设置一个以太网帧间插复用器,将各数据通道中输出的以太网报文以帧间插复用的方式恢复为原来的以太网数据帧,同时读取所述每个数据通道中FIFO里的帧解析结果,使恢复的以太网数据帧与帧解析结果对齐。2.根据权利要求1所述的方法,其特征在于,第I步所述以帧间插解复用的方式将收到的以太网帧依次推送到一组q个独立的数据通道中的具体操作步骤如下: 设置一个模为q的计数器,该计数器的初始值设为0,当接收到以太网帧的结尾时,判断该计数器的值是否为q_l,若是,则该计数器赋值为0,若不是,则触发该计数器累加I ;当该计数器的值为O时 ,将以太网帧推送到数据通道I中,当该计数器的值为I时,将以太网数据帧推送到数据通道2中,依次类推,当计数器的值为q_l时,将以太网数据帧推送到数据通道q中。3.根据权利要求1所述的方法,其特征在于,第2步所述根据需要读取的关键字段地址在移位寄存器组中搜索需要获取的关键字段结果的具体步骤如下: 所述移位寄存器组的深度为m宽度为72bit,对应移位寄存器的每一列均设置I个地址计数器,当移位寄存器中的某一列中没有包含有效数据报文时,该地址计数器置0,否则累加I ; 将需要搜索的关键字段地址右移3...

【专利技术属性】
技术研发人员:陶常勇
申请(专利权)人:天津市德力电子仪器有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1