一种加权多路径WCMP的路由控制方法、装置和系统与流程

文档序号:11959842阅读:382来源:国知局
一种加权多路径WCMP的路由控制方法、装置和系统与流程

本发明涉及网络通信技术,尤其涉及一种加权多路径(WCMP,Weighted Cost Multipath)的路由控制方法、装置和系统。



背景技术:

WCMP能够非常灵活的按照权重比例在链路上传递流量,网络设备可以利用WCMP将到达同一目的网络的流量,按权重比例分担到不同的链路上转发出去。当不同链路的权重相同时,此时可以称为等价多路径(ECMP,Equal-Cost Multipath Routing),可以理解地,ECMP是WCMP的特例。

在当前的网络设备中,WCMP的实现方法如图1所示,包括两部分描述:1、转发面表项设计;2、控制面配表设计。

对于转发面表项设计来说,通常采用一级索引的形式,即查询路由表获取该路由下的多路径成员组信息,多路径成员组信息可以包括多路径成员的索引基址(member.base_idx)和多路径成员个数(count),然后由哈希模块获取哈希索引(随机值)对多路径成员个数进行取模运算,获得多路径成员组信息中各路径成员对应的一个随机的相对偏移(member.offset),再加上多路径成员的索引基址(member.base_idx),即可获得任一成员路径的转发信息。

在此转发面的表项设计下,控制面配表设计来实现WCMP的过程如下:若某路由包括N个路径成员的转发信息,则上层软件会将N个路径成员的转发信息汇总得到成员表,从成员表中分配一个对应该表内路径成员的成员索引基址,按成员索引基址连续写入N个路径成员条目,不同路径成员之间的权重可以根据成员条目在该成员表中重复填充的次数来体现,按照权重越大的路径成员,那么随机命中该路径成员的概率越大的原则来实现WCMP。可以理解地,当N 个路径成员条目在成员表中仅填充一次时,则实现了ECMP。如图2所示,假设某路由对应8个路径成员,权重比例为1:1:1:1:2:2:4:4,那么根据各路径成员的权重比例,随机命中各路径成员的概率依次为:成员1:1/16,成员2:1/16,成员3:1/16,成员4:1/16,成员5:2/16,成员6:2/16,成员7:4/16,成员8:4/16。此时,可以将成员5和成员6在成员表中填充了2次,成员7和成员8在成员表中填充了4次。通过重复填充的方式,满足权重越大的路径成员,那么随机命中该路径成员的概率越大的原则。

上述处理方式会出现某些路径成员会在成员表中占据多个成员表条目的现象。对于WCMP来说,成员表中所包括的条目数要远大于实际的路径成员个数,如图2中,成员个数为8个而成员表中的表项的条目个数为16个。由于成员表的每一个条目的表项宽度都较宽,导致成员表资源消耗很大,而网络设备的处理器芯片中,最宝贵资源就是表项存储资源,因此,目前对于WCMP的实现,均需要大量地消耗表项存储资源。



技术实现要素:

为解决上述技术问题,本发明实施例期望提供一种WCMP的路由控制方法、装置和系统,能够减少实现WCMP时表项存储资源的消耗,节省芯片存储空间。

本发明的技术方案是这样实现的:

第一方面,本发明实施例提供了一种加权多路径WCMP的路由控制方法,所述方法包括:

根据同一路由下的各路径成员的权重对应获取随机命中各路径成员的概率;

根据所述随机命中各路径成员的概率按照预设的分组策略进行分组,得到至少一个成员组;其中,随机命中各成员组的概率N相同;且在命中成员组后,随机命中成员组中的各路径成员的概率相同;

建立所述路径成员和所述成员组之间对应关系,得到多级索引表;

将所述多级索引表发送至转发面装置;其中,多级索引表用于使得转发面装置获取加权多路径转发的路径信息。

在上述方案中,所述根据同一路由下的各路径成员的权重对应获取随机命中各路径成员的概率,包括:

将同一路由下的所有路径成员的权重进行求和,作为分母;

