分组转发装置和方法_3

文档序号:8383670阅读:来源:国知局
用于重新指向大流子组到轻载荷路径的流重平衡表,因此,导致相同出口路径组(例如,ECMP路径组或LAG)中的不同出口路径上更均匀的带宽分布。
[0043]图5是图示根据本发明的实施例的路径选择装置的示意图。显示于图1中的路径选择装置104可以使用显示于图5中的路径选择装置500来实施。路径选择装置500包含基于哈希的路径选择电路502、动态载荷平衡电路504以及复用器(MUX) 506。具体地,基于哈希的路径选择电路502用于实现显示于图1中的基于流组的路径选择电路112,以及动态载荷平衡电路504用于实现显示于图1中的基于流子组的路径选择电路114。
[0044]当有分组即将转发时,检查出口路径组表(未示出),以确定应该使用哪个出口路径组。例如,选择具有出口路径组索引eCmp_grp_idx = 2的出口路径组,其中,所选择的出口路径组包含由显示于图3中的监测电路306_1-306_N监测的N个出口路径,且通过所选择的出口路径组的出口路径转发的流子组由显示于图4中的大流监测控制器402所监测。此外,生成哈希结果pkt_hash用于即将转发的分组。例如,哈希结果pkt_hash可以分割到流组索引FGI和流子组索引FsGI。应该注意到,哈希结果pkt_hash,包含流组索引FGI和流子组索引FsGI,用于识别哪个即将转发的分组分类到的流子组,且流组索引FGI用于识别哪个即将转发的分组分类到的流组。
[0045]如上所述,显示于图3中的查找表302中的每个表条目的条目索引是存储器地址。因此,路径选择信号ecmpjdx由查找表302的一个表条目(其包含下一跳信息)储存在其中的存储器地址设置。基于哈希的路径选择电路502可采用任何已知的基于哈希的路径选择算法,以基于流组索引FGI,生成第一路径选择信号ADDR。。例如,哈希阈值算法可以由基于哈希的路径选择电路502采用。
[0046]关于动态载荷平衡电路504,其包含存储装置512和加法器514。存储装置512用于储存流重平衡表516。在一个示范性设计中,流重平衡表516可在不同的出口路径组之间共享。流重平衡表至少部分基于路径率监测值来更新。因此,如图5所示,流重平衡表516的每个表条目的条目索引是出口路径组索引ecmp_grp_idx和哈希结果pkt_hash的组合。当选中表条目时,地址偏移idx_ofS从流重平衡表516输出到加法器514。在本实施例中,条目索引可以储存在CAM或SRAM,以及地址偏移可以储存在SRAM,因此,流重平衡表516可以用基于SRAM的搜寻表来实施。接下来,加法器514将地址偏移idX_ofs加到基本地址ADDRbase,以生成第二路径选择信号 ADDRiq SPjADDR1= ADDRbase+idx_ofs。
[0047]显示于图3中的查找表302还可以在不同的出口路径组之间共享。优选,与相同出口路径组关联的表条目可以用连续的存储器地址储存在分配的存储器空间。因此,一个与相同出口路径组关联的表条目可以由用作基本地址的存储器地址来索引,且剩余的表条目可以由存储器地址来索引,每个为基本地址加上一个地址偏移。为了减少表大小,流重平衡表516可仅仅储存地址偏移,如图5所示。然而,此并非用于作为本发明的限制。备选地,加法器514可省略,且流重平衡表516可修改为储存查找表302中的表条目的条目索引。因此,当选中流重平衡表516的表条目时,储存的存储器地址(即,查找表302中的表条目的条目索引)从流重平衡表516输出以作为第二路径选择信号ADDRp
[0048]复用器506用于选择第一路径选择信号ADDRtl和第二路径选择信号ADDR i中的一个作为其输出。具体地,当选中流重平衡表516的一个表条目时,表示动态载荷平衡功能应用应用到分组的转发,复用器506输出第二路径选择信号ADDR1作为路径选择信号ecmp_idx ;以及当没有选中流重平衡表516的表条目时,表示不需要将动态载荷平衡功能应用到分组的转发,复用器506输出第一路径选择信号ADDRtl作为路径选择信号ecmpjdx。
[0049]考虑一种使能动态载荷平衡功能用于具有出口路径组索引ecmp_grp_idx = 2的出口路径组的情况。初始地,流重平衡表516不包含用于出口路径组的载荷平衡的表条目。因为没有选中流重平衡表516的表条目,路径选择信号ecmpjdx对应于分类到与具有出口路径索引eCmp_grp_idX = 2的分组出口路径组关联的流组的分组,由基于哈希的路径选择电路502来设置。当使能动态载荷平衡功能用于出口路径组时,路径率监测器300和大流监测器500有效地执行如上所述预期的功能。初始地,用于具有出口路径组索引ecmp_grp_idx = 2的出口路径组的出口路径的所有瞬时路径率值PRo1kJ-PRo^N和平均路径率值PRAV(;_1-PRAV(;_N,由初始值(例如,O)设置。此外,初始地,没有通过具有出口路径组索引ecmp_grp_idx = 2的出口路径组的出口路径转发的大流子组由大流监测器500俘获。当选择出口路径组中的一个或多个路径用于分组转发时,路径率监测器300将更新一个或多个路径率监测值(即,平均路径率值PRATC_1-PRAV(;_N),且大流监测器500将俘获一个或多个新大流子组和/或更新一个或多个现存的俘获的大流子组。
[0050]当比较电路304检测到一个路径率监测值(即,平均路径率值PRatc_1-PRatc_N)超过预定阈值TH_R时,比较电路304生成指示信号Sind以通知控制器102。例如,当控制器102是运行固件FW的处理器时,指示信号Sind可以是处理器的中断。接下来,控制器102读取状态寄存器以找出哪个{出口路径组,路径}触发中断。另外,控制器102从路径率监测器300读取出口路径组的路径率监测值(即,平均路径率值PRATC_1-PRAV(;_N),并读取任何从大流监测器400俘获的大流子组的标识符。控制器102参考路径率监测值以找出至少一个轻载荷路径,并将至少一个轻载荷路径看作一个或多个流子组重指向的至少一个目的路径。此外,控制器102参考所俘获的大流子组,以找出哪个流子组应该重指向。换句话说,基于从路径率监测器300和大流监测器500给出的信息,控制器102在怎样编程/更新流重平衡表516上作出决定。在更新了流重平衡表516后,分类到大流子组的分组可以重指向轻负载路径。
[0051]如上所述,当控制器102由指示信号Sind通知时,流重平衡表516可以通过增加新的表条目和/或替换旧的表条目来更新。另外,因为存储装置512具有有限的存储空间,流重平衡表516的每个表条目可以老化以释放占用的存储空间。除了老化,控制器102可采用表管理策略以更新流重平衡表516。
[0052]例如,控制器102还用于当特定流组的特定大流子组从大流子组分离出来时,更新具有对应于与出口路径组关联的特定流组的特定大流子组的条目的流重平衡表516。换句话说,当由大流监测控制器402之前俘获的特定流子组被具有更多业务载荷的另一流子组替换时,特定流子组现在不是前M个大流子组之一了。因此,流重平衡表516需要通过替换或移除与特定流子组关联的表条目来更新。
[0053]对于另一示例,控制器102还用于当由于路径/链路下降事件特定出口路径从出口路径组移除时,更新具有对应于出口路径组的特定出口路径的条目的流重平衡表516。换句话说,流重平衡表516在出口路径组的路径移除中需要管理。
[0054]在一个示范性设计中,每个出口路径组还在出口路径组表中分配使能位DLB_en。使能位DLB_en可以由控制器(例如,运行固件FW的处理器)102设置,以指示所提出的动态载荷平衡功能是否应该使能用于对应出口路径组。例如,当DLB_en = I用于具有出口路径组索引eCmp_grp_idx = 2的出口路径组时,使能动态载荷平衡功能,用于分类到与具有出口路径组索引eCmp_grp_idx = 2的出口路径组关联的流组的分组。当DLB_en = O用于具有出口路径组索引eCmp_grp_idx = 2的出口路径组时,禁能动态载荷平衡功能,用于分类到具有与出口路径组索引ecmp_grp_idx = 2的出口路径组关联的流组的分组。
[0055]简而言之,当接收到分组时,访问出口路径组表以读取使能位DLB_en和出口路径组的出口路径组索引,其中使能位DLB_en用于确定使能动态载荷平衡功能是否用于出口路径组,且当使能用于出口路径组的动态载荷平衡功能时,出口路径组索引用于执行表查找用于路径选择/下一跳选择。
[0056]在使能位DLB_en指示所提出的动态载荷平衡功能不使能用于所选择的出口路径组的情况中,基于流组的路径选择电路112(例如,基于哈希的路径选择电路502)用于从所选择的出口路径组选择目的路径,基于流子组的路径选择电路114(例如,动态载荷平衡电路504)不用于从所选择的出口路径组选择目的路径,路径率监测器106 (例如,路径率监测器300)不需要更新任何路径率监测值用于所选择的出口路径组,以及大流监测器108 (例如,大流监测器400)不需要追踪通过所选择的出口路径组的出口路径转发的任何大流子组。
[0057]在使能位DLB_en指示提出的动态载荷平衡功能应该使能用于所选择的出口路径组的另一情况中,基于流组的路径选择电路112(例如,基于哈希的路径选择电路502)和基于流子组的路径选择电路114(例如,动态载荷平衡电路504)中的一个用于从所选择的出口路径组中选择目的路径。当由于表条目缺失,基于流子组的路径选择电路114(例如,动态载荷平衡电路504)不用于从所选择的出口路径组选择目的路径用于分组时,路径率监测器106 (例如,路径率监测器300)不需要更新对应于由基于流组的路径选择电路112 (例如,基于哈希的路径选择电路502)选择的目的路径的路径率监测值来转发分组,且大流监测器108 (例如,大流监测器400)不需要更新对应于所选择的出口路径组的大流子组的当前追踪结果。然而,当由于选中表条目,基于流子组的路径选择电路11
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1