一種組播轉發表項維護方法和設備的制作方法
【專利摘要】本發明公開了一種組播轉發表項維護方法和設備,該方法包括:BEB設備獲得所有BEB設備上配置的ISID,并將配置在相同BEB設備上的ISID劃分到同一個ISID組;其中,每個ISID組對應有一個出端口列表;BEB設備遍歷各個組播源節點上配置的各個ISID,判斷當前遍歷的ISID所屬ISID組是否處理完成,若是,則遍歷下一ISID,否則,獲得當前遍歷的ISID所對應的指定端口,記錄在當前遍歷的ISID所屬ISID組的出端口列表中,并標記當前遍歷的ISID所屬ISID組為處理完成;BEB設備將各個出端口列表中記錄的指定端口添加到對應ISID組內的所有ISID的組播轉發表項中。本發明實施例中,可以提升組播轉發表項的維護速度。
【專利說明】一種組播轉發表項維護方法和設備
【技術領域】
[0001]本發明涉及通信【技術領域】,尤其涉及一種組播轉發表項維護方法和設備。
【背景技術】
[0002]MAC-1n-MAC 協議又稱為 PBB (Provider Backbone Bridge,運營商骨干網橋)協議,它通過MAC (Media Access Control,媒體訪問控制)地址嵌套,將用戶MAC地址封裝在運營商MAC地址中,從而對不同用戶業務進行隔離。進一步的,采用MAC-1n-MAC協議的SPB(Shortest Path Bridging,最短路徑橋)網絡稱為 SPBM (Shortest Path Bridging MACMode,MAC-1n-MAC模式的最短路徑橋)網絡,如圖1所示,為SPBM網絡的組網示意圖,其骨干網絡主要包括BEB (Backbone Edge Bridge,骨干網邊緣網橋)設備、BCB (Backbone CoreBridge ,骨干網核心網橋)設備以及之間的骨干鏈路。
[0003]在SPBM網絡中,組播轉發有頭端復制和核心復制等兩種模式,針對每個ISID(Backbone Service Instance Identifier,骨干網服務實例編號,一個服務實例代表一類業務或者用戶,且ISID是該服務實例的唯一編號),當BEB設備上被配置頭端復制時,該BEB設備不需要維護組播轉發表項,當BEB設備上被配置核心復制時,該BEB設備需要維護組播轉發表項。
[0004]現有技術中,為了維護組播轉發表項,SPBM網絡中的每個BEB設備均需要保存本BEB設備配置的所有ISID,且SPBM網絡中配置相同ISID的BEB設備組成一條該ISID對應的BEB設備鏈表,不同ISID將對應不同的BEB設備鏈表。當BEB設備上被配置核心復制時,該BEB設備稱為組播源節點,且該BEB設備需要維護組播轉發表項,該組播轉發表項的出端口稱為指定端口。
[0005]現有技術中,BEB設備上的組播轉發表項的維護方式包括以下步驟:
[0006]步驟1、BEB設備判斷當前是否有未處理的組播源節點;如果是,則遍歷一個未處理的組播源節點,之后執行步驟2 ;如果否,則結束流程。
[0007]步驟2、BEB設備判斷該組播源節點配置的所有ISID中是否有未處理的ISID ;如果是,遍歷一個未處理的ISID,執行步驟3 ;如果否,執行步驟I。
[0008]步驟3、如果該ISID對應的T標記位被置位,則表示該組播源節點在該ISID下被配置核心復制,BEB設備獲取該ISID對應的BEB設備鏈表,之后執行步驟4。如果該ISID對應的T標記位未被置位,則表示該組播源節點在該ISID下沒有被配置核心復制,需要執行步驟2,以獲取下一個ISID。
[0009]步驟4、BEB設備依次遍歷BEB設備鏈表上除本BEB設備之外的其它BEB設備,如果其它BEB設備配置的該ISID對應的R標記位被置位,則表示該其它BEB設備需要接收該ISID 的流量,BEB 設備根據該 ISID對應的B_VLAN(Backbone Virtual Local Area Network,骨干網虛擬局域網)獲取對應的ECT (Equal Cost Tree,等價樹)算法,再根據該ECT算法查找本BEB設備到該其它BEB設備的指定端口,如果該指定端口有效,且該指定端口沒有下發過,則在組播轉發表項中下發該指定端口 ;否則,繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備,之后返回步驟2。
[0010]在上述過程中,針對每個組播源節點,BEB設備均需要遍歷組播源節點配置的所有ISID,并針對每個ISID進行處理(即步驟3和步驟4);當組播源節點上配置的ISID的數量很多時,計算工作量很大,且計算時間非常耗時。
【發明內容】
[0011]本發明實施例提供一種組播轉發表項維護方法和設備,以提升組播轉發表項的維護速度,并可以加速SPBM網絡的收斂性能。
[0012]為達到上述目的,本發明實施例提供一種組播轉發表項維護方法,應用于包括多個骨干網邊緣網橋BEB設備的最短路徑橋SPB網絡中,該方法包括:
[0013]步驟A、BEB設備獲得所述SPB網絡中所有BEB設備上配置的骨干網服務實例編號ISID,并將配置在相同BEB設備上的ISID劃分到同一個ISID組;其中,每個ISID組對應有一個出端口列表;
[0014]步驟B、所述BEB設備遍歷各個組播源節點上配置的各個ISID,判斷當前遍歷的ISID所屬ISID組是否處理完成,若是,則遍歷下一 ISID,否則,獲得當前遍歷的ISID所對應的指定端口,記錄在當前遍歷的ISID所屬ISID組的出端口列表中,并標記當前遍歷的ISID所屬ISID組為處理完成;
[0015]步驟C、所述BEB設備將各個出端口列表中記錄的指定端口添加到對應ISID組內的所有ISID的組播轉發表項中。
[0016]所述步驟B包括以下步驟:步驟B1、所述BEB設備判斷是否有未遍歷過的組播源節點;如果是,則遍歷一個未遍歷過的組播源節點,執行步驟B2 ;如果否,則執行步驟C ;步驟B2、所述BEB設備判斷該組播源節點配置的ISID中是否有未遍歷過的ISID ;如果是,遍歷一個未遍歷過的ISID,執行步驟B3 ;如果否,執行步驟BI ;步驟B3、所述BEB設備確定該ISID對應的ISID組,并判斷該ISID組是否已經標記為處理完成;如果否,執行步驟B4 ;如果是,執行步驟B2 ;步驟B4、所述BEB設備獲取該ISID對應的指定端口,并在該ISID對應的ISID組所對應的出端口列表下記錄所述指定端口,并標記該ISID對應的ISID組所對應的ISID組為處理完成;之后,返回所述步驟B2。
[0017]所述BEB設備將配置在相同BEB設備上的ISID劃分到同一個ISID組的過程,具體包括:所述BEB設備遍歷各BEB設備上配置的所有ISID中的每個ISID,并利用所有配置該ISID的BEB設備的系統標識計算該ISID的源值;
[0018]所述BEB設備將源值相同的ISID劃分到同一個ISID組中。
[0019]所述步驟B之前還包括:
[0020]所述BEB設備判斷任意出端口列表中是否記錄有指定端口 ;如果有一個出端口列表或者多個出端口列表中記錄有指定端口,則所述BEB設備為所有出端口列表中記錄的指定端口標記delete標識;
[0021]在所述步驟B4中,所述BEB設備獲取ISID對應的指定端口后,如果該ISID對應的ISID組所對應的出端口列表下已經記錄所述指定端口,則為所述指定端口清除delete標識;如果該ISID對應的ISID組所對應的出端口列表下沒有記錄所述指定端口,則在該ISID對應的ISID組所對應的出端口列表下記錄所述指定端口,并為所述指定端口標記add標識;
[0022]在步驟C中,如果出端口列表中記錄的指定端口標記為add標識,則將該指定端口添加到所述出端口列表對應的ISID組內所有ISID的組播轉發表項中;如果該指定端口標記為delete標識,從所述出端口列表對應的ISID組內所有ISID的組播轉發表項中刪除該指定端口。
[0023]所述獲得當前遍歷的ISID所對應的指定端口,具體包括:
[0024]在該ISID對應的T標記位被置位時,所述BEB設備獲取該ISID對應的BEB設備鏈表;其中配置相同ISID的BEB設備組成該ISID對應的BEB設備鏈表;
[0025]所述BEB設備依次遍歷所述BEB設備鏈表上除本BEB設備以外的其它BEB設備,如果該其它BEB設備配置的該ISID對應的R標記位被置位,則查找本BEB設備到該其它BEB設備的端口 ;如果查找到的端口有效,則將該端口作為該ISID對應的指定端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備;如果查找到的端口無效,則丟棄查找到的端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備。
[0026]所述方法進一步包括:
[0027]當SPB網絡中有BEB設備上配置的ISID發生變化時,所述BEB設備為發生變化的ISID劃分ISID組,確定變化前的ISID組對應的出端口列表中記錄的指定端口,并確定變化后的ISID組對應的出端口列表中記錄的指定端口 ;
[0028]所述BEB設備比較所述變化前的ISID組對應的出端口列表中記錄的指定端口以及所述變化后的ISID組對應的出端口列表中記錄的指定端口 ;
[0029]當有指定端口記錄在所述變化前的ISID組對應的出端口列表中,但沒有記錄在所述變化后的ISID組對應的出端口列表中時,所述BEB設備從所述發生變化的ISID的組播轉發表項中刪除所述指定端口;
[0030]當有指定端口記錄在所述變化后的ISID組對應的出端口列表中,但沒有記錄在所述變化前的ISID組對應的出端口列表中時,所述BEB設備在所述發生變化的ISID的組播轉發表項中添加所述指定端口。
[0031]本發明實施例提供一種骨干網邊緣網橋BEB設備,應用于包括多個BEB設備的最短路徑橋SPB網絡中,所述BEB設備具體包括:
[0032]分組模塊,用于獲得所述SPB網絡中所有BEB設備上配置的骨干網服務實例編號ISID,并將配置在相同BEB設備上的ISID劃分到同一個ISID組;其中,每個ISID組對應有一個出端口列表;
[0033]端口獲得模塊,用于遍歷各個組播源節點上配置的各個ISID,判斷當前遍歷的ISID所屬ISID組是否已處理完成,若是,則遍歷下一 ISID,否則,獲得當前遍歷的ISID所對應的指定端口,記錄在當前遍歷的ISID所屬ISID組的出端口列表中,并標記當前遍歷的ISID所屬ISID組為處理完成;
[0034]端口下發模塊,用于將各個出端口列表中記錄的指定端口添加到對應ISID組內的所有ISID的組播轉發表項中。[0035]所述端口獲得模塊包括:
[0036]第一遍歷子模塊,用于判斷是否有未遍歷過的組播源節點;如果是,則遍歷一個未遍歷過的組播源節點,并觸發第二遍歷子模塊;否則,觸發所述端口下發模塊;
[0037]第二遍歷子模塊,用于判斷當前遍歷到的組播源節點配置的ISID中是否有未遍歷過的ISID ;如果是,則遍歷一個未遍歷過的ISID,并觸發第一處理子模塊;否則,觸發所述第一遍歷子模塊;
[0038]第一處理子模塊,用于確定當前遍歷到的ISID所對應的ISID組,并判斷該ISID組是否已經標記為處理完成;如果否,則觸發第二處理子模塊;如果是,則觸發所述第二遍歷子模塊;
[0039]第二處理子模塊,用于獲取該ISID對應的指定端口,并在該ISID對應的ISID組所對應的出端口列表下記錄所述指定端口,并標記該ISID對應的ISID組所對應的ISID組標識為處理完成;之后,觸發所述第二遍歷子模塊。
[0040]所述分組模塊,具體用于遍歷各BEB設備上配置的所有ISID中的每個ISID,并利用所有配置該ISID的BEB設備的系統標識計算該ISID的源值;
[0041]以及,將源值相同的ISID劃分到同一個ISID組中。
[0042]所述端口獲得模塊還包括:
[0043]第三處理子模塊,用于在執行所述步驟B之前,判斷任意出端口列表中是否記錄有指定端口 ;如果有一個出端口列表或者多個出端口列表中記錄有指定端口,則為所有出端口列表中記錄的指定端口標記delete標識;
[0044]所述第二處理子模塊在獲取ISID對應的指定端口之后,如果該ISID對應的ISID組所對應的出端口列表下已經記錄所述指定端口,則為所述指定端口清除delete標識;如果該ISID對應的ISID組所對應的出端口列表下沒有記錄所述指定端口,則在該ISID對應的ISID組所對應的出端口列表下記錄所述指定端口,并為所述指定端口標記add標識;
[0045]所述端口下發模塊在將各個出端口列表中記錄的指定端口添加到組播轉發表項時,針對出端口列表中記錄的指定端口,如果該指定端口標記為add標識,則將該指定端口添加到所述出端口列表對應的ISID組內所有ISID的組播轉發表項中;如果該指定端口標記為delete標識,從所述出端口列表對應的ISID組內所有ISID的組播轉發表項中刪除該指定端口。
[0046]所述第二處理子模塊在獲取該ISID對應的指定端口的過程中,在該ISID對應的T標記位被置位時,獲取該ISID對應的BEB設備鏈表;其中配置相同ISID的BEB設備組成該ISID對應的BEB設備鏈表;
[0047]依次遍歷所述BEB設備鏈表上除本BEB設備以外的其它BEB設備,如果該其它BEB設備配置的該ISID對應的R標記位被置位,則查找本BEB設備到該其它BEB設備的端口 ;如果查找到的端口有效,則將該端口作為該ISID對應的指定端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備;如果查找到的端口無效,則丟棄查找到的端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備。
[0048]所述分組模塊,還用于在SPB網絡中有BEB設備上配置的ISID發生變化時,為發生變化的ISID劃分ISID組;
[0049]所述端口下發模塊,還用于確定變化前的ISID組對應的出端口列表中記錄的指定端口,并確定變化后的ISID組對應的出端口列表中記錄的指定端口 ;
[0050]比較所述變化前的ISID組對應的出端口列表中記錄的指定端口以及所述變化后的ISID組對應的出端口列表中記錄的指定端口 ;當有指定端口記錄在所述變化前的ISID組對應的出端口列表中,但沒有記錄在所述變化后的ISID組對應的出端口列表中時,從所述發生變化的ISID的組播轉發表項中刪除所述指定端口 ;當有指定端口記錄在所述變化后的ISID組對應的出端口列表中,但沒有記錄在所述變化前的ISID組對應的出端口列表中時,在所述發生變化的ISID的組播轉發表項中添加所述指定端口。
[0051]與現有技術相比,本發明實施例至少具有以下優點:本發明實施例中,通過將配置在相同BEB設備上的ISID劃分到同一 ISID組中,針對ISID組內的各個ISID,可以只針對一個ISID進行獲取指定端口的處理,而ISID組內的其它ISID,不再需要進行獲取指定端口的處理,從而達到提升組播計算速度的效果,提升組播轉發表項的維護速度,并加速SPBM網絡的收斂性能。
【專利附圖】
【附圖說明】
[0052]圖1是現有技術中提出的SPBM網絡的示意圖;
[0053]圖2是本發明實施例中提出的應用場景示意圖;
[0054]圖3是本發明實施例提供的一種組播轉發表項維護方法流程示意圖;
[0055]圖4是本發明實施例提供的一種BEB設備的結構示意圖。
【具體實施方式】
[0056]本發明實施例提供一種組播轉發表項維護方法(也稱為組播轉發表項的剪枝計算過程),應用于包括多個BEB設備的SPB網絡(如SPBM網絡)中。為了維護組播轉發表項,SPBM網絡中的每個BEB設備下均需要保存本BEB設備配置的所有ISID,且SPBM網絡中配置相同ISID的BEB設備組成一條該ISID對應的BEB設備鏈表,不同ISID將對應不同的BEB設備鏈表。其中,當BEB設備上被配置核心復制時,該BEB設備稱為組播源節點,且該BEB設備需要維護組播轉發表項,該組播轉發表項的出端口稱為指定端口。
[0057]以圖2為本發明實施例的應用場景示意圖,SPBM網絡中至少包括BEB設備C、BEB設備D、BEB設備L和BEB設備K,本發明實施例中以針對上述四個BEB設備的處理為例進行說明。BEB設備C上保存本BEB設備配置的所有ISID (即ISID2-1SID6),BEB設備D上保存本BEB設備配置的所有ISID (即ISIDU ISID2、ISID4和ISID5),BEB設備L上保存本BEB設備配置的所有ISID (即ISID1-1SID6),BEB設備K上保存本BEB設備配置的所有ISIDCBP ISID2-1SID6)。針對 ISID1,配置 ISIDl 的 BEB 設備 D 和 BEB 設備 L 組成該 ISIDl對應的BEB設備鏈表;針對ISID2,配置ISID2的BEB設備C、BEB設備D、BEB設備L和BEB設備K組成該ISID2對應的BEB設備鏈表;針對ISID3,配置ISID3的BEB設備C、BEB設備L和BEB設備K組成該ISID3對應的BEB設備鏈表;針對ISID4,配置ISID4的BEB設備C、BEB設備D、BEB設備L和BEB設備K組成該ISID4對應的BEB設備鏈表;針對ISID5,配置ISID5的BEB設備C、BEB設備D、BEB設備L和BEB設備K組成該ISID5對應的BEB設備鏈表;針對ISID6,配置ISID6的BEB設備C、BEB設備L和BEB設備K組成該ISID6對應的BEB設備鏈表。
[0058]本發明實施例中,每個BEB設備均需要獲得SPBM網絡中的所有BEB設備上配置的ISID,并將配置在相同BEB設備上的ISID劃分到同一個ISID組。通過手工配置方式在每個BEB設備上配置SPBM網絡中的所有BEB設備上分別配置的ISID。或者,由于SPBM網絡中的每個BEB設備下均保存了本BEB設備配置的所有ISID,因此SPBM網絡中的各個BEB設備之間可以通過報文交互的方式,將本BEB設備下配置的所有ISID通知給其它BEB設備,以使每個BEB設備獲得SPBM網絡中的所有BEB設備上分別配置的ISID。
[0059]在圖2所示的應用場景下,BEB設備C、BEB設備D、BEB設備L以及BEB設備K上均可以獲知如下配置信息=BEB設備C上配置有ISID2-1SID6,BEB設備D上配置有ISIDl、ISID2、ISID4 和 ISID5, BEB 設備 L 上配置有 ISID1-1SID6, BEB 設備 K 上配置有 ISID2-1SID6。進一步的,BEB設備C、BEB設備D、BEB設備L以及BEB設備K均需要將配置在相同BEB設備上的ISID劃分到同一個ISID組。其中,由于ISIDl被配置在BEB設備D和BEB設備L上,ISID2、ISID4和ISID5均被配置在BEB設備C、BEB設備D、BEB設備L和BEB設備K上,ISID3和ISID6均被配置在BEB設備C、BEB設備L和BEB設備K上,因此,可以將ISIDl劃分到一個ISID組,將ISID2、ISID4和ISID5劃分到一個ISID組,將ISID3和ISID6劃分到一個ISID組。
[0060]其中,BEB設備C、BEB設備D、BEB設備L以及BEB設備K的處理相同,為了方便描述,后續以BEB設備C的處理為例進行說明。
[0061]為了將配置在相同BEB設備上的ISID劃分到同一個ISID組,在一種具體實現方式中,BEB設備遍歷各BEB設備上配置的所有ISID中的每個ISID,并利用所有配置該ISID的BEB設備的系統標識(system-1d)計算該ISID的源值;之后,BEB設備將源值相同的ISID劃分到同一個ISID組中。具體的,在計算該ISID的源值的過程中,BEB設備將該ISID的所有系統標識進行排序,并按照順序以連續內存保存;在排序保存之后,BEB設備基于該內存塊進行MD5計算,以得到該ISID的16字節的源值,該計算過程在此不再贅述。
[0062]進一步的,BEB設備將配置在相同BEB設備上的ISID劃分到同一個ISID組之后,該BEB設備還需要為每個ISID組配置一個ISID組標識(Group-1d)和一個out-port-list(出端口列表);其中,不同的ISID組對應有不同的ISID組標識和出端口列表;此外,BEB設備還可以按照ISID組標識對所有ISID組進行排序,并記錄各ISID所在的ISID組的ISID組標識和出端口列表。
[0063]以BEB設備C的處理為例進行說明,由于ISIDl被配置在BEB設備D和BEB設備L上,ISID2、ISID4和ISID5均被配置在BEB設備C、BEB設備D、BEB設備L和BEB設備K上,ISID3和ISID6均被配置在BEB設備C、BEB設備L和BEB設備K上,因此,BEB設備C將 ISIDl 劃分至Ij ISID 組 1,將 ISID2、ISID4 和 ISID5 劃分到 ISID 組 2,將 ISID3 和 ISID6劃分到ISID組3。進一步的,ISID組I對應的ISID組標識為1,ISID組I對應的出端口列表為出端口列表I ;ISID組2對應的ISID組標識為2,ISID組2對應的出端口列表為出端口列表2 ;ISID組3對應的ISID組標識為3,ISID組3對應的出端口列表為出端口列表
3。此外,BEB設備C記錄ISIDl所在的ISID組的ISID組標識和出端口列表分別為I和出端口列表1,并記錄ISID2、4、5所在的ISID組的ISID組標識和出端口列表分別為2和出端口列表2,并記錄ISID3、6所在的ISID組的ISID組標識和出端口列表分別為3和出端口列表3。
[0064]基于上述ISID組的劃分以及圖2所示的應用場景,BEB設備在需要生成組播轉發表項時,如圖3所示,該組播轉發表項維護方法可以包括以下步驟:
[0065]步驟301,BEB設備遍歷各個組播源節點上配置的各個ISID,判斷當前遍歷的ISID所屬ISID組是否處理完成,若是,則遍歷下一 ISID,否則,獲得當前遍歷的ISID所對應的指定端口,記錄在當前遍歷的ISID所屬ISID組的出端口列表中,并標記當前遍歷的ISID所屬ISID組為處理完成。
[0066]步驟302,BEB設備將各個出端口列表中記錄的指定端口添加到對應ISID組內的所有ISID的組播轉發表項中。其中,針對步驟301,BEB設備在遍歷完所有組播源節點上配置的所有ISID之后,執行本步驟302。
[0067]在本發明實施例的一種優選實施方式中,步驟301具體包括以下步驟:
[0068]步驟1、BEB設備判斷是否有未遍歷過的組播源節點;如果是,則遍歷一個未遍歷過的組播源節點,并執行步驟2 ;如果否,則執行步驟302。
[0069]本發明實施例中,需要依次遍歷每個組播源節點進行處理(即執行后續步驟的處理),當組播源節點已經執行過后續步驟的處理時,該組播源節點為遍歷過的組播源節點,當組播源節點未執行過后續步驟的處理時,該組播源節點為未遍歷過的組播源節點。以組播源節點為BEB設備C、BEB設備D、BEB設備L和BEB設備K為例,BEB設備C在第一次遍歷組播源節點時,從BEB設備C、BEB設備D、BEB設備L和BEB設備K中任意遍歷一個BEB設備C,當按照后續流程完成對BEB設備C的處理后,再次執行本步驟時,BEB設備C從BEB設備D、BEB設備L和BEB設備K中任意遍歷一個BEB設備D,以此類推,再次執行本步驟時,BEB設備C從BEB設備L和BEB設備K中任意遍歷一個BEB設備L,再次執行本步驟時,BEB設備C從BEB設備K中遍歷BEB設備K,再次執行本步驟時,判斷結果為否,執行步驟302。
[0070]步驟2,BEB設備判斷該組播源節點(即當前遍歷到的組播源節點)配置的所有ISID中是否有未遍歷過的ISID ;如果是,則遍歷一個未遍歷過的ISID,并執行步驟3,以對該ISID進行決策計算;如果否,則標記該組播源節點為已處理,并執行步驟I。
[0071]本發明實施例中,需要依次遍歷組播源節點配置的所有ISID,并針對每個ISID進行處理(即執行后續步驟的處理),當ISID已經執行過后續步驟的處理時,該ISID為遍歷過的ISID,當ISID未執行過后續步驟的處理時,該ISID為未遍歷過的ISID。以當前遍歷到的組播源節點為BEB設備L為例,BEB設備C在第一次遍歷BEB設備L配置的所有ISID時,從ISID1-1SID6中任意遍歷一個ISID1,當按照后續流程完成對ISIDl的處理后,再次執行本步驟時,BEB設備C從ISID2-1SID6中任意遍歷一個ISID2,以此類推,再次執行本步驟時,BEB設備C從ISID3-1SID6中任意遍歷一個ISID3,再次執行本步驟時,BEB設備C從ISID4-1SID6中任意遍歷一個ISID4,再次執行本步驟時,BEB設備C從ISID5-1SID6中任意遍歷一個ISID5,再次執行本步驟時,BEB設備C從ISID6中遍歷ISID6,再次執行本步驟時,判斷結果為否,執行步驟I。
[0072]步驟3,BEB設備確定該ISID (即當前遍歷到的ISID)對應的ISID組,并判斷該ISID對應的ISID組是否已經標記為處理完成(該處理完成標記可以為剪枝完成標記);如果否,執行步驟4 ;如果是,執行步驟2。[0073]在一種優選實施方式中,BEB設備還可以判斷該ISID (即當前遍歷到的ISID)對應的T標記位(ISID對應的T標記位由用戶手工配置)是否被置位,如果T標記位被置位,則表示相應的BEB設備(即當前遍歷到的組播源節點)在該ISID下被配置核心復制,BEB設備確定該ISID對應的ISID組標識,并判斷該ISID對應的ISID組標識是否已經標記為處理完成,即執行步驟3 ;如果T標記位沒有被置位,則不需要執行步驟3,直接返回步驟2。
[0074]步驟4,BEB設備獲取該ISID (即當前遍歷到的ISID)對應的指定端口(具體獲取過程在后續步驟中闡述),并在該ISID對應的ISID組所配置的出端口列表下記錄該指定端口,并標記該ISID對應的ISID組所配置的ISID組標識為處理完成(具體可以標記為剪枝完成);步驟4之后,返回步驟2。
[0075]以步驟I中遍歷到的組播源節點為BEB設備L為例,假設步驟2中第一次遍歷到的ISID為ISIDl,步驟3中,BEB設備C確定該ISIDl對應的ISID組標識為1,且該ISIDl對應的ISID組標識I未標記為處理完成,此時,BEB設備C獲取該ISIDl對應的指定端口,并在該ISIDl對應的ISID組I所配置的出端口列表I下記錄該指定端口,并標記該ISIDl對應的ISID組I所配置的ISID組標識I為處理完成。假設步驟2中第二次遍歷到的ISID為ISID2,步驟3中,BEB設備C確定該ISID2對應的ISID組標識為2,且該ISID2對應的ISID組標識2未標記為處理完成,此時,BEB設備C獲取該ISID2對應的指定端口,并在該ISID2對應的ISID組2所配置的出端口列表2下記錄該指定端口,并標記該ISID2對應的ISID組2所配置的ISID組標識2為處理完成。假設步驟2中第三次遍歷到的ISID為ISID3,步驟3中,BEB設備C確定該ISID3對應的ISID組標識為3,且該ISID3對應的ISID組標識3未標記為處理完成,此時,BEB設備C獲取該ISID3對應的指定端口,并在該ISID3對應的ISID組3所配置的出端口列表3下記錄該指定端口,并標記該ISID3對應的ISID組3所配置的ISID組標識3為處理完成。假設步驟2中第四次遍歷到的ISID為ISID4,步驟3中,BEB設備C確定該ISID4對應的ISID組標識為2,且該ISID2對應的ISID組標識2已經標記為處理完成,此時,BEB設備C直接執行步驟2。假設步驟2中第五次遍歷到的ISID為ISID5,步驟3中,BEB設備C確定該ISID5對應的ISID組標識為2,且該ISID5對應的ISID組標識2已經標記為處理完成,此時,BEB設備C直接執行步驟2。假設步驟2中第六次遍歷到的ISID為ISID6,步驟3中,BEB設備C確定該ISID6對應的ISID組標識為3,且該ISID6對應的ISID組標識3已經標記為處理完成,此時,BEB設備C直接執行步驟2。
[0076]針對上述步驟302,BEB設備遍歷所有的出端口列表,并將出端口列表中記錄的指定端口添加到該出端口列表對應的ISID組內所有ISID的組播轉發表項中。如圖2所示,BEB設備C將出端口列表I中記錄的指定端口添加到ISID組I內的ISIDl的組播轉發表項,并將出端口列表2中記錄的指定端口分別添加到ISID組2內的ISID2、ISID4和ISID5的組播轉發表項,并將出端口列表3中記錄的指定端口分別添加到ISID組3內的ISID3和ISID6的組播轉發表項。
[0077]本發明實施例中,在執行上述步驟I之前,BEB設備還需要判斷任意出端口列表中是否記錄有指定端口。如果否,即所有的出端口列表中均沒有記錄指定端口,則說明當前為第一次生成組播轉發表項,即之前沒有執行過上述步驟的處理,此時組播轉發表項為空。如果是,即有一個出端口列表或者多個出端口列表中記錄有指定端口,則說明當前不是第一次生成組播轉發表項,即之前已經執行過上述步驟的處理,此時組播轉發表項不為空。[0078]本發明實施例中,BEB設備在判斷任意出端口列表中是否記錄有指定端口之后,如果當前不是第一次生成組播轉發表項,即組播轉發表項不為空,且出端口列表中有記錄指定端口,基于此過程,在步驟I之前,BEB設備還需要為所有出端口列表中記錄的指定端口標記delete (刪除)標識。
[0079]在此情況下(即當前不是第一次生成組播轉發表項,出端口列表中的指定端口有delete標識),步驟4中,BEB設備獲取ISID對應的指定端口后,如果該ISID對應的ISID組所配置的出端口列表下已經記錄該指定端口,BEB設備為該指定端口清除delete標識;如果該ISID對應的ISID組所配置的出端口列表下沒有記錄該指定端口,BEB設備在該ISID對應的ISID組所配置的出端口列表下記錄該指定端口,并為該指定端口標記add (添加)標識。
[0080]進一步的,在步驟302中,BEB設備針對出端口列表中記錄的每個指定端口,如果該指定端口標記為add標識,則BEB設備將該指定端口添加到該出端口列表對應的ISID組內所有ISID的組播轉發表項中;如果該指定端口標記為delete標識,則BEB設備從該出端口列表對應的ISID組內所有ISID的組播轉發表項中刪除該指定端口 ;如果該指定端口沒有標記add標識和delete標識,則BEB設備不需要在ISID的組播轉發表項更新該指定端□。
[0081]上述步驟4中,BEB設備獲取ISID (即當前遍歷到的ISID)對應的指定端口的過程,在一種優選實施方式中,該過程具體包括:如果該ISID對應的T標記位(ISID對應的T標記位由用戶手工配置)未被置位,則表示相應的BEB設備(即當前遍歷到的組播源節點)在該ISID下沒有被配置核心復制,繼續獲取下一個ISID。如果該ISID對應的T標記位被置位,則表示相應的BEB設備在該ISID下被配置核心復制,BEB設備獲取該ISID對應的BEB設備鏈表,并依次遍歷該BEB設備鏈表上除本BEB設備以外的其它BEB設備;如果該其它BEB設備配置的該ISID對應的R標記位(ISID對應的R標記位由用戶手工配置)被置位,則表示該其它BEB設備需要接收該ISID的流量,此時查找本BEB設備到該其它BEB設備的端口(BEB設備根據該ISID對應的B-VLAN獲取對應的ECT算法,再根據ECT算法查找本BEB設備到該其它BEB設備的指定端口),且該端口為該ISID對應的指定端口。如果查找到的端口有效,則將該端口作為該ISID對應的指定端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備;如果查找到的端口無效,則說明該端口不是該ISID對應的指定端口,丟棄該查找到的無效端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備。
[0082]假設所有ISID (即ISID-1SID6)對應的T標記位和R標記位均被置位,以下結合圖2所示的應用場景對上述過程進行進一步的說明。
[0083]步驟4中,BEB設備C獲取ISIDl對應的指定端口,并在ISIDl對應的ISID組I所配置的出端口列表I下記錄該指定端口。在獲取ISIDl對應的指定端口時,ISIDl對應的BEB設備鏈表為BEB設備D和BEB設備L。BEB設備C遍歷該BEB設備鏈表上的BEB設備D,并查找本BEB設備C到該BEB設備D的端口,該查找過程不再贅述。其中,如果查找到的端口是步驟I中遍歷到的組播源節點到當前遍歷到的BEB設備鏈表中的BEB設備的下游端口(即兩個BEB設備的路徑之間經過的端口),則說明查找到的端口有效,否則,說明查找到的端口無效。基于此,由于BEB設備C到該BEB設備D的端口是BEB設備L到BEB設備D的下游端口,因此當前查找到的端口有效,將當前查找到的端口作為ISIDl對應的指定端口。之后,BEB設備C遍歷該BEB設備鏈表上的BEB設備L,并查找本BEB設備C到該BEB設備L的端口,該查找過程不再贅述。由于BEB設備C到該BEB設備L的端口不是BEB設備L到BEB設備L的下游端口,因此當前查找到的端口無效。
[0084]BEB設備C獲取ISID2對應的指定端口,并在ISID2對應的ISID組2所配置的出端口列表2下記錄該指定端口。在獲取ISID2對應的指定端口時,ISID2對應的BEB設備鏈表為BEB設備C、BEB設備D、BEB設備L和BEB設備K。BEB設備C遍歷該BEB設備鏈表上除本BEB設備C以外的BEB設備D,并查找本BEB設備C到該BEB設備D的端口,該查找過程不再贅述。由于BEB設備C到該BEB設備D的端口是BEB設備L到BEB設備D的下游端口,因此當前查找到的端口有效,將當前查找到的端口作為ISID2對應的指定端口。之后,BEB設備C遍歷該BEB設備鏈表上除本BEB設備C以外的BEB設備L,并查找本BEB設備C到該BEB設備L的端口,該查找過程不再贅述。由于BEB設備C到該BEB設備L的端口不是BEB設備L到BEB設備L的下游端口,因此當前查找到的端口無效。之后,BEB設備C遍歷該BEB設備鏈表上除本BEB設備C以外的BEB設備K,并查找本BEB設備C到該BEB設備K的端口,該查找過程不再贅述。由于BEB設備C到該BEB設備K的端口是BEB設備L到BEB設備K的下游端口,因此當前查找到的端口有效,將當前查找到的端口作為ISID2對應的指定端口。
[0085]BEB設備C獲取ISID3對應的指定端口,并在ISID3對應的ISID組3所配置的出端口列表3下記錄該指定端口。BEB設備C在獲取ISID3對應的指定端口時,ISID3對應的BEB設備鏈表為BEB設備C、BEB設備L和BEB設備K。BEB設備C遍歷該BEB設備鏈表上除本BEB設備C以外的BEB設備L,并查找本BEB設備C到該BEB設備L的端口,該查找過程不再贅述。由于BEB設備C到該BEB設備L的端口不是BEB設備L到BEB設備L的下游端口,因此當前查找到的端口無效。之后,BEB設備C遍歷該BEB設備鏈表上除本BEB設備C以外的BEB設備K,并查找本BEB設備C到該BEB設備K的端口,該查找過程不再贅述。由于BEB設備C到該BEB設備K的端口是BEB設備L到BEB設備K的下游端口,因此當前查找到的端口有效,將當前查找到的端口作為ISID3對應的指定端口。
[0086]針對ISID4、ISID5和ISID6,由于步驟3的判斷結果為是,因此不會執行步驟4,即BEB設備不需要執行獲取ISID4、ISID5和ISID6對應的指定端口的過程,從而顯著的降低需要獲取指定端口的ISID的數量。
[0087]本發明實施例中,當SPBM網絡中有BEB設備上配置的ISID發生變化(如BEB設備上配置了新的ISID和/或BEB設備上刪除了之前已經配置的ISID)時,BEB設備需要為發生變化的ISID (即新配置的ISID和/或刪除的ISID)重新劃分ISID組,并確定變化前的ISID組(即該ISID在發生變化之前對應的ISID組)對應的出端口列表中記錄的指定端口,并確定變化后的ISID組(即該ISID在發生變化之后對應的ISID組)對應的出端口列表中記錄的指定端口 ;之后,BEB設備比較變化前的ISID組對應的出端口列表中記錄的指定端口以及變化后的ISID組對應的出端口列表中記錄的指定端口 ;當有指定端口記錄在變化前的ISID組對應的出端口列表中,但是沒有記錄在變化后的ISID組對應的出端口列表中時,BEB設備從發生變化的ISID的組播轉發表項中刪除該指定端口 ;當有指定端口記錄在變化后的ISID組對應的出端口列表中,但是沒有記錄在變化前的ISID組對應的出端口列表中時,BEB設備在發生變化的ISID的組播轉發表項中添加該指定端口。
[0088]假設變化前的ISID組為group-old,變化后的ISID組為group-new,如果在ISID發生變化之前已經存在group-new,貝U直接確定group-new對應的出端口列表中記錄的指定端口 ;如果在ISID發生變化之前不存在group-new,貝U重新計算group-new對應的出端口列表中記錄的指定端口。通過比較group-old對應的出端口列表中記錄的指定端口以及group-new對應的出端口列表中記錄的指定端口 ;當有指定端口記錄在group-old對應的出端口列表中,但是沒有記錄在group-new對應的出端口列表中,則從發生變化的ISID的組播轉發表項中刪除該指定端口 ;當有指定端口記錄在group-new對應的出端口列表中,但是沒有記錄在group-old對應的出端口列表中,則在發生變化的ISID的組播轉發表項中添加該指定端口。
[0089]在圖2所示的應用場景下,假設BEB設備D上配置的ISID發生變化,即在BEB設備D上配置ISID6,BEB設備D上配置有ISID1、2、4、5、6,此時BEB設備C需要為發生變化的ISID6重新劃分ISID組。在發生變化之前,ISID6在ISID組3內;在發生變化之后,由于ISID6被配置在BEB設備C、BEB設備D、BEB設備L和BEB設備K上,且ISID組2內的ISID2、ISID4和ISID5均被配置在BEB設備C、BEB設備D、BEB設備L和BEB設備K上,因此BEB設備C將ISID6劃分到ISID組3。基于此,ISID組I內包含ISID1,ISID組2內包含 ISID2、ISID4、ISID5 和 ISID6, ISID 組 3 內包含 ISID3。
[0090]針對ISID6,變化前的ISID組為ISID組3,變化后的ISID組為ISID組2(在ISID6發生變化之前已經存在該ISID組2)。BEB設備C確定變化前的ISID組3對應的出端口列表3中記錄的指定端口,并確定變化后的ISID組2對應的出端口列表2中記錄的指定端口,并比較出端口列表3中記錄的指定端口以及出端口列表2中記錄的指定端口 ;當有指定端口記錄在出端口列表3中,但是沒有記錄在出端口列表2中時,BEB設備C從ISID6的組播轉發表項中刪除該指定端口 ;當有指定端口記錄在出端口列表2中,但是沒有記錄在出端口列表3中時,BEB設備C在ISID6的組播轉發表項中添加該指定端口。
[0091]綜上所述,本發明實施例中,通過將配置在相同BEB設備上的ISID劃分到同一ISID組中,針對ISID組內的各個ISID,可以只針對一個ISID進行獲取指定端口的處理,而ISID組內的其它ISID,不再需要進行獲取指定端口的處理,從而達到提升組播計算速度的效果,提升組播轉發表項的維護速度,并加速SPBM網絡的收斂性能。例如,在圖2所示的應用場景下,當遍歷到的組播源節點為BEB設備C時,現有技術中,需要針對ISID2-1SID6分別進行處理,即處理5個ISID,而本發明實施例中,只需要處理ISID2 (ISID4和ISID5與ISID2在同一 ISID組,步驟3的判斷結果為是)和ISID3 (ISID6與ISID3在同一 ISID組,步驟3的判斷結果為是),即處理2個ISID。同理,針對BEB設備D、BEB設備L、BEB設備K等其它組播源節點,處理的ISID的數量也顯著少于現有技術,從而可以加速SPBM網絡的收斂性能。
[0092]基于與上述方法同樣的發明構思,本發明實施例中還提供了一種骨干網邊緣網橋BEB設備,該BEB設備應用于包括多個BEB設備的最短路徑橋SPB網絡中,如圖4所以,所述BEB設備具體包括:
[0093]分組模塊11,用于獲得所述SPB網絡中所有BEB設備上配置的骨干網服務實例編號ISID,并將配置在相同BEB設備上的ISID劃分到同一個ISID組;其中,每個ISID組對應有一個出端口列表;
[0094]端口獲得模塊12,用于遍歷各個組播源節點上配置的各個ISID,判斷當前遍歷的ISID所屬ISID組是否已處理完成,若是,則遍歷下一 ISID,否則,獲得當前遍歷的ISID所對應的指定端口,記錄在當前遍歷的ISID所屬ISID組的出端口列表中,并標記當前遍歷的ISID所屬ISID組為處理完成;
[0095]端口下發模塊13,用于將各個出端口列表中記錄的指定端口添加到對應ISID組內的所有ISID的組播轉發表項中。
[0096]所述端口獲得模塊12具體包括:第一遍歷子模塊,用于判斷是否有未遍歷過的組播源節點;如果是,則遍歷一個未遍歷過的組播源節點,并觸發第二遍歷子模塊;否則,觸發所述端口下發模塊13;
[0097]第二遍歷子模塊,用于判斷當前遍歷到的組播源節點配置的ISID中是否有未遍歷過的ISID ;如果是,則遍歷一個未遍歷過的ISID,并觸發第一處理子模塊;否則,觸發所述第一遍歷子模塊;
[0098]第一處理子模塊,用于確定當前遍歷到的ISID所對應的ISID組,并判斷該ISID組是否已經標記為處理完成;如果否,則觸發第二處理子模塊;如果是,則觸發所述第二遍歷子模塊;
[0099]第二處理子模塊,用于獲取該ISID對應的指定端口,并在該ISID對應的ISID組所對應的出端口列表下記錄所述指定端口,并標記該ISID對應的ISID組所對應的ISID組標識為處理完成;之后,觸發所述第二遍歷子模塊。
[0100]所述分組模塊11,具體用于遍歷各BEB設備上配置的所有ISID中的每個ISID,并利用所有配置該ISID的BEB設備的系統標識計算該ISID的源值;
[0101]以及,將源值相同的ISID劃分到同一個ISID組中。
[0102]所述端口獲得模塊12還包括:
[0103]第三處理子模塊,用于在執行所述步驟B之前,判斷任意出端口列表中是否記錄有指定端口 ;如果有一個出端口列表或者多個出端口列表中記錄有指定端口,則為所有出端口列表中記錄的指定端口標記delete標識;
[0104]所述第二處理子模塊在獲取ISID對應的指定端口之后,如果該ISID對應的ISID組所對應的出端口列表下已經記錄所述指定端口,則為所述指定端口清除delete標識;如果該ISID對應的ISID組所對應的出端口列表下沒有記錄所述指定端口,則在該ISID對應的ISID組所對應的出端口列表下記錄所述指定端口,并為所述指定端口標記add標識;
[0105]所述端口下發模塊13在將各個出端口列表中記錄的指定端口添加到組播轉發表項時,針對出端口列表中記錄的指定端口,如果該指定端口標記為add標識,則將該指定端口添加到所述出端口列表對應的ISID組內所有ISID的組播轉發表項中;如果該指定端口標記為delete標識,從所述出端口列表對應的ISID組內所有ISID的組播轉發表項中刪除該指定端口。
[0106]所述第二處理子模塊在獲取該ISID對應的指定端口的過程中,在該ISID對應的T標記位被置位時,獲取該ISID對應的BEB設備鏈表;其中配置相同ISID的BEB設備組成該ISID對應的BEB設備鏈表;[0107]依次遍歷所述BEB設備鏈表上除本BEB設備以外的其它BEB設備,如果該其它BEB設備配置的該ISID對應的R標記位被置位,則查找本BEB設備到該其它BEB設備的端口 ;如果查找到的端口有效,則將該端口作為該ISID對應的指定端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備;如果查找到的端口無效,則丟棄查找到的端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備。
[0108]所述分組模塊11,還用于在SPB網絡中有BEB設備上配置的ISID發生變化時,為發生變化的ISID劃分ISID組;
[0109]所述端口下發模塊13,還用于確定變化前的ISID組對應的出端口列表中記錄的指定端口,并確定變化后的ISID組對應的出端口列表中記錄的指定端口 ;比較所述變化前的ISID組對應的出端口列表中記錄的指定端口以及所述變化后的ISID組對應的出端口列表中記錄的指定端口 ;當有指定端口記錄在所述變化前的ISID組對應的出端口列表中,但沒有記錄在所述變化后的ISID組對應的出端口列表中時,從所述發生變化的ISID的組播轉發表項中刪除所述指定端口 ;當有指定端口記錄在所述變化后的ISID組對應的出端口列表中,但沒有記錄在所述變化前的ISID組對應的出端口列表中時,在所述發生變化的ISID的組播轉發表項中添加所述指定端口。
[0110]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。
[0111]本領域技術人員可以理解附圖只是一個優選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發明所必須的。
[0112]本領域技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
[0113]上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
[0114]以上公開的僅為本發明的幾個具體實施例,但是,本發明并非局限于此,任何本領域的技術人員能思之的變化都應落入本發明的保護范圍。
【權利要求】
1.一種組播轉發表項維護方法,應用于包括多個骨干網邊緣網橋BEB設備的最短路徑橋SPB網絡中,其特征在于,所述方法包括以下步驟: 步驟A、BEB設備獲得所述SPB網絡中所有BEB設備上配置的骨干網服務實例編號ISID,并將配置在相同BEB設備上的ISID劃分到同一個ISID組;其中,每個ISID組對應有一個出端口列表; 步驟B、所述BEB設備遍歷各個組播源節點上配置的各個ISID,判斷當前遍歷的ISID所屬ISID組是否處理完成,若是,則遍歷下一 ISID,否則,獲得當前遍歷的ISID所對應的指定端口,記錄在當前遍歷的ISID所屬ISID組的出端口列表中,并標記當前遍歷的ISID所屬ISID組為處理完成; 步驟C、所述BEB設備將各個出端口列表中記錄的指定端口添加到對應ISID組內的所有ISID的組播轉發表項中。
2.如權利要求1所述的方法,其特征在于,所述步驟B包括以下步驟: 步驟B1、所述BEB設備判斷是否有未遍歷過的組播源節點;如果是,則遍歷一個未遍歷過的組播源節點,執行步驟B2 ;如果否,則執行步驟C ; 步驟B2、所述BEB設備判斷該組播源節點配置的ISID中是否有未遍歷過的ISID ;如果是,遍歷一個未遍歷過的ISID,執行步驟B3 ;如果否,執行步驟BI ; 步驟B3、所述BEB設備確定該ISID對應的ISID組,并判斷該ISID組是否已經標記為處理完成;如果否,執行步驟B4 ;如果是,執行步驟B2 ; 步驟B4、所述BEB設備獲取該ISID對應的指定端口,并在該ISID對應的ISID組所對應的出端口列表下記錄所述指定端口,并標記該ISID對應的ISID組所對應的ISID組為處理完成;之后,返回所述步驟B2。
3.如權利要求1所述的方法,其特征在于,所述BEB設備將配置在相同BEB設備上的ISID劃分到同一個ISID組的過程,具體包括: 所述BEB設備遍歷各BEB設備上配置的所有ISID中的每個ISID,并利用所有配置該ISID的BEB設備的系統標識計算該ISID的源值; 所述BEB設備將源值相同的ISID劃分到同一個ISID組中。
4.如權利要求2所述的方法,其特征在于,所述步驟B之前還包括: 所述BEB設備判斷任意出端口列表中是否記錄有指定端口 ;如果有一個出端口列表或者多個出端口列表中記錄有指定端口,則所述BEB設備為所有出端口列表中記錄的指定端口標記delete標識; 在所述步驟B4中,所述BEB設備獲取ISID對應的指定端口后,如果該ISID對應的ISID組所對應的出端口列表下已經記錄所述指定端口,則為所述指定端口清除delete標識;如果該ISID對應的ISID組所對應的出端口列表下沒有記錄所述指定端口,則在該ISID對應的ISID組所對應的出端口列表下記錄所述指定端口,并為所述指定端口標記add標識; 在步驟C中,如果出端口列表中記錄的指定端口標記為add標識,則將該指定端口添加到所述出端口列表對應的ISID組內所有ISID的組播轉發表項中;如果該指定端口標記為delete標識,從所述出端口列表對應的ISID組內所有ISID的 組播轉發表項中刪除該指定端口。
5.如權利要求2或4所述的方法,其特征在于,所述獲得當前遍歷的ISID所對應的指定端口,具體包括: 在該ISID對應的T標記位被置位時,所述BEB設備獲取該ISID對應的BEB設備鏈表;其中配置相同ISID的BEB設備組成該ISID對應的BEB設備鏈表; 所述BEB設備依次遍歷所述BEB設備鏈表上除本BEB設備以外的其它BEB設備,如果該其它BEB設備配置的該ISID對應的R標記位被置位,則查找本BEB設備到該其它BEB設備的端口 ;如果查找到的端口有效,則將該端口作為該ISID對應的指定端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備;如果查找到的端口無效,則丟棄查找到的端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備。
6.如權利要求1所述的方法,其特征在于,所述方法進一步包括: 當SPB網絡中有BEB設備上配置的ISID發生變化時,所述BEB設備為發生變化的ISID劃分ISID組,確定變化前的ISID組對應的出端口列表中記錄的指定端口,并確定變化后的ISID組對應的出端口列表中記錄的指定端口 ; 所述BEB設備比較所述變化前的ISID組對應的出端口列表中記錄的指定端口以及所述變化后的ISID組對應的出端口列表中記錄的指定端口 ; 當有指定端口記錄在所述變化前的ISID組對應的出端口列表中,但沒有記錄在所述變化后的ISID組對應的出端口列表中時,所述BEB設備從所述發生變化的ISID的組播轉發表項中刪除所述指定 端口; 當有指定端口記錄在所述變化后的ISID組對應的出端口列表中,但沒有記錄在所述變化前的ISID組對應的出端口列表中時,所述BEB設備在所述發生變化的ISID的組播轉發表項中添加所述指定端口。
7.一種骨干網邊緣網橋BEB設備,應用于包括多個BEB設備的最短路徑橋SPB網絡中,其特征在于,所述BEB設備具體包括: 分組模塊,用于獲得所述SPB網絡中所有BEB設備上配置的骨干網服務實例編號ISID,并將配置在相同BEB設備上的ISID劃分到同一個ISID組;其中,每個ISID組對應有一個出端口列表; 端口獲得模塊,用于遍歷各個組播源節點上配置的各個ISID,判斷當前遍歷的ISID所屬ISID組是否已處理完成,若是,則遍歷下一 ISID,否則,獲得當前遍歷的ISID所對應的指定端口,記錄在當前遍歷的ISID所屬ISID組的出端口列表中,并標記當前遍歷的ISID所屬ISID組為處理完成; 端口下發模塊,用于將各個出端口列表中記錄的指定端口添加到對應ISID組內的所有ISID的組播轉發表項中。
8.如權利要求7所述的BEB設備,其特征在于,所述端口獲得模塊包括: 第一遍歷子模塊,用于判斷是否有未遍歷過的組播源節點;如果是,則遍歷一個未遍歷過的組播源節點,并觸發第二遍歷子模塊;否則,觸發所述端口下發模塊; 第二遍歷子模塊,用于判斷當前遍歷到的組播源節點配置的ISID中是否有未遍歷過的ISID ;如果是,則遍歷一個未遍歷過的ISID,并觸發第一處理子模塊;否則,觸發所述第一遍歷子模塊;第一處理子模塊,用于確定當前遍歷到的ISID所對應的ISID組,并判斷該ISID組是否已經標記為處理完成;如果否,則觸發第二處理子模塊;如果是,則觸發所述第二遍歷子模塊; 第二處理子模塊,用于獲取該ISID對應的指定端口,并在該ISID對應的ISID組所對應的出端口列表下記錄所述指定端口,并標記該ISID對應的ISID組所對應的ISID組標識為處理完成;之后,觸發所述第二遍歷子模塊。
9.如權利要求7所述的BEB設備,其特征在于, 所述分組模塊,具體用于遍歷各BEB設備上配置的所有ISID中的每個ISID,并利用所有配置該ISID的BEB設備的系統標識計算該ISID的源值; 以及,將源值相同的ISID劃分到同一個ISID組中。
10.如權利要求8所述的BEB設備,其特征在于,所述端口獲得模塊還包括: 第三處理子模塊,用于在執行所述步驟B之前,判斷任意出端口列表中是否記錄有指定端口;如果有一個出端口列表或者多個出端口列表中記錄有指定端口,則為所有出端口列表中記錄的指定端口標記delete標識; 所述第二處理子模塊在獲取ISID對應的指定端口之后,如果該ISID對應的ISID組所對應的出端口列表下已經記錄所述指定端口,則為所述指定端口清除delete標識;如果該ISID對應的ISID組所對應的出端口列表下沒有記錄所述指定端口,則在該ISID對應的ISID組所對應的出端口列表下記錄所述指定端口,并為所述指定端口標記add標識; 所述端口下發模塊在將各個出端口列表中記錄的指定端口添加到組播轉發表項時,針對出端口列表中記錄的指定端口,如果該指定端口標記為add標識,則將該指定端口添加到所述出端口列表對應的ISID組內所有ISID的組播轉發表項中;如果該指定端口標記為delete標識,從所述出端口列表對應的ISID組內所有ISID的組播轉發表項中刪除該指定端口。
11.如權利要求8或10所述的BEB設備,其特征在于, 所述第二處理子模塊在獲取該ISID對應的指定端口的過程中,在該ISID對應的T標記位被置位時,獲取該ISID對應的BEB設備鏈表;其中配置相同ISID的BEB設備組成該ISID對應的BEB設備鏈表; 依次遍歷所述BEB設備鏈表上除本BEB設備以外的其它BEB設備,如果該其它BEB設備配置的該ISID對應的R標記位被置位,則查找本BEB設備到該其它BEB設備的端口 ;如果查找到的端口有效,則將該端口作為該ISID對應的指定端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備;如果查找到的端口無效,則丟棄查找到的端口,之后繼續遍歷BEB設備鏈表上除本BEB設備以外的下一個其它BEB設備,一直到遍歷完BEB設備鏈表上除本BEB設備以外的其他所有BEB設備。
12.如權利要求7所述的BEB設備,其特征在于, 所述分組模塊,還用于在SPB網絡中有BEB設備上配置的ISID發生變化時,為發生變化的ISID劃分ISID組; 所述端口下發模塊,還用于確定變化前的ISID組對應的出端口列表中記錄的指定端口,并確定變化后的ISID組對應的出端口列表中記錄的指定端口 ;比較所述變化前的ISID組對應的出端口列表中記錄的指定端口以及所述變化后的ISID組對應的出端口列表中記錄的指定端口 ;當有指定端口記錄在所述變化前的ISID組對應的出端口列表中,但沒有記錄在所述變化后的ISID組對應的出端口列表中時,從所述發生變化的ISID的組播轉發表項中刪除所述指定端口 ;當有指定端口記錄在所述變化后的ISID組對應的出端口列表中,但沒有記錄在所述變化前的ISID組對應的出端口列表中時,在所述發生變化的ISID的組播轉發表 項中添加所述指定端口。
【文檔編號】H04L12/24GK103795567SQ201410028006
【公開日】2014年5月14日 申請日期:2014年1月21日 優先權日:2014年1月21日
【發明者】周萬 申請人:杭州華三通信技術有限公司