将所述各路径成员的权重作为分子,获取得到随机命中各路径成员的概率。

在上述方案中,所述根据随机命中各路径成员的概率按照预设的分组策略进行分组,得到至少一个成员组,包括:

当随机命中一路径成员的概率P与随机命中各成员组的概率N之间的关系满足P=mN,其中,m为正整数时,设置m个对应于该路径成员的成员组;

当随机命中一路径成员的概率P与随机命中各成员组的概率N之间的关系满足P=nN+p1,其中,n为自然数,余数p1小于N时,设置n个对应于该路径成员的成员组,并且按照预设的设置规则为余数总和为N的路径成员额外设置成员组。

在上述方案中,所述按照预设的设置规则为余数总和为N的路径成员额外设置成员组,包括:

将余数相同且余数总和为N的路径成员设置成员组;以及,

在余数不同且余数总和为N的路径成员中,按照余数较大的路径成员的余数除以余数最小的路径成员的余数所得到的商数对余数较大的路径成员进行复制,并将复制后的路径成员与余数最小的路径成员设置成员组。

在上述方案中,所述建立路径成员和成员组之间对应关系,得到多级索引表,具体包括:

将所有成员组归纳为成员组表;

将所有路径成员归纳为成员表;

按照每个成员组所包括的路径成员建立路径成员和成员组之间的对应关系,并且建立成员组表与成员表之间的索引表。

第二方面,本发明实施例提供了一种加权多路径WCMP的路由控制方法, 所述方法包括:

接收控制面发送的多级索引表;其中,所述多级索引表包括成员组表和路径成员表,其中,所述成员组表中包括至少一个成员组条目,每个成员组条目对应路径成员表中至少一个路径成员;并且随机命中各成员组条目的概率N相同;且在命中成员组条目后,随机命中所述成员组条目所对应的各路径成员的概率相同;

根据报文查询路由表后,按照所述多级索引表获取路径成员的转发信息。

在上述方案中,所述按照多级索引表获取路径成员的转发信息,包括:

根据所述报文查询所述路由表后,获取所述多级索引表中成员组表的指针ptr;

根据哈希模块产生的随机哈希因子与所述获取的成员组表的指针ptr随机索引得到所述成员组表中的成员组条目,并获取所述成员组条目在所述路径成员表中所对应的路径成员索引基址base_idx以及路径成员个数count;

通过哈希模块产生的随机哈希因子对所述成员组条目在路径成员表中所对应的路径成员个数进行取模运算,获得随机的相对偏移offset;

将所述相对偏移offset加上所述成员组条目在路径成员表中所对应的路径成员索引基址base_idx,得到所述多级索引表中路径成员表内的路径成员索引,并根据所述路径成员索引获取所述路径成员的转发信息。

第三方面,本发明实施例提供了一种控制面装置,所述控制面装置,包括:获取单元、分组单元、建立单元和发送单元,其中,

所述获取单元,用于根据同一路由下的各路径成员的权重对应获取随机命中各路径成员的概率;

所述分组单元,用于根据所述随机命中各路径成员的概率按照预设的分组策略进行分组,得到至少一个成员组;其中,随机命中各成员组的概率N相同;且在命中成员组后,随机命中成员组中的各路径成员的概率相同;

所述建立单元,用于建立所述路径成员和所述成员组之间对应关系,得到多级索引表;

所述发送单元,用于将所述多级索引表发送至所述转发面装置;其中,多级索引表用于使得转发面装置获取加权多路径转发的路径信息。

在上述方案中,所述获取单元,用于:

将同一路由下的所有路径成员的权重进行求和,作为分母;以及,

将所述各路径成员的权重作为分子,获取得到随机命中各路径成员的概率。

在上述方案中,所述分组单元,用于:

当随机命中一路径成员的概率P与随机命中各成员组的概率N之间的关系满足P=mN,其中,m为正整数时,设置m个对应于该路径成员的成员组;

