本论文是一篇关于报文论文参考文献代码,关于ASIC芯片中BFD定时器协商机制改进设计与实现相关硕士论文范文。免费优秀的关于报文及软件设计及定时器方面论文范文资料,适合报文论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
摘 要:描述了在电信级以太网芯片中实现BFD快速检测与定时器协商机制的逻辑设计过程,并将硬件逻辑在FPGA仿真芯片中进行了验证.验证了单纯硬件逻辑实现BFD定时器协商机制的可行性,该机制使用软硬件联合设计的改进方法,能够在节约硬件资源的前提下,发挥硬件的速度优势和软件的灵活优势,实现可靠的BFD时间协商过程与快速检测机制.此改进设计经过使用软件和硬件的联合验证,结果表明能够达到预期的效果,并能够实现商业应用.
关 键 词 关 键 词 :ASIC;BFD;快速故障检测;定时器协商机制
中图分类号:TP302 文献标识码:A 文章编号文章编号:16727800(2013)008002603
0 引言
随着千兆和万兆以太网技术的发展,IP over Ether的应用已经从局域网扩展到城域网和广域网,特别是实时语音、视屏点播、云服务等业务的大量应用,使得网络对服务质量(QoS)的要求越来越高,必须达到电信运营商的级别.相对于传统的SDH硬件,目前的IP网络无法实现快速的端到端的链路检测,依靠秒级别的路由协议来实现快速检测已经不能满足当前电信级的业务要求.双向链路检测协议——Bidirectional Forwarding Detection (BFD)能够在系统之间任何类型的通道上实现1s以下的快速检测和恢复,这些通道包括物理链路、IP链路、隧道、MPLS LSP等.BFD使IP网络能够提供客户所需要的高可靠性、高适用性的VoIP等实时业务[1,2].
一般而言,电信级别的服务质量要求50ms的自动切换,10ms左右的链路检测周期[3],这对于实现BFD提出了硬件要求.BFD的技术标准提供了微妙到秒的各种数量级的检测周期.当前,秒以上级别的功能已经由软件实现,秒以下级别的链路检测必须依赖于硬件实现.实现快速BFD,一般使用网络处理器(NP)或专用集成电路(ASIC)两种方式.本文提出了一种在ASIC芯片中实现快速BFD的设计,改进BFD协议中动态定时器协商的实现方法,在尽量节约硬件资源的前提下,配合软件以实现多会话(Session)的快速BFD.
本文来源 http://www.sxsky.net/cankao/435854.html
1.BFD定时器协商机制
ITEFRFC5880[46]规定了BFD的功能和流程,其核心是通过站点间互相发送短周期的BFD控制报文来检测链路是否出现失效,根据报文中的控制字段和BFD会话状态机的状态迁移来通知上层协议,以使其它机制能够进行快速的链路切换,保证网络通信的及时恢复.
BFD使用三路握手的机制来建立会话,一旦建立会话,BFD会话站点就以特定的频率,持续高速发送和检测接收BFD报文,在链路状态发生变化后,仍然能够通过慢速的报文,等待状态恢复.在电信级网络中,链路的检查周期为3.3ms、10ms、20ms、50ms、300ms和1s[5],这实际要求硬件定时器的精度要小于1ms.
BFD协议规定了定时器协商机制,在会话建立后,一端能够主动要求对端调整双方的发送和检测报文的频率,发起方将报文中的P字段置位,接收方响应后,在回应报文中将F字段置位,其主要原理为[1,2,5]:
(1)BFD报文发送时间间隔为本端Desired Min TX Interval与对端Required Min RXInterval之中的最大值.
(2)检测时间为对端BFD控制报文中的Detect Mult乘以经过协商的对端BFD控制报文发送时间间隔.
(3)如果加大本端Desired Min TX Interval,那么本端实际发送BFD控制报文的时间间隔必须要等收到对端F字段置位的报文后才能改变.
(4)如果减小本端Required Min RX Interval,那么本端检测时间必须要等收到对端F字段置位的报文后才能改变.
(5)如果减小Desired Min TX Interval,本端报文发送间隔将立即减小;加大Required Min RX Interval,本端检测时间将立即加大.
2.ASIC芯片中BFD定时器协商机制设计
在电信级IP网络中,ASIC芯片处理流程是:报文进入ASIC芯片后,完成对物理层和基本二层的分析,到达入口报文处理单元(Ingress Packet Process Block),根据报文分析器(Packet Parser)的结果和入口处理逻辑,读取入口逻辑表的设置,对报文进行入口处理,然后将报头及转发信息一同发送至集中转发引擎芯片(Fabric Chip).Fabric芯片根据报头及转发信息,决定该报文是否需要送CPU处理或者转发到系统中其它的包处理器,或者送到BFD引擎(BFD Engine)来进一步做特殊处理,最后将报文送到出口报文处理单元(Egress Packet Process Block)进行出口的逻辑处理.
有关论文范文主题研究: | 关于报文的论文范文集 | 大学生适用: | 学年论文、高校大学论文 |
---|---|---|---|
相关参考文献下载数量: | 90 | 写作解决问题: | 怎么撰写 |
毕业论文开题报告: | 论文模板、论文题目 | 职称论文适用: | 期刊发表、初级职称 |
所属大学生专业类别: | 怎么撰写 | 论文题目推荐度: | 优质选题 |
由于BFD的处理逻辑比较复杂且相对独立,在入口和出口报文处理单元中无法完成相应的功能,所以在设计上,BFD引擎相对独立,并且由自己的SRAM和寄存器进行控制.
BFD引擎设计主要包括全局寄存器设计、BFD表项设计、BFD处理流程设计及相关数据通道.BFD处理流程涉及报文解析、报文发送、定时器检测、事件上报(中断与缓存读写).电信级的网络处理芯片中,一般支持2k~4k个BFD会话,需要配备相应数量的本端BFD硬件表和对端BFD硬件表,可以分别表示为bfd和rbfd.
参照上节所提到的定时器协商原理,定时器协商机制在芯片中的关键逻辑可以设计成为3个关联的模块:收包处理模块、定时器更新(发送报文与报文超时检测)模块、参数设置(时间协商由用户或上层接口发起)模块.BFD报文解析后,报文的上下文信息放在inpkt缓存中.3个模块的关键逻辑图中标示了bfd和rbfd两个表的主要字段和功能.芯片中收包处理模块、定时器更新模块、用户设置参数模块的微码逻辑图分别为图1、图2、图3. 图1 BFD接收报文处理模块逻辑
图2 BFD发送报文及定时器更新处理模块逻辑
图3 用户设置参数模块逻辑
收包处理模块、定时器更新模块(发送报文与报文超时检测)在设计上具有很强的关联性,并且需要考虑本端主动发起参数协商时的用户接口设计.用FPGA硬件仿真(比真实ASIC降频2 000倍)实现上述逻辑,结果表明,该设计能够在不影响BFD状态机的前提下,处理由用户发起的参数协商,也能够响应对端发起的参数协商,完成时间参数的双向调整.
3.ASIC芯片中BFD时间协商机制改进设计
对于支持2k~4k个BFD会话的ASIC芯片来讲,由于用硬件支持BFD定时器协商机制的开销过高,必须在硬件逻辑中增加P字段报文和F字段报文的处理逻辑,并且在每个bfd表项中增加2个32 bit的字段:bfd.newMinTxInterval,bfd.newMinRxInterval,需要超过128k bit的SRAM空间.同时,软件仍需要保存这2个中间变量与每个bfd会话的主要信息.ASIC设计的原则是让芯片实现对速度要求高但逻辑相对简单的功能,而让软件来实现对速度要求低但逻辑复杂的功能.
考虑到BFD会话发起定时器协商并不是经常性、高频率的事件,并且BFD的机制已经能够容忍因网络故障或对端延迟响应而导致的协商失败,硬件可以只完成高速度、高效率的BFD控制报文的发送和接收,而要求软件配合完成复杂的、对及时性要求不高的定时器协商逻辑.据此,BFD定时器协商机制的硬件和软件的设计改进如下:
(1)删除BFD硬件表项中P、F、newMinTxInterval