基于多量级线卡的FIB表分解方法与流程

文档序号:11710010阅读:316来源:国知局
基于多量级线卡的FIB表分解方法与流程

本发明涉及路由器技术领域,具体涉及一种多量级线卡的fib表分解方法。



背景技术:

核心路由器的转发表项产生了爆炸式扩增,而传统路由器中的路由条目采取各块线卡分别完全存储全部路由表项的存储策略,一方面对硬件的存储空间造成浪费,另一方面给路由器转发功能的实现带来极大负担。传统模型下,路由器的多块线卡能容纳的路由条目数完全相同。

部分存储相对于完全存储,是将全部路由条目有序的分成若干组,分别存储在多块线卡上,每块线卡上只存储完整路由表的一部分。dsf存储模型依据ip前缀若干bit位进行转发表分解存储,将完整路由表分解成若干组存储在多个线卡中,从而达到路由表的部分存储。这种存储方式将全部路由条目按照线卡个数分配,但由于条目前缀的前几位不一定均衡,所以dsf也存在各个线卡存储条目不一定均匀的缺陷。



技术实现要素:

本发明旨在至少解决上述技术问题之一。

为此,本发明的目的在于提出一种多量级线卡的fib表分解方法。

为了实现上述目的,本发明的实施例公开了一种多量级线卡的fib表分解方法,包括以下步骤:s110:获取所有线卡的饱和度,选择饱和度最低的线卡为选定线卡;s120:根据设定的存储允许范围计算所述选定线卡的剩余可存储条目;s130:层序遍历路由生成树以获取与所述选定线卡的剩余可存储条目相等的节点;s140;将选定子树移至所述选定线卡中进行存储,并删除所述路由生成树中已经存储的子树;s150:重复s110-s140,直至将所述路由生成树的全部节点分解存储在多个线卡中。

根据本发明实施例的多量级线卡的fib表分解方法,通过分解存储完整路由表的一部分,达到完整fib表的分解存储,以减少由于传统路由器中各块线卡分别完全存储全部路由表项的存储策略造成对硬件的存储空间的浪费;同时降低路由器转发的负担。

另外,根据本发明上述实施例的基于多量级线卡的fib表分解方法,还可以具有如下附加的技术特征:

进一步地,各个线卡的存储容量各不相同,其中,定义线卡存储饱和度linecardsauration(ls),即所述线卡存储饱和度为单独线卡存储量占容量的百分比。

进一步地,对于任一线卡的存储条件为,初始路由表条目n限制:1<n<c*tls,其中,tls表示预设的线卡存储阈值,c表示线卡存储容量;任意线卡的存储可允许饱和度范围ls<n/c*100%。

进一步地,所述存储允许范围收敛于用于表示线卡存储限度的存储阈值。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的优点结合下面附图对实施例的描述将变得明显和容易理解,其中:

图1是本发明一个实施例的基于多量级线卡的fib表分解方法的流程图;

图2是本发明一个实施例的路由生成树的示意图;

图3是本发明一个实施例的多个线卡当前存储容量的示意图;

图4是本发明一个实施例的更新后的路由生成树的示意图;

图5是本发明一个实施例的更新后的多个线卡当前存储容量的示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

以下结合附图描述本发明。

图1是本发明实施例的基于多量级线卡的fib表分解方法的流程图。如图1所示,一种基于多量级线卡的fib表分解方法,包括以下步骤:

s110:获取所有线卡的饱和度,选择饱和度最低的线卡为选定线卡。

s120:根据设定的存储允许范围计算选定线卡的剩余可存储条目。s130:层序遍历路由生成树以获取与选定线卡的剩余可存储条目相等的节点。

s140:将选定子树移至所述选定线卡中进行存储,并删除所述路由生成树中已经存储的子树。

s150:重复s110-s140,直至将路由生成树的全部节点分解存储在多个线卡中。

在本发明的一个实施例中,在所有线卡中,各个线卡的存储容量各不相同。其中,为了以相同的标准表示不同线卡的已存储量,定义线卡存储饱和度linecardsauration(ls),即单独线卡存储量占容量的百分比。。

在本发明的一个实施例中,对于任一线卡的存储条件为:

初始路由表条目n限制:1<n<c*tls,其中,tls表示预设的线卡存储阈值,c表示线卡存储容量;

任意线卡的存储可允许饱和度范围ls<n/c*100%。

在本发明的一个实施例中,存储允许范围收敛于表示线卡存储限度的存储阈值。

在本发明的一个实施例中,当n超过tls*c时,采取终端路由聚合的方式使n控制在范围之内。

为使本领域技术人员进一步理解本发明,将通过以下实施例进行详细说明。

图2是本发明一个实施例的路由生成树的示意图。如图2所示,其中灰色节点为表项中真实存在的节点,白色节点是为了使生成树完整而构建的虚拟节点。

图3是本发明一个实施例的多个线卡当前存储容量的示意图。如图3所示,巡查所有线卡的饱和度,寻找饱和度最小的线卡lc,即选择饱和度为40%的线卡进行分解存储。若有若干块线卡的饱和度相等则默认令lc为硬件余量大的线卡。

经过计算使m为lc的剩余可存储条目,其中m=lc总条目*lsperlc-lc存量,即不超过临界值的余量。

层序遍历路由生成树寻找m值,找不到就将m=m-1重新遍历生成树。

假设m=5寻找到的树节点,将找到的子树移至线卡lc,更新线卡lc的存储值、ls以及路由生成树。更新后的多个线卡当前存储容量和路由生成树的状态分别如图4和图5所示。

重复巡查所有线卡的饱和度至更新线卡之间的步骤,直至将路由生成树的全部节点分解存储在多个线卡中。

本发明实施例的基于多量级线卡的fib表分解方法相对于现有技术,存在以下优点:

通过一定分解存储算法令各个线卡分别存储完整路由表的一部分,达到完整fib表的分解存储。

为了进一步达到节能、维持路由表可控的目标,路由器会被设置一个线卡存储阈值,用以表示线卡存储可达到的限度。存储过程中,线卡的存储饱和度将维持在阈值之下,由此使得每块线卡即不会过度存储,也不会浪费过多空间,让线卡达到特殊情况下的分解均衡。

另外,本发明实施例的多量级线卡的fib表分解方法和系统的其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,不做赘述。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1