一種oam報(bào)文快速發(fā)送和檢測(cè)處理的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)操作、管理&維護(hù)(0AM, Operat1n,Administrat1n&Maintenance)技術(shù),尤其涉及一種OAM報(bào)文快速發(fā)送和檢測(cè)處理的方法和裝置。
【背景技術(shù)】
[0002]OAM功能在公眾電信網(wǎng)中已經(jīng)變得十分重要,尤其是對(duì)需要提供服務(wù)質(zhì)量保障的網(wǎng)絡(luò),OAM功能對(duì)鏈路狀態(tài)實(shí)時(shí)檢測(cè)及狀態(tài)上報(bào),進(jìn)行鏈路的差錯(cuò)管理并提供快速切換的能力。OAM功能能夠提供毫秒級(jí)的發(fā)送和檢測(cè)時(shí)間,從而加快網(wǎng)絡(luò)收斂速度,減少應(yīng)用中斷時(shí)間,提高網(wǎng)絡(luò)的可靠性。以太網(wǎng)交換機(jī)上的OAM功能主要通過雙向轉(zhuǎn)發(fā)檢測(cè)(BFD,Bidirect1nal Forwarding Detect1n)和連接性故障管理(CFM, Connectivity FaultManagement)兩種技術(shù)實(shí)現(xiàn)。
[0003]BFD協(xié)議提供了一個(gè)通用的標(biāo)準(zhǔn)化的介質(zhì)無關(guān)和協(xié)議無關(guān)的快速故障檢測(cè)機(jī)制。BFD可以為各上層協(xié)議如各路由協(xié)議、多協(xié)議標(biāo)簽交換(MPLS,Mult1-Protocol LabelSwitching)等統(tǒng)一地快速檢測(cè)兩臺(tái)網(wǎng)絡(luò)設(shè)備間雙向轉(zhuǎn)發(fā)路徑的故障,檢測(cè)時(shí)間達(dá)到毫秒級(jí)。
[0004]CFM是由IEEE802.lag標(biāo)準(zhǔn)定義的一種二層以太網(wǎng)OAM協(xié)議??梢员WC以太網(wǎng)也能夠提供電信級(jí)的要求,包括能夠?qū)σ恍I(yè)務(wù)降級(jí)和失敗等網(wǎng)絡(luò)異常錯(cuò)誤或者異常問題能夠進(jìn)行及時(shí)檢測(cè)、恢復(fù)和管理的功能。以太網(wǎng)CCM報(bào)文是CFM報(bào)文中最為重要的一種,檢測(cè)端定期發(fā)送CCM報(bào)文用以通告對(duì)端鏈路的連通性,同時(shí)可以提供遠(yuǎn)端故障指示(RDI,RemoteDefect Indicat1n)功倉泛。
[0005]為了滿足以太網(wǎng)交換機(jī)設(shè)備中BFD和以太網(wǎng)CCM報(bào)文快速發(fā)送、快速檢測(cè)的需要,傳統(tǒng)的設(shè)備會(huì)使用一個(gè)多核CPU來專門來進(jìn)行BFD或者以太網(wǎng)CCM報(bào)文的快速收發(fā)和故障檢測(cè),這樣的多核CPU稱為輔助CPU。輔助CPU主要用于BFD或者以太網(wǎng)CCM報(bào)文封裝、發(fā)送、接收和解封裝處理,實(shí)現(xiàn)報(bào)文統(tǒng)計(jì)功能并上報(bào)檢測(cè)事件到主CPU。如今,100G以太網(wǎng)交換機(jī)設(shè)備需要支持的BFD和以太網(wǎng)CCM報(bào)文的會(huì)話規(guī)格越來越大,目前主流規(guī)格BFD會(huì)話數(shù)為 2K,以太網(wǎng) CCM 的本地維護(hù)端點(diǎn)(LMEP, Local Maintenance associat1n End Point)規(guī)格為 2K,遠(yuǎn)端維護(hù)端點(diǎn)(RMEP, Remote Maintenance associat1n End Point)規(guī)格為 8K。對(duì)采用輔助CPU方式的實(shí)現(xiàn),會(huì)話規(guī)格越大CPU性能下降就越快,對(duì)于許多時(shí)間敏感的業(yè)務(wù)如語音、視頻數(shù)據(jù)要求50ms故障切換的性能,是很難滿足的。如果采用更高性能的CPU,成本和功耗會(huì)大大提升。還有一種是通過側(cè)掛現(xiàn)場(chǎng)可編程門陣列(FPGA,Field ProgrammableGate Array)的方式用于實(shí)現(xiàn)BFD和以太網(wǎng)CCM報(bào)文快速發(fā)送和檢測(cè)功能,這種方式可以滿足設(shè)備所需的性能,但是依然無法解決成本和功耗的問題。另外傳統(tǒng)的方法對(duì)于BFD和以太網(wǎng)CCM報(bào)文的發(fā)送和檢測(cè)處理都是單獨(dú)實(shí)現(xiàn)的,由于在不同的網(wǎng)絡(luò)應(yīng)用場(chǎng)景中可能不會(huì)同時(shí)啟用BFD和以太網(wǎng)CCM的發(fā)送和檢測(cè)功能,因此這種實(shí)現(xiàn)也會(huì)造成資源的閑置和浪費(fèi)。
[0006]可見,目前已有BFD和以太網(wǎng)CCM報(bào)文的發(fā)送和檢測(cè)處理的實(shí)現(xiàn),無法在不提高成本與功耗的情況下、滿足以太網(wǎng)交換機(jī)設(shè)備的需求。
【發(fā)明內(nèi)容】
[0007]為解決現(xiàn)有存在的問題,本發(fā)明主要提供一種OAM報(bào)文快速發(fā)送和檢測(cè)處理的方法和裝置,在不提高成本和功耗的情況下,實(shí)現(xiàn)報(bào)文的快速發(fā)送、實(shí)時(shí)檢測(cè)及狀態(tài)上報(bào)以滿足網(wǎng)絡(luò)上報(bào)的性能需求。
[0008]本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0009]本發(fā)明實(shí)施例提供一種OAM報(bào)文快速發(fā)送和檢測(cè)處理的方法,OAM會(huì)話類型為BFD或CCM,該方法包括:網(wǎng)絡(luò)設(shè)備將BFD報(bào)文和CCM報(bào)文的發(fā)送參數(shù)存儲(chǔ)到第一隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)中,將BFD報(bào)文和CCM報(bào)文的檢測(cè)參數(shù)存儲(chǔ)到第二 RAM中;
[0010]網(wǎng)絡(luò)設(shè)備根據(jù)所述發(fā)送參數(shù)確定報(bào)文類型,對(duì)報(bào)文進(jìn)行發(fā)送處理;
[0011]網(wǎng)絡(luò)設(shè)備判斷是否有報(bào)文到達(dá),并根據(jù)所述檢測(cè)參數(shù)進(jìn)行相應(yīng)的檢測(cè)處理。
[0012]上述方法還包括:網(wǎng)絡(luò)設(shè)備對(duì)報(bào)文進(jìn)行檢測(cè)處理,判定會(huì)話發(fā)生中斷,并產(chǎn)生中斷信息后,將所述中斷信息存儲(chǔ)在第三RAM中進(jìn)行維護(hù),并將中斷信息上報(bào)給上層設(shè)備;
[0013]所述中斷信息包括:會(huì)話號(hào)、報(bào)文類型、會(huì)話中斷類型。
[0014]上述方案中,所述網(wǎng)絡(luò)設(shè)備將BFD報(bào)文和CCM報(bào)文的發(fā)送參數(shù)存儲(chǔ)到第一 RAM中為:網(wǎng)絡(luò)設(shè)備通過配置接口將用戶配置的BFD報(bào)文和CCM報(bào)文的發(fā)送參數(shù)寫入第一 RAM的發(fā)送配置表項(xiàng)中;其中,
[0015]所述發(fā)送參數(shù)包括:會(huì)話號(hào)、發(fā)送使能、報(bào)文發(fā)送周期、報(bào)文類型和報(bào)文長(zhǎng)度;其中,
[0016]對(duì)于BFD報(bào)文,所述發(fā)送參數(shù)還包括:診斷碼(Diag)字段。
[0017]上述方案中,在將所述發(fā)送參數(shù)寫入第一 RAM中時(shí),將當(dāng)前時(shí)間寫入所述發(fā)送配置表項(xiàng)中,作為上一次報(bào)文發(fā)送時(shí)間。
[0018]上述方案中,所述將BFD報(bào)文和CCM報(bào)文的檢測(cè)參數(shù)存儲(chǔ)到第二 RAM中為:網(wǎng)絡(luò)設(shè)備通過配置接口將用戶配置的BFD報(bào)文和CCM報(bào)文的檢測(cè)參數(shù)寫入第二 RAM的檢測(cè)配置表項(xiàng)中;其中,
[0019]所述檢測(cè)參數(shù)包括:檢測(cè)使能、報(bào)文檢測(cè)周期和報(bào)文檢測(cè)類型。
[0020]上述方法還包括:在將所述檢測(cè)參數(shù)寫入第二 RAM中時(shí),將當(dāng)前時(shí)間寫入所述檢測(cè)配置表項(xiàng)中,作為上一次報(bào)文的到達(dá)時(shí)間。
[0021]上述方案中,所述根據(jù)發(fā)送參數(shù)確定報(bào)文類型,對(duì)報(bào)文進(jìn)行發(fā)送處理為:網(wǎng)絡(luò)設(shè)備定時(shí)輪詢第一 RAM的發(fā)送配置表項(xiàng),當(dāng)發(fā)送使能有效時(shí),將計(jì)時(shí)器的當(dāng)前時(shí)間和上一次報(bào)文的發(fā)送時(shí)間計(jì)算出差值,當(dāng)所述差值大于報(bào)文發(fā)送周期時(shí),組成發(fā)送實(shí)例,當(dāng)發(fā)送使能無效或所述差值小于報(bào)文發(fā)送周期時(shí),不對(duì)報(bào)文進(jìn)行處理,繼續(xù)定時(shí)輪詢操作。
[0022]上述方案中,所述組成發(fā)送實(shí)例具體為:根據(jù)報(bào)文類型,提取報(bào)文發(fā)送信息,并更新發(fā)送配置表項(xiàng)中的上一次報(bào)文發(fā)送時(shí)間為當(dāng)前時(shí)間;其中,
[0023]所述報(bào)文發(fā)送信息包括:會(huì)話號(hào)、報(bào)文類型和報(bào)文長(zhǎng)度;
[0024]對(duì)于BFD報(bào)文,報(bào)文發(fā)送信息還包括=Diag字段。
[0025]上述方案中,在組成發(fā)送實(shí)例后,該方法還包括:根據(jù)所述報(bào)文發(fā)送信息對(duì)報(bào)文進(jìn)行讀取、修改和發(fā)送;其中,
[0026]所述讀取為:根據(jù)所述會(huì)話號(hào)得到報(bào)文存儲(chǔ)在雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR3, Double Data Rate)中的基地址,再根據(jù)所述報(bào)文長(zhǎng)度和所述DDR3的數(shù)據(jù)位寬得到報(bào)文存儲(chǔ)的基地址起的所有地址,讀出報(bào)文;其中,
[0027]所述DDR3為存儲(chǔ)報(bào)文信息的外置DDR3 ;
[0028]所述修改:根據(jù)報(bào)文類型讀取網(wǎng)絡(luò)設(shè)備中相應(yīng)會(huì)話的狀態(tài),再根據(jù)所述狀態(tài)判斷是否需要進(jìn)行修改;其中,
[0029]當(dāng)報(bào)文類型為BFD時(shí),讀取相應(yīng)BFD會(huì)話的狀態(tài),當(dāng)所述狀態(tài)為會(huì)話中斷時(shí),為報(bào)文添加替換標(biāo)記I ;
[0030]當(dāng)報(bào)文類型為CCM時(shí),讀取相應(yīng)的CCM會(huì)話的狀態(tài),當(dāng)所述狀態(tài)為會(huì)話中斷時(shí),為報(bào)文添加修改標(biāo)記I ;
[0031]所述發(fā)送為:當(dāng)報(bào)文類型為BFD,且替換標(biāo)記為I時(shí),將報(bào)文中的Diag字段替換為所述報(bào)文發(fā)送信息中的Diag字段,根據(jù)網(wǎng)絡(luò)設(shè)備的發(fā)送通道的特性將報(bào)文組裝成規(guī)定的格式發(fā)送出去;
[0032]當(dāng)報(bào)文類型為CCM,且修改標(biāo)記為I時(shí),將報(bào)文中的RDI字段替換成I,根據(jù)網(wǎng)絡(luò)設(shè)備的發(fā)送通道的特性將報(bào)文組裝成規(guī)定的格式發(fā)送出去。
[0033]上述方案中,所述網(wǎng)絡(luò)設(shè)備判斷是否有報(bào)文到達(dá),并根據(jù)檢測(cè)參數(shù)進(jìn)行相應(yīng)的檢測(cè)處理為:網(wǎng)絡(luò)設(shè)備判斷是否有報(bào)文到達(dá),當(dāng)有時(shí),根據(jù)報(bào)文類型和報(bào)文中的會(huì)話號(hào)對(duì)報(bào)文進(jìn)行相應(yīng)的檢測(cè)處理,當(dāng)沒有時(shí),網(wǎng)絡(luò)設(shè)備定時(shí)輪詢第二 RAM的檢測(cè)配置表項(xiàng),當(dāng)檢測(cè)使能有效時(shí),將計(jì)時(shí)器的當(dāng)前值和上一次報(bào)文到達(dá)時(shí)間計(jì)算出差值,當(dāng)所述差值大于報(bào)文檢測(cè)周期時(shí),判定會(huì)話發(fā)生超時(shí)中斷,更新所述檢測(cè)配置表項(xiàng)中的時(shí)間為當(dāng)前時(shí)間,產(chǎn)生中斷信息;當(dāng)所述差值小于報(bào)文檢測(cè)周期時(shí),繼續(xù)進(jìn)行定時(shí)輪詢操作,并判斷是否有報(bào)文到達(dá)。
[0034]上述方案中,當(dāng)有報(bào)文到達(dá)時(shí),根據(jù)報(bào)文類型和報(bào)文中的會(huì)話號(hào)對(duì)報(bào)文進(jìn)行相應(yīng)的檢測(cè)處理具體為:當(dāng)報(bào)文類型是BFD時(shí),提取報(bào)文中的會(huì)話號(hào),讀取所述會(huì)話號(hào)對(duì)應(yīng)的上一個(gè)Diag字段,將所述上一個(gè)Diag字段與報(bào)文中的Diag字段比較,當(dāng)改變時(shí),判定所述會(huì)話中斷,記錄當(dāng)前Diag字段,產(chǎn)生中斷信息并進(jìn)行處理,當(dāng)沒有改變時(shí),判定會(huì)話沒有中斷,更新上一次報(bào)文的到達(dá)時(shí)間為當(dāng)前時(shí)間。
[0035]上述方案中,當(dāng)有報(bào)文到達(dá),且報(bào)文類型是CCM時(shí),提取報(bào)文中的會(huì)話號(hào),讀取所述會(huì)話號(hào)對(duì)應(yīng)的上一個(gè)RDI字段,將所述上一個(gè)RDI字段與報(bào)文中的RDI字段比較,當(dāng)有改變時(shí),判定所述會(huì)話中斷,記錄當(dāng)前RDI字段,更新RDI狀態(tài)計(jì)數(shù)器,產(chǎn)生中斷信息,當(dāng)沒有改變時(shí),判定會(huì)話沒有中斷,更新上一次報(bào)文的到達(dá)時(shí)間為當(dāng)前時(shí)間,并更新RDI狀態(tài)計(jì)數(shù)器。
[0036]本發(fā)明實(shí)施例還提供一種OAM報(bào)文快速發(fā)送和檢測(cè)處理的裝置,該裝置包括:第一隨機(jī)存取存儲(chǔ)器(RAM)、第二 RAM、報(bào)文發(fā)送模塊、報(bào)文檢測(cè)模塊;其中,
[0037]第一 RAM,用于存儲(chǔ)雙向轉(zhuǎn)發(fā)檢測(cè)(BFD)報(bào)文和連通性檢測(cè)信息(CCM)報(bào)文的發(fā)送參數(shù);
[0038]第二 RAM,用于存儲(chǔ)BFD報(bào)文和CCM報(bào)文的檢測(cè)參數(shù);
[0039]報(bào)文發(fā)送模塊,用于根據(jù)所述發(fā)送參數(shù)確定報(bào)文類型,對(duì)報(bào)文進(jìn)行發(fā)送處理;
[0040]報(bào)文檢測(cè)模塊,用于判斷是否有報(bào)文到達(dá),并根據(jù)所述檢測(cè)參數(shù)進(jìn)行相應(yīng)的檢測(cè)處理。[0041 ] 上述裝置還包括:中斷上報(bào)模塊和第三RAM ;
[0042]中斷上報(bào)模塊,用于在所述檢測(cè)模塊產(chǎn)生中斷信息后,將所述中斷信息存儲(chǔ)在第三RAM中進(jìn)行維護(hù),并將所述中斷信息上報(bào)給上層設(shè)備;
[0043]所述中斷信息包括:會(huì)話號(hào)、報(bào)文類型和會(huì)話中斷類型。
[0044]上述方案中,所述第一 RAM,具體用于通過配置接口將用戶配置的BFD報(bào)文和CCM報(bào)文的發(fā)送參數(shù)寫入第一 RAM的發(fā)送配置表項(xiàng)中,將當(dāng)前時(shí)間作為上一次報(bào)文發(fā)送時(shí)間也寫入所述發(fā)送配置表項(xiàng)中;其中,
[0045]所述發(fā)送參數(shù)包括:會(huì)話號(hào)、發(fā)送使能、報(bào)文發(fā)送周期、報(bào)文類型、報(bào)文長(zhǎng)度;其中,
[0046]對(duì)于BFD報(bào)文,所述發(fā)送參數(shù)還包括:診斷碼(Diag)字段