当随机命中一路径成员的概率P与随机命中各成员组的概率N之间的关系满足P=nN+p1,其中,n为自然数,余数p1小于N时,设置n个对应于该路径成员的成员组,并且按照预设的设置规则为余数总和为N的路径成员额外设置成员组。

在上述方案中,所述分组单元,用于:

将余数相同且余数总和为N的路径成员设置成员组;以及,

在余数不同且余数总和为N的路径成员中,按照余数较大的路径成员的余数除以余数最小的路径成员的余数所得到的商数对余数较大的路径成员进行复制,并将复制后的路径成员与余数最小的路径成员设置成员组。

在上述方案中,所述建立单元,用于:

将所有成员组归纳为成员组表;以及,

将所有路径成员归纳为成员表;以及,

按照每个成员组所包括的路径成员建立路径成员和成员组之间的对应关系,并且建立成员组表与成员表之间的索引表。

第四方面,本发明实施例提供了一种转发面装置,所述转发面装置,包括:接收单元和查询获取单元,其中,

所述接收单元,用于接收控制面发送的多级索引表;其中,所述多级索引表包括成员组表和路径成员表,其中,所述成员组表中包括至少一个成员组条目,每个成员组条目对应路径成员表中至少一个路径成员;并且随机命中各成 员组条目的概率N相同;且在命中成员组条目后,随机命中所述成员组条目所对应的各路径成员的概率相同;

所述查询获取单元,用于根据报文查询路由表后,按照所述多级索引表获取路径成员的转发信息。

在上述方案中,所述查询获取单元,具体用于:

根据所述报文查询所述路由表后,获取所述多级索引表中成员组表的指针ptr;以及,

根据哈希模块产生的随机哈希因子与所述获取的成员组表的指针ptr随机索引得到所述成员组表中的成员组条目,并获取所述成员组条目在所述路径成员表中所对应的路径成员索引基址base_idx以及路径成员个数count;以及,

通过哈希模块产生的随机哈希因子对所述成员组条目在路径成员表中所对应的路径成员个数进行取模运算,获得随机的相对偏移offset;以及,

将所述相对偏移offset加上所述成员组条目在路径成员表中所对应的路径成员索引基址base_idx,得到所述多级索引表中路径成员表内的路径成员索引,并根据所述路径成员索引获取所述路径成员的转发信息。

第五方面,本发明实施例提供了一种加权多路径WCMP的路由控制系统,所述系统包括:控制面装置和转发面装置,其中,

所述控制面装置,用于根据同一路由下的各路径成员的权重对应获取随机命中各路径成员的概率;以及,

根据所述随机命中各路径成员的概率按照预设的分组策略进行分组,得到至少一个成员组;其中,随机命中各成员组的概率N相同;且在命中成员组后,随机命中成员组中的各路径成员的概率相同;以及,

建立所述路径成员和所述成员组之间对应关系,得到多级索引表;以及,

将所述多级索引表发送至所述转发面装置;其中,多级索引表用于使得转发面装置获取加权多路径转发的路径信息;

所述转发面装置,用于接收所述控制面装置发送的多级索引表;其中,所述多级索引表包括成员组表和路径成员表,其中,所述成员组表中包括至少一 个成员组条目,每个成员组条目对应路径成员表中至少一个路径成员;并且随机命中各成员组条目的概率N相同;且在命中成员组条目后,随机命中所述成员组条目所对应的各路径成员的概率相同;以及,

根据报文查询路由表后,按照所述多级索引表获取路径成员的转发信息。

本发明实施例提供了一种WCMP的路由控制方法、装置和系统,利用多级映射的手段,通过条件概率对相同路由下的多个路径成员的权值进行表述,从而使得成员表中表项的条目数与路径成员的个数相同,从而能够减少实现WCMP时表项存储资源的消耗,节省芯片存储空间。

附图说明

图1为现有技术中WCMP的实现方法结构示意图;

图2为现有技术中实现WCMP的成员表示意图;

图3为本发明实施例提供的一种WCMP的路由控制方法流程示意图;

图4为本发明实施例提供的一种多级索引表示意图;

图5为本发明实施例提供的另一种WCMP的路由控制方法流程示意图;

