周三友,趙增輝
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
以太網具有良好的經濟性、易用性和互通性,因此得到了廣泛的應用,不斷地從局域網向城域網和廣域網滲透和延伸。同時,以太網也在向傳送網領域發展。ITU-T、IEEE和MEF都在制定相應的標準,使得以太網能夠支持多種業務的承載,實現分組形式的傳送網。
然而,隨著以太網的不斷發展,對其可靠性和可管理性的要求越來越高。傳統的以太網主要在小范圍的局域網環境使用,運行、管理和維護功能(OAM)較差,已經越來越不能滿足這些新的應用的要求。為了實現電信級的、高可靠的以太網,必須對傳統的以太網進行擴展,使其具有完善的OAM功能。
對以太網的OAM功能進行定義的標準主要有2個,分別是IEEE在2007年通過的802.1ag連接故障管理(Connectivity Fault Management,CFM)標準和ITU-T在2008年通過的Y.1731基于以太網的網絡的OAM功能和機制(OAM functions and mechanisms for Ethernet based networks)。其中IEEE 802.1ag主要規定了連接故障管理的內容,而ITU-T Y.1731在IEEE 802.1ag的基礎上對故障管理功能進行了擴展,同時增加了性能管理方面的內容,相對較為復雜。主要依據IEEE 802.1ag進行連接故障管理方面的探討。
一個端到端的以太網連接可能跨越多個管理區域,包括用戶域、業務提供商域、運營商域等等。每個域都要具有自己的OAM功能。以太網OAM從高到低可劃分為用戶、業務提供商(SP)、運營商3大類管理域。高階管理域的OAM包,低階管理域節點不作處理,進行透傳。同一管理域內部的OAM包將在管理域邊界終結,不會擴展到其他管理域。IEEE 802.1ag通過不同的管理級別來劃分不同的管理域,如圖1所示。
IEEE 802.1ag定義了3大類OAM包,分別是:
①連續性檢測消息(CCM):檢測連接丟失或者不正確的網絡連接,可以是單播或者組播;②環回消息:校驗與一個特定管理組中的另一個管理點之間的連接,環回消息為單播;③鏈路蹤跡消息:驗證同一個管理組中遠端管理點鄰接關系。鏈路蹤跡消息被定義為組播,鏈路蹤跡響應被定義為單播。

圖1 管理域的劃分
OAM包被封裝在標準的以太網幀中,通過一個特定的以太網類型來識別,最大消息長度為128字節。一個典型的OAM包格式如表1所示。

表1 OAM包格式
OAM包中各字段的含義如下:
①管理域級別。5~7:用戶域,3~4:業務提供商域,0~2:運營商域;版本,目前為0;②操作碼,指示OAM消息類型;標志,取值與特定的操作碼有關;首TLV偏移,包含在OAM包中第1個TLV相對于本字段的偏移。該字段與消息類型有關,實際上間接的指出了消息的長度;③消息體,具體的消息內容;④結束TLV,一個類型為0、沒有長度和值的TLV,表示一個空的TLV,也意味著整個包的結束。
網絡處理器(NP)由于具有處理速度快、編程能力強的特點,在目前主要的電信設備制造商中得到了大量的應用。NP-X就是一款某公司生產的功能強大的網絡處理器,它具有以下特點:
①單芯片線速全雙工10G包處理;②嵌入式流量管理(TM);③單映像在線可編程。
NP-X的模塊組成如圖2所示,其內部可劃分為解碼、查找Ⅰ、分析、查找Ⅱ、修改5級流水線。每一級流水線都具有多個獨立的微引擎,執行特定的包處理任務。解碼級對包進行簡單的分類,提取包中不同的字段組成查找鍵和消息發送給下一級。查找I級根據上一級發來的查找鍵進行查找,并將查找結果發送給下一級。分析級根據查找結果進行解析處理。如有必要,查找Ⅱ級還可以進行進一步的查找。修改級根據前幾級的查找結果對包進行分析,并發送到相應的端口。

