報文處理方法及裝置制造方法
【專利摘要】本發(fā)明提供一種報文處理方法及裝置,該方法應用于多核網絡設備上,該方法包括:在接收到用戶報文后,從所述用戶報文中提取用戶標識,根據預先配置的用戶標識與硬件隊列的對應關系,將所述用戶報文存儲到對應的硬件隊列中;根據預先配置的用戶標識與CPU核的對應關系,將所述用戶標識對應的硬件隊列中的用戶報文發(fā)送給對應的CPU核進行處理。本發(fā)明為每一個用戶配置了對應的硬件資源,避免由于某個用戶報文過多,獨占所有硬件資源,而使得其他用戶無法正常接收報文進行處理。
【專利說明】報文處理方法及裝置
【技術領域】
[0001] 本發(fā)明涉及通信【技術領域】,尤其涉及一種報文處理方法及裝置。
【背景技術】
[0002] 虛擬化通常是指計算機軟件在虛擬的物理環(huán)境上而不是真實的物理環(huán)境上運行。 業(yè)界現(xiàn)有的虛擬化技術方案大多采用內核虛擬化技術,例如,LXC(Linux container)技術, 可以在操作系統(tǒng)層次上為用戶進程提供虛擬的執(zhí)行環(huán)境。LXC虛擬化技術可以依據不同用 戶來進行線程隔離,為每個用戶線程分配特定比例的CPU(Central Processing Unit,中央 處理器)使用時間、硬件資源使用時間,限制可以使用的內存大小,提供設備訪問控制,讓 每個用戶認為自己獨占整個系統(tǒng)。
[0003] 為了實現(xiàn)多核系統(tǒng)處理器的分配和隔離,操作系統(tǒng)需要規(guī)定每一個用戶線程可以 占用哪些CPU。但是現(xiàn)有方案只能在用戶報文上送到操作系統(tǒng)層面時,才能根據不同用戶上 送到為該用戶配置的CPU處理。在上送CPU之前,所有用戶共享其它硬件資源。若存在某 個用戶報文過多,占用了所有的硬件資源,則即使其他用戶對應的CPU空閑,也無法接收報 文進行處理。
【發(fā)明內容】
[0004] 有鑒于此,本發(fā)明提供了一種報文處理方法,該方法應用于多核網絡設備上,該方 法包括:
[0005] 在接收到用戶報文后,從所述用戶報文中提取用戶標識,根據預先配置的用戶標 識與硬件隊列的對應關系,將所述用戶報文存儲到對應的硬件隊列中;
[0006] 根據預先配置的用戶標識與CPU核的對應關系,將所述用戶標識對應的硬件隊列 中的用戶報文發(fā)送給對應的CPU核進行處理。
[0007] 本發(fā)明還提供了一種報文處理裝置,該裝置應用于多核網絡設備上,該裝置包 括:
[0008] 報文存儲單元,用于在接收到用戶報文后,從所述用戶報文中提取用戶標識,根據 預先配置的用戶標識與硬件隊列的對應關系,將所述用戶報文存儲到對應的硬件隊列中;
[0009] 報文處理單元,用于根據預先配置的用戶標識與CPU核的對應關系,將所述用戶 標識對應的硬件隊列中的用戶報文發(fā)送給對應的CPU核進行處理。
[0010] 本發(fā)明為每一個用戶配置了對應的硬件資源,在接收到用戶報文后,根據報文中 攜帶的用戶標識,選擇對應的硬件資源進行處理,避免由于某個用戶報文過多,獨占所有硬 件資源,而使得其他用戶無法正常接收報文進行處理。
【專利附圖】
【附圖說明】
[0011] 圖1是本發(fā)明一種實施方式中報文處理裝置的邏輯結構及其基礎硬件環(huán)境的示 意圖。
[0012] 圖2是本發(fā)明一種實施方式中報文處理方法的流程圖。
[0013] 圖3是本發(fā)明一種實施方式中網絡業(yè)務引擎芯片的基礎結構示意圖。
[0014] 圖4是本發(fā)明一種實施方式中某一網絡業(yè)務引擎芯片的硬件結構示意圖。
【具體實施方式】
[0015] 以下結合附圖對本發(fā)明進行詳細說明。
[0016] 本發(fā)明提供一種報文處理裝置,以下以軟件實現(xiàn)為例進行說明,但是本發(fā)明并不 排除諸如硬件或者邏輯器件等其他實現(xiàn)方式。如圖1所示,該裝置運行的硬件環(huán)境包括 CPU、內存、非易失性存儲器以及其他硬件。該裝置作為一個邏輯層面的虛擬裝置,其通過 (PU來運行。該裝置包括報文存儲單元和報文處理單元。請參考圖2,該裝置的使用和運行 過程包括以下步驟:
[0017] 步驟101,報文存儲單元在接收到用戶報文后,從所述用戶報文中提取用戶標識, 根據預先配置的用戶標識與硬件隊列的對應關系,將所述用戶報文存儲到對應的硬件隊列 中;
[0018] 步驟102,報文處理單元根據預先配置的用戶標識與CPU核的對應關系,將所述用 戶標識對應的硬件隊列中的用戶報文發(fā)送給對應的CPU核進行處理。
[0019] 為了滿足大流量、高速的網絡通訊要求,普遍采用多核網絡設備進行報文處理。對 于不同用戶的訪問需求,現(xiàn)有技術已經實現(xiàn)了在操作系統(tǒng)層面上的隔離,即為不同的用戶 分配其對應的CPU核,只處理本用戶的報文,避免了由于某一個用戶報文過多,而占用大量 (PU核,影響其他用戶對CPU核的使用。但現(xiàn)有技術中并未解決其他硬件資源的占用問題。 在將用戶報文送往CPU核處理之前,不同用戶的報文仍然共享其他硬件資源。若某一用戶 報文過多,占用了整個硬件資源,則即使其他用戶的CPU核空閑,也無法接收報文進行處 理。
[0020] 本發(fā)明通過對硬件資源進行配置,提高用戶報文的處理效率。在多核網絡設備中 通常包括網絡業(yè)務引擎芯片,圖3所示為網絡業(yè)務引擎芯片的基本結構,該類型芯片為多 核處理器芯片,包括多核CPU、硬件陣列以及網絡接口。本發(fā)明根據從網絡接口上送的用戶 報文中攜帶的不同用戶標識,選擇對應的硬件陣列和CPU核進行報文處理。下面結合一種 具體的芯片架構,對本發(fā)明的報文處理過程進行詳細說明。
[0021] 如圖4所示,某一網絡業(yè)務引擎芯片包括如圖3所示的多核CPU、硬件陣列以及網 絡接口,其中,硬件陣列包括報文接收模塊、硬件調度模塊以及CPU調度模塊。報文接收模 塊主要用于對從網絡接口上送的用戶報文進行字段提取和解析分類,并根據解析結果向硬 件調度模塊申請內存指針,將硬件調度模塊返回的內存指針發(fā)送給(PU調度模塊,由CPU調 度模塊將內存指針發(fā)送給指定的CPU核,CPU核根據該內存指針,從內存中讀取用戶報文進 行處理。
[0022] 本發(fā)明通過上述模塊之間的配合,實現(xiàn)不同用戶報文利用各自的硬件通道進行處 理。首先,不同的用戶報文在通過物理網口上送時,由以太網驅動為用戶報文添加對應的用 戶標識。本發(fā)明采用私有串行總線互聯(lián)協(xié)議HIGIG報文作為用戶報文,以太網驅動在HIGIG 報文的模塊標識或端口標識字段添加用戶標識。例如,某網絡設備有3個物理網口,且3個 物理網口分別分配給3個用戶,每一個網口在接收到用戶報文后,將用戶標識添加到用戶 報文的端口標識字段。
[0023] interfacel: dest port = 1
[0024] interface〗:dest port = 2
[0025] interface3: dest port = 3
[0026] 上述為3個網口對用戶報文的處理過程,以網口 1 (interfacel:dest port = 1) 為例,"interfacel"表示網絡接口 1 ;"dest port"表示用戶報文的端口標識字段,"1"表 示用戶1的用戶標識。
[0027] 當添加了用戶標識的報文上送到硬件陣列的報文接收模塊時,報文接收模塊對用 戶報文頭進行逐層解析。報文接收模塊不僅可以解析TCP/IP協(xié)議棧的標準七層報文頭,還 可以解析 HIGIG、VLAN (Virtual Local Area Network,
[0028] 虛擬局域網)以及根據需求在報文起始位置添加的任意長度的自定義報文頭。本 發(fā)明中報文接收模塊接收到HIGIG報文后,對該協(xié)議報文的報文頭進行逐層解析,從報文 頭中提取字段與報文接收模塊內部的存儲匹配子模塊中的表項進行匹配。每一個表項表 示一個用戶標識與報文分類結果的對應關系。該對應關系需要預先配置,具體配置過程如 下:
[0029] PCAM Entryl :term = higig, value = destport = 1, style = 1
[0030] PCAM Entry2 :term = higig, value = destport = 2, style = 2
[0031] PCAM Entry3 :term = higig, value = destport = 3, style = 3
[0032] 上述提供3個用戶標識與報文分類結果對應關系的配置示例,以第一個表項 "PCAM Entryl :term = higig, value = destport = 1,style = 1
[0033] "為例闡述該表項含義。"PCAM Entryl"表示存儲匹配子模塊1的表項;"term = higig"表示可以處理的報文格式為HIGIG ;"value = destport = 1"表示對HIGIG報文頭 的destport字段為1的用戶報文進行處理,即對用戶1的報文進行處理;"style"表示報 文的類型標記。本發(fā)明基于用戶進行報文分類,因此,對3個用戶的報文分類style分別標 記為 1、2、3,以下簡稱 stylel、style2 以及 style3。
[0034] 當報文接收模塊提取到HIGIG報文的端口標識字段時,若該字段與某一個存儲匹 配子模塊中的預設表項匹配,則按照預先配置的用戶標識與硬件隊列的對應關系,將用戶 報文存儲到對應的硬件陣列中。其中,用戶標識與硬件隊列的對應關系主要是指報文接收 模塊根據分類結果style為每一個用戶預先分配的硬件調度模塊的指針隊列和CPU調度模 塊的緩存隊列,具體配置過程如下。
[0035] stylel :AURA = 1, Group = 1
[0036] style2:AURA = 2, Group = 2
[0037] style3:AURA = 3, Group = 3
[0038] 上述指令是報文接收模塊為3個用戶配置的硬件隊列,其中,AURA是硬件調度模 塊的指針隊列標識,3個用戶的AURA分別標記為1、2、3,以下簡稱AURAUAURA2以及AURA3 ; Group是CPU調度模塊的緩存隊列標識,3個用戶的Group分別標記為1、2、3,以下簡稱 Group 1、Group2 以及 Group3。
[0039] 報文接收模塊接收到用戶報文后,根據用戶標識向其對應的指針隊列申請指針, 例如,若接收到的報文為用戶1的報文,則向硬件調度模塊中的AURA1指針隊列申請指針。 若申請成功,則硬件調度模塊將內存指針返回給報文接收模塊,報文接收模塊將用戶報文 保存到該指針指向的內存中,每一個內存指針對應一個用戶報文。同時,報文接收模塊將該 指針發(fā)送給CPU調度模塊,CPU調度模塊根據報文接收模塊的配置將內存指針保存到對應 的Group中,例如,用戶1的報文的內存指針送入CPU調度模塊的Groupl中進行緩存,以便 在后續(xù)處理中將內存指針上送指定的CPU核進行處理。
[0040] 接收到的用戶報文具體由哪幾個CPU核處理,是由預先配置的用戶標識與CPU核 的對應關系決定的,為每一個用戶指定處理其報文的專用CPU核。對CPU核的具體配置過 程如下。
[0041] Groupl :cpuK cpu2
[0042] Group2 :cpu3、cpu4
[0043] Group3 :cpu5、cpu6
[0044] 上述指令為CPU調度模塊為每一個Group配置的CPU核,例如,Groupl為用戶1的 緩存隊列,用戶1的報文上送到cpul和cpu2進行處理。用戶報文上送CPU的過程具體為 : CPU調度模塊將Groupl中的內存指針上送給cpul或cpu2, cpul或cpu2從內存中讀取用 戶報文進行處理。
[0045] 由于每一個用戶對網絡的使用情況不盡相同,為了最大限度提高報文處理效率, 在配置用戶標識與硬件隊列的對應關系時,根據用戶的數據流量設置對應硬件隊列的長 度。假設用戶1的數據流量〉用戶2的數據流量〉用戶3的數據流量,則可以按照各個用 戶數據流量比例(假設為4:2:1)分配指針隊列長度。
[0046] AURA 1 :4096
[0047] AURA2 :2048
[0048] AURA3 :1024
[0049] 設置的指針隊列長度越大,則為對應用戶分配的存儲空間越多,可以處理的數據 量越多。通過合理配置,可最大程度發(fā)揮網絡設備的報文處理能力。
[0050] 本發(fā)明通過為每一個用戶配置了專用的報文處理通道,避免由于某個用戶報文過 多,獨占所有硬件資源,而使得其他用戶無法正常接收報文進行處理。
[0051] 以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內。
【權利要求】
1. 一種報文處理方法,該方法應用于多核網絡設備上,其特征在于,該方法包括: 在接收到用戶報文后,從所述用戶報文中提取用戶標識,根據預先配置的用戶標識與 硬件隊列的對應關系,將所述用戶報文存儲到對應的硬件隊列中; 根據預先配置的用戶標識與CPU核的對應關系,將所述用戶標識對應的硬件隊列中的 用戶報文發(fā)送給對應的CPU核進行處理。
2. 如權利要求1所述的方法,其特征在于: 所述方法具體應用于所述多核網絡設備中的網絡業(yè)務引擎芯片上。
3. 如權利要求1所述的方法,其特征在于: 所述用戶報文為私有串行總線互聯(lián)協(xié)議HIGIG報文;所述用戶標識攜帶在所述HIGIG 報文的模塊標識字段或者端口標識字段。
4. 如權利要求1所述的方法,其特征在于,所述方法還包括: 在配置用戶標識與硬件隊列的對應關系時,根據用戶的數據流量大小設置所述用戶對 應的硬件隊列長度。
5. -種報文處理裝置,該裝置應用于多核網絡設備上,其特征在于,該裝置包括: 報文存儲單元,用于在接收到用戶報文后,從所述用戶報文中提取用戶標識,根據預先 配置的用戶標識與硬件隊列的對應關系,將所述用戶報文存儲到對應的硬件隊列中; 報文處理單元,用于根據預先配置的用戶標識與CPU核的對應關系,將所述用戶標識 對應的硬件隊列中的用戶報文發(fā)送給對應的CPU核進行處理。
6. 如權利要求5所述的裝置,其特征在于: 所述裝置具體應用于所述多核網絡設備中的網絡業(yè)務引擎芯片上。
7. 如權利要求5所述的裝置,其特征在于: 所述用戶報文為私有串行總線互聯(lián)協(xié)議HIGIG報文;所述用戶標識攜帶在所述HIGIG 報文的模塊標識字段或者端口標識字段。
8. 如權利要求5所述的裝置,其特征在于,所述裝置還包括:隊列配置單元,用于在配 置用戶標識與硬件隊列的對應關系時,根據用戶的數據流量大小設置所述用戶對應的硬件 隊列長度。
【文檔編號】H04L12/863GK104158764SQ201410393069
【公開日】2014年11月19日 申請日期:2014年8月12日 優(yōu)先權日:2014年8月12日
【發(fā)明者】吳璠, 范路, 王樹蓬 申請人:杭州華三通信技術有限公司