图6为本发明实施例提供的按照多级索引表获取路径成员的转发信息的流程示意图;

图7为本发明实施例提供的一种控制面装置结构示意图;

图8为本发明实施例提供的一种转发面装置结构示意图;

图9为本发明实施例提供的一种WCMP的路由控制系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

在WCMP的实现过程中,由于同一路由下的各路径成员的权重均可以由随机命中各路径成员的概率进行表述,因此,本发明实施例的基本思想是:通过多级映射的方式将随机命中各路径成员的概率表述成条件概率的形式,从而使 得成员表中的表项条目数量与路径成员的个数相同。

基于上述基本思想,参见图3,其示出了本发明实施例提供的一种WCMP的路由控制方法,该方法可以应用于网络设备中用于生成转发表的控制面装置,该方法可以包括:

S301:根据同一路由下的各路径成员的权重对应获取随机命中各路径成员的概率;

示例性地,S301的实现过程具体可以为:

将同一路由下的所有路径成员的权重进行求和,作为分母;并将各路径成员的权重作为分子就能够得到随机命中各路径成员的概率。

如图2所示,路由A对应8个路径成员,权重比例为1:1:1:1:2:2:4:4,那么,所有路径成员的权重求和可以得到1+1+1+1+2+2+4+4=16,并且将这一结果作为分母;将各路径成员的权重作为分子,从而得到随机命中各路径成员的概率依次为:成员1:1/16,成员2:1/16,成员3:1/16,成员4:1/16,成员5:2/16,成员6:2/16,成员7:4/16,成员8:4/16。

S302:根据随机命中各路径成员的概率按照预设的分组策略进行分组,得到至少一个成员组;

其中,随机命中各成员组的概率N相同;且在命中成员组后,随机命中成员组中的各路径成员的概率相同;

具体地,随机命中任一路径成员的概率P可以理解为:在命中该路径成员所在成员组的条件下,在该路径成员所在的成员组中随机命中该路径成员的概率。因此,随机命中各路径成员的概率P的计算公式为P=N×X,其中,P为随机命中一个路径成员的概率,N为随机命中该路径成员所在成员组的概率,X为在命中该路径成员所在成员组的条件下,在该路径成员所在的成员组中随机命中该路径成员的概率。

具体地,为了实现随机命中各成员组的概率N相同;且在命中成员组后,随机命中成员组中的各路径成员的概率相同这一技术特征,根据随机命中各路径成员的概率按照预设的分组策略进行分组,得到至少一个成员组,可以包括:

当随机命中一路径成员的概率P与随机命中各成员组的概率N之间的关系满足P=mN,其中,m为正整数时,设置m个对应于该路径成员的成员组;

当随机命中一路径成员的概率P与随机命中各成员组的概率N之间的关系满足P=nN+p1,其中,n为自然数,余数p1小于N时,设置n个对应于该路径成员的成员组,并且按照预设的设置规则为余数总和为N的路径成员额外设置成员组;

进一步地,按照预设的设置规则为余数总和为N的路径成员额外设置成员组,可以包括:

将余数相同且余数总和为N的路径成员设置成员组;以及,

在余数不同且余数总和为N的路径成员中,按照余数较大的路径成员的余数除以余数最小的路径成员的余数所得到的商数对余数较大的路径成员进行复制,并将复制后的路径成员与余数最小的路径成员设置成员组。

