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

文档序号:9828093阅读:来源:国知局
AN中的X个VLAN的标识、以及MAC1。其中,M为不小 于1的自然数,X为不小于1且不大于M的自然数。
[0155] 在实际实施过程中,可以通过其它RB发来的LSP报文获知该其它RB上减少了 M 个VLAN的AVF或者减少了 M个VLAN中的MACl的组播接收者。
[0156] 步骤S404,针对查找到的每一个组播转发表项(为了描述方便,将该组播转发表 项的索引称为第一索引),判断该组播转发表项的转发信息中除了包含所述X个VLAN的标 识以外,是否还包含其它VLAN的标识,若否,则执行步骤S406,若是,则执行步骤S424 ;
[0157] 步骤S406,判断第一索引的引用计数是否大于1,若等于1,则执行步骤S408,否 贝1J,若大于1,则执行步骤S416 ;
[0158] 其中,引用计数为索引关联表中的索引被组播转发表项引用的计数。
[0159] 步骤S408,在索引关联表中查找到与第一索引对应的RB组(称为第一 RB组),从 第一 RB组中删除该其它RB ;
[0160] 步骤S410,判断索引关联表中是否存在与更新后的第一 RB组相同的RB组,若不存 在与更新后的第一 RB组相同的RB组,则执行步骤S412,若存在一 RB组(称为第二RB组) 与更新后的第一 RB组相同,则执行步骤S414 ;
[0161] 步骤S412,将所述更新后的第一 RB组对应的出接口列表更新为到所述更新后的 第一 RB组中的每一个RB的出接口;
[0162] 步骤S414,将该组播转发表项中的第一索引更新为第二RB组对应的索引(称为第 二索引),将第二索引的引用计数加1,从索引关联表中删除所述更新后的第一 RB组及其对 应的第一索引和出接口列表;
[0163] 步骤S416,在索引关联表中查找到与第一索引对应的第一 RB组,创建一个由第一 RB组中除该其它RB以外的RB构成的RB组(称为第三RB组);
[0164] 此时,第三RB组并没有添加到索引关联表中。
[0165] 步骤S418,判断索引关联表中是否存在与第三RB组相同的RB组,若不存在与第三 RB组相同的RB组,则执行步骤S420,若存在一 RB组(称为第四RB组)与第三RB组相同, 则执行步骤S422 ;
[0166] 步骤S420,将第三RB组、第三索引与出接口列表的对应关系添加到索引关联表 中,将该组播转发表项中的第一索引更新为第三索引,将第三索引的引用计数加1,将第一 索引的引用计数减1 ;
[0167] 其中,第三RB组对应的出接口列表中包括:到第三RB组中的每一个RB的出接口; 第三索引是为第三RB组分配的一个未被占用的索引。
[0168] 步骤S422,将该组播转发表项中的第一索引更新为第四RB组对应的索引(称为第 四索引),将第四索引的引用计数加1,将第一索引的引用计数减1 ;
[0169] 步骤S424,将该组播转发表项拆分成N1+N2个组播转发表项,将第一索引的引用 计数加 Nl-I ;
[0170] 在步骤S424中,拆分得到的Nl个组播转发表项的转发信息中包含所述其它VLAN 中的至少一个VLAN的标识、索引为第一索引,其余的N2个组播转发表项的转发信息中包含 X个VLAN中的至少一个VLAN的标识。
[0171] 其中,Nl和N2为不小于1的自然数。
[0172] 步骤S426,在索引关联表中查找到与第一索引对应的第一 RB组,创建一个由第一 RB组中除该其它RB以外的RB构成的RB组(称为第三RB组);
[0173] 此时,第三RB组并没有添加到索引关联表中。
[0174] 步骤S428,判断索引关联表中是否存在与第三RB组相同的RB组,若不存在与第三 RB组相同的RB组,则执行步骤S430,若存在一 RB组(称为第四RB组)与第三RB组相同, 则执行步骤S432 ;
[0175] 步骤S430,将第三RB组、第三索引与出接口列表的对应关系添加到索引关联表 中,将N2个组播转发表项中的索引设置为第三索引,将第三索引的引用计数加 N2 ;
[0176] 其中,第三RB组对应的出接口列表中包括:到第三RB组中的每一个RB的出接口。 第三索引是为第三RB组分配的一个未被占用的索引。
[0177] 步骤S432,将N2个组播转发表项中的索引设置为第四RB组对应的索引(称为第 四索引),将第四索引的引用计数加 N2。
[0178] 其中,在如图5和图6所示的方法中,当组播转发表项发生了变化和/或索引关联 表发生了变化时,均需要更新转发层面中的对应内容。
[0179] 由图5和图6所示的方法可见,当其它RB上增加(或减少)了至少一个VLAN的 AVF或者该至少一个VLAN的同一组播MAC地址的组播接收者时,只需针对转发信息满足以 下条件的组播转发表项进行相应处理:当增加(或减少)了至少一个VLAN的AVF时,转发 信息中包含有该至少一个VLAN中的部分或全部VLAN的标识,当增加(或减少)了至少一个 VLAN的同一组播MC地址的组播接收者时,转发信息中包含有该至少一个VLAN中的部分或 全部VLAN的标识、以及该组播MAC地址,由于满足条件的组播转发表项数量较少,因此,大 大缩短了组播转发表项的更新时间,加快了组播数据流的收敛速度。
[0180] 下面以图7所示的实际组网为例,来说明上述实施例的方法。在图7中,RB 101为唯 一的组播树根,RBlOl通过接口 Pl与RB201连接;RBlOl通过接口 P2与RB202连接;RBlOl 通过接口 P3与RB203连接。RB201~RB203是多个VLAN的AVF,假定VLAN总数为4094个。 以RB+VLAN类型的组播转发表项为例。
[0181] (1)网络拓扑变化
[0182] 初始时的网络拓扑如图7所示,此时,RB201~RB203是VLANl~VLAN4000的AVF, 此时的组播转发表项如表1所示,索引关联表如表2所示:
[0183] 表 1
[0184]
[0185]表 2
[0187] 如图8所示,当RBlOl感知到RBlOl与RB203之间的链路故障(即网络拓扑发生 了变化)时,根据如图8所示的变化后的网络拓扑重新计算组播分发树,针对如表2所示的 索引关联表中的每一个RB组,此时,只有一个由RB201、RB202和RB203构成的RB组1,将该 RB组1对应的出接口列表更新为RBlOl到该RB组1中的每一个RB的出接口,由于RBlOl 到RB201的出接口为P1,RB101到RB202的出接口为P2,RB101到RB203的出接口为P1,因 此,RBl对应的出接口列表更新为Pl和P2。此时的索引关联表更新为如表3所示,而如表 1所示的组播转发表项无需更新。
[0188] 表 3
[0190] (2) AVF 变化
[0191] 以如图7所示的网络进行说明。初始时,RB201~RB203是VLANl~VLAN4000的 AVF,此时的组播转发表项如表1所示,索引关联表如表2所示,索引1的引用计数为1。
[0192] 当RBlOl接收到用于指示RB203上减少了 VLANl~VLAN2000的AVF的LSP报文 之后,查找到如表1所示的组播转发表项的转发信息中包含有VLANl~VLAN2000,并且,该 转发信息中除了包含VLANl~VLAN2000以外还包含VLAN2001~VLAN4000,则将如表1所 示的组播转发表项拆分成了如表4所示的2个组播转发表项,此时,如表4第2行所示的组 播转发表项中的索引待定。
[0193] 表 4
[0194]
[0195] 根据索引1在如表2所示的索引关联表中查找到对应的RB组1,创建一个由RB组 1中除RB203以外的RB构成的RB组2 :RB201和RB202 ;判断如表2所示的索引关联表中是 否存在与RB组2相同的RB组,结果是不存在,则将RB组2、索引2与出接口列表的对应关 系添加到如表2所示的索引关联表中,将如表4第2行所示的组播转发表项中的索引设置 为索引2,将索引2的引用计数置为1。此时的索引关联表如表5所示,组播转发表项如表 6所示:
[0196] 表 5
[0198]表 6
[0200] 后续,当RBlOl接收到用于指示RB203上增加了 VLANl~VLAN1000的AVF的LSP报 文之后,查找到如表6第2行所示的组播转发表项的转发信息中包含有VLANl~VLAN1000, 并且,该转发信息中除了包含VLANl~VLAN1000以外还包含VLAN1001~VLAN2000,则将 如表6第2行所示的组播转发表项拆分成了如表7第2行和第3行所示的2个组播转发表 项,此时,如表7第2行所示的组播转发表项中的索引待定。
[0201] 表 7
[0202]
[0203] 根据索引2在如表5所示的索引关联表中查找到对应的RB组2 :RB201和RB202, 创建一个由RB20URB202和RB203组成的RB组3 ;判断如表5所示的索引关联表中是否存 在相同的RB组,判断结果是存在RB组1与RB组3相同,则将如表7第2行所示的组播转 发表项的索引设置为索引1,此时,如表7的组播转发表项更新为如表8所示,将索引1的引 用计数置为2。
[0204] 表 8
[0206] 以上只是以VLAN标识采用分段形式的组播转发表项为例进行的说明,显然,当 VLAN标识采用列表形式或者bitmap形式时,也可以采用类似的方法,本申请实施例对此不 做限定。
[0207] 针对上述实施例中的方法,本申请实施例中提供了一种TRILL网络中的报文转发 装置,该装置应用于RB中,RB具有组播转发表项和索引关联表,组播转发表项中包括转发 信息与索引的对应关系,转发信息中包含树根RB的标识和至少两个VLAN的标识,索引关联 表中包括索引、RB组与出接口列表的对应关系,索引关联表中与组播转发表项的索引相对 应的RB组中的RB满足以下条件:该RB是至少两个VLAN的AVF。
[0208] 如图9所示,该装置中包括以下模块:接收模块501、查找模块502和发送模块 503,其中:
[0209] 接收模块501,用于接收多目的报文;
[0210] 查找模块502,用于在接收模501块接收到多目的报文之后,查找转发信息包含该 多目的报文中携带的报文信息的组播转发表项,其中,该报文信息包括:树根RB的标识和 该多目的报文的内层的VLAN标识;还用于根据查找到的组播转发表项中的索引查找索引 关联表,以获取该多目的报文的出接口列表;
[0211] 发送模块503,用于根据查找模块502获取到的该多目的报文的出接口列表,转发 该多目的报文。
[0212] 其中,组播转发表项的转发信息中还包含组播MAC地址,则索引关联表中与该组 播转发表项的索引相对应的RB组中的RB满足的条件具体为:该RB是该至少两个VLAN中 的该组播MAC地址的组播接收者;报文信息还包括该多目的报文的内层的目的组播MAC地 址。
[0213] 如图10所示,在本申请的一种实施例中,该装置中还包括:计算模块504和索引关 联表更新模块505,其中:
[0214] 计算模块504,用于当TRILL网络的拓扑变化时,根据变化后的拓扑重新计算用于 指导多目的报文转发的组播分发树,针对索引关联表中的每一个RB组,基于重新计算出的 组播分发树,计算到该RB组中的每一个RB的出接口;
[0215] 索引关联表更新模块505,用于在计算模块504计算出到RB组中的每一个RB的出 接口之后,将该RB组对应的出接口列表更新为计算出的出接口。
[0216] 如图11所示,另一种实施例中,该装置中还包括:判断模块506、索引关联表更新 模块507、组播转发表项更新模块508和引用计数更新模块509,其中:
[0217] 查找模块502,还用于当其它RB上的AVF或者组播接收者发生了变化时,查找转 发信息满足以下条件的组播转发表项;其中,当该其它RB上增加或减少了 M个VLAN的AVF 时,该条件包括:转发信息中包含有M个VLAN中的X个VLAN的标识,当该其它RB上增加或 减少了 M个VLAN中的同一组播MAC地址的组播接收者时,该条件包括:转发信息中包含有 M个VLAN中的X个VLAN的标识、以及该组播MAC地址,M为不小于1的自然数,X为不小于 1且不大于M的自然数;
[0218] 判断模块506,用于针对查找模块502查找到的每一个组播转发表项,在该组播转 发表项的转发信息中仅包含X个VLAN的标识时,判断该组播转发表项中第一索引的引用计 数是否大于1,其中,引用计数为索引关联表中的索引被组播转发表项引用的计数;还用于 判断索引关联表中是否存在与经过索引关联表更新模块507更新后的第一 RB组相同
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1