Trill网络中的报文转发方法和装置的制造方法_2

文档序号:9828093阅读:来源:国知局
引关联 表中删除更新后的第一 RB组及其对应的第一索引和出接口列表;
[0051] 组播转发表项更新模块,用于若判断模块判断出存在第二RB组与更新后的第一 RB组相同,则将该组播转发表项中的第一索引更新为第二RB组对应的第二索引;
[0052] 引用计数更新模块,用于在组播转发表项更新模块将该组播转发表项中的第一索 引更新为第二RB组对应的第二索引之后,将第二索引的引用计数加1。
[0053] 其中,该装置中还包括:RB组创建模块,其中:
[0054] RB组创建模块,用于若判断模块判断出第一索引的引用计数大于1,则在索引关 联表中查找到与第一索引对应的第一 RB组,根据第一 RB组创建第三RB组,其中,当该其它 RB上增加了 M个VLAN的AVF或者M个VLAN中的同一组播MAC地址的组播接收者时,第三 RB组由第一 RB组和该其它RB构成,当该其它RB上减少了 M个VLAN的AVF或者M个VLAN 中的同一组播MAC地址的组播接收者时,第三RB组由第一 RB组中除该其它RB以外的RB 构成;
[0055] 判断模块,还用于判断索引关联表中是否存在与RB组创建模块创建的第三RB组 相同的RB组;
[0056] 索引关联表更新模块,还用于若判断模块判断出不存在与第三RB组相同的RB组, 则将第三RB组、第三索引与出接口列表的对应关系添加到索引关联表中,其中,第三RB组 对应的出接口列表中包括:到第三RB组中的每一个RB的出接口;
[0057] 组播转发表项更新模块,还用于在索引关联表更新模块将第三RB组、第三索引与 出接口列表的对应关系添加到索引关联表中之后,将该组播转发表项中的第一索引更新为 第三索引;还用于若判断模块判断出存在第四RB组与第三RB组相同,则将该组播转发表项 中的第一索引更新为第四RB组对应的第四索引;
[0058] 引用计数更新模块,还用于在组播转发表项更新模块将该组播转发表项中的第一 索引更新为第三索引之后,将第三索引的引用计数加1,将第一索引的引用计数减1 ;还用 于在组播转发表项更新模块将该组播转发表项中的第一索引更新为第四RB组对应的第四 索引之后,将第四索引的引用计数加1,将第一索引的引用计数减1。
[0059] 其中,该装置中还包括:表项拆分模块、RB组创建模块、判断模块、索引关联表更 新模块、组播转发表项更新模块和引用计数更新模块,其中:
[0060] 查找模块,还用于当其它RB上的AVF或者组播接收者发生了变化时,查找转发信 息满足以下条件的组播转发表项;其中,当该其它RB上增加或减少了 M个VLAN的AVF时, 该条件包括:转发信息中包含有M个VLAN中的X个VLAN的标识,当该其它RB上增加或减 少了 M个VLAN中的同一组播MAC地址的组播接收者时,该条件包括:转发信息中包含有M 个VLAN中的X个VLAN的标识、以及该组播MAC地址,M为不小于1的自然数,X为不小于1 且不大于M的自然数;
[0061] 表项拆分模块,用于针对查找模块查找到的每一个组播转发表项,在该组播转发 表项的转发信息中包含X个VLAN的标识和其它VLAN的标识时,将该组播转发表项拆分成 N1+N2个组播转发表项,拆分得到的Nl个组播转发表项的转发信息中包含其它VLAN中的至 少一个VLAN的标识、索引为拆分前的组播转发表项中的第一索引,其余的N2个组播转发表 项的转发信息中包含X个VLAN中的至少一个VLAN的标识,其中,Nl和N2为不小于1的自 然数;
[0062] RB组创建模块,用于在表项拆分模块将该组播转发表项拆分成N1+N2个组播转发 表项之后,在索引关联表中查找到与第一索引对应的第一 RB组,根据第一 RB组创建第三RB 组;其中,当该其它RB上增加了 M个VLAN的AVF或者M个VLAN中的同一组播MAC地址的 组播接收者时,第三RB组由第一 RB组和该其它RB构成,当该其它RB上减少了 M个VLAN 的AVF或者M个VLAN中的同一组播MAC地址的组播接收者时,第三RB组由第一 RB组中除 该其它RB以外的RB构成;
[0063] 判断模块,用于判断索引关联表中是否存在与RB组创建模块创建的第三RB组相 同的RB组;
[0064] 索引关联表更新模块,用于若判断模块判断出不存在与第三RB组相同的RB组,则 将第三RB组、第三索引与出接口列表的对应关系添加到索引关联表中,其中,第三RB组对 应的出接口列表中包括:到第三RB组中的每一个RB的出接口;
[0065] 组播转发表项更新模块,用于在索引关联表更新模块将第三RB组、第三索引与出 接口列表的对应关系添加到索引关联表中之后,将N2个组播转发表项中的索引设置为第 三索引;还用于若判断模块判断出存在第四RB组与第三RB组相同,则将N2个组播转发表 项中的索引设置为第四RB组对应的第四索引;
[0066] 引用计数更新模块,用于在表项拆分模块将该组播转发表项拆分成N1+N2个组播 转发表项之后,将第一索引的引用计数加 Nl-I ;其中,引用计数为索引关联表中的索引被 组播转发表项引用的计数;还用于在组播转发表项更新模块将N2个组播转发表项中的索 引设置为第三索引之后,将第三索引的引用计数加 N2;还用于在组播转发表项更新模块将 N2个组播转发表项中的索引设置为第四RB组对应的第四索引之后,将第四索引的引用计 数加 N2。
[0067] 本申请的以上技术方案中,设置对应于RB组和出接口列表的索引,TRILL网络中 的组播转发表项不直接记录多目的报文的出接口列表,而是记录对应于该RB组和该出接 口列表的索引,并且,组播转发表项中的VLAN标识不再是一个指定VLAN的标识,而是至少 两个VLAN的标识,从而,通过优化TRILL网络中的组播转发表项的组织形式,有效的减少了 组播转发表项的数量,节约了存储资源。另外,实现了组播转发表项和出接口列表的分离, 实现了表项的复用。
[0068] 当TRILL网络的拓扑发生变化时,会触发组播路由的重新计算。现有技术中,会以 每一个组播转发表项为调度单位,对该组播转发表项进行更新。本申请实施例中,无需更新 组播转发表项,而是以索引关联表中的每一个RB组为调度单位,更新该RB组对应的出接口 列表。由于无需针对每一个组播转发表项进行更新,因此,计算总时间与组播转发表项的数 量无关,缩短了路由计算时间,提高了组播数据量的收敛速度。
[0069] 尤其是当TRILL网络中的RB较少,而VLAN较多时,RB组的数量远远小于组播转 发表项的数量,因此,以每一个RB组为调度单位进行更新,达到的减少路由计算时间的效 果更加明显。
[0070] 当其它RB上增加(或减少)了至少一个VLAN的AVF或者该至少一个VLAN的同 一组播MAC地址的组播接收者时,只需针对转发信息满足以下条件的组播转发表项进行相 应处理:当增加(或减少)了至少一个VLAN的AVF时,转发信息中包含有该至少一个VLAN 中的部分或全部VLAN的标识,当增加(或减少)了至少一个VLAN的同一组播MAC地址的 组播接收者时,转发信息中包含有该至少一个VLAN中的部分或全部VLAN的标识、以及该组 播MAC地址,由于满足条件的组播转发表项数量较少,因此,大大缩短了组播转发表项的更 新时间,加快了组播数据流的收敛速度。
【附图说明】
[0071] 图1是本申请实施例的TRILL网络中的报文转发方法的流程图;
[0072] 图2是本申请实施例的索引关联表的不范性结构图;
[0073] 图3是本申请实施例的组播转发表项与索引关联表的示范性对应关系图;
[0074] 图4是本申请实施例的当TRILL网络的拓扑变化时的索引关联表的更新流程图;
[0075] 图5是本申请实施例的当其它RB上增加了 VLAN的AVF或者增加了 VLAN中的组 播MAC地址的组播接收者时,组播转发表项和索引关联表的更新流程图;
[0076] 图6是本申请实施例的当其它RB上减少了 VLAN的AVF或者减少了 VLAN中的组 播MAC地址的组播接收者时,组播转发表项和索引关联表的更新流程图;
[0077] 图7是一种TRILL网络的网络拓扑图;
[0078] 图8是图7中的RBlOl与RB201之间的链路故障后的网络拓扑图;
[0079] 图9是本申请一种实施例的TRILL网络中的报文转发装置的结构示意图;
[0080] 图10是本申请另一种实施例的TRILL网络中的报文转发装置的结构示意图;
[0081] 图11是本申请又一种实施例的TRILL网络中的报文转发装置的结构示意图;
[0082] 图12是图11所示的实施例中的TRILL网络中的报文转发装置的另一种结构示意 图;
[0083] 图13是本申请又一种实施例的TRILL网络中的报文转发装置的结构示意图。
【具体实施方式】
[0084] 为使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请作进一步 的详细描述。
[0085] 在TRILL网络中,每一个RB根据网络拓扑计算用于指导多目的报文转发的组播分 发树。而且,每一个RB分别基于组播分发树生成各自的组播转发表项。
[0086] 现有技术中,无论是RB+VLAN类型的组播转发表项(即,组播转发表项的转发信息 中包括树根RB和VLAN标识),还是RB+VLAN+MAC类型的组播转发表项(即,组播转发表项 的转发信息中包括树根RB、VLAN标识和组播MAC地址),每一个组播转发表项中的VLAN标 识(Identity,ID)均是一个指定VLAN的标识,当VLAN数量较多时,RB上需要记录大量的 组播转发表项,从而占用了较多的存储资源。
[0087] 为了解决现有技术中存在的上述问题,在本申请实施例中,优化了 TRILL网络中 的组播转发表项的组织形式,设置对应于RB组和出接口列表的索引,TRILL网络中的组播 转发表项不直接记录多目的报文的出接口列表,而是记录对应于该RB组和该出接口列表 的索引,并且,组播转发表项中的VLAN标识不再是一个指定VLAN的标识,而是至少两个 VLAN的标识,从而,有效的减少了组播转发表项的数量,节约了存储资源。
[0088] 图1为本申请实施例的TRILL网络中的报文转发方法的流程图。该方法应用于RB, 该RB具有索引关联表和组播转发表项,组播转发表项中包括转发信息与索引的对应关系, 索引关联表中包括索引、RB组与出接口列表的对应关系。其中,对于RB+VLAN类型的组播 转发表项,转发信息中包含树根RB的标识和至少两个VLAN的标识;对于RB+VLAN+MAC类型 的组播转发表项,转发信息中包含树根RB的标识、至少两个VLAN的标识和组播MAC地址。
[0089] 在实际实施过程中,转发信息中包含的至少两个VLAN标识可以是采用分段的形 式记录,也可以采用列表的形式记录,还可以采用bitmap (比特映射)的形式或者其它形式 记录,本申请对此不做限定。这样,转发信息中还需要包含有类型(Type),Type用于指示转 发信息中包含的VLAN标识所采用的形式,例如,当Type的值置为1时,表示转发信息中包 含的VLAN标识采用的是分段的形式,当Type的值置为2时,表示转发信息中包含的VLAN 标识采用的是列表的形式,Type的值置为3时,表示转发信息中包含的VLAN标识采用的是 bitmap的形式。
[0090] 具体的,当采用分段的形式时,组播转发表项的转发信息中包含有Type、起始 VLAN标识(StartVLANID)和结束VLAN标识(EndVLANID),即,转发信息中包含的VLAN标识 是一个VLAN标识区间。例如,转发信息中包含VLAN100~VLAN1000。
[0091] 当采用列表的形式时,组播转发表项的转发信息中包含有Type、至少两个VLAN标 识和Length (长度),其中,至少两个VLAN标识是多个离散的VLAN标识,Length用于表示 转发信息中包含的VLAN标识的数量。例如,转发信息中包含VLANl、VLAN3、VLAN5、VLAN7。
[0092] 当采用bitmap的形式时,组播转发表项的转发信息中包含有Type、起始VLAN标 识(StartVLANID)、bitmap和Length,其中,bitmap中的每一个比特位映射到一个VLAN标 识,如第i (i为不小于1的自然数)个比特位映射到VLAN(StartVLANID+i),当第i个比特 位的值置为1时,表示转发信息中包含对应的VLAN标识,当第i个比特位的值置为0时,表 示转发信息中不包含对应的VLAN标识;Length用于表示bitmap的长度。例如,转发信息 中包含的StartVLANID = 100, bitmap中的第10个比特位的值置为1,则说明转发信息中 包含有VLANl 10。
[0093] 下面分别对RB+VLAN类型的组播转发表项
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1