專利名稱:Mpls-tp網(wǎng)絡中oam報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法及裝置的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡通訊技術領域,尤其涉及一種MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法及裝置。
背景技術:
MPLS-TP(Multi-Protocol Label Switching Transport Profile,多協(xié)議標簽交換傳輸架構)是在MPLS基礎上擴展而產(chǎn)生的一種面向連接的分組傳送網(wǎng)絡(PacketTransport Network, PTN)技術。0AM(Operations, Administration and Management,操作管理與維護)技術作為MPLS-TP網(wǎng)絡中一個關鍵技術,承擔了錯誤偵錯、錯誤定位、錯誤上報的功能,及時告知系統(tǒng)進行數(shù)據(jù)通道的切換。但是,作為PTN設備核心的包處理芯片,對于MPLS-TP OAM報文和數(shù)據(jù)報文能否使用統(tǒng)一轉發(fā)路徑尚未有具體實現(xiàn)的方法?!ひ虼?,有必要提供一種MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法及裝置以克服上述問題。
發(fā)明內容
本發(fā)明的目的在于提供一種MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法。本發(fā)明的另一目的在于一種MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的裝置,所述裝置應用所述MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法。相應地,本發(fā)明的一種MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法,包括如下步驟
S10,對輸入的數(shù)據(jù)報文進行解析、查找、判斷進行何種處理方式;
S20,根據(jù)偵測到的數(shù)據(jù)報文對MPLS-TP OAM報文進行相應的封裝,并對該OAM報文標記需要與該數(shù)據(jù)報文相同的處理方式;
S30,對經(jīng)過SlO及S20處理的數(shù)據(jù)報文及OAM報文進行隊列處理;
S40,根據(jù)經(jīng)過SlO及S20處理的數(shù)據(jù)報文及OAM報文需求進行相應編輯。作為本發(fā)明的進一步改進,所述S10、S20及S40中的數(shù)據(jù)報文處理方式均是基于MPLS數(shù)據(jù)處理方式進行的。作為本發(fā)明的進一步改進,所述SlO具體包括以下步驟
S101,輸入從以太網(wǎng)口接收到的數(shù)據(jù)報文;
S102,對收到的數(shù)據(jù)報文進行解析出所有MPLS標簽棧的內容;
S103,儲存解析出的所有MPLS標簽棧數(shù)據(jù);
S104,對解析出的各MPLS標簽進行查找,找到相應的處理操作,包括POP,SWAP和PUSH ;
S105,根據(jù)S104的查找結果,判斷該MPLS標簽是否需要Ρ0Ρ,若是,則跳過該MPLS標簽的處理,對下一個MPLS標簽進行處理;
S106,若否,則判斷該MPLS標簽是否需要SWAP;
S107,若需要進行SWAP操作,標記該MPLS標簽需要進行SWAP;
S108,若該MPLS label的操作不需要SWAP,則標記該MPLS標簽需要進行I3USH的操作。作為本發(fā)明的進一步改進,所述OAM報文包括CCM報文,并且所述S20具體包括以下步驟
S201,發(fā)送CCM定時器;
S202,根據(jù)偵測到的數(shù)據(jù)報文判斷是否需要發(fā)送CCM報文;
S203,若需要發(fā)送CCM報文,則對CCM的PDU進行組裝;
S204,按照CCM報文封裝方式,添加ACH部分;
S205,根據(jù)該CCM報文所對應的是哪種OAM類型,判斷是否需要添加GAL,若是PW 0ΑΜ,則不需要添加GAL,
S206,若是其他類型,則對CCM報文添加GAL ;
S207,標記該CCM報文需要進行與對應的數(shù)據(jù)報文相同的MPLS處理方式。作為本發(fā)明的進一步改進,所述S40具體包括以下步驟
S401,接收經(jīng)SlO及S20處理的結果數(shù)據(jù),即是需要進行SWAP或者PUSH,以及相應的編輯表項的索引;
S402,按照S401中的編輯表項索引找到編輯操作數(shù)據(jù),以用作后續(xù)對數(shù)據(jù)報文及CCM報文的編輯操作;
S403,接收S402中的編輯操作數(shù)據(jù),并按照該編輯操作數(shù)據(jù)判斷該數(shù)據(jù)報文是否需要進行SWAP的報文編輯;
S404,若該數(shù)據(jù)報文是需要進行SWAP操作的,則進行SWAP的報文編輯;
S405,若該數(shù)據(jù)報文不需要SWAP操作,則判斷該數(shù)據(jù)報文及CCM報文是否需要I3USHlabel,若否,則結束出方向MPLS的處理;
S406,進行S404步驟SWAP的報文編輯后,判斷該數(shù)據(jù)報文是否需要繼續(xù)I3USH label ;S407,若是,進行PUSH的報文編輯;另外,經(jīng)過S405判斷后需進行I3USH的,同時進行PUSH的報文編輯;
S408,判斷是否需要繼續(xù)進行PUSH label,若需要,則循環(huán)到S407 ;
S409,經(jīng)過上述對數(shù)據(jù)報文及CCM報文的MPLS部分處理結束后,發(fā)送該數(shù)據(jù)報文及CCM報文以進行二層部分編輯。作為本發(fā)明的進一步改進,一種MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的裝置,包括
入方向處理模塊,用于對輸入的數(shù)據(jù)報文進行解析、查找、判斷需要進行何種處理方
式;
OAM引擎,用于根據(jù)偵測到的數(shù)據(jù)報文對MPLS-TP OAM報文進行相應的封裝,并對該OAM報文標記需要與該數(shù)據(jù)報文相同的處理方式;
隊列處理模塊,用于對經(jīng)過入方向處理模塊及OAM引擎處理的數(shù)據(jù)報文及OAM報文進行隊列處理;
出方向處理模塊,用于根據(jù)經(jīng)過入方向處理模塊及OAM引擎處理的數(shù)據(jù)報文及OAM報文需求進行相應編輯。作為本發(fā)明的進一步改進,所述入方向處理模塊、OAM引擎及出方向處理模塊均采用MPLS的數(shù)據(jù)處理方式。作為本發(fā)明的進一步改進,所述入方向處理模塊具體用于
輸入從以太網(wǎng)口收到的數(shù)據(jù)報文;
對所述數(shù)據(jù)報文解析出所有MPLS標簽棧的內容; 儲存解析出的所有MPLS標簽棧數(shù)據(jù);
對解析出的各MPLS標簽進行查找,找到相應的處理操作,包括POP,SWAP和PUSH ;根據(jù)上述查找結果,判斷該MPLS標簽是否需要Ρ0Ρ,若是,則跳過該MPLS label的處理,對下一個MPLS標簽進行處理;
在判斷為否時,判斷該MPLS標簽是否需要SWAP;
在需要進行SWAP操作時,標記該MPLS標簽需要進行SWAP;
在判斷為不需要SWAP時,標記該MPLS標簽需要進行I3USH的操作。作為本發(fā)明的進一步改進,所述OAM報文包括CCM報文,所述OAM引擎具體用于 發(fā)送CCM定時器;
根據(jù)偵測到的數(shù)據(jù)報文判斷是否需要發(fā)送CCM報文;
若需要發(fā)送CCM報文,則對CCM的PDU進行組裝;
按照CCM報文封裝方式,添加ACH部分;
根據(jù)該CCM報文所對應的是哪種OAM類型,判斷是否需要添加GAL,若是PW 0ΑΜ,則不需要添加GAL,
若是其他類型,則對CCM報文添加GAL ;
根據(jù)偵測到的數(shù)據(jù)報文的MPLS處理方式對應標記該CCM報文需要進行的MPLS處理方式。作為本發(fā)明的進一步改進,所述出方向處理模塊具體用于
接收經(jīng)入方向處理模塊及OAM引擎處理的結果數(shù)據(jù),即是需要進行SWAP或者PUSH,以及相應的編輯表項的索引;
按照上述編輯表項索引找到編輯操作數(shù)據(jù),以用作后續(xù)對數(shù)據(jù)報文及CCM報文的編輯操作;
若數(shù)據(jù)報文及CCM報文需要進行SWAP操作,則按照查找到的編輯操作數(shù)據(jù)進行SWAP的操作;
若該數(shù)據(jù)報文及CCM報文是需要進行SWAP操作的,則進行SWAP的報文編輯;
若不需要SWAP操作,判斷是否需要PUSH label,若否,結束出方向MPLS的處理;
進行SWAP操作后,判斷是否需要繼續(xù)I3USH label ;
若是,進行PUSH的報文編輯;另外,經(jīng)過上述“若不需要SWAP操作,判斷是否需要TOSHlabel”后需進行PUSH的,同時進行I3USH的報文編輯;
判斷是否需要繼續(xù)進行PUSH label,若需要,返回進行PUSH的報文編輯;
經(jīng)過上述對數(shù)據(jù)報文及CCM報文的MPLS部分處理結束后,發(fā)送該數(shù)據(jù)報文及CCM報文以進行二層部分編輯。本發(fā)明的有益效果是實現(xiàn)MPLS-TP網(wǎng)絡中OAM和數(shù)據(jù)統(tǒng)一轉換路徑的方法及裝置通過在S20及OAM引擎中對OAM報文進行標記與對應的數(shù)據(jù)報文相同的處理方式,以達到OAM報文對數(shù)據(jù)報文的真正的偵測和管理;另外,OAM報文與數(shù)據(jù)報文經(jīng)處理后使用統(tǒng)一的S40步驟及出方向處理模塊進行相同的編輯操作,進而可節(jié)約包處理芯片(ASIC)的資源,降低成本,提高芯片的使用效率。
圖I是本發(fā)明一實施方式MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法的流程 圖2是圖I中SlO的具體處理流程 圖3是圖I中S20的具體處理流程圖; 圖4是圖I中S40的具體處理流程 圖5是本發(fā)明一實施方式MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的裝置的模塊圖。
具體實施例方式以下將結合附圖所示的各實施方式對本發(fā)明進行詳細描述。但這些實施方式并不限制本發(fā)明,本領域的普通技術人員根據(jù)這些實施方式所做出的結構、方法、或功能上的變換均包含在本發(fā)明的保護范圍內。本發(fā)明一實施方式MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法及裝置主要是基于MPLS數(shù)據(jù)處理方式,兼容MPLS-TP OAM報文發(fā)送,以實現(xiàn)MPLS-TP OAM報文和數(shù)據(jù)模塊統(tǒng)一轉發(fā)路徑。MPLS的數(shù)據(jù)報文中MPLS label (MPLS標簽)部分一般有三種操作,PUSH(壓入),POP (彈出),SWAP (交換)。I3USH用于對報文的MPLS label的壓入操作,即在原有報文三層Payload或者原有MPLS Label Stack(MPLS標簽壓入)之前再壓入一個或多個MPLS label。POP用于對報文的MPLS label的剝離操作。SWAP用于在LSP中的中間設備,做MPLS label的交換操作。在實際應用中,對于MPLS Label Stack的操作可能是以上幾項操作的結合,例如,根據(jù)外層label (標簽)進行SWAP后,PUSH —層新的label,并轉發(fā);Ρ0Ρ外層label,根據(jù)內層label進行SWAP操作,并轉發(fā)。OAM的功能是對相應數(shù)據(jù)通道進行監(jiān)視、檢測,因而要求和數(shù)據(jù)通道使用統(tǒng)一的路徑。在基于Y. 1731《基于以太網(wǎng)絡的OAM功能和機制》的MPLS-TP OAM中,就是需要和數(shù)據(jù)通道使用相同的 MPLS Label Stack,并且在該 MPLS-TP OAM 中,MPLS-TP OAM CCM(MPLS_TPOAM Continuity Check Message, MPLS-TP OAM連續(xù)性檢測消息)報文的發(fā)送是其中的重要功能,本發(fā)明一實施方式中主要以MPLS-TP OAM報文中的CCM報文發(fā)送為例說明MPLS-TPOAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法及裝置。MPLS-TP OAM中主要有四種對CCM報文的封裝方式
1.Section OAM(段0ΑΜ),用于檢測鄰接設備鏈路的0ΑΜ,封裝方式為GAL(GenericAssociated Channel Label,通用聯(lián)合通道標簽)+ACH(Associated Channel,聯(lián)合通it) +CCM PDU (CCM Protocol Data Unit 協(xié)議數(shù)據(jù)單元);
2.LSP 0AM(Label Switching Path 0AM,標簽交換通道 0AM),用于檢測整體 LSP (標簽交換通道),封裝方式為LSP label+GAL+ACH+CCM PDU ;
3.TCM OAM(Tandem Connecting Monitor 0AM,串聯(lián)連接監(jiān)視 0AM),封裝方式和 LSPOAM相同,但是屬于LSP中的某一部分的OAM的層次,為TCM label+GAL+ACH+CCM PDU ;
4.Pff OAM(Pseudo Wire 0ΑΜ,偽線 0AM),封裝方式為 LSP label+PW label+ACH+CCM
PDU。請參照圖I所示,本發(fā)明一實施方式MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法主要包括如下步驟
S10,對入數(shù)據(jù)報文進行處理,解析數(shù)據(jù)報文、查找、判斷進行何種處理;本發(fā)明一實施方式中在MPLS部分主要是解析、查找并判斷該數(shù)據(jù)報文需要進行何種MPLS處理并進行標記;· S20,根據(jù)偵測到的數(shù)據(jù)報文對MPLS-TP OAM報文進行相應的封裝,并對該OAM報文標記需要進行與該數(shù)據(jù)報文相同的處理方式;
S30,對經(jīng)過SlO及S20處理的數(shù)據(jù)報文及OAM報文進行隊列處理;
S40,根據(jù)經(jīng)過SlO及S20處理的數(shù)據(jù)報文及OAM報文需求進行相應編輯,本發(fā)明一實施方式中基于的MPLS部分主要是根據(jù)輸入方向SlO的查找及處理結果及S20的處理結果,對數(shù)據(jù)報文及CCM報文進行相應編輯。本發(fā)明一實施方式中經(jīng)S20處理的OAM報文主要以CCM報文為例。請參照圖2所示,上述SlO步驟關于MPLS部分處理的流程具體包括
S101,輸入從以太網(wǎng)口收到的數(shù)據(jù)報文;
S102,對接收到的數(shù)據(jù)報文進行解析,對于MPLS而言,解析出所有MPLS標簽棧的內
容;
S103,儲存解析出的所有MPLS標簽棧數(shù)據(jù);
S104,對解析出的各MPLS標簽進行查找,找到相應的處理操作,包括POP,SWAP和PUSH ;
S105,根據(jù)S104的查找結果,判斷該MPLS標簽是否需要Ρ0Ρ,若是,則跳過該MPLS標簽的處理,對下一個MPLS label進行處理;
S106,若否,則判斷該MPLS label是否需要SWAP;
S107,若需要進行SWAP操作,標記該MPLS label需要進行SWAP;
S108,若該MPLS label的操作不需要SWAP,則標記該MPLS標簽需要進行I3USH的操作。由以上可見,經(jīng)過SlO步驟便可以解析出輸入的數(shù)據(jù)報文可以進行的POP操作,并可以通過查找相應label處理工作指定該數(shù)據(jù)報文是否需要SWAP或PUSH的操作。請參照圖3所示,上述S20步驟具體包括
S20L0AM發(fā)送CCM定時器,該定時器為按照協(xié)議關于發(fā)送CCM報文時間間隔標準的定時器;
S202,根據(jù)偵測到的數(shù)據(jù)報文判斷是否需要發(fā)送與之對應的CCM報文;
S203,若需要發(fā)送CCM報文,則對CCM報文的PDU進行組裝,包括Opcode, SequenceNumber, MEP ID, MEG ID 等等 CCM PDU 相關字段;
5204,按照對前述提到的CCM報文封裝方式,添加ACH部分;
5205,判斷是否需要添加GAL,主要是根據(jù)該CCM報文所對應的是哪種OAM類型,若是Pff OAM,則不需要添加GAL,
S206,若是其他類型,則對CCM報文添加GAL ;
S207,標記該CCM報文需要進行與對應的數(shù)據(jù)報文相同的MPLS處理方式;即在經(jīng)過上述流程后,發(fā)出的CCM報文為GAL+ACH+CCM PDU,仍缺少MPLS label部分的報文編輯,則該S207步驟主要為根據(jù)偵測到的數(shù)據(jù)報文的MPLS處理方式對應標記該CCM報文以對應進行S40步驟的報文編輯操作。由以上可得,按照上述各步驟,可以靈活的對數(shù)據(jù)報文的MPLS標簽棧進行編輯操作,進而達到CCM和數(shù)據(jù)報文使用統(tǒng)一的處理路徑,即也可達到OAM層面和數(shù)據(jù)層面的統(tǒng)一轉發(fā)路徑。請參照圖4所示,上述S40步驟關于MPLS部分處理的流程具體包括 S401,接收已處理結果,即接收經(jīng)SlO及S20處理的結果數(shù)據(jù),即是需要進行SWAP或者PUSH,以及相應的編輯表項的索引;
S402,按照S401中的編輯表項索引找到編輯操作數(shù)據(jù),以用作后續(xù)對數(shù)據(jù)報文及CCM報文的編輯操作;
S403,接收S402中的編輯操作數(shù)據(jù),并按照該編輯操作數(shù)據(jù)判斷該數(shù)據(jù)報文是否需要進行SWAP的報文編輯;
S404,若該數(shù)據(jù)報文是需要進行SWAP操作的,則進行SWAP的報文編輯;
S405,若該數(shù)據(jù)報文不需要SWAP操作,則判斷該數(shù)據(jù)報文及CCM報文是否需要I3USHlabel,若否,則結束出方向MPLS的處理;
S406,進行S404步驟SWAP的報文編輯后,判斷該數(shù)據(jù)報文是否需要繼續(xù)I3USH label ;S407,若是,進行PUSH的報文編輯;另外經(jīng)過S405判斷后需要進行I3USH的,同時進行PUSH的報文編輯;
S408,判斷是否需要進行PUSH label,若需要,則循環(huán)到S407步驟繼續(xù)進行I3USH的報文編輯;
S409,經(jīng)過上述對數(shù)據(jù)報文及CCM報文的MPLS部分處理結束后,發(fā)送該數(shù)據(jù)報文及CCM報文以進行二層部分編輯,此處不做詳述。由以上可見,S40輸出方向處理可以靈活的對數(shù)據(jù)報文及CCM報文進行SWAP和PUSH的報文編輯操作。以下對一些MPLS操作處理情景舉例說明
I.LSP的頭結點,其目的是在原數(shù)據(jù)報文上Push—個MPLS label,進行MPLS域的傳輸。其對數(shù)據(jù)報文的操作為在輸入方向處理步驟SlO判斷為需要Push MPLS label,在輸出方向處理步驟S40經(jīng)過S403,S405, S407,完成對數(shù)據(jù)報文Push MPLS label的操作。對于OAM引擎的CCM報文發(fā)送而言,該OAM為偵測該LSP的,在OAM引擎發(fā)送CCM報文的處理中,對CCM報文進行GAL,ACH和CCM PDU的組包處理后,指定使用和數(shù)據(jù)報文相同的輸出方向MPLS編輯操作,在輸出方向處理步驟S40中經(jīng)過S403,S405和S407,完成LSP label的Push操作,完成CCM MPLS部分的編輯處理。2. PW的頭結點,其目的是在原數(shù)據(jù)報文上Push—個PW label和一個LSPlabel,使得數(shù)據(jù)報文進行VPN(Virtual Private Network,虛擬專用網(wǎng)絡)業(yè)務的傳輸。其對數(shù)據(jù)報文的操作為在輸入方向處理SlO判斷為需要Push MPLS label,在輸出方向處理上S40反復經(jīng)過S403, S405, S407, S408,完成對數(shù)據(jù)報文Push Pff label和LSP label共兩個MPLS Label的操作。對于OAM引擎的CCM報文發(fā)送而言,該OAM為偵測該PW的,在OAM引擎發(fā)送CCM報文的處理中,對CCM報文進行ACH和CCM PDU的組包處理后(注意,由于是PW的0ΑΜ,不進行GAL的添加),指定使用和數(shù)據(jù)報文相同的輸出方向MPLS編輯操作,在輸出方向處理S40中經(jīng)過 S403,S405, S407, S408 完成 PW label 和 LSP label 的 Push 操作,完成 PW OAM 的CCM MPLS部分的編輯處理。3. Section OAM的情況比較特殊,該OAM的功能是檢測鄰接鏈路的狀態(tài),和數(shù)據(jù)轉發(fā)無關,對于Section OAM而言,OAM引擎完成GAL + ACH + CCM PDU的編輯后,不需要在輸出方向MPLS處理步驟S40中進行其他報文編輯,直接進入出方向的二層報文頭編輯即可。
4. TCM OAM的情況。TCM的目的是為了檢測LSP中的某一段的連接情況,在TCM的頭結點,需要發(fā)送類似上述I中提到的TCM label + GAL + ACH + CCM PDU的CCM報文,即在輸出方向處理S40中進行TCM label的添加。而對于數(shù)據(jù)報文而言,原有數(shù)據(jù)報文已在一條LSP上進行傳輸,在TCM頭結點,按照協(xié)議要求,需要進行原有LSP label的SWAP操作,再進行TCM label的PUSH操作。因此對于數(shù)據(jù)報文而言,在輸入方向處理SlO中確定為需要先進行SWAP操作,在輸出方向處理S40中,經(jīng)過S404,S406, S407的操作后,完成整個MPLS的報文的編輯操作。兩者所不同的是數(shù)據(jù)報文的編輯需要先經(jīng)過SWAP,而PUSH的操作時相同的,這一點可以通過S20中OAM發(fā)送CCM報文時的S207和輸入方向處理SlO中的S107中進行標識。在輸出方向時使用相同的編輯處理,根據(jù)標識不同,決定是否需要先SWAP。請參照圖5所示為用以實施本發(fā)明一實施方式實現(xiàn)MPLS-TP的OAM與數(shù)據(jù)統(tǒng)一轉發(fā)路徑的方法的裝置模塊圖,本發(fā)明一實施方式實現(xiàn)MPLS-TP的OAM與數(shù)據(jù)統(tǒng)一轉發(fā)路徑的裝置包括
入方向處理模塊,用于對輸入的數(shù)據(jù)報文進行處理,解析數(shù)據(jù)報文、查找、判斷該數(shù)據(jù)報文需要進行何種處理;本發(fā)明一實施方式中在MPLS部分主要是用于解析報文、查找并判斷需要進行何種MPLS處理;
OAM引擎,用于根據(jù)偵測到的數(shù)據(jù)報文對MPLS-TP OAM報文進行相應的封裝,并對該OAM報文標記需要與該數(shù)據(jù)報文相同的處理方式,并發(fā)送該OAM報文,本發(fā)明一實施方式中該OAM報文以CCM報文舉例說明;
隊列處理模塊,用于對經(jīng)過入方向處理模塊及OAM引擎處理的數(shù)據(jù)報文及OAM報文進行隊列處理;
出方向處理模塊,用于根據(jù)經(jīng)過入方向處理模塊及OAM引擎處理的數(shù)據(jù)報文及OAM報文需求進行編輯。本發(fā)明一實施方式中基于的MPLS部分主要是用于根據(jù)入方向處理模塊的查找及處理結果及OAM引擎的處理結果,對數(shù)據(jù)報文及CCM報文進行相應MPLS部分的編輯操作。上述入方向處理模塊具體用于
輸入從以太網(wǎng)口收到的數(shù)據(jù)報文;
對收到的數(shù)據(jù)報文進行解析,對于MPLS而言,用于解析出所有MPLS標簽棧的內容;儲存解析出的所有MPLS標簽棧數(shù)據(jù);
對解析出的各MPLS標簽進行查找,找到相應的處理操作,包括POP,SWAP和PUSH ;根據(jù)查找結果,判斷該MPLS標簽是否需要POP,若是,則跳過該MPLS標簽的處理,對下一個MPLS label進行處理;
在判斷為否時,判斷該MPLS label是否需要SWAP;
在需要進行SWAP操作時,標記該MPLS label需要進行SWAP;
在判斷不需要SWAP時,標記該MPLS標簽需要進行I3USH的操作。由以上可見,經(jīng)過入方向處理模塊可以解析出入數(shù)據(jù)報文可以進行的POP操作,并可以通過查找相應label處理工作指定該數(shù)據(jù)報文是否需要SWAP或PUSH的操作。另外,所述OAM引擎具體用于
發(fā)送CCM定時器,該定時器為按照協(xié)議關于發(fā)送CCM報文時間間隔標準的定時器; 根據(jù)偵測到的數(shù)據(jù)報文判斷是否需要發(fā)送CCM報文;
在需要發(fā)送CCM報文時對CCM報文的PDU進行組裝,包括Opcode, Sequence Number,MEP ID, MEG ID等等CCM PDU相關字段; 按照對前述提到的CCM報文封裝方式,添加ACH部分;
判斷是否需要添加GAL,主要是根據(jù)該CCM報文所對應的是哪種OAM類型,若是PW 0ΑΜ,則不需要添加GAL,
在判斷OAM是其他類型時對CCM報文添加GAL ;
標記該CCM報文需要進行與對應的數(shù)據(jù)報文相同的MPLS處理;即在經(jīng)過上述流程后,發(fā)出的CCM報文為GAL+ACH+CCM PDU,仍缺少MPLS label部分的報文編輯,則該處主要用于標記該CCM報文以在出方向處理模塊(S40)中進行報文編輯操作。上述出方向處理模塊具體用于
接收已處理結果,即用于接收在入方向處理模塊中經(jīng)過MPLS處理及在OAM引擎中處理后的結果數(shù)據(jù),即是需要進行SWAP或者PUSH,以及相應的編輯表項的索引;
按照上述編輯表項索引找到編輯操作數(shù)據(jù),以用作后續(xù)對數(shù)據(jù)報文及CCM報文的編輯操作;
接收S402中的編輯操作數(shù)據(jù),并按照該編輯操作數(shù)據(jù)判斷該數(shù)據(jù)報文是否需要進行SWAP的報文編輯;
若該數(shù)據(jù)報文是需要進行SWAP操作的,則進行SWAP的報文編輯;
若該數(shù)據(jù)報文不需要SWAP操作,則判斷該數(shù)據(jù)報文及CCM報文是否需要TOSH label,若否,則結束出方向MPLS的處理;
進行S404步驟SWAP的報文編輯后,判斷該數(shù)據(jù)報文是否需要繼續(xù)TOSH label ;
在判斷需要PUSH label時進行TOSH的報文編輯;另外,經(jīng)過上述“若該數(shù)據(jù)報文不需要SWAP操作,則判斷該數(shù)據(jù)報文及CCM報文是否需要TOSH label ”后需要進行PUSH的,同時進行I3USH的報文編輯;
判斷是否需要繼續(xù)進行PUSH label,若需要,則再返回進行PUSH的報文編輯;
經(jīng)過上述對數(shù)據(jù)報文及CCM報文的MPLS部分處理結束后,發(fā)送該數(shù)據(jù)報文及CCM報文以進行二層部分編輯,此處不做詳述。由以上可見,所述出方向處理模塊可以靈活的對數(shù)據(jù)報文及CCM報文進行SWAP和PUSH的操作。由以上可得,本發(fā)明MPLS-TP OAM和數(shù)據(jù)統(tǒng)一轉換路徑的方法及裝置通過在S20及OAM引擎中對OAM報文進行標記與對應的數(shù)據(jù)報文相同的處理方式,以達到OAM報文對數(shù)據(jù)報文的真正的偵測和管理;另外,OAM報文與數(shù)據(jù)報文使用統(tǒng)一的S40步驟及出方向處理模塊進行相同的編輯操作,進而可節(jié)約包處理芯片(ASIC)的資源,降低成本,提高芯片的使用效率。為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)。基于這樣的理解,本申請的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本申請各個實施方式或者實施方式的某些部分所述的方法。以上所描述的裝置實施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施方式方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。本申請可用于眾多通用或專用的計算系統(tǒng)環(huán)境或配置,或通信設備中。例如個人計算機、服務器計算機、手持設備或便攜式設備、平板型設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費電子設備、網(wǎng)絡PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設備的分布式計算環(huán)境等等。本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結構等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設備在內的本地和遠程計算機存儲介質中。應當理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施方式中的技術方案也可以經(jīng)適當組合,形成本領域技術人員可以理解的其他實施方式。上文所列出的一系列的詳細說明僅僅是針對本發(fā)明的可行性實施方式的具體說明,它們并非用以限制本發(fā)明的保護范圍,凡未脫離本發(fā)明技藝精神所作的等效實施方式或變更均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法,其特征在于,包括以下步驟 S10,對輸入的數(shù)據(jù)報文進行解析、查找,判斷需要進行何種處理方式; S20,根據(jù)偵測到的數(shù)據(jù)報文對MPLS-TP OAM報文進行相應的封裝,并對該OAM報文標記需要與該數(shù)據(jù)報文相同的處理方式; S30,對經(jīng)過SlO及S20處理的數(shù)據(jù)報文及OAM報文進行隊列處理; S40,根據(jù)經(jīng)過SlO及S20處理的數(shù)據(jù)報文及OAM報文需求進行相應編輯。
2.根據(jù)權利要求I所述的MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法,其特征在于,所述S10、S20及S40中的數(shù)據(jù)報文處理方式均是基于MPLS數(shù)據(jù)處理方式進行的。
3.根據(jù)權利要求2所述的MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法,其特征在于,所述SlO具體包括以下步驟 S101,輸入從以太網(wǎng)口接收到的數(shù)據(jù)報文; S102,對收到的數(shù)據(jù)報文進行解析出所有MPLS標簽棧的內容; S103,儲存解析出的所有MPLS標簽棧數(shù)據(jù); S104,對解析出的各MPLS標簽進行查找,找到相應的處理操作,包括POP,SWAP和PUSH ; S105,根據(jù)S104的查找結果,判斷該MPLS標簽是否需要Ρ0Ρ,若是,則跳過該MPLS標簽的處理,對下一個MPLS標簽進行處理; S106,若否,則判斷該MPLS標簽是否需要SWAP; S107,若需要進行SWAP操作,標記該MPLS標簽需要進行SWAP; S108,若該MPLS標簽的操作不需要SWAP,則標記該MPLS標簽需要進行I3USH的操作。
4.根據(jù)權利要求3所述的MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法,其特征在于,所述OAM報文包括CCM報文,并且所述S20具體包括以下步驟 S201,發(fā)送CCM定時器; S202,根據(jù)偵測到的數(shù)據(jù)報文判斷是否需要發(fā)送CCM報文; S203,若需要發(fā)送CCM報文,則對CCM的PDU進行組裝; S204,按照CCM報文封裝方式,添加ACH部分; S205,根據(jù)該CCM報文所對應的是哪種OAM類型,判斷是否需要添加GAL,若是PW 0ΑΜ,則不需要添加GAL, S206,若是其他類型,則對CCM報文添加GAL ; S207,標記該CCM報文需要進行與對應的數(shù)據(jù)報文相同的MPLS處理方式。
5.根據(jù)權利要求4所述的MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法,其特征在于,所述S40具體包括以下步驟 S401,接收經(jīng)SlO及S20處理的結果數(shù)據(jù),即是需要進行SWAP或者PUSH,以及相應的編輯表項的索引; S402,按照S401中的編輯表項索引找到編輯操作數(shù)據(jù),以用作后續(xù)對數(shù)據(jù)報文及CCM報文的編輯操作; S403,接收S402中的編輯操作數(shù)據(jù),并按照該編輯操作數(shù)據(jù)判斷該數(shù)據(jù)報文是否需要進行SWAP的報文編輯; S404,若是,則進行SWAP的報文編輯; S405,若該數(shù)據(jù)報文不需要SWAP操作,則判斷該數(shù)據(jù)報文及CCM報文是否需要I3USHlabel,若否,則結束出方向MPLS的處理; S406,進行S404步驟SWAP的報文編輯后,判斷該數(shù)據(jù)報文是否需要繼續(xù)I3USH label ;S407,若是,進行PUSH的報文編輯;另外,經(jīng)過S405判斷后需進行I3USH的,則進行I3USH的報文編輯; S408,判斷是否需要繼續(xù)進行PUSH label,若需要,則循環(huán)到S407 ; S409,經(jīng)過上述對數(shù)據(jù)報文及CCM報文的MPLS部分處理結束后,發(fā)送該數(shù)據(jù)報文及CCM報文以進行二層部分編輯。
6.一種MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的裝置,其特征在于,包括 入方向處理模塊,用于對輸入的數(shù)據(jù)報文進行解析、查找、判斷需要進行何種處理方式; OAM引擎,用于根據(jù)偵測到的數(shù)據(jù)報文對MPLS-TP OAM報文進行相應的封裝,并對該OAM報文標記需要與該數(shù)據(jù)報文相同的處理方式; 隊列處理模塊,用于對經(jīng)過入方向處理模塊及OAM引擎處理的數(shù)據(jù)報文及OAM報文進行隊列處理; 出方向處理模塊,用于根據(jù)經(jīng)過入方向處理模塊及OAM引擎處理的數(shù)據(jù)報文及OAM報文需求進行相應編輯。
7.根據(jù)權利要求6所述的MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的裝置,其特征在于,所述入方向處理模塊、OAM引擎及出方向處理模塊均采用MPLS的數(shù)據(jù)處理方式。
8.根據(jù)權利要求7所述的MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的裝置,其特征在于,所述入方向處理模塊具體用于 輸入從以太網(wǎng)口收到的數(shù)據(jù)報文; 對所述數(shù)據(jù)報文解析出所有MPLS標簽棧的內容; 儲存解析出的所有MPLS標簽棧數(shù)據(jù); 對解析出的各MPLS標簽進行查找,找到相應的處理操作,包括POP,SWAP和PUSH ;根據(jù)上述查找結果,判斷該MPLS標簽是否需要Ρ0Ρ,若是,則跳過該MPLS標簽的處理,對下一個MPLS標簽進行處理; 在判斷為否時,判斷該MPLS標簽是否需要SWAP; 在需要進行SWAP操作時,標記該MPLS標簽需要進行SWAP; 在判斷不需要SWAP時,標記該MPLS標簽需要進行I3USH的操作。
9.根據(jù)權利要求8所述的MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的裝置,其特征在于,所述OAM報文包括CCM報文,所述OAM引擎具體用于 發(fā)送CCM定時器; 根據(jù)偵測到的數(shù)據(jù)報文判斷是否需要發(fā)送CCM報文; 若需要發(fā)送CCM報文,則對CCM報文的PDU進行組裝; 按照CCM報文封裝方式,添加ACH部分;根據(jù)該CCM報文所對應的是哪種OAM類型,判斷是否需要添加GAL,若是PW 0ΑΜ,則不需要添加GAL, 若是其他類型,對CCM報文添加GAL ; 標記該CCM報文需要進行與對應的數(shù)據(jù)報文相同的MPLS處理方式。
10.根據(jù)權利要求9所述的MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的裝置,其特征在于,所述出方向處理模塊具體用于 接收經(jīng)入方向處理模塊及OAM引擎處理的結果數(shù)據(jù),即是需要進行SWAP或者PUSH,以及相應的編輯表項的索引; 按照上述編輯表項索引找到編輯操作數(shù)據(jù),以用作后續(xù)對數(shù)據(jù)報文及CCM報文的編輯操作; 接收S402中的編輯操作數(shù)據(jù),并按照該編輯操作數(shù)據(jù)判斷該數(shù)據(jù)報文是否需要進行SWAP的報文編輯; 若該數(shù)據(jù)報文是需要進行SWAP操作的,則進行SWAP的報文編輯; 若該數(shù)據(jù)報文不需要SWAP操作,則判斷該數(shù)據(jù)報文及CCM報文是否需要TOSH label,若否,則結束出方向MPLS的處理; 進行S404步驟SWAP的報文編輯后,判斷該數(shù)據(jù)報文是否需要繼續(xù)TOSH label ; 若是,進行PUSH的報文編輯;另外,經(jīng)過上述“若該數(shù)據(jù)報文不需要SWAP操作,則判斷該數(shù)據(jù)報文及CCM報文是否需要I3USH label”后需要進行I3USH的,同時進行I3USH的報文編輯; 判斷是否需要繼續(xù)進行PUSH label,若需要,返回進行PUSH的報文編輯; 經(jīng)過上述對數(shù)據(jù)報文及CCM報文的MPLS部分處理結束后,發(fā)送該數(shù)據(jù)報文及CCM報文以進行二層部分編輯。
全文摘要
本發(fā)明提供一種MPLS-TP網(wǎng)絡中OAM報文和數(shù)據(jù)報文統(tǒng)一轉發(fā)路徑的方法及裝置,其中方法包括以下步驟對輸入的數(shù)據(jù)報文進行解析、查找、判斷進行何種處理方式;根據(jù)偵測到的數(shù)據(jù)報文對MPLS-TPOAM報文進行相應的封裝,并對該OAM報文標記需要與該數(shù)據(jù)報文相同的處理方式;對經(jīng)過上述處理的數(shù)據(jù)報文及OAM報文進行隊列處理;對經(jīng)過上述處理的數(shù)據(jù)報文及OAM報文進行相應編輯。從而使得OAM報文與數(shù)據(jù)報文經(jīng)處理后使用統(tǒng)一路徑進行相同的編輯操作,進而可節(jié)約包處理芯片(ASIC)的資源,降低成本,提高芯片的使用效率。
文檔編號H04L12/751GK102957613SQ20111025042
公開日2013年3月6日 申請日期2011年8月29日 優(yōu)先權日2011年8月29日
發(fā)明者何志川, 廖繼平, 單哲, 楊曙軍 申請人:盛科網(wǎng)絡(蘇州)有限公司