还是以图2所示的路由A对应的8个路径成员为例,随机命中各路径成员的概率可以分解为:成员1: <mrow> <mfrac> <mn>1</mn> <mn>16</mn> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mn>4</mn> </mfrac> <mo>&times;</mo> <mfrac> <mn>1</mn> <mn>4</mn> </mfrac> <mo>,</mo> </mrow>成员2: <mrow> <mfrac> <mn>1</mn> <mn>16</mn> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mn>4</mn> </mfrac> <mo>&times;</mo> <mfrac> <mn>1</mn> <mn>4</mn> </mfrac> <mo>,</mo> </mrow>成员3: <mrow> <mfrac> <mn>1</mn> <mn>16</mn> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mn>4</mn> </mfrac> <mo>&times;</mo> <mfrac> <mn>1</mn> <mn>4</mn> </mfrac> <mo>,</mo> </mrow>成员4: <mrow> <mfrac> <mn>1</mn> <mn>16</mn> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mn>4</mn> </mfrac> <mo>&times;</mo> <mfrac> <mn>1</mn> <mn>4</mn> </mfrac> <mo>,</mo> </mrow>成员5: <mrow> <mfrac> <mn>2</mn> <mn>16</mn> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mn>4</mn> </mfrac> <mo>&times;</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>,</mo> </mrow>成员6: <mrow> <mfrac> <mn>2</mn> <mn>16</mn> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mn>4</mn> </mfrac> <mo>&times;</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>,</mo> </mrow>成员7: <mrow> <mfrac> <mn>4</mn> <mn>16</mn> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mn>4</mn> </mfrac> <mo>&times;</mo> <mn>1</mn> <mo>,</mo> </mrow>成员8:由于8个路径成员的随机命中概率均能分解为与其他数的乘积,因此,可以将这8个路径成员分为四组,随机命中这四个组中的任一组的概率N为

对于成员1、成员2、成员3、成员4来说,各自的余数均为且这四个成员的余数之和为对于成员5和成员6来说,各自的余数均为且这两个成员的余数之和为因此,可以将成员1、成员2、成员3、成员4设置为一个成员组,将成员5和成员6设置为一个成员组;

对于成员7和成员8来说,各自均满足因此,分别为成员7和成 员8设置一个成员组;

从而,将成员1、成员2、成员3、成员4设置为组a;成员5和成员6设置为组b;成员7设置为组c;成员8设置为组d之后,可以得知在组a中,成员1、成员2、成员3、成员4被命中的概率均为在组b中,成员5和成员6被命中的概率均为在组c中,成员7被命中的概率为1;在组d中,成员8被命中的概率为1,从而实现了随机命中各成员组的概率N相同;且在命中成员组后,随机命中成员组中的各路径成员的概率相同。

需要说明的是,若路径成员的随机命中概率分别为的时候,这三个路径成员的余数也分别为且这三个路径成员的余数总和也为此时,需要将余数为的路径成员进行复制,并且由于因此,需要将余数为的路径成员复制为两个路径成员,以使得并且将复制后的两个路径成员与另外两个余数为的路径成员设置为一个成员组。可以理解地,由于余数不同且余数总和为N的路径成员通常为之前设置成员组所剩余的路径成员,因此,需要复制的路径成员数量极少,也不会造成现有技术中所描述的所有大权重的路径成员均进行复制的情况,从而也能减少表项存储资源的消耗现象,节省了芯片存储空间。

还需要说明的是,对于成员概率的最简分数形式的分母不为偶数的情况,为了达到更好的压缩效果,还需要控制面对权重进行微调,此时微调权重所引起的误差需要根据实际应用情况来决定

S303:建立路径成员和成员组之间对应关系,得到多级索引表;

示例性地,建立路径成员和成员组之间对应关系,得到多级索引表,具体可以包括:

将所有成员组归纳为成员组表;

将所有路径成员归纳为成员表;

按照每个成员组所包括的路径成员建立路径成员和成员组之间的对应关系,并且建立成员组表与成员表之间的索引表。

具体地,还是以图2所示的路由A对应的8个路径成员为例,成员1、成员2、成员3、成员4与组a之间、成员5和成员6与组b之间、成员7与组c之间、成员8与组d之间均具有对应关系;随后为组a、组b、组c、组d建立成员组表,从而可以得到如图4所示的对应关系。

可以理解地,多级索引表中,成员表的表项数量与WCMP的路径成员个数一致。

S304:将多级索引表发送至转发面装置;

其中,多级索引表用于使得转发面装置获取加权多路径转发的路径信息。

