專利名稱:千兆以太網冗余網卡及其鏈路切換條件判定結果控制方法
技術領域:
本發明涉及網絡技術領域,特別涉及網卡技術領域,具體是指一種千兆以太網冗余網卡及其鏈路切換條件判定結果控制方法。
背景技術:
隨著網絡通信技術的發展,以太網在計算機網絡中得以廣泛應用,以太網卡已經成為計算機的一個標準配置。在某些計算機網絡中,所使用的計算機要求實現冗余備份網卡,即計算機中的以太網卡通過兩條以太網鏈路與以太網絡相連,其中一條用于工作,另一條用于備份。當發現當前工作鏈路斷開后,需要自動切換到備份以太網鏈路上進行網絡通 {目。切換時間需要滿足規定的時間范圍。
在如圖I所示的百兆以太網中,采用以太網控制器芯片,通過復雜可編程邏輯器件(CPLD)與以太網PHY (物理層)芯片A和以太網PHY芯片B連接,構成百兆冗余網卡。
正常工作時,復雜可編程邏輯器件CPLD選擇MII總線A與以太網控制器芯片相連接,以太網鏈路A作為工作鏈路。當鏈路A斷開時,以太網PHY芯片A通過LinkupA信號告知復雜可編程邏輯器件CPLD。復雜可編程邏輯器件CPLD將選擇MII總線B與以太網控制器芯片相連接,從而實現鏈路A到鏈路B的切換。
同時,復雜可編程邏輯器件CPLD向主CPU報告中斷,說明以太網鏈路發生切換。 CPU在中斷服務程序中通過鏈路B發送ARP (Address Resolution Protocol,地址解析協議)幀,通知以太網交換機通過新的鏈路與本機通信,進而實現對鏈路A和鏈路B在以太網絡中的切換。
以太網PHY通過Linkup信號報告鏈路斷開需要一定的時間。如圖2所示,TO時刻網絡鏈路不能正常工作;百兆以太網PHY需要要到Tl時刻(Ims以內),報告網絡斷開;而千兆以太網PHY則需要到T2時刻(100ms以上)才報告網絡斷開。
百兆以太網因為Linkup信號報告時間較短,所以采用圖I中的切換方法能有效滿足切換時間的要求。但因為千兆以太網PHY需要IOOrns以上的時間才能報告網絡斷開,這導致切換時間難以滿足應用要求,使得大量以太網幀的丟失。
為了解決這一問題,一個方法是對千兆以太網PHY芯片作出修改,但這樣做設計難度大且成本過高。因此,如何在不修改千兆以太網PHY芯片相關電路的前提下,更早地確定以太網鏈路斷開是本發明最需要解決的問題。發明內容
本發明的目的是克服了上述現有技術中的缺點,提供一種在千兆以太網卡控制器芯片設計中,根據以太網絡相關技術特性,添加發送工作鏈路和備份鏈路的心跳幀電路,實現在不修改千兆以太網物理層芯片相關電路的情況下,快速確定以太網鏈路斷開與切換, 提高網卡冗余切換的響應速度,優化用戶的使用體驗,且結構簡單,應用成本低廉,應用范圍較為廣泛的千兆以太網冗余網卡及其鏈路切換條件判定結果控制方法。
為了實現上述的目的,本發明的千兆以太網冗余網卡具有如下構成
該千兆以太網冗余網卡包括千兆以太網控制器、工作鏈路以太網物理層芯片和備份鏈路以太網物理層芯片,該千兆以太網控制器分別通過所述的工作鏈路以太網物理層芯片和所述的備份鏈路以太網物理層芯片連接外部的以太網交換機。其中,所述的千兆以太網控制器包括工作鏈路控制模塊和備份鏈路控制模塊。
工作鏈路控制模塊通過工作鏈路Mil (Media Independent Interface,介質無關接口)總線和工作鏈路MDIO (Management Data Input/Output,管理數據輸入輸出)總線連接所述的工作鏈路以太網物理層芯片,用以發送工作心跳幀,并通過接收備份心跳幀的結果,判斷工作鏈路和備份鏈路的狀態;
備份鏈路控制模塊通過備份鏈路MII總線和備份鏈路MDIO總線連接所述的備份鏈路以太網物理層芯片,用以發送所述的備份心跳幀,并通過接收所述的工作心跳幀的結果,判斷工作鏈路和備份鏈路的狀態。
該千兆以太網冗余網卡中,所述的千兆以太網控制器還包括工作MAC地址單元備份MAC地址單元,所述的工作MAC地址單元連接所述的工作鏈路控制模塊,所述的備份MAC 地址單元連接所述的備份鏈路控制模塊。
該千兆以太網冗余網卡中,所述的工作鏈路以太網物理層芯片和所述的備份鏈路以太網物理層芯片均具有狀態寄存器,用以存儲對應鏈路的電氣狀態信息。
該千兆以太網冗余網卡中,所述的千兆以太網控制器為FPGA千兆以太網控制器或ASIC千兆以太網控制器。
本發明還提供一種應用于所述的千兆以太網冗余網卡的鏈路切換條件判定結果控制方法,該方法包括以下并行步驟
(I)處于工作狀態的工作鏈路控制模塊,以工作MAC地址為源MAC地址,以備用MAC 地址為目的MAC地址,通過工作鏈路MII總線定時發送工作心跳幀;處于備用狀態的備份鏈路控制模塊,以備用MAC地址為源MAC地址,以工作MAC地址為目的MAC地址,通過備份鏈路MII總線定時發送備份心跳幀;
(2)所述的工作鏈路控制模塊檢測接收的備份心跳幀校驗結果的錯誤率是否增加,若是,則設置工作鏈路初步錯誤標志,若否,則重復步驟(2 );
(3)所述的備份鏈路控制模塊檢測接收的工作心跳幀校驗結果的錯誤率是否增加,若是,則設置備份鏈路初步錯誤標志,若否,則重復步驟(3 );
(4)當僅檢測到工作鏈路初步錯誤標志時,則在規定的時間內判斷備份鏈路是否有錯誤標志,若是備份鏈路初步錯誤標志無效,則設置工作鏈路高可能性錯誤標志;
(5)當僅檢測到備份鏈路初步錯誤標志時,則在規定的時間內判斷工作鏈路是否有錯誤標志,若是工作鏈路初步錯誤標志無效,則設置備份鏈路高可能性錯誤標志;
(6)當檢測到備份鏈路初步錯誤標志且工作鏈路初步錯誤標志,則無效需要切換標志,當備份鏈路高可能性錯誤,也無效需要切換標志;
(7)當檢測到工作鏈路高可能性錯誤標志,所述的工作鏈路控制模塊從所述的工作鏈路以太網物理層芯片獲取工作鏈路狀態,在工作鏈路狀態為不穩定狀態下,設置工作鏈路有錯誤標志,并設置需要切換標志,若工作鏈路狀態保持穩定狀態,則進入步驟(8);
(8)在規定時間內檢測工作鏈路初步錯誤標志和工作鏈路高可能性錯誤標志是否撤消,若未被撤銷,則設置需要切換標志,若被撤銷,且工作鏈路狀態保持穩定狀態,則無效需要切換標志。
采用了該發明的千兆以太網冗余網卡及其鏈路切換條件判定結果控制方法,該千兆以太網冗余網卡包括千兆以太網控制器、工作鏈路以太網物理層芯片和備份鏈路以太網物理層芯片,所述的千兆以太網控制器包括工作鏈路控制模塊和備份鏈路控制模塊。工作鏈路控制模塊和備份鏈路控制模塊通過對應的鏈路MII總線和鏈路MDIO總線連接所述的對應鏈路的以太網物理層芯片,從而能夠發送對應的工作心跳幀和備份心跳幀,并通過接收對應的備份心跳幀和工作心跳幀的結果,判斷工作鏈路和備份鏈路的狀態。從而實現在不修改千兆以太網物理層芯片的情況下,快速確定以太網鏈路斷開,并控制工作鏈路和備份鏈路間的切換,提高網卡冗余切換的響應速度,優化用戶的使用體驗。且本發明的千兆以太網冗余網卡及其鏈路切換條件判定結果控制方法,其結構簡單,應用成本低廉,應用范圍也較為廣泛。
圖I為現有技術中的百兆冗余網卡的結構示意圖。
圖2為利用現有技術的百兆冗余網卡與千兆冗余網卡中的以太網PHY通過Linkup 信號報告鏈路斷開所需時間的對比圖。
圖3為本發明的千兆以太網冗余網卡的結構示意圖。
圖4為本發明的千兆以太網冗余網卡切換條件判定結果控制方法中的“工作心跳幀”的幀結構示意圖。
圖5為本發明的千兆以太網冗余網卡切換條件判定結果控制方法中的“備份心跳幀”的幀結構示意圖。
具體實施方式
為了能夠更清楚地理解本發明的技術內容,特舉以下實施例詳細說明。
請參閱圖3所示,為本發明的千兆以太網冗余網卡的結構示意圖。
在一種實施方式中,該千兆以太網冗余網卡包括千兆以太網控制器、工作鏈路以太網物理層芯片和備份鏈路以太網物理層芯片。所述的千兆以太網控制器為FPGA千兆以太網控制器或ASIC千兆以太網控制器。該千兆以太網控制器分別通過所述的工作鏈路以太網物理層芯片和所述的備份鏈路以太網物理層芯片連接外部的以太網交換機。所述的千兆以太網控制器包括工作鏈路控制模塊和備份鏈路控制模塊。
工作鏈路控制模塊通過工作鏈路MII總線和工作鏈路MDIO總線連接所述的工作鏈路以太網物理層芯片,用以發送工作心跳幀,并通過接收備份心跳幀的結果,判斷工作鏈路和備份鏈路的狀態。
備份鏈路控制模塊通過備份鏈路MII總線和備份鏈路MDIO總線連接所述的備份鏈路以太網物理層芯片,用以發送所述的備份心跳幀,并通過接收所述的工作心跳幀的結果,判斷工作鏈路和備份鏈路的狀態。
且所述的千兆以太網控制器還包括工作MAC地址單元備份MAC地址單元,所述的工作MAC地址單元連接所述的工作鏈路控制模塊,所述的備份MAC地址單元連接所述的備份鏈路控制模塊。
應用于該實施方式所述的千兆以太網冗余網卡的鏈路切換條件判定結果控制方法包括以下并行步驟
(I)處于工作狀態的工作鏈路控制模塊,以工作MAC地址為源MAC地址,以備用MAC 地址為目的MAC地址,通過工作鏈路MII總線定時發送工作心跳幀;處于備用狀態的備份鏈路控制模塊,以備用MAC地址為源MAC地址,以工作MAC地址為目的MAC地址,通過備份鏈路MII總線定時發送備份心跳幀;
(2)所述的工作鏈路控制模塊檢測接收的備份心跳幀校驗結果的錯誤率是否增加,若是,則設置工作鏈路初步錯誤標志,若否,則重復步驟(2 );
(3)所述的備份鏈路控制模塊檢測接收的工作心跳幀校驗結果的錯誤率是否增加,若是,則設置備份鏈路初步錯誤標志,若否,則重復步驟(3 );
(4)當僅檢測到工作鏈路初步錯誤標志時,則在規定的時間內判斷備份鏈路是否有錯誤標志,若是備份鏈路初步錯誤標志無效,則設置工作鏈路高可能性錯誤標志;
(5)當僅檢測到備份鏈路初步錯誤標志時,則在規定的時間內判斷工作鏈路是否有錯誤標志,若是工作鏈路初步錯誤標志無效,則設置備份鏈路高可能性錯誤標志;
(6)當檢測到備份鏈路初步錯誤標志且工作鏈路初步錯誤標志,則無效需要切換標志,當備份鏈路高可能性錯誤,也無效需要切換標志;
(7)當檢測到工作鏈路高可能性錯誤標志,所述的工作鏈路控制模塊從所述的工作鏈路以太網物理層芯片獲取工作鏈路狀態,在工作鏈路狀態為不穩定狀態下,設置工作鏈路有錯誤標志,并設置需要切換標志,若工作鏈路狀態保持穩定狀態,則進入步驟(8);
(8)在規定時間內檢測工作鏈路初步錯誤標志和工作鏈路高可能性錯誤標志是否撤消,若未被撤銷,則設置需要切換標志,若被撤銷,且工作鏈路狀態保持穩定狀態,則無效需要切換標志。
在實際應用中,本發明的千兆冗余以太網卡芯片上實現了以太網鏈控制器(GMAC) A (工作鏈路控制模塊)和以太網鏈控制器(GMAC) B (備份鏈路控制模塊);同時實現了工作 MAC地址和備用MAC地址。
本發明采取如下方法來動態實時監測鏈路狀態
I、處于工作狀態的以太網控制器GMAC定時通過工作鏈路發送“工作心跳”幀。如圖4,“工作心跳”幀以工作MAC地址為源MAC地址,以備用MAC地址為目的MAC地址。
2、處于備用狀態的以太網控制器GMAC定時通過備用鏈路發送“備用心跳”幀。如圖5,“備用心跳”幀以備用MAC地址為源MAC地址,以工作MAC地址為目的MAC地址。
3、以太網控制器GMAC實現CRC出錯幀統計功能,以便實時監測鏈路性能變化。
3-1若處于工作狀態的以太網控制器GMAC發現接收到的以太網幀CRC出錯概率增加,且能夠收到處于備用狀態的以太網控制器GMAC發來的“備用心跳”幀,則初步判斷是工作鏈路出現問題,我們稱之為判定WorkO狀態。若在規定的時間內,備用狀態的以太網控制器GMAC還能收到滯留在以太網內部的“工作心跳”幀。若超過該規定時間后,備用狀態的以太網控制器GMAC不能收到“工作心跳”巾貞,則可以進一步判定是工作鏈路出現問題,我們稱之為判定Workl狀態。此時因為工作鏈路出問題,導致“工作心跳”幀出錯,被交換機或以太網絡丟棄。
3-2若處于備用狀態的以太網控制器GMAC發現接收到的以太網幀CRC出錯概率增加,且能夠收到處于工作狀態的以太網控制器GMAC發來的“工作心跳”幀,則初步判斷是備用鏈路出現問題,我們稱之為判定BackupO狀態。若在規定的時間內,工作狀態的以太網控制器GMAC還能收到滯留在以太網內部的“備用心跳”幀。若超過該規定時間后,工作狀態的以太網控制器GMAC不能收至Ij“備份心跳”巾貞,則可以進一步判定是備份鏈路出現問題,我們稱之為判定Backupl狀態。此時因為備份鏈路出問題,導致“備份心跳”幀出錯,被交換機或以太網絡丟棄。
4、當以太網控制器GMAC進入判定WorkO狀態、判定Workl狀態,判定BackupO狀態、判定Backupl狀態,則啟動相應的MDIO總線查詢相應以太網PHY的狀態寄存器。此時處于鏈路不穩定狀態,以太網PHY雖然不報告鏈路是否斷開,但在相關寄存器中會報告鏈路電氣狀態。若在一段時間范圍內,以太網PHY狀態寄存器連續報告鏈路不穩定狀態。則可以判定該鏈路將要斷開,提出切換需求。
實際應用中,本發明可采用現場可編程門陣列FPGA來實現,也可以開發專用的雙冗余以太網卡控制器芯片來實現。同時根據需要,可基于FPGA或專用雙冗余以太網卡控制器芯片開發PCI\CPCI或PCIE以太網卡板,也可以將FPGA或專用雙冗余以太網卡控制器芯片放置在目標系統應用板上(如系統主板)。
采用現場可編程門陣列FPGA或開發專用的雙冗余以太網卡控制器芯片來實現, 其工作分為硬件設計和軟件設計。
本發明的千兆以太網冗余網卡的工作原理是
I)工作鏈路發送工作心跳幀,備份鏈路發送備份心跳幀。
2)工作鏈路和備份鏈路按照同一時鐘來分別發送工作心跳幀和備份心跳幀。
3)工作心跳幀經過以太網延時(數毫秒)后,到達備份鏈路。備份心跳幀經過以太網延時(數毫秒)后,到達工作鏈路。即在時刻T0,工作鏈路已經發送了 10000個工作心跳幀,此時,備份鏈路只是接收到了 9900個工作心跳幀,還有100個工作心跳幀還在路上。同樣在時刻T0,備份鏈路已經發送了 10000個備份心跳幀,此時,工作鏈路只是接收到了 9900 個備份心跳幀,還有100個備份心跳幀還在路上。
4)若工作鏈路出錯,則工作鏈路首先檢測到接收的備份心跳幀出錯或接收不到備份心跳幀。即此時TO時刻,工作鏈路只收能到9900個備份心跳幀。而在TO+若干毫秒(規定的時間)后,備份鏈路仍然能接收到在以太網上存在的工作心跳幀,即10000個工作心跳幀。
5)比較二者的差值,我們便可以初步判斷工作鏈路出錯。此時再通過讀取工作鏈路PHY上的狀態寄存器來證實工作鏈路不穩定,若不穩定,則判斷工作鏈路出錯。
否則延時規定時間(若干毫秒)進行等待,在工作鏈路上看能否收到正確的備份心跳幀,同時讀取工作鏈路PHY上的狀態寄存器來證實工作鏈路不穩定。若能重新收到備份心跳幀,則說明工作鏈路狀態恢復。若等待時間超過門限時間(數十毫秒),則不管PHY上的狀態寄存器的狀態值,直接判斷工作鏈路出錯。
6)是否需要切換到備份鏈路,還需要看備份鏈路的狀態
利用本發明提供的方法能準確地判斷鏈路將要斷開。根據以太網IEEE千兆以太網的規范,在百米5類電纜傳輸千兆信號的情況下,出錯率為10億分之一。理論推算,準確率大于99. 999999%,誤判率小于O. 000001%。10億分之一的位出錯概率不會在數毫秒范圍內影響本發明的“心跳”幀CRC出錯概率。
本發明采用“心跳”幀的方式,雖然一定程度上增加了以太網的通信負擔。但對于千兆以太網來說,數毫秒發一個64字節的“心跳”幀對千兆以太網的帶寬來說是非常小的一個負擔。64字節“心跳”幀只需要640ns的千兆以太網的帶寬時間,以I毫秒發一個“心跳”幀來計算,約僅占2000分之一的以太網帶寬。
目前,本發明在基于FPGA的CPCI/PCI、PCIE冗余網卡;以及冗余網卡控制器芯片 82545,和基于82545開發了 CPCI和PCI冗余網卡都能完全滿足冗余切換需求。
采用了該發明的千兆以太網冗余網卡及其鏈路切換條件判定結果控制方法,該千兆以太網冗余網卡包括千兆以太網控制器、工作鏈路以太網物理層芯片和備份鏈路以太網物理層芯片,所述的千兆以太網控制器包括工作鏈路控制模塊和備份鏈路控制模塊。工作鏈路控制模塊和備份鏈路控制模塊通過對應的鏈路MII總線和鏈路MDIO總線連接所述的對應鏈路的以太網物理層芯片,從而能夠發送對應的工作心跳幀和備份心跳幀,并通過接收對應的備份心跳幀和工作心跳幀的結果,判斷工作鏈路和備份鏈路的狀態。從而實現在不修改千兆以太網物理層芯片的情況下,快速確定以太網鏈路斷開,并控制工作鏈路和備份鏈路間的切換,提高網卡冗余切換的響應速度,優化用戶的使用體驗。且本發明的千兆以太網冗余網卡及其鏈路切換條件判定結果控制方法,其結構簡單,應用成本低廉,應用范圍也較為廣泛。
在此說明書中,本發明已參照其特定的實施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發明的精神和范圍。因此,說明書和附圖應被認為是說明性的而非限制性的。
權利要求
1.一種千兆以太網冗余網卡,所述的網卡包括千兆以太網控制器、工作鏈路以太網物理層芯片和備份鏈路以太網物理層芯片,該千兆以太網控制器分別通過所述的工作鏈路以太網物理層芯片和所述的備份鏈路以太網物理層芯片連接外部的以太網交換機,其特征在于,所述的千兆以太網控制器包括 工作鏈路控制模塊,通過工作鏈路MII總線和工作鏈路MDIO總線連接所述的工作鏈路以太網物理層芯片,用以發送工作心跳幀,并通過接收備份心跳幀的結果,判斷工作鏈路和備份鏈路的狀態; 備份鏈路控制模塊,通過備份鏈路MII總線和備份鏈路MDIO總線連接所述的備份鏈路以太網物理層芯片,用以發送所述的備份心跳幀,并通過接收所述的工作心跳幀的結果,判斷工作鏈路和備份鏈路的狀態。
2.根據權利要求I所述的千兆以太網冗余網卡,其特征在于,所述的千兆以太網控制器還包括工作MAC地址單元和備份MAC地址單元,所述的工作MAC地址單元連接所述的工作鏈路控制模塊,所述的備份MAC地址單元連接所述的備份鏈路控制模塊。
3.根據權利要求I所述的千兆以太網冗余網卡,其特征在于,所述的工作鏈路以太網物理層芯片和所述的備份鏈路以太網物理層芯片均具有狀態寄存器,用以存儲對應鏈路的電氣狀態信息。
4.根據權利要求I至3中任一項所述的千兆以太網冗余網卡,其特征在于,所述的千兆以太網控制器為FPGA千兆以太網控制器或ASIC千兆以太網控制器。
5.一種應用于權利要求I所述的千兆以太網冗余網卡的鏈路切換條件判定結果控制方法,其特征在于,所述的方法包括以下并行步驟 (1)處于工作狀態的工作鏈路控制模塊,以工作MAC地址為源MAC地址,以備用MAC地址為目的MAC地址,通過工作鏈路MII總線定時發送工作心跳幀;處于備用狀態的備份鏈路控制模塊,以備用MAC地址為源MAC地址,以工作MAC地址為目的MAC地址,通過備份鏈路MII總線定時發送備份心跳幀; (2)所述的工作鏈路控制模塊檢測接收的備份心跳幀校驗結果的錯誤率是否增加,若是,則設置工作鏈路初步錯誤標志,若否,則重復步驟(2 ); (3)所述的備份鏈路控制模塊檢測接收的工作心跳幀校驗結果的錯誤率是否增加,若是,則設置備份鏈路初步錯誤標志,若否,則重復步驟(3); (4)當僅檢測到工作鏈路初步錯誤標志時,則在規定的時間內判斷備份鏈路是否有錯誤標志,若是備份鏈路初步錯誤標志無效,則設置工作鏈路高可能性錯誤標志; (5)當僅檢測到備份鏈路初步錯誤標志時,則在規定的時間內判斷工作鏈路是否有錯誤標志,若是工作鏈路初步錯誤標志無效,則設置備份鏈路高可能性錯誤標志; (6)當檢測到備份鏈路初步錯誤標志且工作鏈路初步錯誤標志,則無效需要切換標志,當備份鏈路高可能性錯誤,也無效需要切換標志; (7)當檢測到工作鏈路高可能性錯誤標志,所述的工作鏈路控制模塊從所述的工作鏈路以太網物理層芯片獲取工作鏈路狀態,在工作鏈路狀態為不穩定狀態下,設置工作鏈路有錯誤標志,并設置需要切換標志,若工作鏈路狀態保持穩定狀態,則進入步驟(8); (8)在規定時間內檢測工作鏈路初步錯誤標志和工作鏈路高可能性錯誤標志是否撤消,若未被撤銷,則設置需要切換標志,若被撤銷,且工作鏈路狀態保持穩定狀態,則無效需要切換標 志。
全文摘要
本發明涉及一種千兆以太網冗余網卡及其鏈路切換條件判定結果控制方法,屬于網絡技術領域。該千兆以太網冗余網卡包括千兆以太網控制器、工作鏈路PHY芯片和備份鏈路PHY芯片,千兆以太網控制器包括工作鏈路控制模塊和備份鏈路控制模塊。工作鏈路控制模塊和備份鏈路控制模塊通過對應的鏈路MII總線和鏈路MDIO總線連接對應鏈路的PHY芯片,能夠發送對應的工作心跳幀和備份心跳幀,并通過接收對應的備份心跳幀和工作心跳幀,判斷工作鏈路和備份鏈路的狀態,從而實現在不修改千兆以太網物理層芯片的情況下,快速確定以太網鏈路斷開,并控制工作鏈路和備份鏈路間的切換,提高網卡冗余切換的響應速度,優化用戶的使用體驗。
文檔編號H04L12/28GK102984059SQ201210479979
公開日2013年3月20日 申請日期2012年11月22日 優先權日2012年11月22日
發明者聶新義, 段國東, 張立明 申請人:中國電子科技集團公司第三十二研究所