專利名稱:一種輔助cpu轉發報文的方法及系統的制作方法
技術領域:
本發明涉及網絡通信領域,特別涉及一種輔助CPU轉發報文的方法及系統。
背景技術:
現有技術中路由轉發設備的轉發架構由NP(Network Processor,網絡處理器)和CPU兩個轉發引擎配合完成。NP負責報文的上行路由查表轉發工作,下行處理完報文后,轉交給CPU;CPU運行TM(Traffic Management,流量管理)功能,其中,一個重要的工作是完成下行從NP轉發過來的報文的QoS(Quality of Service,服務質量)功能,配合NP的報文轉發工作。
從鏈路層協議來講,CPU從NP接收的報文有兩類FR(Frame Relay,幀中繼)類型和非FR類型,其中,非FR類型包括PPP(Point-to-Point Protocol,點到點協議),HDLC(High Data LinkControl,高級數據鏈路控制)等。
對FR類型的報文,NP報文做IP或MPLS(Multi-Protocol Label Switch,多協議標簽交換)轉發時,NP完成FR封裝后送CPU TM處理,TM調用FR的幀發送函數,先作接口下的PVC(Permanent Virtual Circuit,永久虛電路)調度,然后作接口調度,最后轉發出去。
對非FR類型,沒有FRQoS(Frame Relay Quality of Service,幀中繼服務質量)的處理,直接調用通用接口的QoS發送函數作接口調度,轉發出去。
路由轉發設備同時使用了NP和CPU,報文的轉發需要兩者配合來完成,具體實現過程如下NP處理完上行和下行路由查表轉發工作后,把報文轉交給CPU;CPU從NP收到報文后,從NP封裝的私有報文頭中取出通道號channel_id,用channel_id查詢保存在CPU側的接口數據結構if_net,得到相應通道的封裝協議。
通過ACL(Access Control List,訪問控制列表)的配置對報文進行流分類,得到報文的業務類型。
根據通道的封裝協議判斷如果封裝協議是PPP/HDLC,報文直接作接口調度,轉發出去。
如果封裝協議是FR,在使能了FRTS的情況下,報文先作接口下的PVC調度,然后作接口調度,最后轉發出去;在沒有使能FRTS的情況下,報文直接作接口調度,轉發出去。
在接口調度為CBWFQ(Class-based Weighted Fair Queuing,基于分類的加權公平排隊)的情況下,根據報文的業務類型,將報文入CBWFQ相應的隊列。
現有技術的缺點NP在把下行報文送給CPU時,不會攜帶通道封裝協議信息和業務類型給CPU,CPU對于收到的每一個報文,都需要解析報文,并作相應的處理,得到出口通道的封裝協議(PPP/HDLC/FR)和報文的業務類型(EF/AF4/AF3/AF2/AF1/BE)。
盡管NP的處理能力足夠,由于CPU需要對每一個報文作上述解析流程,導致CPU的負擔加重,整個轉發性能的瓶頸在CPU,影響到整個路由轉發設備的轉發性能。
發明內容
為了解決現有技術中CPU轉發報文負擔重,影響整個路由轉發設備的轉發性能,本發明提供了一種輔助CPU轉發報文的方法及系統。
本發明所述技術方案如下本發明提供了一種輔助CPU轉發報文的方法,把訪問控制列表配置在網絡處理器上,并執行以下步驟步驟A網絡處理器收到報文后,通過查找出口通道對應的通道表得到出口通道封裝協議類型,根據訪問控制列表的配置進行流分類得到報文的業務類型;步驟B網絡處理器把通道封裝協議類型和報文的業務類型放在報文頭,并對報文頭進行封裝,然后將封裝后的報文發送給CPU步驟C所述CPU收到報文后,根據報文頭得到通道封裝協議類型和報文業務類型;步驟D所述CPU根據封裝協議類型和報文業務類型轉發報文。
所述步驟B具體包括網絡處理器把通道封裝協議類型的二進制編碼和報文的業務類型的二進制編碼放在報文頭,并對報文頭進行封裝,然后把封裝后的報文發送給CPU。
所述對報文頭進行封裝采用的是以太SNAP封裝格式。
所述把通道封裝協議類型的二進制編碼和報文的業務類型的二進制編碼放在報文頭的步驟具體為把所述通道封裝協議類型的二進制編碼放在報文頭的類型域的高字節,把所述報文的業務類型的二進制編碼放在所述報文頭的類型域的低字節。
所述步驟C具體包括步驟C1所述CPU收到所述報文后,從報文頭的類型域獲取高低字節的二進制編碼;步驟C2所述CPU對所述二進制編碼進行解碼得到通道封裝協議類型和報文業務類型。
本發明還提供了一種輔助CPU轉發報文的系統,所述系統包括網絡處理器和CPU,所述網絡處理器包括生成訪問控制列表模塊、網絡處理器類型獲取模塊和封裝與轉發模塊,所述CPU包括CPU類型獲取模塊和轉發報文模塊;所述生成訪問控制列表模塊用于生成訪問控制列表;所述網絡處理器類型獲取模塊用于網絡處理器收到報文后,通過查找出口通道對應的通道表得到出口通道封裝協議類型,根據訪問控制列表的配置進行流分類得到報文的業務類型;所述封裝與轉發模塊用于把所述網絡處理器獲取類型模塊獲得的通道封裝協議類型和報文的業務類型放在報文頭,并對報文頭進行封裝,然后將封裝后的報文發送給CPU獲取類型模塊;所述CPU類型獲取模塊用于收到所述封裝與轉發模塊發送的報文后,根據報文頭得到通道封裝協議類型和報文業務類型;所述轉發報文模塊用于所述CPU根據封裝協議類型和報文業務類型轉發報文。
所述封裝與轉發模塊具體包括封裝單元和轉發單元;所述封裝單元用于網絡處理器把通道封裝協議類型的二進制編碼和報文的業務類型的二進制編碼放在報文頭,并對報文頭進行封裝;所述轉發單元用于把封裝單元封裝后的報文發送給所述CPU獲取類型模塊。
所述CPU類型獲取模塊具體包括二進制編碼獲取單元和解碼單元;所述二進制編碼獲取單元用于收到所述轉發單元模塊發送的報文后,從報文頭的類型域獲取高低字節的二進制編碼;所述解碼單元用于CPU對所述獲取二進制編碼單元獲取的二進制編碼進行解碼得到通道封裝協議類型和報文業務類型。
本發明技術方案帶來的有益效果應用NP配合CPU轉發報文,使CPU對報文的處理流程得到了簡化,提高了路由設備的轉發性能;通過對CPU的轉發性能進行優化,使轉發報文做到了E3線速。
圖1是本發明提供的輔助CPU轉發報文的方法流程圖;圖2是本發明提供的輔助CPU轉發報文的系統示意圖。
具體實施例方式
下面結合附圖和具體實施例對本發明作進一步說明,但不作為對本發明的限定。
本發明把ACL配置在NP上,由NP作復雜流分類或作BA(Behavior Aggregate,行為聚集)簡單流分類得到報文的業務類型,并由NP查找出口通道封裝協議信息,這樣CPU就不需要解析報文,簡化了CPU轉發報文的流程。
NP與CPU的接口為GMII(Gigabit Media Independent Interface,吉比特媒體獨立接口),采用以太SNAP封裝。
參見圖1,本發明所述一種輔助CPU轉發報文的方法的具體步驟如下步驟101NP收到上行轉發來的報文,根據報文頭中的出口通道查找對應的通道表(現有技術中的通道表也是放在NP上的),得到出口通道封裝協議的類型,所述通道封裝協議的類型具有指PPP類型,HDLC類型,FR類型等。
步驟102NP根據ACL配置作復雜流分類或作BA簡單流分類得到報文的業務類型,所述報文的業務類型包括EF(Expedited Forwarding,快速轉發),AF4(Assured Forwarding,確保轉發),AF3,AF2,AF1,BE(Best Effort,盡力轉發)。
步驟103NP把通道封裝協議類型的二進制編碼放在報文頭的TYPE(類型域)的高字節,報文的業務類型的二進制編碼放在報文頭中的TYPE(類型域)的低字節。
其中,通道封裝協議類型的二進制編碼指將PPP類型用二進制數000表示,將HDLC類型用二進制數001表示,FR類型用二進制數010表示,即通道封裝協議類型與二進制數的對應關系為PPP-000,HDLC-001,FR-010;業務類型的二進制編碼為BE-000,AF1-001,AF2-010,AF3-011,AF4-100,EF-101。
步驟104NP對報文頭進行封裝,將封裝后的報文發送給CPU。封裝可以采用以太SNAP封裝或POS封裝,本實施例采用以太SNAP封裝的私有報文頭Ptag,其封裝格式如表1所示
表1報文頭Ptag中的TYPE域是2個字節,其中高字節用來攜帶報文的通道封裝協議,低字節用來攜帶報文的業務類型。
步驟105CPU收到從NP發來的報文后,直接從私有報文頭的類型域得到高低字節二進制編碼。
步驟106CPU根據所述通道封裝協議類型和報文業務類型的二進制編碼定義解碼得到通道封裝協議類型和報文業務類型。
步驟107CPU判斷通道封裝類型是否為FR類型,如果是,進行步驟109;否則進行步驟110。
步驟108判斷接口的FRTS是否使能,如果是,進行步驟111,即進行接口調度轉發報文;否則進行步驟110。
步驟109直接作接口調度,接口調度采用CBWFQ隊列,根據報文業務類型分別入相應的CBWFQ隊列進行轉發報文。
步驟110作2層調度,先作PVC調度,再作接口調度,接口調度采用FIFO(First-In-First-Out,先進先出)隊列進行轉發報文。
參見圖2,本發明還提供了一種輔助CPU轉發報文的系統,所述系統包括網絡處理器和CPU,所述網絡處理器包括生成訪問控制列表模塊、網絡處理器類型獲取模塊和封裝與轉發模塊,所述CPU包括CPU類型獲取模塊和轉發報文模塊;所述生成訪問控制列表模塊用于生成訪問控制列表;
所述網絡處理器類型獲取模塊用于網絡處理器收到報文后,通過查找出口通道對應的通道表得到出口通道封裝協議類型,根據訪問控制列表的配置進行流分類得到報文的業務類型;所述封裝與轉發模塊用于把所述網絡處理器獲取類型模塊獲得的通道封裝協議類型和報文的業務類型放在報文頭,并對報文頭進行封裝,然后將封裝后的報文發送給CPU獲取類型模塊;所述CPU類型獲取模塊用于收到所述封裝與轉發模塊發送的報文后,根據報文頭得到通道封裝協議類型和報文業務類型;所述轉發報文模塊用于所述CPU根據封裝協議類型和報文業務類型轉發報文。
所述封裝與轉發模塊具體包括封裝單元和轉發單元;所述封裝單元用于網絡處理器把通道封裝協議類型的二進制編碼和報文的業務類型的二進制編碼放在報文頭,并對報文頭進行封裝;所述轉發單元用于把封裝單元封裝后的報文發送給所述CPU獲取類型模塊。
所述CPU類型獲取模塊具體包括二進制編碼獲取單元和解碼單元;所述二進制編碼獲取單元用于收到所述轉發單元模塊發送的報文后,從報文頭的類型域獲取高低字節的二進制編碼;所述解碼單元用于CPU對所述獲取二進制編碼單元獲取的二進制編碼進行解碼得到通道封裝協議類型和報文業務類型。
以上所述的實施例,只是本發明較優選的具體實施方式
的一種,本領域的技術人員在本發明技術方案范圍內進行的通常變化和替換都應包含在本發明的保護范圍內。
權利要求
1.一種輔助CPU轉發報文的方法,其特征在于,把訪問控制列表配置在網絡處理器上,并執行以下步驟步驟A網絡處理器收到報文后,通過查找出口通道對應的通道表得到出口通道封裝協議類型,根據訪問控制列表的配置進行流分類得到報文的業務類型;步驟B網絡處理器把通道封裝協議類型和報文的業務類型放在報文頭,并對報文頭進行封裝,然后將封裝后的報文發送給CPU;步驟C所述CPU收到報文后,根據報文頭得到通道封裝協議類型和報文業務類型;步驟D所述CPU根據封裝協議類型和報文業務類型轉發報文。
2.如權利要求1所述的輔助CPU轉發報文的方法,其特征在于,所述步驟B具體包括網絡處理器把通道封裝協議類型的二進制編碼和報文的業務類型的二進制編碼放在報文頭,并對報文頭進行封裝,然后把封裝后的報文發送給CPU。
3.如權利要求2所述的輔助CPU轉發報文的方法,其特征在于,所述對報文頭進行封裝采用的是以太SNAP封裝格式。
4.如權利要求3所述的輔助CPU轉發報文的方法,其特征在于,所述把通道封裝協議類型的二進制編碼和報文的業務類型的二進制編碼放在報文頭的步驟具體為把所述通道封裝協議類型的二進制編碼放在報文頭的類型域的高字節,把所述報文的業務類型的二進制編碼放在所述報文頭的類型域的低字節。
5.如權利要求4所述的輔助CPU轉發報文的方法,其特征在于,所述步驟C具體包括步驟C1所述CPU收到所述報文后,從報文頭的類型域獲取高低字節的二進制編碼;步驟C2所述CPU對所述二進制編碼進行解碼得到通道封裝協議類型和報文業務類型。
6.一種輔助CPU轉發報文的系統,所述系統包括網絡處理器和CPU,其特征在于,所述網絡處理器包括生成訪問控制列表模塊、網絡處理器類型獲取模塊和封裝與轉發模塊,所述CPU包括CPU類型獲取模塊和轉發報文模塊;所述生成訪問控制列表模塊用于生成訪問控制列表;所述網絡處理器類型獲取模塊用于網絡處理器收到報文后,通過查找出口通道對應的通道表得到出口通道封裝協議類型,根據訪問控制列表的配置進行流分類得到報文的業務類型;所述封裝與轉發模塊用于把所述網絡處理器獲取類型模塊獲得的通道封裝協議類型和報文的業務類型放在報文頭,并對報文頭進行封裝,然后將封裝后的報文發送給CPU獲取類型模塊;所述CPU類型獲取模塊用于收到所述封裝與轉發模塊發送的報文后,根據報文頭得到通道封裝協議類型和報文業務類型;所述轉發報文模塊用于所述CPU根據封裝協議類型和報文業務類型轉發報文。
7.如權利要求6所述的輔助CPU轉發報文的系統,其特征在于,所述封裝與轉發模塊具體包括封裝單元和轉發單元;所述封裝單元用于網絡處理器把通道封裝協議類型的二進制編碼和報文的業務類型的二進制編碼放在報文頭,并對報文頭進行封裝;所述轉發單元用于把封裝單元封裝后的報文發送給所述CPU獲取類型模塊。
8.如權利要求7所述的輔助CPU轉發報文的系統,其特征在于,所述CPU類型獲取模塊具體包括二進制編碼獲取單元和解碼單元;所述二進制編碼獲取單元用于收到所述轉發單元模塊發送的報文后,從報文頭的類型域獲取高低字節的二進制編碼;所述解碼單元用于CPU對所述獲取二進制編碼單元獲取的二進制編碼進行解碼得到通道封裝協議類型和報文業務類型。
全文摘要
本發明提供了一種輔助CPU轉發報文的方法及系統,屬于網絡通信領域。為了解決現有技術中CPU轉發報文負擔重,影響整個路由轉發設備的轉發性能,本發明提供了一種輔助CPU轉發報文的方法,所述方法包括把訪問控制列表配置在網絡處理器上、網絡處理器獲取通道封裝協議類型和報文的業務類型、封裝報文頭、將封裝后的報文發送給CPU、CPU得到通道封裝協議類型和報文業務類型進行轉發報文的步驟。本發明還提供了一種輔助CPU轉發報文的系統,所述系統包括網絡處理器和CPU。應用NP配合CPU轉發報文,使CPU對報文的處理流程得到了簡化,提高了路由設備的轉發性能。
文檔編號H04L12/58GK1889505SQ20061009905
公開日2007年1月3日 申請日期2006年7月17日 優先權日2006年7月17日
發明者章國棟, 董書友 申請人:華為技術有限公司