生成樹協議STP計算方法及裝置與流程
2023-11-05 03:13:41 1

本發明涉及通信技術領域,特別涉及一種生成樹協議(英文:spanningtreeprotocol;縮寫:stp)計算方法及裝置。
背景技術:
跨設備鏈路聚合組(英文:multi-chassislinkaggregationgroup;縮寫:m-lag)是一種實現跨設備鏈路聚合的機制,能夠實現多臺設備間的鏈路聚合,從而把鏈路可靠性從單板級提高到了設備級,組成雙活系統。
m-lag主要應用於普通乙太網絡、多連結透明互聯(英文:transparentinterconnectionoflotsoflinks;縮寫:trill)網絡、虛擬可擴展區域網(英文:virtualextensiblelocalareanetwork;縮寫:vxlan)和ip(internetprotocol,網絡協議)網絡等網絡的雙規接入。一方面可以起到負載分擔流量的作用,另一方面可以起到備份保護的作用。為了提高可靠性,用戶經常採用雙規接入的方式將伺服器接入到網絡中。如圖1所示,其示出了一種雙規接入的組網示意圖。伺服器11採用雙規接入的方式接入到網絡中。在接入側,採用m-lag保證了設備級可靠性和鏈路級可靠性。在設備12和設備13之間部署m-lag,設備12和設備13之間通過peer-link鏈路建立連接。設備12與伺服器11之間的鏈路以及設備13與伺服器11之間的鏈路形成鏈路聚合組(英文:linkaggregationgroup;縮寫:lag)。每個lag唯一對應著一個邏輯接口,這個邏輯接口稱為聚合接口或eth-trunk接口。
多級m-lag互聯(也稱為m-lag級聯或者m-lag對接)是對普通m-lag進行擴展對接的場景,能更好地做到更大帶寬的負載均衡和備份保護的作用。如圖2所示,其示出了一種多級m-lag互聯的組網示意圖。設備a和設備b之間部署m-lag,設備c和設備d之間也部署m-lag,且兩個m-lag進行級聯,這樣不僅可以簡化組網,而且在保證可靠性的同時擴展了接入伺服器的數量。
在上述基於m-lag的組網中,為了進行鏈路備份以提高網絡可靠性,使用冗餘鏈路。但是,使用冗餘鏈路會在交換網絡上產生環路,引發廣播風暴以及介質訪問控制(英文:mediaaccesscontrol;縮寫:mac)地址表不穩定等故障現象,從而導致用戶通信質量較差,甚至通信中斷。為解決交換網絡中的環路問題,提出了stp。stp是一個用於區域網中消除環路的協議。運行該協議的設備通過彼此交互信息而發現網絡中的環路,並適當對某些埠進行阻塞以消除環路。在交換網絡中部署stp之後,如果網絡中出現了環路,stp通過拓撲計算,一方面通過阻塞冗餘鏈路消除網絡中可能存在的網絡通信環路,達到消除環路的目的,另一方面通過在當前活動的路徑發生故障時,激活冗餘備份鏈路,恢復網絡連通性,達到鏈路備份的目的。由於區域網規模的不斷增長,stp已經成為了當前最重要的區域網協議之一。
然而,針對上述採用m-lag進行組網的場景,如果採用現有的stp算法對網絡中的環路進行破壞,會存在如下問題:採用現有的stp算法有可能將peer-link埠或者m-lag埠的成員埠eth-trunk埠置為阻塞狀態,進而導致m-lag的功能隨之失效。
技術實現要素:
為了解決現有技術中針對採用m-lag進行組網的場景,採用現有的stp算法有可能將peer-link埠或者m-lag埠的成員埠eth-trunk埠置為阻塞狀態,進而導致m-lag的功能隨之失效的問題,本發明實施例提供了一種stp計算方法及裝置。所述技術方案如下:
第一方面,提供了一種stp計算方法,該方法包括:第一設備向第二設備發送第一設備的stp配置信息,stp配置信息包括橋mac地址和實例優先級信息;第一設備根據第一設備的stp配置信息,計算第一設備的內部埠的擴展優先級向量;其中,第一設備的內部埠是指第一設備與第二設備連接的埠,擴展優先級向量用於使得第一設備和第二設備屬於同一邏輯埠的成員埠的角色計算結果相同;第一設備從第二設備接收第二設備的內部埠的擴展優先級向量;其中,第二設備的內部埠是指第二設備與第一設備連接的埠,第二設備的內部埠的擴展優先級向量由第二設備根據第一設備的stp配置信息計算得到;第一設備根據第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量的比較結果,計算第一設備的各個埠的角色。
通過上述方式,解決了現有技術中針對採用m-lag進行組網的場景,採用現有的stp算法有可能將peer-link埠或者m-lag埠的成員埠eth-trunk埠置為阻塞狀態,進而導致m-lag的功能隨之失效的問題;通過在第一設備和第二設備之間同步stp配置信息和內部埠的擴展優先級向量,從而使得兩臺設備對外體現為一臺設備進行stp計算,保證兩臺設備屬於同一m-lag組的成員埠的角色計算結果相同,從而不阻塞peer-link埠和m-lag埠的成員埠eth-trunk埠。
在第一方面的第一種可能的實施方式中,第一設備根據第一設備的stp配置信息,計算第一設備的內部埠的擴展優先級向量,包括:第一設備根據第一設備的stp配置信息,計算第一設備除內部埠以外的其它埠的優先級向量;第一設備從其它埠中選取優先級最高的優先級向量,作為第一設備的根優先級向量;第一設備將第一設備的根優先級向量與第一設備的內部埠的優先級向量進行比較,並根據優先級較高的優先級向量確定第一設備的內部埠的擴展優先級向量。
結合第一方面的第一種可能的實施方式,在第一方面的第二種可能的實施方式中,擴展優先級向量包括:根橋id欄位、累計根路徑開銷欄位、指定橋id欄位、指定埠id欄位、邏輯埠id欄位、接收埠id欄位和系統mac地址欄位。根橋id欄位指示根橋的橋id。累計根路徑開銷欄位指示埠累計到根橋的路徑開銷。指定橋id欄位指示發送根優先級向量的設備的橋id。指定埠id欄位指示發送根優先級向量的埠的埠id。邏輯埠id欄位指示本設備接收根優先級向量的埠對應的邏輯埠的埠id。接收埠id欄位指示本設備接收根優先級向量的埠的埠id。系統mac地址欄位指示本設備的mac地址。
通過上述方式,對stp標準協議所規定的埠優先級向量進行了擴展,以保證第一設備和第二設備加入同一m-lag組的eth-trunk埠的角色計算結果相同。
結合第一方面或者第一方面的任意一種可能的實施方式,在第一方面的第三種可能的實施方式中,第一設備根據第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量,計算第一設備的各個埠的角色,包括:第一設備將第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量進行比較,選取優先級較高的優先級向量作為第一設備最終的根優先級向量;第一設備根據第一設備最終的根優先級向量,計算第一設備的各個埠的角色。
結合第一方面或者第一方面的任意一種可能的實施方式,在第一方面的第四種可能的實施方式中,第一設備根據第一設備的stp配置信息,計算第一設備的內部埠的擴展優先級向量之後,還包括:第一設備向第二設備發送第一設備的內部埠的擴展優先級向量,以使得第二設備根據第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量的比較結果,計算第二設備的各個埠的角色。
結合第一方面或者第一方面的任意一種可能的實施方式,在第一方面的第五種可能的實施方式中,第一設備根據第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量,計算第一設備的各個埠的角色之後,還包括:第一設備設置第一設備的內部埠由阻塞狀態變為轉發狀態。
通過上述方式,保證第一設備和第二設備的內部埠在完成stp拓撲計算之後,能夠轉發用戶流量。
結合第一方面或者第一方面的任意一種可能的實施方式,在第一方面的第六種可能的實施方式中,第一設備和第二設備屬於同一邏輯埠的成員埠發出的報文所攜帶的指定埠id相同。
通過上述方式,保證其它設備從同一m-lag埠的不同成員埠接收到的bpdu報文中的指定埠id欄位相同,避免引起下遊設備震蕩,提高網絡穩定性。
第二方面,提供了一種stp計算方法,該方法包括:第二設備從第一設備接收第一設備的stp配置信息,stp配置信息包括橋mac地址和實例優先級信息;第二設備根據第一設備的stp配置信息,計算第二設備的內部埠的擴展優先級向量;其中,第二設備的內部埠是指第二設備與第一設備連接的埠,擴展優先級向量用於使得第二設備和第一設備屬於同一邏輯埠的成員埠的角色計算結果相同;第二設備從第一設備接收第一設備的內部埠的擴展優先級向量;其中,第一設備的內部埠是指第一設備與第二設備連接的埠,第一設備的內部埠的擴展優先級向量由第一設備根據第一設備的stp配置信息計算得到;第二設備根據第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量的比較結果,計算第二設備的各個埠的角色。
在第二方面的第一種可能的實施方式中,第二設備根據第一設備的stp配置信息,計算第二設備的內部埠的擴展優先級向量,包括:第二設備根據第一設備的stp配置信息,計算第二設備除內部埠以外的其它埠的優先級向量;第二設備從其它埠中選取優先級最高的優先級向量,作為第二設備的根優先級向量;第二設備將第二設備的根優先級向量與第二設備的內部埠的優先級向量進行比較,並根據優先級較高的優先級向量確定第二設備的內部埠的擴展優先級向量。
結合第二方面的第一種可能的實施方式,在第二方面的第二種可能的實施方式中,擴展優先級向量包括:根橋id欄位、累計根路徑開銷欄位、指定橋id欄位、指定埠id欄位、邏輯埠id欄位、接收埠id欄位和系統mac地址欄位。根橋id欄位指示根橋的橋id。累計根路徑開銷欄位指示埠累計到根橋的路徑開銷。指定橋id欄位指示發送根優先級向量的設備的橋id。指定埠id欄位指示發送根優先級向量的埠的埠id。邏輯埠id欄位指示本設備接收根優先級向量的埠對應的邏輯埠的埠id。接收埠id欄位指示本設備接收根優先級向量的埠的埠id。系統mac地址欄位指示本設備的mac地址。
結合第二方面或者第二方面的任意一種可能的實施方式,在第二方面的第三種可能的實施方式中,第二設備根據第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量,計算第二設備的各個埠的角色,包括:第二設備將第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量進行比較,選取優先級較高的優先級向量作為第二設備最終的根優先級向量;第二設備根據第二設備最終的根優先級向量,計算第二設備的各個埠的角色。
結合第二方面或者第二方面的任意一種可能的實施方式,在第二方面的第四種可能的實施方式中,第二設備根據第一設備的stp配置信息,計算第二設備的內部埠的擴展優先級向量之後,還包括:第二設備向第一設備發送第二設備的內部埠的擴展優先級向量,以使得第一設備根據第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量的比較結果,計算第一設備的各個埠的角色。
結合第二方面或者第二方面的任意一種可能的實施方式,在第二方面的第五種可能的實施方式中,第二設備根據第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量,計算第二設備的各個埠的角色之後,還包括:第二設備設置第二設備的內部埠由阻塞狀態變為轉發狀態。
結合第二方面或者第二方面的任意一種可能的實施方式,在第二方面的第六種可能的實施方式中,第二設備和第一設備屬於同一邏輯埠的成員埠發出的報文所攜帶的指定埠id相同。
第三方面,提供了一種stp計算裝置,該裝置包括至少一個單元,該至少一個單元用於實現上述第一方面或者第一方面中任意一種可能的實施方式所提供的stp計算方法。
第四方面,提供了一種stp計算裝置,該裝置包括至少一個單元,該至少一個單元用於實現上述第二方面或者第二方面中任意一種可能的實施方式所提供的stp計算方法。
第五方面,提供了一種網絡設備,該網絡設備包括:處理器、存儲器和收發器,存儲器用於存儲一個或者一個以上的指令,該指令被配置成由處理器執行,該指令用於實現上述第一方面、或者第一方面中任意一種可能的實施方式、或者第二方面、或者第二方面中任意一種可能的實施方式所提供的stp計算方法。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是一種雙規接入的組網示意圖;
圖2是一種多級m-lag互聯的組網示意圖;
圖3是一種現有的stp算法計算前後的網絡拓撲圖;
圖4是本發明一個實施例提供的網絡設備的框圖;
圖5是本發明一個實施例提供的stp計算方法的流程圖;
圖6是本發明另一實施例提供的stp計算方法的流程圖;
圖7是本發明再一實施例提供的stp計算方法的流程圖;
圖8a是本發明一個實施例提供的stp計算裝置的框圖;
圖8b是本發明另一實施例提供的stp計算裝置的框圖;
圖9a是本發明另一實施例提供的stp計算裝置的框圖;
圖9b是本發明另一實施例提供的stp計算裝置的框圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
在本文中提及的「模塊」是指存儲在存儲器中的能夠實現某些功能的程序或指令;在本文中提及的「單元」是指按照邏輯劃分的功能性結構,該「單元」可以由純硬體實現,或者由軟硬體的結合實現。
在本文中提及的「多個」是指兩個或兩個以上。「和/或」,描述關聯對象的關聯關係,表示可以存在三種關係,例如,a和/或b,可以表示:單獨存在a,同時存在a和b,單獨存在b這三種情況。字符「/」一般表示前後關聯對象是一種「或」的關係。
在本文中提及的「接口」和「埠」為同一概念。
在對本發明實施例進行介紹和說明之前,首先對現有的stp算法進行介紹。
樹形網絡拓撲結構必須有樹根,於是stp引入了根橋(英文:rootbridge;縮寫:rb)的概念。對於一個stp網絡,根橋在整個網絡中只有一個,它是整個網絡的邏輯中心,但不一定是物理中心。根橋會根據網絡拓撲的變化而動態變化。
stp算法的兩大基本度量依據是id(英文:identity)和路徑開銷(英文:pathcost)。id分為橋id(英文:bridgeid;縮寫:bid)和埠id(英文:portid;縮寫:pid)。bid由橋優先級(英文:bridgepriority)和橋mac地址構成。在stp網絡中,bid最小的設備會被選舉為根橋。pid由埠優先級(英文:portpriority)和埠號構成。pid只在某些情況下對選擇指定埠有作用。路徑開銷是一個埠變量,是stp用於選擇鏈路的參考值。stp通過計算路徑開銷,選擇較為「強壯」的鏈路,阻塞多餘的鏈路,將網絡修剪成無環路的樹形網絡拓撲結構。在一個stp網絡中,某埠到根橋的路徑開銷就是由所經過的各個橋上的各埠的路徑開銷累加而成,這個值叫做根路徑開銷(英文:rootpathcost)。
stp算法將環形網絡拓撲結構變為樹形網絡拓撲結構,總體來說考慮如下三個要素:根橋、根埠(英文:rootport;縮寫:rp)和指定埠(英文:designatedport;縮寫:dp)。
根橋是指網絡中bid最小的設備。通過交互網橋協議數據單元(英文:bridgeprotocoldataunit;縮寫:bpdu)報文,從網絡中選出最小的bid。
根埠是指去往根橋路徑開銷最小的埠。根埠負責向根橋方向轉發數據,根埠的選擇標準是依據根路徑開銷判定的。在一臺設備上所有使能stp的埠中,根路徑開銷最小的埠即為根埠。很顯然,在一個運行stp的設備上,根埠有且只有一個,且根橋上沒有根埠。
對於一臺設備而言,指定橋(英文:designatedbridge;縮寫:db)是指與本機直接相連並且負責向本機轉發配置消息的設備,指定埠即為指定橋向本機轉發配置消息的埠。對於一個區域網而言,指定橋是指負責向本網段轉發配置消息的設備,指定埠即為指定橋向本網段轉發配置消息的埠。
一旦根橋、根埠、指定埠選舉成功,則整個樹形網絡拓撲結構建立完畢。在拓撲穩定後,只有根埠和指定埠轉發用戶流量,其它的非根埠和非指定埠處於阻塞(英文:blocking)狀態,處於阻塞狀態的埠只接收stp報文而不轉發用戶流量。
此外,網絡中各設備通過交互bpdu報文,選舉確定根橋、根埠和指定埠。bpdu報文中攜帶有埠的配置消息(也即優先級向量)。其中,優先級向量包括:根橋id欄位、累計根路徑開銷欄位、指定橋id欄位和指定埠id欄位。根橋id欄位(即rootbridgeid欄位)指示根橋的橋id。累計根路徑開銷欄位(即rootpathcost欄位)指示埠累計到根橋的路徑開銷。指定橋id欄位(即designatedbridgeid欄位)指示發送bpdu報文的設備的橋id,指定橋id欄位也稱為發送設備的橋id欄位。指定埠id欄位(designatedportid欄位)指示發送bpdu報文的埠的埠id,指定埠id欄位也稱為發送埠的埠id欄位。此外,設備接收到bpdu報文之後,會在上述優先級向量中添加接收埠id欄位。接收埠id欄位(即bridgeportid欄位)指示本設備用於接收bpdu報文的埠的埠id。bpdu報文會按照規定的時間間隔進行發送。上述bpdu報文通常為配置bpdu報文。
下面,對stp算法的流程進行介紹和說明。stp算法的流程主要包括如下三個階段:
第一,初始狀態
在初始狀態下,網絡中的每臺設備都認為自己是根橋,所以在每個埠所發出的bpdu報文中,根橋id欄位是設備自己的bid,累計根路徑開銷欄位是累計到根橋的路徑開銷,指定橋id欄位是設備自己的bid,指定埠id欄位是發送該bpdu報文的埠的pid。
第二,選擇根橋
網絡中的設備通過交換bpdu報文,比較根橋id,選擇網絡中根橋id最小的設備為根橋。
第三,選擇根埠和指定埠
1、非根橋設備將接收到最優配置消息的埠確定為根埠。
其中,最優配置消息是指優先級最高的配置消息。最優配置消息的選擇過程包括如下步驟:
a)對於每一個埠,將收到的配置消息與自己的配置消息進行比較;如果收到的配置消息的優先級較低,則將收到的配置消息直接丟棄,對自己的配置消息不進行任何處理;如果收到的配置消息的優先級較高,則用收到的配置消息的內容將自己的配置消息的內容替換掉;
b)非根橋設備將所有埠的配置消息進行比較,選出最優配置消息。
2、非根橋設備根據根埠的配置消息和根埠的路徑開銷,為每一個埠分別計算一個指定埠的配置消息。
指定埠的配置消息(也即優先級向量)同樣包括:根橋id欄位、累計根路徑開銷欄位、指定橋id欄位和指定埠id欄位。
指定埠的配置消息的計算過程包括如下步驟:
a)根橋id替換為根埠的配置消息的根橋id;
b)根路徑開銷替換為根埠的配置消息的根路徑開銷加上根埠對應的路徑開銷;
c)發送端設備的bid替換為自身設備的bid;
d)發送埠的pid替換為自身埠的pid。
3、非根橋設備將計算出的指定埠配置消息與角色待定埠自己的配置消息進行比較,並根據比較結果確定指定埠。
a)對於每一個埠,如果計算出的指定埠配置消息的優先級較高,則確定該埠為指定埠,其配置消息也被計算出的指定埠配置消息替換,並周期性地向外發送;
b)對於每一個埠,如果該埠自己的配置消息的優先級較高,則不更新該埠的配置消息並將該埠阻塞。該埠將不再轉發數據,且只接收不發送配置消息。
一旦根橋、根埠和指定埠選舉成功,整個樹形網絡拓撲結構就建立完畢了。
下面,結合一個例子說明stp算法的流程。結合參考圖3,其示出了stp算法計算前後的網絡拓撲圖。左側圖示為計算前的環形網絡拓撲結構,右側圖示為計算後的樹形網絡拓撲結構。假設設備a、設備b和設備c的優先級分別為0、1和2,設備a與設備b之間、設備a與設備c之間以及設備b與設備c之間鏈路的路徑開銷分別為5、10和4。
各設備的初始狀態如下表-1所示:
表-1
各設備的比較過程及結果如下表-2所示:
表-2
拓撲穩定後,根橋仍然按照規定的時間間隔發送bpdu報文;非根橋設備從根埠接收bpdu報文,通過指定埠轉發該bpdu報文。如果接收到優先級比自己高的bpdu報文,則非根橋設備會根據接收到的bpdu報文中攜帶的配置信息更新自己相應埠的配置信息。
本發明實施例提供的技術方案,可應用於m-lag組網的應用場景中,也可應用於普通兩臺設備虛擬成一臺設備進行stp計算的應用場景中。其中,m-lag組網可以是如圖1所示的普通m-lag組網,也可以是如圖2所示的多級m-lag互聯的組網。具體來講,m-lag組網包括至少一組m-lag設備,每一組m-lag設備包括第一設備和第二設備(如圖1所示的普通m-lag組網中的設備12和設備13,或者如圖2所示的多級m-lag互聯的組網中的設備a和設備b,或者如圖2所示的多級m-lag互聯的組網中的設備c和設備d)。第一設備和第二設備之間採用peer-link鏈路建立連接。第一設備的eth-trunk埠和第二設備的eth-trunk埠加入同一m-lag組,屬於同一m-lag埠的成員埠。
第一設備和第二設備通常是交換機。在一種可能的實施方式中,第一設備和第二設備分別包括:m-lag功能實體和stp功能實體。m-lag功能實體主要用於實現跨設備鏈路聚合的功能,包括協商m-lag主備設備。stp功能實體主要用於實現stp的功能,以消除網絡中的環路。
本發明實施例提供的技術方案,通過將m-lag兩端設備虛擬為一臺設備,m-lag埠相當於該虛擬出的設備的eth-trunk埠。本發明實施例提供的技術方案,在m-lag兩端設備完成主備協商之後,通過在m-lag主備設備上運行虛擬生成樹協議(英文:virtualspanningtreeprotocol;縮寫:v-stp),以支持跨設備的xstp計算,使得兩臺設備對外體現為一臺設備進行stp計算,保證屬於同一m-lag組的成員埠的角色計算結果相同,從而不阻塞peer-link埠和m-lag埠的成員埠eth-trunk埠。
下面,對本文中涉及的一些名詞進行解釋:
鏈路聚合是將若干條物理鏈路捆綁在一起形成一條邏輯鏈路,也即將若干個物理接口捆綁在一起形成一個邏輯接口。通過配置鏈路聚合,可以實現增加帶寬、提高可靠性以及負載分擔的目的。鏈路聚合技術在乙太網中得到了廣泛應用,乙太網鏈路聚合通過將若干條乙太網物理鏈路捆綁在一起形成一條邏輯鏈路,從而實現增加鏈路帶寬的目的。同時,這些捆綁在一起的鏈路通過互相間的動態備份,可以有效地提高鏈路的可靠性。乙太網鏈路聚合稱為eth-trunk。
lag是指將若干條物理鏈路捆綁在一起所形成的邏輯鏈路。每個lag唯一對應著一個邏輯接口,這個邏輯接口稱為聚合接口或eth-trunk接口。
peer-link鏈路是指部署m-lag的兩臺設備之間所建立的直連鏈路。peer-link鏈路是一條保護鏈路,用於交互主備協商報文及傳輸部分流量。
下面,通過幾個實施例對本發明提供的技術方案進行介紹和說明。
請參考圖4,其示出了本發明一個實施例提供的網絡設備的框圖。該網絡設備可以是上文介紹的第一設備或者第二設備。該網絡設備400可以包括:處理器410、存儲器420、收發器430以及總線440。存儲器420和收發器430通過總線440與處理器410相連。
處理器410包括一個或者一個以上處理核心。處理器410通過運行軟體程序以及模塊,從而執行各種功能應用以及數據處理。處理器410包括運算邏輯部件、寄存器部件以及控制部件等,其可以是獨立的中央處理器,或者也可以是嵌入式處理器,比如微處理器(英文:microprocessorunit;縮寫:mpu)、微控制器(英文:microcontrollerunit;縮寫:mcu)或者數位訊號處理器(英文:embeddeddigitalsignalprocessor;縮寫:edsp)等。
存儲器420可以由任何類型的易失性或非易失性存儲設備或者它們的組合實現,如靜態隨機存取存儲器(英文:staticrandomaccessmemory;縮寫:sram),電可擦除可編程只讀存儲器(英文:electricallyerasableprogrammableread-onlymemory;縮寫:eeprom),可擦除可編程只讀存儲器(英文:erasableprogrammablereadonlymemory;縮寫:eprom),可編程只讀存儲器(英文:programmableread-onlymemory;縮寫:prom),只讀存儲器(英文:readonlymemory;縮寫:rom),磁存儲器,快閃記憶體,磁碟或光碟。存儲器420可用於存儲軟體程序以及模塊等可執行的指令。
處理器410被配置為執行存儲器420中存儲的指令。當該網絡設備400實現成為第一設備時,處理器410通過執行該指令來實現下述方法:控制收發器430向第二設備發送第一設備的stp配置信息,stp配置信息包括橋mac地址和實例優先級信息;根據第一設備的stp配置信息,計算第一設備的內部埠的擴展優先級向量;其中,第一設備的內部埠是指第一設備與第二設備連接的埠,擴展優先級向量用於使得第一設備和第二設備屬於同一邏輯埠的成員埠的角色計算結果相同;控制收發器430從第二設備接收第二設備的內部埠的擴展優先級向量;其中,第二設備的內部埠是指第二設備與第一設備連接的埠,第二設備的內部埠的擴展優先級向量由第二設備根據第一設備的stp配置信息計算得到;根據第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量的比較結果,計算第一設備的各個埠的角色。當該網絡設備400實現成為第二設備時,處理器410通過執行該指令來實現下述方法:控制收發器430從第一設備接收第一設備的stp配置信息,stp配置信息包括橋mac地址和實例優先級信息;根據第一設備的stp配置信息,計算第二設備的內部埠的擴展優先級向量;其中,第二設備的內部埠是指第二設備與第一設備連接的埠,擴展優先級向量用於使得第二設備和第一設備屬於同一邏輯埠的成員埠的角色計算結果相同;控制收發器430從第一設備接收第一設備的內部埠的擴展優先級向量;其中,第一設備的內部埠是指第一設備與第二設備連接的埠,第一設備的內部埠的擴展優先級向量由第一設備根據第一設備的stp配置信息計算得到;根據第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量的比較結果,計算第二設備的各個埠的角色。
收發器430用於對外通信,其可以包括多種類型接口。
可選地,存儲器420可存儲作業系統422以及至少一個功能所需的應用程式模塊424。作業系統422可以是實時作業系統(英文:realtimeexecutive;縮寫:rtx)、linux、unix、windows或osx之類的作業系統。如圖4所示,以該網絡設備400實現成為第一設備為例,應用程式模塊424可以包括:第一發送模塊424a、第一計算模塊424b、第一接收模塊424c和第二計算模塊424d。
第一發送模塊424a用於向第二設備發送第一設備的stp配置信息,stp配置信息包括橋mac地址和實例優先級信息。第一計算模塊424b用於根據第一設備的stp配置信息,計算第一設備的內部埠的擴展優先級向量;其中,第一設備的內部埠是指第一設備與第二設備連接的埠,擴展優先級向量用於使得第一設備和第二設備屬於同一邏輯埠的成員埠的角色計算結果相同。第一接收模塊424c用於從第二設備接收第二設備的內部埠的擴展優先級向量;其中,第二設備的內部埠是指第二設備與第一設備連接的埠,第二設備的內部埠的擴展優先級向量由第二設備根據第一設備的stp配置信息計算得到。第二計算模塊424d,用於根據第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量的比較結果,計算第一設備的各個埠的角色。
可選地,當該網絡設備400實現成為第二設備時,應用程式模塊424可以包括:第二接收模塊、第三計算模塊和第四計算模塊(圖中未示出)。第二接收模塊用於從第一設備接收第一設備的stp配置信息,stp配置信息包括橋mac地址和實例優先級信息。第三計算模塊用於根據第一設備的stp配置信息,計算第二設備的內部埠的擴展優先級向量;其中,第二設備的內部埠是指第二設備與第一設備連接的埠,擴展優先級向量用於使得第二設備和第一設備屬於同一邏輯埠的成員埠的角色計算結果相同。第二接收模塊還用於從第一設備接收第一設備的內部埠的擴展優先級向量;其中,第一設備的內部埠是指第一設備與第二設備連接的埠,第一設備的內部埠的擴展優先級向量由第一設備根據第一設備的stp配置信息計算得到。第四計算模塊用於根據第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量的比較結果,計算第二設備的各個埠的角色。
請參考圖5,其示出了本發明一個實施例提供的stp計算方法的流程圖。該方法可以包括如下幾個步驟:
步驟502,第一設備向第二設備發送第一設備的stp配置信息,stp配置信息包括橋mac地址和實例優先級信息。
步驟504,第一設備根據第一設備的stp配置信息,計算第一設備的內部埠的擴展優先級向量。
第一設備的內部埠是指第一設備與第二設備連接的埠。擴展優先級向量用於使得第一設備和第二設備屬於同一邏輯埠的成員埠的角色計算結果相同。
步驟506,第一設備從第二設備接收第二設備的內部埠的擴展優先級向量。
第二設備的內部埠是指第二設備與第一設備連接的埠。第二設備的內部埠的擴展優先級向量由第二設備根據第一設備的stp配置信息計算得到。
步驟508,第一設備根據第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量的比較結果,計算第一設備的各個埠的角色。
綜上所述,本實施例提供的方法,解決了現有技術中針對採用m-lag進行組網的場景,採用現有的stp算法有可能將peer-link埠或者m-lag埠的成員埠eth-trunk埠置為阻塞狀態,進而導致m-lag的功能隨之失效的問題;通過在第一設備和第二設備之間同步stp配置信息和內部埠的擴展優先級向量,從而使得兩臺設備對外體現為一臺設備進行stp計算,保證屬於同一m-lag組的成員埠的角色計算結果相同,從而不阻塞peer-link埠和m-lag埠的成員埠eth-trunk埠。
請參考圖6,其示出了本發明另一實施例提供的stp計算方法的流程圖。該方法可以包括如下幾個步驟:
步驟602,第二設備從第一設備接收第一設備的stp配置信息,stp配置信息包括橋mac地址和實例優先級信息。
步驟604,第二設備根據第一設備的stp配置信息,計算第二設備的內部埠的擴展優先級向量。
第二設備的內部埠是指第二設備與第一設備連接的埠。擴展優先級向量用於使得第二設備和第一設備屬於同一邏輯埠的成員埠的角色計算結果相同。
步驟606,第二設備從第一設備接收第一設備的內部埠的擴展優先級向量。
第一設備的內部埠是指第一設備與第二設備連接的埠。第一設備的內部埠的擴展優先級向量由第一設備根據第一設備的stp配置信息計算得到。
步驟608,第二設備根據第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量的比較結果,計算第二設備的各個埠的角色。
綜上所述,本實施例提供的方法,解決了現有技術中針對採用m-lag進行組網的場景,採用現有的stp算法有可能將peer-link埠或者m-lag埠的成員埠eth-trunk埠置為阻塞狀態,進而導致m-lag的功能隨之失效的問題;通過在第一設備和第二設備之間同步stp配置信息和內部埠的擴展優先級向量,從而使得兩臺設備對外體現為一臺設備進行stp計算,保證屬於同一m-lag組的成員埠的角色計算結果相同,從而不阻塞peer-link埠和m-lag埠的成員埠eth-trunk埠。
請參考圖7,其示出了本發明再一實施例提供的stp計算方法的流程圖。在本實施例中,以第一設備和第二設備為m-lag兩端設備為例進行介紹說明。該方法可以包括如下幾個步驟。
步驟701,第一設備和第二設備在完成初始化配置之後,進行主備協商。
初始化配置包括配置eth-trunk埠、m-lag配置和主備配置。m-lag配置包括配置第一設備的eth-trunk埠和第二設備的eth-trunk埠加入同一m-lag組,屬於同一m-lag埠的成員埠。主備配置是指根據第一設備和第二設備的優先級,確定m-lag主設備和m-lag備設備。第一設備和第二設備在完成初始化配置之後,進行主備協商。在本實施例中,假設協商確定第一設備為m-lag主設備,第二設備為m-lag備設備。
此外,第一設備和第二設備在主備協商完成之前,所有埠可按現有的stp算法進行拓撲計算,並且將peer-link埠初始化設置為阻塞狀態。通過將peer-link埠初始化設置為阻塞狀態,以保證網絡在主備協商完成之前即沒有環路,確保網絡的可用性。
在主備協商完成之後,第一設備和第二設備進入v-stp模式。v-stp模式是指將兩臺設備虛擬成一臺設備進行stp計算。在進入v-stp模式之後,第一設備和第二設備分別將peer-link埠設置為內部埠。內部埠是指在採用v-stp進行拓撲計算的過程中,第一設備和第二設備之間用於傳輸內部報文的埠。
步驟702,第一設備向第二設備發送第一設備的stp配置信息。
stp配置信息包括橋mac地址和實例優先級信息。實例優先級信息記錄有橋優先級。第一設備通過peer-link鏈路向第二設備發送第一設備的stp配置信息。
相應地,第二設備從第一設備接收第一設備的stp配置信息。
步驟703,第一設備根據第一設備的stp配置信息,計算第一設備的內部埠的擴展優先級向量。
第一設備的內部埠是指第一設備與第二設備連接的埠,即peer-link埠。擴展優先級向量用於使得第一設備和第二設備屬於同一邏輯埠的成員埠的角色計算結果相同。也即,擴展優先級向量用於使得第一設備和第二設備加入同一m-lag組的eth-trunk埠的角色計算結果相同。eth-trunk埠作為計算單元參與拓撲計算。
可選地,步驟703包括如下幾個子步驟:
1、第一設備根據第一設備的stp配置信息,計算第一設備除內部埠以外的其它埠的優先級向量;
2、第一設備從其它埠中選取優先級最高的優先級向量,作為第一設備的根優先級向量;
3、第一設備將第一設備的根優先級向量與第一設備的內部埠的優先級向量進行比較,並根據優先級較高的優先級向量確定第一設備的內部埠的擴展優先級向量。
在本發明實施例中,對stp標準協議所規定的埠優先級向量進行了擴展,以保證第一設備和第二設備加入同一m-lag組的eth-trunk埠的角色計算結果相同。擴展優先級向量包括:根橋id欄位、累計根路徑開銷欄位、指定橋id欄位、指定埠id欄位、邏輯埠id欄位、接收埠id欄位和系統mac地址欄位。根橋id欄位指示根橋的橋id。累計根路徑開銷欄位指示埠累計到根橋的路徑開銷。指定橋id欄位指示發送根優先級向量的設備的橋id。指定埠id欄位指示發送根優先級向量的埠的埠id。邏輯埠id欄位指示本設備接收根優先級向量的埠對應的邏輯埠的埠id。接收埠id欄位指示本設備接收根優先級向量的埠的埠id。系統mac地址欄位指示本設備的mac地址。
stp標準協議所規定的埠優先級向量可以表示為:portpriorityvector={rootbridgeid:rootpathcost:designatedbridgeid:designatedportid:bridgeportid}。在本發明實施例中,v-stp所規定的埠的擴展優先級向量可以表示為:portpriorityvector={rootbridgeid:rootpathcost:designatedbridgeid:designatedportid:mlagportid:bridgeportid:sysmac}。擴展優先級向量的向量比較順序依次為:rootbridgeid→rootpathcost→designatedbridgeid→designatedportid→mlagportid→bridgeportid→sysmac。
當本設備接收根優先級向量的埠加入m-lag組時,mlagportid欄位有效。如果兩臺設備的mlagportid欄位有效且相同,則表示兩臺設備接收根優先級向量的埠加入同一m-lag組,此時認為兩臺設備的根優先級向量相同,該算法可以保證兩臺設備加入同一m-lag組的eth-trunk埠的角色計算結果相同。當本設備接收根優先級向量的埠未加入m-lag組時,mlagportid欄位無效。在比較兩臺設備的內部埠的擴展優先級向量時,如果其中一個或兩個內部埠的mlagportid欄位無效,則比較bridgeportid欄位。此外,在比較兩臺設備的內部埠的擴展優先級向量時,由於兩臺設備的bridgeportid是各自獨立分配的,兩臺設備的bridgeportid欄位可能相同,如果兩臺設備的bridgeportid欄位相同,則比較sysmac欄位。
由於第一設備除內部埠以外的其它埠的優先級向量採用stp標準協議規定,由五元組表示;而第一設備的內部埠的優先級向量採用v-stp規定,由七元組表示。因此,在一種可能的實施方式中,第一設備從其它埠中選取優先級最高的優先級向量(也即確定第一設備的根優先級向量)之後,按照擴展優先級向量的格式,將該第一設備的根優先級向量由五元組轉換為七元組,而後與第一設備的內部埠的優先級向量進行比較。如果第一設備的根優先級向量劣於第一設備的內部埠的優先級向量,則保持第一設備的內部埠的優先級向量不變,並使用第一設備的內部埠的優先級向量覆蓋第一設備的根優先級向量;如果第一設備的根優先級向量優於或等於第一設備的內部埠的優先級向量,則使用第一設備的根優先級向量覆蓋第一設備的內部埠的優先級向量,並保持第一設備的根優先級向量不變。
步驟704,第二設備根據第一設備的stp配置信息,計算第二設備的內部埠的擴展優先級向量。
與上述步驟703類似,步驟704可以包括如下幾個子步驟:
1、第二設備根據第一設備的stp配置信息,計算第二設備除內部埠以外的其它埠的優先級向量;
2、第二設備從其它埠中選取優先級最高的優先級向量,作為第二設備的根優先級向量;
3、第二設備將第二設備的根優先級向量與第二設備的內部埠的優先級向量進行比較,並根據優先級較高的優先級向量確定第二設備的內部埠的擴展優先級向量。
步驟704與步驟703相類似,具體參見步驟703中的介紹和說明,此處不再贅述。
步驟705,第一設備向第二設備發送第一設備的內部埠的擴展優先級向量。
第一設備通過peer-link鏈路向第二設備發送內部報文,該內部報文中攜帶第一設備的內部埠的擴展優先級向量。
相應地,第二設備從第一設備接收第一設備的內部埠的擴展優先級向量。
步驟706,第二設備向第一設備發送第二設備的內部埠的擴展優先級向量。
第二設備通過peer-link鏈路向第一設備發送內部報文,該內部報文中攜帶第二設備的內部埠的擴展優先級向量。
相應地,第一設備從第二設備接收第二設備的內部埠的擴展優先級向量。
步驟707,第一設備根據第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量的比較結果,計算第一設備的各個埠的角色。
具體來講,第一設備將第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量進行比較,選取優先級較高的優先級向量作為第一設備最終的根優先級向量;第一設備根據第一設備最終的根優先級向量,計算第一設備的各個埠的角色。如果第一設備的內部埠的擴展優先級向量劣於第二設備的內部埠的擴展優先級向量,則第一設備使用第二設備的內部埠的擴展優先級向量覆蓋第一設備的內部埠的擴展優先級向量,也即第一設備選取第二設備的內部埠的擴展優先級向量作為第一設備最終的根優先級向量;如果第一設備的內部埠的擴展優先級向量優於或者等於第二設備的內部埠的擴展優先級向量,則第一設備保持第一設備的內部埠的擴展優先級向量不變,也即第一設備選取第一設備的內部埠的擴展優先級向量作為第一設備最終的根優先級向量。在確定第一設備最終的根優先級向量之後,第一設備從除內部埠以外的其它埠中選取根埠,而後計算指定埠和阻塞埠。其中,確定根埠、指定埠和阻塞埠的方式與現有的stp算法相同,此處不再贅述。
步驟708,第二設備根據第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量的比較結果,計算第二設備的各個埠的角色。
與上述步驟707類似,步驟708可以包括如下幾個子步驟:
1、第二設備將第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量進行比較,選取優先級較高的優先級向量作為第二設備最終的根優先級向量;
2、第二設備根據第二設備最終的根優先級向量,計算第二設備的各個埠的角色。
步驟708與步驟707相類似,具體參見步驟707中的介紹和說明,此處不再贅述。
此外,第一設備在完成埠角色計算之後,設置第一設備的內部埠由阻塞狀態變為轉發狀態。同樣地,第二設備在完成埠角色計算之後,設置第二設備的內部埠由阻塞狀態變為轉發狀態。通過上述方式,保證第一設備和第二設備的內部埠在完成stp拓撲計算之後,能夠轉發用戶流量。
此外,第一設備和第二設備屬於同一邏輯埠的成員埠發出的報文所攜帶的指定埠id相同。通過上述方式,保證其它設備從同一m-lag埠的不同成員埠接收到的bpdu報文中的指定埠id欄位相同,避免引起下遊設備震蕩,提高網絡穩定性。
綜上所述,本實施例提供的方法,解決了現有技術中針對採用m-lag進行組網的場景,採用現有的stp算法有可能將peer-link埠或者m-lag埠的成員埠eth-trunk埠置為阻塞狀態,進而導致m-lag的功能隨之失效的問題;通過在第一設備和第二設備之間同步stp配置信息和內部埠的擴展優先級向量,從而使得兩臺設備對外體現為一臺設備進行stp計算,保證屬於同一m-lag組的成員埠的角色計算結果相同,從而不阻塞peer-link埠和m-lag埠的成員埠eth-trunk埠。
需要說明的一點是,在本實施例中,僅以第一設備為m-lag主設備,第二設備為m-lag備設備,且m-lag主設備向m-lag備設備同步stp配置信息為例,在其它可能的實施方式中,也可由m-lag備設備向m-lag主設備同步stp配置信息。
還需要說明的一點是,在本實施例中,僅以該stp計算方法應用於m-lag組網的應用場景中進行了說明和介紹,該stp計算方法同樣適用於普通兩臺設備虛擬成一臺設備進行stp計算的應用場景,具有通用性。
下述為本發明裝置實施例,可以用於執行本發明方法實施例。對於本發明裝置實施例中未披露的細節,請參照本發明方法實施例。
請參考圖8a,其示出了本發明一個實施例提供的stp計算裝置的框圖。該裝置可以通過軟體、硬體或者兩者的結合實現成為第一設備的部分或者全部。該裝置可以包括:第一發送單元810、第一計算單元820、第一接收單元830和第二計算單元840。
第一發送單元810,用於向第二設備發送第一設備的stp配置信息,stp配置信息包括橋mac地址和實例優先級信息。
第一計算單元820,用於根據第一設備的stp配置信息,計算第一設備的內部埠的擴展優先級向量。其中,第一設備的內部埠是指第一設備與第二設備連接的埠。擴展優先級向量用於使得第一設備和第二設備屬於同一邏輯埠的成員埠的角色計算結果相同。
第一接收單元830,用於從第二設備接收第二設備的內部埠的擴展優先級向量。其中,第二設備的內部埠是指第二設備與第一設備連接的埠。第二設備的內部埠的擴展優先級向量由第二設備根據第一發送單元810發送的第一設備的stp配置信息計算得到。
第二計算單元840,用於根據第一計算單元820計算得到的第一設備的內部埠的擴展優先級向量和第一接收單元830接收的第二設備的內部埠的擴展優先級向量的比較結果,計算第一設備的各個埠的角色。
綜上所述,本實施例提供的裝置,解決了現有技術中針對採用m-lag進行組網的場景,採用現有的stp算法有可能將peer-link埠或者m-lag埠的成員埠eth-trunk埠置為阻塞狀態,進而導致m-lag的功能隨之失效的問題;通過在第一設備和第二設備之間同步stp配置信息和內部埠的擴展優先級向量,從而使得兩臺設備對外體現為一臺設備進行stp計算,保證屬於同一m-lag組的成員埠的角色計算結果相同,從而不阻塞peer-link埠和m-lag埠的成員埠eth-trunk埠。
在基於圖8a所示實施例提供的一個可選實施例中,第一計算單元820,具體用於:根據第一設備的stp配置信息,計算第一設備除內部埠以外的其它埠的優先級向量;從其它埠中選取優先級最高的優先級向量,作為第一設備的根優先級向量;將第一設備的根優先級向量與第一設備的內部埠的優先級向量進行比較,並根據優先級較高的優先級向量確定第一設備的內部埠的擴展優先級向量。
可選地,擴展優先級向量包括:根橋id欄位、累計根路徑開銷欄位、指定橋id欄位、指定埠id欄位、邏輯埠id欄位、接收埠id欄位和系統mac地址欄位。根橋id欄位指示根橋的橋id。累計根路徑開銷欄位指示埠累計到根橋的路徑開銷。指定橋id欄位指示發送根優先級向量的設備的橋id。指定埠id欄位指示發送根優先級向量的埠的埠id。邏輯埠id欄位指示本設備接收根優先級向量的埠對應的邏輯埠的埠id。接收埠id欄位指示本設備接收根優先級向量的埠的埠id。系統mac地址欄位指示本設備的mac地址。
在基於圖8a所示實施例提供的另一可選實施例中,第二計算單元840,具體用於:將第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量進行比較,選取優先級較高的優先級向量作為第一設備最終的根優先級向量;根據第一設備最終的根優先級向量,計算第一設備的各個埠的角色。
在基於圖8a所示實施例提供的另一可選實施例中,第一發送單元810,還用於向第二設備發送第一設備的內部埠的擴展優先級向量,以使得第二設備根據第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量的比較結果,計算第二設備的各個埠的角色。
在基於圖8a所示實施例提供的另一可選實施例中,如圖8b所示,該裝置還包括:第一設置單元850。第一設置單元850,用於設置第一設備的內部埠由阻塞狀態變為轉發狀態。
在基於圖8a所示實施例提供的另一可選實施例中,第一設備和第二設備屬於同一邏輯埠的成員埠發出的報文所攜帶的指定埠id相同。
請參考圖9a,其示出了本發明另一實施例提供的stp計算裝置的框圖。該裝置可以通過軟體、硬體或者兩者的結合實現成為第二設備的部分或者全部。該裝置可以包括:第二接收單元910、第三計算單元920和第四計算單元930。
第二接收單元910,用於從第一設備接收第一設備的stp配置信息,stp配置信息包括橋mac地址和實例優先級信息。
第三計算單元920,用於根據第二接收單元910接收的第一設備的stp配置信息,計算第二設備的內部埠的擴展優先級向量。其中,第二設備的內部埠是指第二設備與第一設備連接的埠。擴展優先級向量用於使得第二設備和第一設備屬於同一邏輯埠的成員埠的角色計算結果相同。
第二接收單元910,還用於從第一設備接收第一設備的內部埠的擴展優先級向量。其中,第一設備的內部埠是指第一設備與第二設備連接的埠。第一設備的內部埠的擴展優先級向量由第一設備根據第一設備的stp配置信息計算得到。
第四計算單元930,用於根據第三計算單元920計算得到的第二設備的內部埠的擴展優先級向量和第二接收單元910接收到的第一設備的內部埠的擴展優先級向量的比較結果,計算第二設備的各個埠的角色。
綜上所述,本實施例提供的裝置,解決了現有技術中針對採用m-lag進行組網的場景,採用現有的stp算法有可能將peer-link埠或者m-lag埠的成員埠eth-trunk埠置為阻塞狀態,進而導致m-lag的功能隨之失效的問題;通過在第一設備和第二設備之間同步stp配置信息和內部埠的擴展優先級向量,從而使得兩臺設備對外體現為一臺設備進行stp計算,保證屬於同一m-lag組的成員埠的角色計算結果相同,從而不阻塞peer-link埠和m-lag埠的成員埠eth-trunk埠。
在基於圖9a所示實施例提供的一個可選實施例中,第三計算單元920,具體用於:根據第一設備的stp配置信息,計算第二設備除內部埠以外的其它埠的優先級向量;從其它埠中選取優先級最高的優先級向量,作為第二設備的根優先級向量;將第二設備的根優先級向量與第二設備的內部埠的優先級向量進行比較,並根據優先級較高的優先級向量確定第二設備的內部埠的擴展優先級向量。
可選地,擴展優先級向量包括:根橋id欄位、累計根路徑開銷欄位、指定橋id欄位、指定埠id欄位、邏輯埠id欄位、接收埠id欄位和系統mac地址欄位。根橋id欄位指示根橋的橋id。累計根路徑開銷欄位指示埠累計到根橋的路徑開銷。指定橋id欄位指示發送根優先級向量的設備的橋id。指定埠id欄位指示發送根優先級向量的埠的埠id。邏輯埠id欄位指示本設備接收根優先級向量的埠對應的邏輯埠的埠id。接收埠id欄位指示本設備接收根優先級向量的埠的埠id。系統mac地址欄位指示本設備的mac地址。
在基於圖9a所示實施例提供的另一可選實施例中,第四計算單元930,具體用於:將第二設備的內部埠的擴展優先級向量和第一設備的內部埠的擴展優先級向量進行比較,選取優先級較高的優先級向量作為第二設備最終的根優先級向量;根據第二設備最終的根優先級向量,計算第二設備的各個埠的角色。
在基於圖9a所示實施例提供的另一可選實施例中,如圖9b所示,該裝置還包括:第二發送單元940。第二發送單元940,用於向第一設備發送第二設備的內部埠的擴展優先級向量,以使得第一設備根據第一設備的內部埠的擴展優先級向量和第二設備的內部埠的擴展優先級向量的比較結果,計算第一設備的各個埠的角色。
在基於圖9a所示實施例提供的另一可選實施例中,如圖9b所示,該裝置還包括:第二設置單元950。第二設置單元950,用於設置第二設備的內部埠由阻塞狀態變為轉發狀態。
在基於圖9a所示實施例提供的另一可選實施例中,第二設備和第一設備屬於同一邏輯埠的成員埠發出的報文所攜帶的指定埠id相同。
需要說明的是:上述實施例提供的裝置在實現其功能時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將設備的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的裝置與方法實施例屬於同一構思,其具體實現過程詳見方法實施例,這裡不再贅述。
上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬體來完成,也可以通過程序來指令相關的硬體完成,所述的程序可以存儲於一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁碟或光碟等。
以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。