本实施例对控制面根据同一路由下的各路径成员的权重转化为条件概率来建立多级索引表,从而使得多级索引表中的成员表的表项个数与路径成员的个数相同,从而避免了现有技术由于通过重复填充的方式来满足权重较大的路径成员的方式所导致的表项存储资源的消耗现象,节省了芯片存储空间。

基于前述实施例相同的技术构思,当转发面装置在接收到多级索引表之后,就可以根据多级索引表进行转发路径的查询,参见图5,其示出了本发明实施例提供的另一种WCMP的路由控制方法,该方法可以应用于网络设备中用于根据转发表进行转发的转发面装置,该方法可以包括:

S501:接收控制面发送的多级索引表;

其中,该多级索引表包括成员组表和路径成员表,其中,成员组表中包括至少一个成员组条目,每个成员组条目对应路径成员表中至少一个路径成员;并且随机命中各成员组条目的概率N相同;且在命中成员组条目后,随机命中该成员组条目所对应的各路径成员的概率相同;

可以理解地,多级索引表的生成过程前述实施例中已有详细描述,在此不再赘述。

S502:根据报文查询路由表后,按照多级索引表获取路径成员的转发信息;

可以理解地,由于多级索引表中路径成员表中表项条目数量与WCMP路径成员的个数一致,使得转发面装置对路径成员的表项进行保存所消耗的存储资源要远小于现有技术,因此,减少表项存储资源的消耗现象,节省了芯片存储空间。

具体地,按照多级索引表获取路径成员的转发信息,可以如图6所示,包括:

某报文查询路由表后,获取多级索引表中成员组表的指针ptr;

根据哈希模块产生的随机哈希因子与获取的成员组表的指针ptr随机索引得到成员组表中的成员组条目,并获取成员组条目在路径成员表中所对应的路径成员索引基址base_idx以及路径成员个数count;

通过哈希模块产生的随机哈希因子对成员组条目在路径成员表中所对应的路径成员个数进行取模运算,获得随机的相对偏移offset;

将所述相对偏移offset加上成员组条目在路径成员表中所对应的路径成员索引基址base_idx,得到多级索引表中路径成员表内的路径成员索引,并根据路径成员索引获取路径成员的转发信息。

优选地,在实际应用中,可以将哈希模块产生的随机哈希因子的高位Hash_index_Msb用于与获取的成员组表的指针ptr随机索引得到成员组表中的成员组条目;将哈希模块产生的随机哈希因子的高位Hash_index_Lsb用于对成员组条目在路径成员表中所对应的路径成员个数count进行取模运算。本发明实施例对此不作赘述。

本实施例对转发面根据前述实施例中多级索引表获取路径成员的转发信息进行了描述,从而使得转发面保存多级索引表时,路径成员表中的条目数与路径成员数量一致,避免了转发面的存储资源的消耗现象,节省了芯片存储空间。

基于前述实施例相同的技术构思,参见图7,其示出了本发明实施例提供的一种控制面装置70,所述控制面装置70,包括:获取单元701、分组单元702、建立单元703和发送单元704,其中,

获取单元701,用于根据同一路由下的各路径成员的权重对应获取随机命 中各路径成员的概率;

分组单元702,用于根据随机命中各路径成员的概率按照预设的分组策略进行分组,得到至少一个成员组;其中,随机命中各成员组的概率N相同;且在命中成员组后,随机命中成员组中的各路径成员的概率相同;

建立单元703,用于建立路径成员和成员组之间对应关系,得到多级索引表;

发送单元704,用于将多级索引表发送至转发面装置;其中,多级索引表用于使得转发面装置获取加权多路径转发的路径信息。

示例性地,获取单元701,具体用于:

将同一路由下的所有路径成员的权重进行求和,作为分母;以及,

将各路径成员的权重作为分子,获取得到随机命中各路径成员的概率。

示例性地,分组单元702,具体用于:

当随机命中一路径成员的概率P与随机命中各成员组的概率N之间的关系满足P=mN,其中,m为正整数时,设置m个对应于该路径成员的成员组;

