專利名稱:一種分布式lacp接收狀態(tài)機(jī)死鎖預(yù)防方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通訊領(lǐng)域,特別涉及一種LACP(Link Aggregation Control I^otocol,鏈路匯聚控制協(xié)議)的分布式接收狀態(tài)機(jī)死鎖預(yù)防技術(shù)。
背景技術(shù):
鏈路聚合(Link Aggregation),也稱為端口捆綁、端口聚集或鏈路聚集,是將兩個(gè)或更多物理鏈路虛擬成一個(gè)邏輯鏈路,邏輯鏈路作為一個(gè)整體,透明地呈現(xiàn)給上層應(yīng)用;從上層業(yè)務(wù)角度來(lái)看,邏輯聚合端口同普通端口使用。基于IEEE802. 3ad標(biāo)準(zhǔn)的LACP是一種實(shí)現(xiàn)鏈路動(dòng)態(tài)匯聚的協(xié)議。LACP協(xié)議是控制鏈路聚合的標(biāo)準(zhǔn)協(xié)議,運(yùn)行在對(duì)等的鏈路聚合體之間,通過LACPDU(LinkAggregatic)n Control Protocol Data Unit,鏈路聚合控制協(xié)議數(shù)據(jù)單元)報(bào)文決定物理端口的加入和移出,并決定物理端口是否能夠接收和發(fā)送數(shù)據(jù)報(bào)文與對(duì)端交互信息。標(biāo)準(zhǔn)的LACP協(xié)議包含運(yùn)行在物理端口上相互聯(lián)系的具有特定功能的五個(gè)協(xié)議狀態(tài)機(jī)接收狀態(tài)機(jī)(Receive Machine)該狀態(tài)機(jī)解析從對(duì)端(Partner)接收到的 LACPDU,記錄其中的信息并按照LACP設(shè)置的超時(shí)使用短超時(shí)或長(zhǎng)超時(shí)使之超時(shí),接收狀態(tài)機(jī)評(píng)估從Partner來(lái)的信息,如果確定本端(Actor)和對(duì)端已經(jīng)同意交換協(xié)議信息,例如, 本端保留的對(duì)端的信息與從對(duì)端接收到的信息一致,那么根據(jù)該協(xié)議信息的內(nèi)容以及相關(guān)的管理實(shí)體在一定程度上確定端口和其它端口是否聚合或是否成為獨(dú)立端口。如果確定本端和對(duì)端不同意已經(jīng)交換的協(xié)議信息,例如,本端保留的對(duì)端的信息與從對(duì)端接收到的信息不一致,那么接收狀態(tài)機(jī)設(shè)置NTT(Need To Transmit,需要發(fā)送)以發(fā)送新的協(xié)議信息到 Partner,如果Partner的協(xié)議信息超時(shí),接收狀態(tài)機(jī)設(shè)置默認(rèn)的參數(shù)值以供其它狀態(tài)機(jī)使用。周期狀態(tài)機(jī)(Periodic Transmission machine)通過周期性發(fā)送LACPDU包來(lái)維
護(hù)聚合。選擇狀態(tài)機(jī)(Selection Logic)負(fù)責(zé)為各物理端口選擇一個(gè)聚合器。Mux狀態(tài)機(jī)(Mux machine)負(fù)責(zé)把端口附到選擇好的聚合器,或把端口從聚合器剝離,并根據(jù)協(xié)議信息打開或關(guān)閉當(dāng)前端口的收、發(fā)。發(fā)送狀態(tài)機(jī)(Transmit machine)根據(jù)其它狀態(tài)機(jī)的要求(包括周期性發(fā)送狀態(tài)機(jī))進(jìn)行LACPDU的發(fā)送。圖1是現(xiàn)有技術(shù)提供的接收狀態(tài)機(jī)狀態(tài)躍遷示意圖。接收狀態(tài)機(jī)主要包括以下狀態(tài)初始化狀態(tài)INITIALUE、端口不可用狀態(tài)P0RT_DISABLED、超時(shí)狀態(tài)EXPIRED、缺省狀態(tài) DEFAULTED、當(dāng)前狀態(tài) CURRENT、LACP 禁止?fàn)顟B(tài) LACP_DISABLED。如圖1所示,接收狀態(tài)機(jī)可以從兩個(gè)入口躍遷到P0RT_DISABLED狀態(tài),其一是從 BEGIN = True的初始化狀態(tài)(INITIALUE),其二是同時(shí)滿足如下三個(gè)條件BEGIN取值為 FALSE、port_enabled 取值為 FALSE、port_moved 取值為 FALSE 時(shí)。
3
接收狀態(tài)機(jī)從P0RT_DISABLED狀態(tài)躍遷到LACP_DISABLED狀態(tài)。接收狀態(tài)機(jī)當(dāng)前是P0RT_DISABLED狀態(tài),在操作端口同時(shí)滿足如下兩個(gè)條件時(shí)接收狀態(tài)機(jī)由P0RT_ DISABLED 躍遷到 LACP_DISABLED :port_enabled 取值為 TRUE 和 LACP_Enabled 取值為 FALSE。其中,port_enabled = TRUE表明操作端口是可用狀態(tài),反之為不可用狀態(tài),LACP_ Enabled = TRUE表明操作端口是全雙工模式,反之為非全雙工模式,LACP協(xié)議只支持全雙工模式。從圖1可以看出,當(dāng)接收狀態(tài)機(jī)處于LACP_DISABLED狀態(tài)時(shí),沒有下一個(gè)躍遷狀態(tài),唯一可躍遷的條件是操作端口重新初始化(BEGIN為TRUE),此時(shí)接收狀態(tài)機(jī)才有可能進(jìn)入其他穩(wěn)定狀態(tài)。所以,在操作端口從非全雙工協(xié)商到全雙工模式或者通過手動(dòng)配置為全雙工時(shí),LACP操作端口必須設(shè)置BEGIN為TRUE進(jìn)入初始化狀態(tài)(INITIALIZE),LACP_ Enabled 取值為 TRUE。在狀態(tài)機(jī)分布式實(shí)現(xiàn)中,基于物理端口運(yùn)行的四個(gè)狀態(tài)機(jī)(接收狀態(tài)機(jī)、周期狀態(tài)機(jī)、MUX狀態(tài)機(jī)、發(fā)送狀態(tài)機(jī))運(yùn)行在本線卡,選擇狀態(tài)機(jī)運(yùn)行在主控。操作端口的雙工模式是可配置的,通常是在主控上下發(fā)配置。當(dāng)操作端口全雙工模式變化,在主控置BEGIN 為TRUE,LACP_Enabled為TRUE,然后下行同步,在操作端口本線卡更新以上數(shù)據(jù),并運(yùn)行接收狀態(tài)機(jī),按照正常躍遷邏輯來(lái)處理,其中,本線卡是操作端口所在的線卡,其他的線卡叫非本線卡。BEGIN為TRUE的值是一個(gè)觸發(fā)動(dòng)作,當(dāng)完成觸發(fā)之后,需要在主控和操作端口本線卡將BEGIN關(guān)閉,即置BEGIN為FALSE。根據(jù)以上描述,當(dāng)操作端口接收狀態(tài)機(jī)在LACP_ISABLED狀態(tài)時(shí),其狀態(tài)的變遷完全依賴于BEGIN值在本線卡的正確更新,否則即使LACP_Enabled為TRUE,接收狀態(tài)機(jī)狀態(tài)也永遠(yuǎn)無(wú)法躍遷,處于死鎖狀態(tài),只能通過手工方式重新觸發(fā)操作端口初始化。圖2是接收狀態(tài)機(jī)死鎖示意圖,如圖2所示,接收狀態(tài)機(jī)的死鎖流程如下1)操作端口雙工模式變化事件,設(shè)置操作端口 BEGIN取值為TRUE,LACP_Enabled 取值為TRUE ;2)數(shù)據(jù)由主控下行同步到操作端口本線卡和其他非本線卡;3)操作端口本線卡同步數(shù)據(jù)更新失??;4)操作端口本線卡和非本線卡上行同步;5)主控更新線卡同步數(shù)據(jù),關(guān)閉操作端口 BEGIN為FALSE ;6)主控操作端口 BEGIN 為 FALSE,LACP_Enabled 為 TRUE ;7)下行同步操作端口數(shù)據(jù);8)操作端口本線卡更新同步數(shù)據(jù)成功;9)操作端口本線卡 BEGIN 為 FALSE,LACP_Enabled 為 TRUE。在第一次同步數(shù)據(jù)時(shí),操作端口接收狀態(tài)機(jī)處于LACP_DISABLED狀態(tài)。如果操作端口本線卡同步更新失敗(在分布式設(shè)備中,數(shù)據(jù)同步失敗的因素有很多,如CPU忙,消息隊(duì)列滿等等原因),其接收狀態(tài)機(jī)將一直處于LACP_DISABLED狀態(tài)無(wú)法恢復(fù),即使兩端報(bào)文正常交互,LACP_DISABLED狀態(tài)也無(wú)法躍遷。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種分布式LACP接收狀態(tài)機(jī)死鎖預(yù)防方法及裝置,能更好地解決分布式LACP接收狀態(tài)機(jī)死鎖問題。根據(jù)本發(fā)明的一個(gè)方面,提供了一種分布式LACP接收狀態(tài)機(jī)死鎖預(yù)防方法,所述方法包括操作端口在收發(fā)鏈路聚合控制協(xié)議數(shù)據(jù)單元LACPDU報(bào)文期間,實(shí)時(shí)監(jiān)測(cè)操作端口線卡上運(yùn)行的接收狀態(tài)機(jī)的死鎖狀況;若未監(jiān)測(cè)到所述接收狀態(tài)機(jī)進(jìn)入死鎖狀況,則保持所述接收狀態(tài)機(jī)的當(dāng)前狀態(tài);若監(jiān)測(cè)到所述接收狀態(tài)機(jī)已進(jìn)入死鎖狀況,則將所述接收狀態(tài)機(jī)從當(dāng)前狀態(tài)變遷到另一個(gè)狀態(tài)。其中,監(jiān)測(cè)到所述接收狀態(tài)機(jī)已經(jīng)進(jìn)入死鎖狀況的步驟包括在操作端口為可用狀態(tài)p0rt_enabled = TRUE、操作端口為非全雙工模式LACP_ Enabled = FALSE情況下,當(dāng)所述操作端口設(shè)置為全雙工模式即LACP_Enabled = TRUE時(shí), 經(jīng)由所述線卡觸發(fā)操作端口進(jìn)行初始化;若所述線卡未能觸發(fā)操作端口進(jìn)行初始化,則確定所述接收狀態(tài)機(jī)進(jìn)入死鎖狀況。其中,將所述接收狀態(tài)機(jī)從當(dāng)前狀態(tài)變遷到另一個(gè)狀態(tài)的步驟包括接收狀態(tài)機(jī)將自身的狀態(tài)從當(dāng)前的非全雙工模式狀態(tài)LACP_DISABLED變遷到定時(shí)器超時(shí)狀態(tài) EXPIRED。其中,經(jīng)由所述線卡觸發(fā)操作端口進(jìn)行初始化的步驟包括操作端口主控生成線卡觸發(fā)值BEGIN = TRUE數(shù)據(jù),并將其下發(fā)給所述線卡;線卡用主控下發(fā)的數(shù)據(jù)進(jìn)行更新,并根據(jù)線卡更新結(jié)果觸發(fā)操作端口執(zhí)行初始化。其中,若所述線卡更新成功,則觸發(fā)操作端口執(zhí)行初始化。其中,操作端口執(zhí)行初始化后,使接收狀態(tài)機(jī)進(jìn)入其他穩(wěn)定狀態(tài)。其中,若所述線卡更新不成功,則不觸發(fā)操作端口執(zhí)行初始化。根據(jù)本發(fā)明的另一方面,提供了一種分布式LACP接收狀態(tài)機(jī)死鎖預(yù)防裝置,所述裝置包括接收狀態(tài)機(jī),用于在操作端口收發(fā)LACPDU報(bào)文期間實(shí)時(shí)監(jiān)測(cè)自身的死鎖狀況,若未監(jiān)測(cè)到自身進(jìn)入死鎖狀況,則保持當(dāng)前狀態(tài),若監(jiān)測(cè)到自身進(jìn)入死鎖狀況,則從當(dāng)前的非全雙工模式狀態(tài)LACP_DISABLED變遷到定時(shí)器超時(shí)狀態(tài)EXPIRED。其中,所述裝置還包括主控,用于在操作端口雙工模式變化時(shí)生成線卡觸發(fā)值BEGIN = TRUE數(shù)據(jù),并將所述數(shù)據(jù)下行同步到所述線卡。其中,所述裝置還包括本線卡,用主控下發(fā)的數(shù)據(jù)進(jìn)行更新,并根據(jù)更新結(jié)果觸發(fā)接收狀態(tài)機(jī)狀態(tài)躍遷, 從當(dāng)前的非全雙工模式狀態(tài)LACP_DISABLED變遷到定時(shí)器超時(shí)狀態(tài)EXPIRED。與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果在于不但可以保證原有LACP的標(biāo)準(zhǔn)接收狀態(tài)機(jī)的正常運(yùn)行、保證不同廠商設(shè)備正常對(duì)接不會(huì)受到影響,而且有效地預(yù)防了分布式 LACP接收狀態(tài)機(jī)死鎖問題,增強(qiáng)了 LACP的自恢復(fù)能力,而且不需要增加額外成本,操作簡(jiǎn)單,易于實(shí)現(xiàn),運(yùn)行穩(wěn)定。
圖1是現(xiàn)有技術(shù)提供的接收狀態(tài)機(jī)狀態(tài)躍遷示意圖;圖2是接收狀態(tài)機(jī)死鎖示意圖;圖3是本發(fā)明實(shí)施例提供的一種接收狀態(tài)機(jī)實(shí)施躍遷示意圖;圖4是本發(fā)明實(shí)施例提供的一種分布式LACP接收狀態(tài)機(jī)死鎖預(yù)防方法的流程圖;圖5是本發(fā)明實(shí)施例提供的一種分布式LACP接收狀態(tài)機(jī)死鎖預(yù)防裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)說明,應(yīng)當(dāng)理解,以下所說明的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。圖3是本發(fā)明實(shí)施例提供的一種接收狀態(tài)機(jī)實(shí)施躍遷示意圖。為了便于描述,特對(duì)本發(fā)明實(shí)施例存在的環(huán)境說明如下操作端口所在的線卡叫本線卡,其他的線卡叫非本線卡;LACP狀態(tài)機(jī)基于分布式實(shí)現(xiàn);接收狀態(tài)機(jī)只在操作端口本線卡運(yùn)行;LACP_Enabled 的數(shù)據(jù)通過同步更新或者本線卡置位均可;操作端口雙工模式配置變化,BEGIN只在主控置為TRUE,下行同步到線卡,操作端口同步更新數(shù)據(jù)。如圖3所示,所述接收狀態(tài)機(jī)在死鎖時(shí)狀態(tài)躍遷過程如下所述操作端口加入LAG (Link Aggregation Group,鏈路聚合組)中。LAG是網(wǎng)絡(luò)中將多個(gè)端口合并使用的技術(shù),聚合后的鏈路是所有成員組端口帶寬的總和,同時(shí)還可以為網(wǎng)絡(luò)鏈路提供容災(zāi)可靠性,聚合后的鏈路組的成員中如果任意一條或多條物理鏈路意外中斷后,僅帶寬減少為所有正常成員的帶寬總和,而不會(huì)導(dǎo)致網(wǎng)絡(luò)鏈路完全中斷。接收狀態(tài)機(jī)進(jìn)入死鎖狀態(tài)后,LACP_DISABLED狀態(tài)躍遷到EXPIRED狀態(tài)。操作端口本線卡運(yùn)行接收狀態(tài)機(jī)。操作端口當(dāng)前是可用狀態(tài)且非全雙工模式,即p0rt_enabled = TRUE, LACP_Enabled = FALSE ;接收狀態(tài)機(jī)為L(zhǎng)ACP_DISABLED狀態(tài);操作端口主控響應(yīng)雙工模式變化事件,置BEGIN = TRUE,數(shù)據(jù)下行同步;如果BEGIN值在操作端口本線卡更新成功,則操作端口進(jìn)入初始化狀態(tài),否則BEGIN值更新失敗,進(jìn)入死鎖狀態(tài),此時(shí)操作端口本線卡接收狀態(tài)機(jī)應(yīng)由LACP_DISABLED狀態(tài)進(jìn)入EXPIRED狀態(tài),進(jìn)一步地,兩端報(bào)文收發(fā)正常,接收狀態(tài)機(jī)由EXPIRED狀態(tài)躍遷到CURRENT的穩(wěn)定狀態(tài),更進(jìn)一步地,端口聚合成功,物理鏈路處于轉(zhuǎn)發(fā)狀態(tài)。圖4是本發(fā)明實(shí)施例提供的接收狀態(tài)機(jī)實(shí)施流程圖,如圖4所示,所述流程包括步驟S401,操作端口本線卡運(yùn)行接收狀態(tài)機(jī);操作端口加入LAG中,操作端口本線卡運(yùn)行接收狀態(tài)機(jī),當(dāng)前接收狀態(tài)機(jī)為L(zhǎng)ACP_ DISABLED 狀態(tài)。步驟S402,判斷操作端口 BEGIN值是否為TRUE ;判斷操作端口本線卡BEGIN是否為TRUE,如果為TURE,表明BEGIN值在操作端口本線卡更新成功,則端口進(jìn)入初始化狀態(tài),執(zhí)行步驟S403,否則,表明BEGIN值在操作端口本線卡更新未成功,執(zhí)行步驟S407 ;
步驟S403,操作端口進(jìn)入初始化INITIALUE狀態(tài);操作端口進(jìn)入初始化狀態(tài),采用配置值作為對(duì)端信息,并置選擇變量為未選擇。步驟S404,操作端口躍遷到P0RT_DISABLED狀態(tài);初始化完畢后,操作端口無(wú)條件轉(zhuǎn)移到P0RT_DISABLED狀態(tài)。步驟S405,操作端口躍遷到EXPIRED狀態(tài);如果操作端口為可用狀態(tài),且全雙工模式,即p0rt_enabled為TRUE和LACP_ Enabled為TRUE,則操作端口的接收狀態(tài)機(jī)從P0RT_DISABLED狀態(tài)進(jìn)入EXPIRED狀態(tài)。步驟S406,操作端口躍遷到⑶RRENT穩(wěn)定狀態(tài);在EXPIRED狀態(tài)下,再等待一個(gè)短超時(shí)時(shí)間,若定時(shí)器又超時(shí)則進(jìn)入缺省狀態(tài),對(duì)端值用配置值代替;若收到LACPDU包,則進(jìn)入⑶RRENT穩(wěn)定狀態(tài),流程結(jié)束。步驟 S407,操作端口 LACP_Enabled 為 TRUE ;當(dāng)LACP_Enabled為TRUE時(shí),接收狀態(tài)機(jī)此時(shí)進(jìn)入了死鎖狀態(tài)。為了解決死鎖問題,當(dāng)處于 LACP_DISABLED 狀態(tài),且 LACP_Enabled 取值為 TRUE 時(shí),將 LACP_DISABLED 躍遷到另外一個(gè)狀態(tài)。下一個(gè)躍遷狀態(tài)滿足如下條件1)可以解決由于數(shù)據(jù)同步更新失敗導(dǎo)致的死鎖問題,即可以通過其他入口來(lái)改變接收狀態(tài)機(jī)狀態(tài);2)根據(jù)LACP_Enab 1 ed的取值條件來(lái)進(jìn)行狀態(tài)躍遷,即根據(jù)LACP_Enab 1 ed從 FALSE到TRUE的變化條件,躍遷接收狀態(tài)機(jī)LACP_DISABLED狀態(tài);3)通過下一個(gè)狀態(tài)可以正常狀態(tài)躍遷,同時(shí)不影響鏈路的正常聚合。從接收狀態(tài)機(jī)躍遷圖可以看出,P0RT_DISABLED、EXPIRED和LACP_DISABLED三個(gè)狀態(tài)之間,其共有躍遷條件是操作端口的LACP_Enabled,即操作端口全雙工模式。由上述分析可見,EXPIRED狀態(tài)滿足上述條件,接收機(jī)狀態(tài)由LACP_DISABLED躍遷到EXPIRED狀態(tài)即可解決死鎖問題。因此如果LACP_Enabled為TRUE,則執(zhí)行步驟S408。步驟S408,操作端口狀態(tài)由LACP_DISABLED躍遷到EXPIRED狀態(tài);在BEGIN 為 TRUE 且 LACP_Enabled 為 TRUE 時(shí),操作端口狀態(tài)由 LACP_DISABLED 躍遷到EXPIRED狀態(tài)。 步驟S409,判斷操作端口是否收到LACPDU報(bào)文;如果操作端口收到LACPDU報(bào)文,執(zhí)行步驟S410,否則執(zhí)行步驟S411。步驟S410,操作端口狀態(tài)由EXPIRED狀態(tài)躍遷到⑶RRENT穩(wěn)定狀態(tài);操作端口狀態(tài)收到LACPDU報(bào)文,操作端口由EXPIRED狀態(tài)躍遷到CURRENT穩(wěn)定狀態(tài)。步驟S411,接收狀態(tài)機(jī)定時(shí)器超時(shí),進(jìn)入DEFAULTED狀態(tài);當(dāng)接收狀態(tài)機(jī)定時(shí)器超時(shí),進(jìn)入DEFAULTED狀態(tài);由上述步驟可見,當(dāng)由LACP_DISABLED狀態(tài)躍遷到EXPIRED狀態(tài)之后,通過接收 LACPDU報(bào)文,或定時(shí)器超時(shí)觸發(fā)條件,接收狀態(tài)機(jī)可以進(jìn)入到CURRENT穩(wěn)定狀態(tài),從而解除了接收狀態(tài)機(jī)死鎖。圖5是本發(fā)明實(shí)施例提供的一種分布式LACP接收狀態(tài)機(jī)死鎖預(yù)防裝置的結(jié)構(gòu)示意圖,所述裝置包括主控、本線卡、非本線卡、接收狀態(tài)機(jī)、周期狀態(tài)機(jī)、MUX狀態(tài)機(jī)、發(fā)送狀態(tài)機(jī)、配置數(shù)據(jù)和線卡端口狀態(tài)同步邏輯模塊。其中,接收狀態(tài)機(jī)、周期狀態(tài)機(jī)、MUX狀態(tài)機(jī)、 發(fā)送狀態(tài)機(jī)運(yùn)行在本線卡,配置數(shù)據(jù)和線卡端口狀態(tài)同步邏輯模塊運(yùn)行在主控上。操作端口的雙工模式是可配置的,通常是在主控上下發(fā)配置。接收狀態(tài)機(jī),用于解析從對(duì)端接收到的LACPDU報(bào)文以及主控下發(fā)的配置數(shù)據(jù),控制其自身的狀態(tài)變遷,監(jiān)測(cè)其自身是否進(jìn)入死鎖狀態(tài)。主控,用于將操作端口的配置數(shù)據(jù)下行同步給所有線卡端口,更新并下行同步其他非本線卡端口運(yùn)行數(shù)據(jù)給本線卡。其中,運(yùn)行在主控上的配置數(shù)據(jù)和線卡端口狀態(tài)同步邏輯模塊用于將主控?cái)?shù)據(jù)同步到本線卡。本線卡,同步更新主控同步的配置數(shù)據(jù),并接收保存非本線卡端口的運(yùn)行數(shù)據(jù),同時(shí)上行同步本線卡端口運(yùn)行數(shù)據(jù);非本線卡,同步更新主控同步的配置數(shù)據(jù),并接收保存本線卡端口的運(yùn)行數(shù)據(jù),同時(shí)上行同步非本線卡端口運(yùn)行數(shù)據(jù)。LACP其他狀態(tài)機(jī),如選擇接收狀態(tài)機(jī)、周期狀態(tài)機(jī)、MUX狀態(tài)機(jī)、發(fā)送狀態(tài)機(jī)在以上處理邏輯中正常運(yùn)行,基于本發(fā)明其功能是現(xiàn)有技術(shù),此處不再贅述。所述裝置具體工作過程如下接收狀態(tài)機(jī)進(jìn)入死鎖狀態(tài)。操作端口加入LAG中,操作端口本線卡運(yùn)行接收狀態(tài)機(jī),當(dāng)前接收狀態(tài)機(jī)為L(zhǎng)ACP_DISABLED狀態(tài)。主控在操作端口雙工模式變化時(shí)生成線卡觸發(fā)值BEGIN = TRUE數(shù)據(jù),并將所述數(shù)據(jù)下行同步到所述本線卡。所述本線卡用主控下發(fā)的數(shù)據(jù)更新BEGIN。如果本線卡更新BEGIN失敗,即本線卡上的BEGIN = FALSE,而LACP_ Enabled又為TRUE時(shí),接收狀態(tài)機(jī)進(jìn)入了死鎖狀態(tài)。接收狀態(tài)機(jī)檢測(cè)到其進(jìn)入死鎖后,從當(dāng)前的非全雙工模式狀態(tài)LACP_DISABLED變遷到定時(shí)器超時(shí)狀態(tài)EXPIRED。如果操作端口收到LACPDU報(bào)文,接收狀態(tài)機(jī)再由EXPIRED 狀態(tài)躍遷到CURRENT穩(wěn)定狀態(tài),如果沒有收到LACPDU報(bào)文,當(dāng)接收狀態(tài)機(jī)定時(shí)器超時(shí),接收狀態(tài)機(jī)進(jìn)入DEFAULTED狀態(tài)。綜上所述,本發(fā)明在遵循標(biāo)準(zhǔn)LACP協(xié)議的基礎(chǔ)上、分布式實(shí)現(xiàn)LACP狀態(tài)機(jī)的情況下,通過改變LACP協(xié)議接收狀態(tài)機(jī)LACP_DISABLED狀態(tài)躍遷,解決了在某些異常情況下接收狀態(tài)機(jī)存在死鎖的問題,增強(qiáng)了 LACP的自恢復(fù)能力,同時(shí),本發(fā)明不需要增加額外成本, 具有操作簡(jiǎn)單,易于實(shí)現(xiàn),運(yùn)行穩(wěn)定,兼容標(biāo)準(zhǔn)LACP協(xié)議的特點(diǎn)。盡管上文對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,但是本發(fā)明不限于此,本技術(shù)領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明的原理進(jìn)行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應(yīng)當(dāng)理解為落入本發(fā)明的保護(hù)范圍。
8
權(quán)利要求
1.一種分布式LACP接收狀態(tài)機(jī)死鎖預(yù)防方法,其特征在于,所述方法包括操作端口在收發(fā)鏈路聚合控制協(xié)議數(shù)據(jù)單元LACPDU報(bào)文期間,實(shí)時(shí)監(jiān)測(cè)操作端口線卡上運(yùn)行的接收狀態(tài)機(jī)的死鎖狀況;若未監(jiān)測(cè)到所述接收狀態(tài)機(jī)進(jìn)入死鎖狀況,則保持所述接收狀態(tài)機(jī)的當(dāng)前狀態(tài);若監(jiān)測(cè)到所述接收狀態(tài)機(jī)已進(jìn)入死鎖狀況,則將所述接收狀態(tài)機(jī)從當(dāng)前狀態(tài)變遷到另一個(gè)狀態(tài)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,監(jiān)測(cè)到所述接收狀態(tài)機(jī)已經(jīng)進(jìn)入死鎖狀況的步驟包括在操作端口為可用狀態(tài)port_enabled = TRUE、操作端口為非全雙工模式LACP_ Enabled = FALSE情況下,當(dāng)所述操作端口設(shè)置為全雙工模式即LACP_Enabled = TRUE時(shí), 經(jīng)由所述線卡觸發(fā)操作端口進(jìn)行初始化;若所述線卡未能觸發(fā)操作端口進(jìn)行初始化,則確定所述接收狀態(tài)機(jī)進(jìn)入死鎖狀況。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,將所述接收狀態(tài)機(jī)從當(dāng)前狀態(tài)變遷到另一個(gè)狀態(tài)的步驟包括接收狀態(tài)機(jī)將自身的狀態(tài)從當(dāng)前的非全雙工模式狀態(tài)LACP_ DISABLED變遷到定時(shí)器超時(shí)狀態(tài)EXPIRED。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,經(jīng)由所述線卡觸發(fā)操作端口進(jìn)行初始化的步驟包括操作端口主控生成線卡觸發(fā)值BEGIN = TRUE數(shù)據(jù),并將其下發(fā)給所述線卡;線卡用主控下發(fā)的數(shù)據(jù)進(jìn)行更新,并根據(jù)線卡更新結(jié)果觸發(fā)操作端口執(zhí)行初始化。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,若所述線卡更新成功,則觸發(fā)操作端口執(zhí)行初始化。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,操作端口執(zhí)行初始化后,使接收狀態(tài)機(jī)進(jìn)入其他穩(wěn)定狀態(tài)。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,若所述線卡更新不成功,則不觸發(fā)操作端口執(zhí)行初始化。
8.一種分布式LACP接收狀態(tài)機(jī)死鎖預(yù)防裝置,其特征在于,所述裝置包括接收狀態(tài)機(jī),用于在操作端口收發(fā)LACPDU報(bào)文期間實(shí)時(shí)監(jiān)測(cè)自身的死鎖狀況,若未監(jiān)測(cè)到自身進(jìn)入死鎖狀況,則保持當(dāng)前狀態(tài),若監(jiān)測(cè)到自身進(jìn)入死鎖狀況,則從當(dāng)前的非全雙工模式狀態(tài)LACP_DISABLED變遷到定時(shí)器超時(shí)狀態(tài)EXPIRED。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括主控,用于在操作端口雙工模式變化時(shí)生成線卡觸發(fā)值BEGIN = TRUE數(shù)據(jù),并將所述數(shù)據(jù)下行同步到所述線卡。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括本線卡,用主控下發(fā)的數(shù)據(jù)進(jìn)行更新,并根據(jù)更新結(jié)果觸發(fā)接收狀態(tài)機(jī)狀態(tài)躍遷,從當(dāng)前的非全雙工模式狀態(tài)LACP_DISABLED變遷到定時(shí)器超時(shí)狀態(tài)EXPIRED。
全文摘要
本發(fā)明公開了分布式LACP接收狀態(tài)機(jī)死鎖預(yù)防方法及裝置,所述方法包括,操作端口在收發(fā)LACPDU報(bào)文期間,實(shí)時(shí)監(jiān)測(cè)操作端口線卡上運(yùn)行的接收狀態(tài)機(jī)的死鎖狀況;若未監(jiān)測(cè)到所述接收狀態(tài)機(jī)進(jìn)入死鎖狀況,則保持所述接收狀態(tài)機(jī)的當(dāng)前狀態(tài);若監(jiān)測(cè)到所述接收狀態(tài)機(jī)已進(jìn)入死鎖狀況,則將所述接收狀態(tài)機(jī)從當(dāng)前狀態(tài)變遷到另一個(gè)狀態(tài)。本發(fā)明通過改變LACP協(xié)議接收狀態(tài)機(jī)LACP_DISABLED狀態(tài)躍遷,解決了在某些異常情況下接收狀態(tài)機(jī)存在死鎖的問題,增強(qiáng)了LACP的自恢復(fù)能力。
文檔編號(hào)H04L12/26GK102355367SQ20111026795
公開日2012年2月15日 申請(qǐng)日期2011年9月9日 優(yōu)先權(quán)日2011年9月9日
發(fā)明者于立元, 任化軍, 石洪源 申請(qǐng)人:中興通訊股份有限公司