硬件转发表刷新方法和装置以及路由设备制造方法及图纸

技术编号:4126910 阅读:280 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种硬件转发表刷新方法、硬件转发表刷新装置以及一种路由设备。在路由设备内存中为硬件转发表设置软件副本,并通过以下步骤实现对硬件转发表的一次刷新操作:CPU首先访问内存,对软件副本进行刷新并将变化表项的索引通知给硬件刷新单元;硬件刷新单元通过DMA方式访问内存中的软件副本,根据索引将变化表项逐条写入硬件转发表。本发明专利技术能够实现硬件转发表的快速刷新。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种硬件转发表刷新方法、 一种硬 件转发表刷新装置以及一种路由设备。
技术介绍
随着网络技术的发展,主流的网络设备,如中、高端交换机和大部分路由器,都能够支持大规格的转发表;如中国专利CN02100458.7就提供了一 种基于内容可寻址存储器的高速路由查找系统通过专门设置的路由査找协 处理器通过中央处理器(CPU)接口接收路由协议发来的路由刷新命令,控 制SRAM (静态存储器)和CAM (Content Addressable Memory,内容可寻 址存储器)进行路由转发表项的硬件刷新和存储,从而支持大容量的路由转 发表。但是,现有硬件转发表的刷新技术基本上都是CPU根据上层协议的 运行情况,直接下发微指令进行硬件转发表的刷新,或者,通过专门设 置的模块(如路由査找协处理器)将CPU命令分割成可以直接执行的微 指令进行硬件转发表的刷新;由于上述的微指令基本上是针对单条表项 的读、写,因此效率非常低下;特别是在需要进行表项搬移时,需要进行两个步骤的处理才能完成 (先对源表项内容进行硬件读,然后在目的表项位置进行读取内容的硬 件写操作),也就是说,硬件转发表中的数据首先要被拷贝上传给CPU 实现硬件读,再由CPU下发到硬件转发表实现硬件写,才能完成硬件转 发表中一个或几个表项的搬移;显然,这一过程不但涉及数据在硬件之 问的拷贝和传输操作,而且很多情况下数据传输并不是直接在CPU和硬 件转发表间直接进行,中间需要第三方器件(转发装置或者单独设置的 芯片)的中转,传输效率很低;事实上,表项搬移是硬件转发表刷新过 程中无法回避的操作,同时也是最耗时的操作,每秒钟仅能够完成4k左右;对于一些存在优先级关系的表项而言,上述硬件转发表刷新技术的 缺陷表现的尤为明显(1) 对于IPv4/v6 FTN (VPN Routing & Forwarding, VPN路由和转发实例)表(俗称为路由表)来说,其表项的路由前缀之间存在优先级 关系(如前缀位数越多优先级越高,这样具有25bit前缀的路由相对于具 有20bit前缀的路由,其具有更高的优先级),在进行硬件存储时需要将 高优先级的表项放置在低优先级表项之前;举例来说,路由表项IP1、 IP2和IP3都具有24bit前缀,现在要插入 一条具有32bit前缀的路由IP4,则需要先将IP1表项搬移到IP3后面的 位置,然后在原IP1表项位置刷新写入IP4表项,如图1A所示;再例如,现在删除图1A中的表项IP3,则需要将IP1表项搬移到IP3 表项的位置,然后将原IP表项位置置为无效,如图1B所示;上述图1A和图1B仅为说明IPv4/v6 FTN表项刷新的原理,本领域 技术人员可以了解,FTN表容量非常大,在一般核心层的设备中可达到 M级,因此其刷新过程中往往涉及到大量的表项搬移;(2) 对于IPv4/v6ACL (Access Control List,访问控制列表)表来 说,其表项仅仅从下发对象(大类)的角度,就分为全局(Global)、 VLAN和端口 (Port)三类优先级,而且在每一个大类内部,又细化为很 多的小类,比如ACL、 MQC (Modular QoS Command-line,模块化的QoS 命令行)、PBR (Policy Based Routing,策略路由)等,各小类之间又设 置有相应的优先级;因此,每次下发指定类型的表项时,需要先找到相 应的优先级位置,将低优先级的表项向后搬移,再将下发表项写入空出 来的位置;举例来说,如果想在VLAN块和Port块之间插入一条Port类型规则 (Port Rule),则需要将原Port块向后搬移,在空出来的位置上写入该 Port类型规则,如图2所示;在实际应用中,IPv4/v6 ACL表不但规格较大,而且动态生成的ACL 表与实际上网用户相关,静态配置的ACL表需要经常性调整,其同样涉及到大量的表项搬移;上面以IPv4/v6 FTN表和IPv4/v6 ACL表为例,对现有的硬件转发表 刷新技术进行了简单的描述,本领域技术人员可以了解,硬件转发表当 然不限于上述两种类型。但从上述对IPv4/v6 FTN表和IPv4/v6 ACL表的 描述可以看出,现有的硬件转发表刷新技术都是对硬件(如SRAM和 CAM)中存储的硬件转发表直接进行操作,涉及了大量的转发表项搬移 问题,导致表项刷新进度十分缓慢;上述刷新效率低又导致了以下问题虽然CPU的软件转发表已经更 新,但硬件中(如SRAM和CAM)存储的、进行实际转发所依据的硬件 转发表并没有获得及时的同步,因此该转发表项并未生效,造成安全黑 洞;要想通过软件设计来克服这一安全黑洞问题十分困难。
技术实现思路
木专利技术的实施例旨在克服上述现有技术的缺陷,提供能够快速刷新硬件 转发表的技术方案,实现软件、硬件转发表的快速同步。为实现上述目的,本专利技术的实施例提供了一种硬件转发表刷新方法,在 路由设备内存中为硬件转发表设置软件副本,并通过以下步骤实现对硬件转 发表的一次刷新操作歩骤S1:CPU首先访问内存,对所述软件副本进行刷新并将变化表 项的索引通知给硬件刷新单元;歩骤S2:所述硬件刷新单元通过直接内存访问DMA方式访问内存 中所述软件副本,根据所述索引将变化表项逐条写入所述硬件转发表。相应的,本专利技术的实施例还提供了一种硬件转发表刷新装置,包括 分别与路由设备的CPU和硬件转发表连接的硬件刷新单元,且所述硬件刷新单元通过直接内存访问DMA方式访问内存中的、硬件转发表的软件副本;所述硬件刷新单元接收路由设备CPU在先访问内存时刷新所述软件副本获得的变化表项的索引,并根据所述索引将变化表项逐条写入所述 硬件转发表,实现对所述硬件转发表的一次刷新操作。相应的,本专利技术的实施例还提供了一种设有上述硬件转发表刷新装置的路由设备。由上述技术方案可知,相比于现有的、直接操作硬件转发表进行读/写的 刷新技术,木专利技术的实施例为硬件转发表设置软件副本,以刷新并读取软件副本中数据的方式取代CPU操作硬件转发表进行数据读取的方式,能够实 现硬件转发表的快速刷新,从而有效提高CPU所维护软件转发表和路由设备中硬件转发表之间的同步性,降低安全黑洞产生的可能。通过以下参照附图对优选实施例的说明,本专利技术的上述以及其它目的、特征和优点将更加明显。附图说明图1A、 1B为现有技术中对于IPv4/v6 FTN表进行表项添加、删除的硬件刷新示意图2为现有技术中对于IPv4/v6 ACL表进行表项添加的硬件刷新示意图3A、 3B分别为本专利技术提供的硬件转发表刷新方法实施例的流程图4为本专利技术提供的硬件转发表刷新装置一实施例的框图5A、 5B分别为硬件转发表刷新装置设于路由设备转发器件或者单独设置的可编程器件的应用示意图6A、 6B分别为图4所示硬件转发表刷新装置中,硬件刷新单元实施例的框图。具体实施例方式下面将详细描述本专利技术的具体实施例。应当注意,这里描述的实施例只 甩于举例说明,并不用于限制本专利技术。本专利技术首先提供了一种硬件转发表刷新方法,包括以下步骤-步骤SO:在路由设备内存中为硬件转发表设置软件副本,该软件副 本的结构和内容与路由设备的硬件转发表一致,其表项索引也同硬件转发本文档来自技高网
...

