分组转发装置和方法_2

文档序号:8383670阅读:来源:国知局
用作流组的标识符,并使用流组索引FGI和流子组索引FsGI的组合,以用作流组中流子组的标识符,可减少存储器要求,由此,减少提出的分组转发装置100的产出成本。然而,此仅仅用于说明性的目的。任何能够将与相同出口路径组关联的流分类到多个流子组以及将流子组分类到多个流组的装备可以采用。例如,每个分组的全部元组可以直接用于指示哪个分组应该分类到流组的流子组。
[0026]路径选择信号ecmpjdx由基于流组的路径选择电路112或基于流子组路径选择电路114来设置。路径选择信号ecmpjdx控制用于转发分组的目的路径的选择。当提出的动态载荷平衡功能应用到分组的转发时,路径选择信号ecmpjdx还通知所选择的出口路径的路径率监测器106。因此,路径率监测器106基于分组的业务更新所选择的出口路径的路径率监测值。具体地,路径率监测器106用于监测相同出口路径组的出口路径的数据率,以分别生成路径率监测值。换句话说,当存在不同的出口路径组时,路径率监测器106为这些出口路径组的出口路径生成路径率监测值。
[0027]图3是图示根据本发明的实施例的路径率监测器的示意图。显示于图1中的路径率监测器106可以使用显示于图3中的路径率监测器300来实施。路径率监测器300包含查询表302、对应于出口路径组的比较电路304以及分别对应于出口路径组的不同出口路径的多个监测电路306_1、306_2...306_Ν。路径率监测器300每个路径具有一个监测电路,且每个出口路径组具有一个比较电路。换句话说,当在一个出口路径组(例如,ECMP路径组或LAG)存在N个出口路径时,路径率监测器300用于具有N个监测电路以及单个比较电路用于相同出口路径组。为了清楚和简洁起见,图3仅仅显示监测电路和一个比较电路用于一个出口路径组。应该注意到,查找表302可在不同出口路径组之间共享。因此,仅仅一个查找表302在路径率监测器106中创建。
[0028]查找表302具有多个表条目,每个储存邻近索引adj_idx以及关联的率计数器指针rate_cnt_ptr。查找表302可以储存在静态随机存取存储器(SRAM)。因此,任何表条目可以基于指向路径选择信号ecmpjdx的对应存储器地址来访问。换句话说,查找表302中的每个表条目的条目索引是存储器地址。当查找表302中的表条目基于路径选择信号ecmpjdx来访问时,读取邻近索引adj_idx以从相同出口路径组的出口路径选择目的路径,以及读取关联的率计数器指针rate_Cnt_ptr以选择分配给选择的目的路径的一个监测电路。在本实施例中,率计数器指针rate_Cnt_ptr可以由控制器(例如,运行固件FW的处理器)102来配置,其中,多于一个率计数器指针rate_Cnt_ptr可以配置以指向相同的监测电路。考虑一种情形,所接收的分组要求通过特定出口路径组的一个出口路径转发,则生成路径选择索引ecmpjdx以访问与特定出口路径组关联的表条目的一个。例如,当显示于图3的第一条目由路径选择索引ecmpjdx访问时,选择与特定出口路径组的一个出口路径关联的监测电路306_1 ;当显示于图3中的第二条目由路径选择索引ecmpjdx访问时,选择与特定出口路径组的一个出口路径关联的相同的监测电路306_1 ;以及当第三条目由路径选择索引ecmp_idx访问时,选择与特定出口路径的另一出口路径关联的不同的监测电路 306_2。
[0029]分配给所选择的目的路径的监测电路是可操作地以更新其路径率监测值。在此示例中,监测电路306_1-306_N生成平均路径率值PRATC_l-PRAve_N来作为路径率监测值。如图3所示,每个监测电路306_1-306_N具有一组率计数器,包含第一计数器和第二计数器。例如,监测电路306_1包含第一计数器308_1和第二计数器309_1,监测电路306_2包含第一计数器308_2和第二计数器309_2,以及监测电路306_N包含第一计数器308_N和第二计数器 309_N。
[0030]第一计数器308_1-308_N用于分别生成瞬时路径率值PRaffiJ-PRa^N。例如,每个第一计数器308_1-308_N用于当对应出口路径是所选择的目的路径时,计数在一个预定周期Tupd中通过对应出口路径传送的字节数以生成一个瞬时路径率值。第二计数器309_1-309_N用于分别生成平均路径率值PRAve_l-PRATC_N。例如,每个第二计数器309_1-309_N用于生成平均路径率值和瞬时路径率值的加权平均,以更新用作监测电路的路径率监测值的平均路径率值。第二计数器的操作可以使用以下式子来表达。
[0031 ] PRavg= PR avg*C+PRcue* (1-C) (I)
[0032]在以上式子⑴中,PRatc表示平均路径率值,PR.表示瞬时路径率值,以及C表示加权因子。加权因子C和预定周期Tupd可以由控制器(例如,运行固件FW的处理器)102来配置。
[0033]从监测电路306_1-306_N生成的路径率监测值(例如,平均路径率值PRavg_1-PRavg_N)指示属于相同出口路径组的路径的业务状态。在本实施例中,比较电路304用于将从监测电路306_1-306_N生成的每个路径率监测值(例如,平均路径率值PRavg_1-PRavg_N)与预定阈值TH_R比较,并当任何路径率监测值超过预定阈值TH_R时,生成指示信号Sim。预定阈值TH_R可以由控制器(例如,运行固件FW的处理器)102来配置。
[0034]每个第二计数器309_1-309_N的操作可以看作低通滤波。因此,用平均路径率值设置路径率监测值可防止路径率监测值具有由突发分组业务改变所导致的重要变化。然而,此仅仅是用于说明性的目的,且并非是本发明的限制。任何能够生成指示属于相同出口路径组的路径的业务状态的路径率监测值装备,可以由路径率监测器106采用。这些备选设计落入本发明的范围。
[0035]当一个路径率监测值超过预定阈值TH_R时,其表示所监测路径上的分组业务太多,且因此导致相同出口路径组中的不同路径的载荷不平衡。因此,当指示信号Sind断言(assert)指示载荷不平衡时,由基于流子组的路径选择电路114提供的动态载荷平衡功能应该合适地调整,以减少繁重载荷路径的分组业务和/或增加轻载荷路径的分组业务。以此方式,载荷不平衡可以移除或缓解以实现更均匀的带宽分布。由基于流子组的路径选择电路114执行的动态载荷平衡功能的进一步细节将在以下描述。
[0036]大流监测器108提供附加的信息,附加的信息为用于调整由基于流子组的路径选择电路114提供的动态载荷平衡功能所需。在本实施例中,大流监测器108用于从与相同出口路径组关联的流组的流子组俘获至少一个大流子组,其中至少一个大流子组的业务多于流组的其它流子组的业务。具体地,就每个出口路径组而言,大流监测器108监测通过出口路径组的出口路径的流转发,以俘获至少一个大流子组。因此,大流监测器108为一个出口路径组俘获大流子组,且为另一出口路径组俘获大流子组。
[0037]图4是图示根据本发明的实施例的大流监测器的示意图。显示于图1中的大流监测器108可以使用显示于图4中的大流监测器400来实施。在本实施例中,大流监测器400采用基于硬件的实施,并包含用于一个出口路径组的大流监测控制器402和存储装置404。为了清楚和简洁起见,图4仅仅显示一个大流监测控制器和一个存储装置。当存在不同的出口路径组时,大流监测器400具有多组大流监测控制器和存储装置,其中每组大流监测控制器和存储装置用于根据通过对应出口路径组的出口路径转发的流,俘获至少一个大流子组。
[0038]网络性能监测的关键功能是确定带宽怎样由流使用的;特别地,确定哪个流使用最多的带宽。一般而言,流可以分类到由于高分组业务(即,大量数据)导致每个消耗大量带宽的大流(el印hant flow),以及由于低分组业务(即,少量数据)导致每个消耗少量带宽的小流(mice flow)。根据网络业务的长尾性质,与小流相比,存在更少的大流。S卩,大多数流承载非常少的业务。与小流相比,大流对于路径的载荷平衡具有大影响。基于这样的观察,识别大流子组以用于设置由基于流子组的路径选择电路114执行的提出的动态载荷平衡功能。
[0039]在本实施例中,大流监测器400可用于在与相同出口路径组关联的流组的流子组之间追踪最高M个大流子组,其中M是基于实际设计考虑确定的整数。如上所提及的,每个出口路径组分配一个大流监测器。如图4所示,大流监测器400仅仅负责在与出口路径组关联的具有路径组索引ecmp_grp_idx = 2的流组的流子组之间监测大流子组。然而,此仅仅是用于说明性的目的,且并非是作为本发明的限制。
[0040]大流监测控制器402可采用大流监测算法,以识别一个或多个大流子组用于具有路径组索引eCmp_grp_idX = 2的出口路径组。以示例的方式,但不是限制,现有的基于流的大流监测算法可以修改为由大流监测控制器402使用的大流监测算法,以识别大流子组。另外,一个所俘获的大流子组(例如,一个所俘获的大流子组的哈希结果pkt_hash)的标识符可以储存在内容可寻址的存储器(CAM)或SRAM,以及包含击中计数hit_cnt的关联的信息,时间戳和数据率可以储存于SRAM。在本实施例中,大流监测器400是基于硬件的,且可以建立率表用于记录每个流子组的数据率信息。然而,此仅仅是用于说明性的目的,并非是本发明的限制。在另一实施例中,基于硬件的大流监测器400可采用与大流监测算法合作的流排序硬件。可以实现识别大流子组的相同目的。
[0041]备选地,大流监测器108可以使用基于软件的实施来实现。例如,大流监测器108是由处理器执行的软件模块(例如,由OpenFlow定义的sFlow模块)。实现从与出口路径组关联的流组的流子组俘获至少一个大流子组的相同的目的。
[0042]如上所提及的,基于流子组的路径选择电路114设计为用于动态载荷平衡。在一个示范性设计中,基于流子组的路径选择电路114可使用创建和更新
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1