当随机命中一路径成员的概率P与随机命中各成员组的概率N之间的关系满足P=nN+p1,其中,n为自然数,余数p1小于N时,设置n个对应于该路径成员的成员组,并且按照预设的设置规则为余数总和为N的路径成员额外设置成员组。

进一步地,分组单元702,具体用于:

将余数相同且余数总和为N的路径成员设置成员组;以及,

在余数不同且余数总和为N的路径成员中,按照余数较大的路径成员的余数除以余数最小的路径成员的余数所得到的商数对余数较大的路径成员进行复制,并将复制后的路径成员与余数最小的路径成员设置成员组。

示例性地,建立单元703,具体用于:

将所有成员组归纳为成员组表;以及,

将所有路径成员归纳为成员表;以及,

按照每个成员组所包括的路径成员建立路径成员和成员组之间的对应关 系,并且建立成员组表与成员表之间的索引表。

本实施例提供的控制面装置70,根据同一路由下的各路径成员的权重转化为条件概率来建立多级索引表,从而使得多级索引表中的成员表的表项个数与路径成员的个数相同,从而避免了现有技术由于通过重复填充的方式来满足权重较大的路径成员的方式所导致的表项存储资源的消耗现象,节省了芯片存储空间。

基于前述实施例相同的技术构思,参见图8,其示出了本发明实施例提供的一种转发面装置80,该转发面装置80,包括:接收单元801、和查询获取单元802,其中,

接收单元801,用于接收控制面发送的多级索引表;其中,多级索引表包括成员组表和路径成员表,其中,成员组表中包括至少一个成员组条目,每个成员组条目对应路径成员表中至少一个路径成员;并且随机命中各成员组条目的概率N相同;且在命中成员组条目后,随机命中成员组条目所对应的各路径成员的概率相同;

查询获取单元802,用于根据报文查询路由表后,按照多级索引表获取路径成员的转发信息。

示例性地,查询获取单元802,具体用于:

根据报文查询路由表后,获取多级索引表中成员组表的指针ptr;以及

根据哈希模块产生的随机哈希因子与获取的成员组表的指针ptr随机索引得到成员组表中的成员组条目,并获取成员组条目在路径成员表中所对应的路径成员索引基址base_idx以及路径成员个数count;以及,

通过哈希模块产生的随机哈希因子对成员组条目在路径成员表中所对应的路径成员个数进行取模运算,获得随机的相对偏移offset;以及,

将相对偏移offset加上成员组条目在路径成员表中所对应的路径成员索引基址base_idx,得到多级索引表中路径成员表内的路径成员索引,并根据路径成员索引获取路径成员的转发信息。

本实施例提供的转发面装置80,根据前述实施例中多级索引表获取路径成 员的转发信息,从而使得转发面保存多级索引表时,路径成员表中的条目数与路径成员数量一致,避免了转发面的存储资源的消耗现象,节省了芯片存储空间。

基于前述实施例相同的技术构思,参见图9,其示出了本发明实施例提供的一种WCMP的路由控制系统90,该系统90包括:控制面装置70和转发面装置80,其中,

控制面装置70,用于根据同一路由下的各路径成员的权重对应获取随机命中各路径成员的概率;以及,

根据随机命中各路径成员的概率按照预设的分组策略进行分组,得到至少一个成员组;其中,随机命中各成员组的概率N相同;且在命中成员组后,随机命中成员组中的各路径成员的概率相同;以及,

建立路径成员和成员组之间对应关系,得到多级索引表;以及,

将多级索引表发送至转发面装置80;其中,多级索引表用于使得转发面装置80获取加权多路径转发的路径信息;

转发面装置80,用于接收控制面装置70发送的多级索引表;其中,多级索引表包括成员组表和路径成员表,其中,成员组表中包括至少一个成员组条目,每个成员组条目对应路径成员表中至少一个路径成员;并且随机命中各成员组条目的概率N相同;且在命中成员组条目后,随机命中成员组条目所对应的各路径成员的概率相同;以及,

根据报文查询路由表后,按照多级索引表获取路径成员的转发信息。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方 框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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