【技术保护点】
一种硬件转发表刷新方法,其特征在于,在路由设备内存中为硬件转发表设置软件副本,并通过以下步骤实现对硬件转发表的一次刷新操作: 步骤S1:CPU首先访问内存,对所述软件副本进行刷新并将变化表项的索引通知给硬件刷新单元; 步骤S2: 所述硬件刷新单元通过直接内存访问DMA方式访问内存中所述软件副本,根据所述索引将变化表项逐条写入所述硬件转发表。

【技术特征摘要】
1.一种硬件转发表刷新方法,其特征在于,在路由设备内存中为硬件转发表设置软件副本,并通过以下步骤实现对硬件转发表的一次刷新操作步骤S1CPU首先访问内存,对所述软件副本进行刷新并将变化表项的索引通知给硬件刷新单元;步骤S2所述硬件刷新单元通过直接内存访问DMA方式访问内存中所述软件副本,根据所述索引将变化表项逐条写入所述硬件转发表。2. 根据权利要求1所述的硬件转发表刷新方法,其特征在于,所述 歩骤Sl中CPU将变化表项的索引通知硬件刷新单元的步骤包括CPU 识别软件副本中发生变化表项的范围,并将该范围的起始索引和结束索 引通知给硬件刷新单元。3. 根据权利要求1或2所述的硬件转发表刷新方法,其特征在于, 还包括歩骤S3:所述硬件刷新单元完成硬件转发表写入后,通过中断方 式通知所述CPU进行硬件转发表的下一次刷新;其中,每一次刷新包括 对某一类型硬件转发表的局部或者整体刷新。4. 根据权利要求1或2所述的硬件转发表刷新方法,其特征在于, 还包括歩骤S3':所述硬件刷新单元完成硬件转发表写入后,置位指定寄 存器来标识硬件转发表刷新结束;以及,所述CPU保持周期性轮询,当 轮询到所述指定寄存器置位后进行硬件转发表的下一次刷新;其中,每 一次刷新包括对某一类型硬件转发表的局部或者整体刷新。5. —种硬件转发表刷新装置,其特征在于,包括 分别与路由设备的CPU和硬件转发表连接的硬件刷新单元,且所述硬件刷新单元通过直接内存访问DMA方式访问内存中的、硬件转发表的 软件副本;所述硬件刷新单元接收路由设备CPU在先访问内存时刷新所 述软件副本获得的变化表项的索引,并根据所述索引将变化表项逐条写 入所述硬件转发表,实现对...

【专利技术属性】
技术研发人员:杨燕军
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

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

1