引關(guān)聯(lián) 表中刪除更新后的第一 RB組及其對(duì)應(yīng)的第一索引和出接口列表;
[0051] 組播轉(zhuǎn)發(fā)表項(xiàng)更新模塊,用于若判斷模塊判斷出存在第二RB組與更新后的第一 RB組相同,則將該組播轉(zhuǎn)發(fā)表項(xiàng)中的第一索引更新為第二RB組對(duì)應(yīng)的第二索引;
[0052] 引用計(jì)數(shù)更新模塊,用于在組播轉(zhuǎn)發(fā)表項(xiàng)更新模塊將該組播轉(zhuǎn)發(fā)表項(xiàng)中的第一索 引更新為第二RB組對(duì)應(yīng)的第二索引之后,將第二索引的引用計(jì)數(shù)加1。
[0053] 其中,該裝置中還包括:RB組創(chuàng)建模塊,其中:
[0054] RB組創(chuàng)建模塊,用于若判斷模塊判斷出第一索引的引用計(jì)數(shù)大于1,則在索引關(guān) 聯(lián)表中查找到與第一索引對(duì)應(yīng)的第一 RB組,根據(jù)第一 RB組創(chuàng)建第三RB組,其中,當(dāng)該其它 RB上增加了 M個(gè)VLAN的AVF或者M(jìn)個(gè)VLAN中的同一組播MAC地址的組播接收者時(shí),第三 RB組由第一 RB組和該其它RB構(gòu)成,當(dāng)該其它RB上減少了 M個(gè)VLAN的AVF或者M(jìn)個(gè)VLAN 中的同一組播MAC地址的組播接收者時(shí),第三RB組由第一 RB組中除該其它RB以外的RB 構(gòu)成;
[0055] 判斷模塊,還用于判斷索引關(guān)聯(lián)表中是否存在與RB組創(chuàng)建模塊創(chuàng)建的第三RB組 相同的RB組;
[0056] 索引關(guān)聯(lián)表更新模塊,還用于若判斷模塊判斷出不存在與第三RB組相同的RB組, 則將第三RB組、第三索引與出接口列表的對(duì)應(yīng)關(guān)系添加到索引關(guān)聯(lián)表中,其中,第三RB組 對(duì)應(yīng)的出接口列表中包括:到第三RB組中的每一個(gè)RB的出接口;
[0057] 組播轉(zhuǎn)發(fā)表項(xiàng)更新模塊,還用于在索引關(guān)聯(lián)表更新模塊將第三RB組、第三索引與 出接口列表的對(duì)應(yīng)關(guān)系添加到索引關(guān)聯(lián)表中之后,將該組播轉(zhuǎn)發(fā)表項(xiàng)中的第一索引更新為 第三索引;還用于若判斷模塊判斷出存在第四RB組與第三RB組相同,則將該組播轉(zhuǎn)發(fā)表項(xiàng) 中的第一索引更新為第四RB組對(duì)應(yīng)的第四索引;
[0058] 引用計(jì)數(shù)更新模塊,還用于在組播轉(zhuǎn)發(fā)表項(xiàng)更新模塊將該組播轉(zhuǎn)發(fā)表項(xiàng)中的第一 索引更新為第三索引之后,將第三索引的引用計(jì)數(shù)加1,將第一索引的引用計(jì)數(shù)減1 ;還用 于在組播轉(zhuǎn)發(fā)表項(xiàng)更新模塊將該組播轉(zhuǎn)發(fā)表項(xiàng)中的第一索引更新為第四RB組對(duì)應(yīng)的第四 索引之后,將第四索引的引用計(jì)數(shù)加1,將第一索引的引用計(jì)數(shù)減1。
[0059] 其中,該裝置中還包括:表項(xiàng)拆分模塊、RB組創(chuàng)建模塊、判斷模塊、索引關(guān)聯(lián)表更 新模塊、組播轉(zhuǎn)發(fā)表項(xiàng)更新模塊和引用計(jì)數(shù)更新模塊,其中:
[0060] 查找模塊,還用于當(dāng)其它RB上的AVF或者組播接收者發(fā)生了變化時(shí),查找轉(zhuǎn)發(fā)信 息滿(mǎn)足以下條件的組播轉(zhuǎn)發(fā)表項(xiàng);其中,當(dāng)該其它RB上增加或減少了 M個(gè)VLAN的AVF時(shí), 該條件包括:轉(zhuǎn)發(fā)信息中包含有M個(gè)VLAN中的X個(gè)VLAN的標(biāo)識(shí),當(dāng)該其它RB上增加或減 少了 M個(gè)VLAN中的同一組播MAC地址的組播接收者時(shí),該條件包括:轉(zhuǎn)發(fā)信息中包含有M 個(gè)VLAN中的X個(gè)VLAN的標(biāo)識(shí)、以及該組播MAC地址,M為不小于1的自然數(shù),X為不小于1 且不大于M的自然數(shù);
[0061] 表項(xiàng)拆分模塊,用于針對(duì)查找模塊查找到的每一個(gè)組播轉(zhuǎn)發(fā)表項(xiàng),在該組播轉(zhuǎn)發(fā) 表項(xiàng)的轉(zhuǎn)發(fā)信息中包含X個(gè)VLAN的標(biāo)識(shí)和其它VLAN的標(biāo)識(shí)時(shí),將該組播轉(zhuǎn)發(fā)表項(xiàng)拆分成 N1+N2個(gè)組播轉(zhuǎn)發(fā)表項(xiàng),拆分得到的Nl個(gè)組播轉(zhuǎn)發(fā)表項(xiàng)的轉(zhuǎn)發(fā)信息中包含其它VLAN中的至 少一個(gè)VLAN的標(biāo)識(shí)、索引為拆分前的組播轉(zhuǎn)發(fā)表項(xiàng)中的第一索引,其余的N2個(gè)組播轉(zhuǎn)發(fā)表 項(xiàng)的轉(zhuǎn)發(fā)信息中包含X個(gè)VLAN中的至少一個(gè)VLAN的標(biāo)識(shí),其中,Nl和N2為不小于1的自 然數(shù);
[0062] RB組創(chuàng)建模塊,用于在表項(xiàng)拆分模塊將該組播轉(zhuǎn)發(fā)表項(xiàng)拆分成N1+N2個(gè)組播轉(zhuǎn)發(fā) 表項(xiàng)之后,在索引關(guān)聯(lián)表中查找到與第一索引對(duì)應(yīng)的第一 RB組,根據(jù)第一 RB組創(chuàng)建第三RB 組;其中,當(dāng)該其它RB上增加了 M個(gè)VLAN的AVF或者M(jìn)個(gè)VLAN中的同一組播MAC地址的 組播接收者時(shí),第三RB組由第一 RB組和該其它RB構(gòu)成,當(dāng)該其它RB上減少了 M個(gè)VLAN 的AVF或者M(jìn)個(gè)VLAN中的同一組播MAC地址的組播接收者時(shí),第三RB組由第一 RB組中除 該其它RB以外的RB構(gòu)成;
[0063] 判斷模塊,用于判斷索引關(guān)聯(lián)表中是否存在與RB組創(chuàng)建模塊創(chuàng)建的第三RB組相 同的RB組;
[0064] 索引關(guān)聯(lián)表更新模塊,用于若判斷模塊判斷出不存在與第三RB組相同的RB組,則 將第三RB組、第三索引與出接口列表的對(duì)應(yīng)關(guān)系添加到索引關(guān)聯(lián)表中,其中,第三RB組對(duì) 應(yīng)的出接口列表中包括:到第三RB組中的每一個(gè)RB的出接口;
[0065] 組播轉(zhuǎn)發(fā)表項(xiàng)更新模塊,用于在索引關(guān)聯(lián)表更新模塊將第三RB組、第三索引與出 接口列表的對(duì)應(yīng)關(guān)系添加到索引關(guān)聯(lián)表中之后,將N2個(gè)組播轉(zhuǎn)發(fā)表項(xiàng)中的索引設(shè)置為第 三索引;還用于若判斷模塊判斷出存在第四RB組與第三RB組相同,則將N2個(gè)組播轉(zhuǎn)發(fā)表 項(xiàng)中的索引設(shè)置為第四RB組對(duì)應(yīng)的第四索引;
[0066] 引用計(jì)數(shù)更新模塊,用于在表項(xiàng)拆分模塊將該組播轉(zhuǎn)發(fā)表項(xiàng)拆分成N1+N2個(gè)組播 轉(zhuǎn)發(fā)表項(xiàng)之后,將第一索引的引用計(jì)數(shù)加 Nl-I ;其中,引用計(jì)數(shù)為索引關(guān)聯(lián)表中的索引被 組播轉(zhuǎn)發(fā)表項(xiàng)引用的計(jì)數(shù);還用于在組播轉(zhuǎn)發(fā)表項(xiàng)更新模塊將N2個(gè)組播轉(zhuǎn)發(fā)表項(xiàng)中的索 引設(shè)置為第三索引之后,將第三索引的引用計(jì)數(shù)加 N2;還用于在組播轉(zhuǎn)發(fā)表項(xiàng)更新模塊將 N2個(gè)組播轉(zhuǎn)發(fā)表項(xiàng)中的索引設(shè)置為第四RB組對(duì)應(yīng)的第四索引之后,將第四索引的引用計(jì) 數(shù)加 N2。
[0067] 本申請(qǐng)的以上技術(shù)方案中,設(shè)置對(duì)應(yīng)于RB組和出接口列表的索引,TRILL網(wǎng)絡(luò)中 的組播轉(zhuǎn)發(fā)表項(xiàng)不直接記錄多目的報(bào)文的出接口列表,而是記錄對(duì)應(yīng)于該RB組和該出接 口列表的索引,并且,組播轉(zhuǎn)發(fā)表項(xiàng)中的VLAN標(biāo)識(shí)不再是一個(gè)指定VLAN的標(biāo)識(shí),而是至少 兩個(gè)VLAN的標(biāo)識(shí),從而,通過(guò)優(yōu)化TRILL網(wǎng)絡(luò)中的組播轉(zhuǎn)發(fā)表項(xiàng)的組織形式,有效的減少了 組播轉(zhuǎn)發(fā)表項(xiàng)的數(shù)量,節(jié)約了存儲(chǔ)資源。另外,實(shí)現(xiàn)了組播轉(zhuǎn)發(fā)表項(xiàng)和出接口列表的分離, 實(shí)現(xiàn)了表項(xiàng)的復(fù)用。
[0068] 當(dāng)TRILL網(wǎng)絡(luò)的拓?fù)浒l(fā)生變化時(shí),會(huì)觸發(fā)組播路由的重新計(jì)算?,F(xiàn)有技術(shù)中,會(huì)以 每一個(gè)組播轉(zhuǎn)發(fā)表項(xiàng)為調(diào)度單位,對(duì)該組播轉(zhuǎn)發(fā)表項(xiàng)進(jìn)行更新。本申請(qǐng)實(shí)施例中,無(wú)需更新 組播轉(zhuǎn)發(fā)表項(xiàng),而是以索引關(guān)聯(lián)表中的每一個(gè)RB組為調(diào)度單位,更新該RB組對(duì)應(yīng)的出接口 列表。由于無(wú)需針對(duì)每一個(gè)組播轉(zhuǎn)發(fā)表項(xiàng)進(jìn)行更新,因此,計(jì)算總時(shí)間與組播轉(zhuǎn)發(fā)表項(xiàng)的數(shù) 量無(wú)關(guān),縮短了路由計(jì)算時(shí)間,提高了組播數(shù)據(jù)量的收斂速度。
[0069] 尤其是當(dāng)TRILL網(wǎng)絡(luò)中的RB較少,而VLAN較多時(shí),RB組的數(shù)量遠(yuǎn)遠(yuǎn)小于組播轉(zhuǎn) 發(fā)表項(xiàng)的數(shù)量,因此,以每一個(gè)RB組為調(diào)度單位進(jìn)行更新,達(dá)到的減少路由計(jì)算時(shí)間的效 果更加明顯。
[0070] 當(dāng)其它RB上增加(或減少)了至少一個(gè)VLAN的AVF或者該至少一個(gè)VLAN的同 一組播MAC地址的組播接收者時(shí),只需針對(duì)轉(zhuǎn)發(fā)信息滿(mǎn)足以下條件的組播轉(zhuǎn)發(fā)表項(xiàng)進(jìn)行相 應(yīng)處理:當(dāng)增加(或減少)了至少一個(gè)VLAN的AVF時(shí),轉(zhuǎn)發(fā)信息中包含有該至少一個(gè)VLAN 中的部分或全部VLAN的標(biāo)識(shí),當(dāng)增加(或減少)了至少一個(gè)VLAN的同一組播MAC地址的 組播接收者時(shí),轉(zhuǎn)發(fā)信息中包含有該至少一個(gè)VLAN中的部分或全部VLAN的標(biāo)識(shí)、以及該組 播MAC地址,由于滿(mǎn)足條件的組播轉(zhuǎn)發(fā)表項(xiàng)數(shù)量較少,因此,大大縮短了組播轉(zhuǎn)發(fā)表項(xiàng)的更 新時(shí)間,加快了組播數(shù)據(jù)流的收斂速度。
【附圖說(shuō)明】
[0071] 圖1是本申請(qǐng)實(shí)施例的TRILL網(wǎng)絡(luò)中的報(bào)文轉(zhuǎn)發(fā)方法的流程圖;
[0072] 圖2是本申請(qǐng)實(shí)施例的索引關(guān)聯(lián)表的不范性結(jié)構(gòu)圖;
[0073] 圖3是本申請(qǐng)實(shí)施例的組播轉(zhuǎn)發(fā)表項(xiàng)與索引關(guān)聯(lián)表的示范性對(duì)應(yīng)關(guān)系圖;
[0074] 圖4是本申請(qǐng)實(shí)施例的當(dāng)TRILL網(wǎng)絡(luò)的拓?fù)渥兓瘯r(shí)的索引關(guān)聯(lián)表的更新流程圖;
[0075] 圖5是本申請(qǐng)實(shí)施例的當(dāng)其它RB上增加了 VLAN的AVF或者增加了 VLAN中的組 播MAC地址的組播接收者時(shí),組播轉(zhuǎn)發(fā)表項(xiàng)和索引關(guān)聯(lián)表的更新流程圖;
[0076] 圖6是本申請(qǐng)實(shí)施例的當(dāng)其它RB上減少了 VLAN的AVF或者減少了 VLAN中的組 播MAC地址的組播接收者時(shí),組播轉(zhuǎn)發(fā)表項(xiàng)和索引關(guān)聯(lián)表的更新流程圖;
[0077] 圖7是一種TRILL網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)鋱D;
[0078] 圖8是圖7中的RBlOl與RB201之間的鏈路故障后的網(wǎng)絡(luò)拓?fù)鋱D;
[0079] 圖9是本申請(qǐng)一種實(shí)施例的TRILL網(wǎng)絡(luò)中的報(bào)文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖;
[0080] 圖10是本申請(qǐng)另一種實(shí)施例的TRILL網(wǎng)絡(luò)中的報(bào)文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖;
[0081] 圖11是本申請(qǐng)又一種實(shí)施例的TRILL網(wǎng)絡(luò)中的報(bào)文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖;
[0082] 圖12是圖11所示的實(shí)施例中的TRILL網(wǎng)絡(luò)中的報(bào)文轉(zhuǎn)發(fā)裝置的另一種結(jié)構(gòu)示意 圖;
[0083] 圖13是本申請(qǐng)又一種實(shí)施例的TRILL網(wǎng)絡(luò)中的報(bào)文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0084] 為使本申請(qǐng)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本申請(qǐng)作進(jìn)一步 的詳細(xì)描述。
[0085] 在TRILL網(wǎng)絡(luò)中,每一個(gè)RB根據(jù)網(wǎng)絡(luò)拓?fù)溆?jì)算用于指導(dǎo)多目的報(bào)文轉(zhuǎn)發(fā)的組播分 發(fā)樹(shù)。而且,每一個(gè)RB分別基于組播分發(fā)樹(shù)生成各自的組播轉(zhuǎn)發(fā)表項(xiàng)。
[0086] 現(xiàn)有技術(shù)中,無(wú)論是RB+VLAN類(lèi)型的組播轉(zhuǎn)發(fā)表項(xiàng)(即,組播轉(zhuǎn)發(fā)表項(xiàng)的轉(zhuǎn)發(fā)信息 中包括樹(shù)根RB和VLAN標(biāo)識(shí)),還是RB+VLAN+MAC類(lèi)型的組播轉(zhuǎn)發(fā)表項(xiàng)(即,組播轉(zhuǎn)發(fā)表項(xiàng) 的轉(zhuǎn)發(fā)信息中包括樹(shù)根RB、VLAN標(biāo)識(shí)和組播MAC地址),每一個(gè)組播轉(zhuǎn)發(fā)表項(xiàng)中的VLAN標(biāo) 識(shí)(Identity,ID)均是一個(gè)指定VLAN的標(biāo)識(shí),當(dāng)VLAN數(shù)量較多時(shí),RB上需要記錄大量的 組播轉(zhuǎn)發(fā)表項(xiàng),從而占用了較多的存儲(chǔ)資源。
[0087] 為了解決現(xiàn)有技術(shù)中存在的上述問(wèn)題,在本申請(qǐng)實(shí)施例中,優(yōu)化了 TRILL網(wǎng)絡(luò)中 的組播轉(zhuǎn)發(fā)表項(xiàng)的組織形式,設(shè)置對(duì)應(yīng)于RB組和出接口列表的索引,TRILL網(wǎng)絡(luò)中的組播 轉(zhuǎn)發(fā)表項(xiàng)不直接記錄多目的報(bào)文的出接口列表,而是記錄對(duì)應(yīng)于該RB組和該出接口列表 的索引,并且,組播轉(zhuǎn)發(fā)表項(xiàng)中的VLAN標(biāo)識(shí)不再是一個(gè)指定VLAN的標(biāo)識(shí),而是至少兩個(gè) VLAN的標(biāo)識(shí),從而,有效的減少了組播轉(zhuǎn)發(fā)表項(xiàng)的數(shù)量,節(jié)約了存儲(chǔ)資源。
[0088] 圖1為本申請(qǐng)實(shí)施例的TRILL網(wǎng)絡(luò)中的報(bào)文轉(zhuǎn)發(fā)方法的流程圖。該方法應(yīng)用于RB, 該RB具有索引關(guān)聯(lián)表和組播轉(zhuǎn)發(fā)表項(xiàng),組播轉(zhuǎn)發(fā)表項(xiàng)中包括轉(zhuǎn)發(fā)信息與索引的對(duì)應(yīng)關(guān)系, 索引關(guān)聯(lián)表中包括索引、RB組與出接口列表的對(duì)應(yīng)關(guān)系。其中,對(duì)于RB+VLAN類(lèi)型的組播 轉(zhuǎn)發(fā)表項(xiàng),轉(zhuǎn)發(fā)信息中包含樹(shù)根RB的標(biāo)識(shí)和至少兩個(gè)VLAN的標(biāo)識(shí);對(duì)于RB+VLAN+MAC類(lèi)型 的組播轉(zhuǎn)發(fā)表項(xiàng),轉(zhuǎn)發(fā)信息中包含樹(shù)根RB的標(biāo)識(shí)、至少兩個(gè)VLAN的標(biāo)識(shí)和組播MAC地址。
[0089] 在實(shí)際實(shí)施過(guò)程中,轉(zhuǎn)發(fā)信息中包含的至少兩個(gè)VLAN標(biāo)識(shí)可以是采用分段的形 式記錄,也可以采用列表的形式記錄,還可以采用bitmap (比特映射)的形式或者其它形式 記錄,本申請(qǐng)對(duì)此不做限定。這樣,轉(zhuǎn)發(fā)信息中還需要包含有類(lèi)型(Type),Type用于指示轉(zhuǎn) 發(fā)信息中包含的VLAN標(biāo)識(shí)所采用的形式,例如,當(dāng)Type的值置為1時(shí),表示轉(zhuǎn)發(fā)信息中包 含的VLAN標(biāo)識(shí)采用的是分段的形式,當(dāng)Type的值置為2時(shí),表示轉(zhuǎn)發(fā)信息中包含的VLAN 標(biāo)識(shí)采用的是列表的形式,Type的值置為3時(shí),表示轉(zhuǎn)發(fā)信息中包含的VLAN標(biāo)識(shí)采用的是 bitmap的形式。
[0090] 具體的,當(dāng)采用分段的形式時(shí),組播轉(zhuǎn)發(fā)表項(xiàng)的轉(zhuǎn)發(fā)信息中包含有Type、起始 VLAN標(biāo)識(shí)(StartVLANID)和結(jié)束VLAN標(biāo)識(shí)(EndVLANID),即,轉(zhuǎn)發(fā)信息中包含的VLAN標(biāo)識(shí) 是一個(gè)VLAN標(biāo)識(shí)區(qū)間。例如,轉(zhuǎn)發(fā)信息中包含VLAN100~VLAN1000。
[0091] 當(dāng)采用列表的形式時(shí),組播轉(zhuǎn)發(fā)表項(xiàng)的轉(zhuǎn)發(fā)信息中包含有Type、至少兩個(gè)VLAN標(biāo) 識(shí)和Length (長(zhǎng)度),其中,至少兩個(gè)VLAN標(biāo)識(shí)是多個(gè)離散的VLAN標(biāo)識(shí),Length用于表示 轉(zhuǎn)發(fā)信息中包含的VLAN標(biāo)識(shí)的數(shù)量。例如,轉(zhuǎn)發(fā)信息中包含VLANl、VLAN3、VLAN5、VLAN7。
[0092] 當(dāng)采用bitmap的形式時(shí),組播轉(zhuǎn)發(fā)表項(xiàng)的轉(zhuǎn)發(fā)信息中包含有Type、起始VLAN標(biāo) 識(shí)(StartVLANID)、bitmap和Length,其中,bitmap中的每一個(gè)比特位映射到一個(gè)VLAN標(biāo) 識(shí),如第i (i為不小于1的自然數(shù))個(gè)比特位映射到VLAN(StartVLANID+i),當(dāng)?shù)趇個(gè)比特 位的值置為1時(shí),表示轉(zhuǎn)發(fā)信息中包含對(duì)應(yīng)的VLAN標(biāo)識(shí),當(dāng)?shù)趇個(gè)比特位的值置為0時(shí),表 示轉(zhuǎn)發(fā)信息中不包含對(duì)應(yīng)的VLAN標(biāo)識(shí);Length用于表示bitmap的長(zhǎng)度。例如,轉(zhuǎn)發(fā)信息 中包含的StartVLANID = 100, bitmap中的第10個(gè)比特位的值置為1,則說(shuō)明轉(zhuǎn)發(fā)信息中 包含有VLANl 10。
[0093] 下面分別對(duì)RB+VLAN類(lèi)型的組播轉(zhuǎn)發(fā)表項(xiàng)