圖2 NP-X的模塊組成
特別是該網絡處理器還具有嵌入的OAM模塊,可以實現大量連接的CCM包的產生和監測功能。
IEEE 802.1ag規定的3大類消息中,環回消息和鏈路蹤跡消息一般在需要的時候由管理員發起,收發速率較低,可以由通用處理器處理。CCM消息需要周期性的產生,并且周期較短,可達到ms級。特別是在支持大量連接時,處理負擔非常大,普通的處理器是無法完成這一任務的,必須采用網絡處理器進行處理。CCM的處理主要包括以下3部分內容:
①CCM包產生:對每個連接定時產生CCM包;②接收CCM包處理:對從線路接口收到的CCM包進行處理;③CCM包監測:監測是否能夠在規定的時間間隔內收到CCM包。
CCM包的產生過程如圖3所示。NP-X的OAM模塊具有專用的定時器,定時產生CCM包。為了與從線路接口收到的CCM包相區別,稱為保持包。保持包和定時器ID一起被發送給解碼。

圖3 CCM包的產生
解碼的硬件解碼器對包進行預處理,能夠識別不同的包,并將識別結果存儲在硬件寄存器0和硬件寄存器15中。硬件寄存器0的位7~5等于0表示收到的是OAM中斷包,即內部產生的包(保持包是其中的一種)。硬件寄存器15的位28~26指示是那一種OAM中斷包。定時器ID被存放在輸出寄存器12中。解碼微碼程序提取定時器ID作為查找鍵值,發送給查找I。
查找I根據定時器ID進行查找,并將查找結果發送給分析。查找結果包括管理域級別、MEPID、MAID等CCM包需要的字段以及輸出端口等必要的參數。
分析根據查表結果進行處理。如果查找成功,則通過查找II將查表結果傳遞給修改。如果查找失敗,則可能是由于配置問題產生了錯誤的CCM包,該包被丟棄。
查找Ⅱ不做任何處理,直接將包傳遞給修改。
修改根據查表結果,分析保持包的相關內容,并發送到輸出端口。
接收CCM包的處理如圖4所示。

圖4 接收CCM包的處理
識別到接收包為CCM包后,解碼對接收包中的管理域級別和配置的管理域級別進行比較,根據比較結果進行如下不同的處理。
①如果接收包中的管理域級別大于配置的管理域級別,則該包是上層管理域的CCM包,應該像普通的數據包一樣進行轉發;
②如果接收包中的管理域級別小于配置的管理域級別,則該包是下層管理域的CCM包,不應出現在本管理域中,該包被丟棄;
③如果接收包中的管理域級別等于配置的管理域級別,則提取接收包中的MEPID和MAID作為查找鍵發送給查找I。
查找I根據MEPID和MAID進行查找,將查找結果發送到下一級。
如果查找I查找成功,則查找結果中包含對應的看門狗定時器ID,分析將復位該定時器。無論查找成功還是失敗,該包都會被丟棄。
CCM包的監控相對簡單。NP-X的OAM模塊為每一個連接提供一個專用的OAM看門狗定時器。如果在規定時間內從線路接口收到了本連接的CCM包,則如0節所述,該定時器被復位。
如果在規定時間內沒有收到CCM包,則產生一個看門狗定時器事件發送給解碼,參數包含定時器ID。解碼收到該事件后,向主處理器發送一條消息,由主處理器進行進一步的處理。可能的處理是連接故障告警,或者是進一步的進行保護倒換。
電信級以太網是近年來通信技術研究的熱點,而OAM是電信級以太網研究的一個非常重要的方面。利用網絡處理器對OAM中CCM消息的處理進行設計,克服了普通處理器處理速度慢、響應不及時的缺點,對電信級以太網的實現進行了積極的探索。
[1]IEEE 802.1ag.Virtual Bridged Local Area Networks-Amendment 5:Connectivity Fault Management[S].2007,12.
[2]ITU-T Y.1730 Requirements for OAM Functions in Ethernet BasedNetworks[S].2004,1.
[3]ITU-T Y.1731 OAM.Functions andMechanisms for Ethernet BasedNetworks[S].2008,1.
[4]李炳彰,黃進華.MPLS網絡的OAM功能研究與實現[J].無線電工程,2002,36(3):3-6.
[5]何庭宗.分組傳送網操作、管理和維護技術[J].中興通信技術,2008,14(6):30-32.