專利名稱:一種實現多主控遠程過程調用的方法及系統的制作方法
技術領域:
本發明涉及網絡通信領域中的路由交換控制技術,特別涉及一種實現多主控遠程過程調用(Remote Procedure Call,簡稱RPC)的方法及系統。
背景技術:
目前主流路由交換設備的系統架構一般分為數據平面、控制平面和監控平面三個子系統。其中,控制平面包括主控卡MPU控制平面和業務線卡LPU控制平面,MPU控制平面負責協議計算和整個設備的管理,LPU控制平面負責硬件芯片的設置和管理,MPU通過RPC下發指令到LPU來實現對硬件芯片的操作,如圖I所示,MPU通過RPC下發指令到各LPU ;圖2中示意了 MPU到LPU的RPC實現過程MPU作為RPC客戶端(client)將函數參數及key、值封裝為一個報文,發送至相應LPU,LPU接收報文后,作為RPC服務器端(Server)從報文中將函數參數及key值解析出來,通過key值匹配相應實體函數并執行。在堆疊系統中,多個機架設備作為堆疊成員設備構成一個整體,虛擬為一臺交換設備,存在多個主控卡對同一張線卡進行操作的情況,因LPU無法區分具體調用函數來自哪個MPU,容易出現混亂,例如在圖3中,堆疊成員設備I和堆疊成員設備2的MPU都有RPC指令下發到堆疊成員設備2的LPU2 ;LPU2無法區分收到的RPC指令到底是來自哪一個MPU ;現有技術中有一種實現方法是通過key值區分控制指令的來源,即不同的MPU到同一個LPU執行不同的操作函數,靠不同的函數名來區分MPU,因此,即使是同樣的操作,也必須寫多個函數,而MPU到LPU的操作很多,RPC函數有幾百個,這就需要進行大量的復制;隨著系統的構成日益復雜,MPU數目的不斷增加,重復的函數數量很大,傳統技術的處理方式會導致開發效率低下和系統不穩定。
發明內容
本發明所要解決的技術問題是提出一種能夠支持堆疊系統且處理簡單的實現多主控遠程過程調用的方法及系統,解決傳統技術中為了區分控制指令的來源而需要作大量的工作,導致開發效率低下和系統不穩定的問題。本發明解決上述技術問題所采用的方案是一種實現多主控遠程過程調用的系統,所述系統包括至少兩個堆疊成員設備,其中每個堆疊成員設備包括調用管理模塊,用于為所在堆疊成員設備的MPU設置MPU編號,并為MPU分配RPC序列號計數器;MPU編號封裝模塊,用于在MPU每次下發RPC控制指令時,將MPU編號封裝到RPC序列號中;報文封裝發送模塊,用于將包含MPU編號的RPC序列號、函數key值、函數參數封裝為一個以太報文,并發送至目標LPU ;MPU編號解析模塊,用于目標LPU接收到MPU下發的以太報文后,從RPC序列號中提取MPU編號和真實的序列號,并提取出函數key值,進而找到對應的實體函數執行,將函數執行結果與所述真實的序列號封裝為一個以太報文,返回給所述MPU編號對應的MPU。進一步,所述RPC序列號計數器用于為其所在MPU每次下發RPC控制指令時,自動分配RPC序列號。進一步,所述RPC序列號具有32位。進一步,所述將MPU編號封裝到RPC序列號中的方法是將32位RPC序列號中的高4位分配給MPU編號使用,將剩余的28位分配給真實的序列號使用。一種實現多主控遠程過程調用的方法,包括以下步驟
a.為每個堆疊成員設備的MPU設置MPU編號并分配RPC序列號計數器;b.在任一 MPU每次下發RPC控制指令時,根據RPC序列號計數器計算真實的序列號,并將自身的MPU編號和真實的序列號封裝到RPC序列號中;c.所述任一 MPU將已封裝了 MPU編號的RPC序列號、函數key值、函數參數封裝為一個以太報文,發送至目標LPU ;d.所述目標LPU對所述以太報文進行解析,從RPC序列號中提取MPU編號和真實的序列號,通過key值查找匹配的實體函數;e.所述目標LPU執行該實體函數進行相應配置,將函數執行結果和所述真實的序列號封裝為一個以太報文,返回給所述MPU編號對應的MPU。 進一步,所述RPC序列號具有32位。進一步,步驟b中,所述將該MPU編號和真實的序列號封裝到RPC序列號的方法是將32位RPC序列號中的高4位分配給MPU編號使用,將剩余的28位分配給真實的序列號使用。本發明的有益效果是為每個MPU進行編號,并通過對RPC序列號進行擴展,將MPU編號封裝至RPC序列號中,目標LPU根據RPC序列號中的MPU編號來確定本次控制指令來自哪個MPU,無需復制大量的RPC函數,從而降低了系統工作量,大大提升了開發效率和系統穩定性,特別適用于堆疊系統。
圖I為MPU通過RPC下發指令到各LPU的示意圖;圖2為MPU到LPU的RPC實現過程示意圖;圖3為多主控下發控制指令的示意圖;圖4為實施例中的RPC序列號構成圖;圖5為實施例中的實現多主控遠程過程調用的系統結構框圖;圖6為實施例中的實現多主控遠程過程調用的方法流程圖。
具體實施例方式針對傳統技術中為了區分控制指令的來源而需要作大量的工作,導致開發效率低下和系統不穩定的問題,本發明提供了一種實現多主控遠程過程調用的系統和方法,其基本思想為給每個堆疊成員設備的MPU進行編號,將MPU編號封裝在RPC序列號中,LPU根據序列號中的MPU編號確定指令來自那個MPU,很容易擴展RPC支持堆疊系統,提升開發效率,提聞系統穩定性。參見圖5,本例中的實現多主控遠程過程調用的系統,包括調用管理模塊,用于為所在堆疊成員設備的主控卡設置MPU編號,并為MPU分配RPC序列號計數器;MPU編號封裝模塊,用于在MPU每次下發RPC控制指令時,將MPU編號封裝到RPC序列號中;報文封裝發送模塊,用于將包含MPU編號的RPC序列號、函數key值、函數參數封裝為一個以太報文,并發送至目標業務線卡LPU ; MPU編號解析模塊,用于目標LPU接收到MPU下發的以太報文后,從RPC序列號中提取MPU編號和真實的序列號,并提取出函數key值,進而找到對應的實體函數執行,將函數執行結果與所述真實的序列號封裝為一個以太報文,返回給所述MPU編號對應的MPU。所述RPC序列號計數器用于為其所在MPU每次下發RPC控制指令時,自動分配RPC序列號。序列計數器原用于跟蹤每一次RPC操作,即MPU下發指令到LPU,LPU執行實際函數動作后,將結果值返回給MPU,這個過程是異步的,MPU就是依靠這個序列號計數器確定返回值對應那一次RPC ;現擴展序列計數器的作用,包含MPU編號,LPU可得知RPC來自哪個MPU。所述RPC序列號具有32位,參見圖4,其高4位(28-31)分配給MPU編號使用,其剩余28位(0-27)作為遞增的實際的序列號使用,從0開始遞增,到最大值再翻轉為O。下面以一個實施例說明實現多主控遠過程調用的方法,如圖6所示,其包括以下步驟步驟S601,為每個堆疊成員設備的MPU設置MPU編號并分配RPC序列號計數器。在本步驟中,定義32位的整數型RPC序列號,且為遞增的MPU每執行一次RPC,序列號值每次加一,加到最大值,翻轉為零。將MPU編號封裝到RPC序列號中,即將MPU編號定義在RPC序列號的高4位部分,真實的序列號填寫在低28位部分。步驟S602,在任一 MPU每次下發RPC控制指令時,根據RPC序列號計數器計算真實的序列號,并將自身的MPU編號和真實的序列號封裝到RPC序列號中。本步驟中,每個堆疊成員設備的MPU每次下發RPC控制指令到某一 LPU時,需要設置RPC序列號的高4位為自身的MPU編號,低28位為RPC計數器分配的真實的序列號。步驟S603,所述任一 MPU將已封裝了 MPU編號的RPC序列號、函數key值、函數參數封裝為一個以太報文,發送至目標LPU。本步驟中,需要發送RPC控制指令的MPUJf RPC序列號、函數key值、函數參數封裝為一個以太格式的報文,即將RPC序列號、函數key值、函數參數,按照網絡字節序方式,以字節流的方式填寫到緩沖區,然后將緩沖內容通過以太網絡接口發到目標LPU。步驟S604,所述目標LPU對所述以太報文進行解析,從RPC序列號中提取MPU編號和真實的序列號,通過key值查找匹配的實體函數。本步驟中,目標LPU將接收到的以太報文存在緩沖區,按照網絡字節序方式,從緩沖區中將RPC序列號、函數key值、函數參數提取出來;并將RPC序列號的高4位分解出來,得到MPU編號;通過函數key值查找匹配的實體函數LPU上大量函數指針以數組方式存儲,遍歷數組,對比key值,找到相應的函數指針。步驟S605,所述目標LPU執行該實體函數進行相應配置,將函數執行結果和所述真實的序列號封裝為一個以太報文,返回給所述MPU編號對應的MPU。本步驟中,目標LPU執行實體函數進行相應配置即跳轉到函數指針指向的函數實體執行,完成執行后,將函數執行結果和所述真實的序列號封裝為一個以太報文,返回給所述MPU編號對應的MPU。以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。權利要求
1.一種實現多主控遠程過程調用的系統,包括至少兩個堆疊成員設備,其特征在于,每個堆疊成員設備包括 調用管理模塊,用于為所在堆疊成員設備的主控卡設置MPU編號,并為MPU分配RPC序列號計數器; MPU編號封裝模塊,用于在MPU每次下發RPC控制指令時,將MPU編號封裝到RPC序列號中; 報文封裝發送模塊,用于將包含MPU編號的RPC序列號、函數key值、函數參數封裝為一個以太報文,并發送至目標業務線卡LPU ; MPU編號解析模塊,用于目標LPU接收到MPU下發的以太報文后,從RPC序列號中提取 MPU編號和真實的序列號,并提取出函數key值,進而找到對應的實體函數執行,將函數執行結果與所述真實的序列號封裝為一個以太報文,返回給所述MPU編號對應的MPU。
2.如權利要求I所述的一種實現多主控遠程過程調用的系統,其特征在于,所述RPC序列號計數器用于為其所在MPU每次下發RPC控制指令時,自動分配RPC序列號。
3.如權利要求I或2所述的一種實現多主控遠程過程調用的系統,其特征在于,所述RPC序列號具有32位。
4.如權利要求3所述的一種實現多主控遠程過程調用的系統,其特征在于,所述將MPU編 號封裝到RPC序列號中的方法是 將32位RPC序列號中的高4位分配給MPU編號使用,將剩余的28位作為真實的序列號使用。
5.一種實現多主控遠程過程調用的方法,其特征在于,包括以下步驟 a.為每個堆疊成員設備的MPU設置MPU編號并分配RPC序列號計數器; b.在任一MPU每次下發RPC控制指令時,根據RPC序列號計數器計算真實的序列號,將自身的MPU編號和真實的序列號封裝到RPC序列號中; c.所述任一MPU將已封裝了 MPU編號的RPC序列號、函數key值、函數參數封裝為一個以太報文,發送至目標LPU; d.所述目標LPU對所述以太報文進行解析,從RPC序列號中提取MPU編號和真實的序列號,通過key值查找匹配的實體函數; e.所述目標LPU執行該實體函數進行相應配置,將函數執行結果和所述真實的序列號封裝為一個以太報文,返回給所述MPU編號對應的MPU。
6.如權利要求5所述的一種實現多主控遠程過程調用的方法,其特征在于,所述RPC序列號具有32位。
7.如權利要求6所述的一種實現多主控遠程過程調用的方法,其特征在于,步驟b中,所述將MPU編號和真實的序列號封裝到RPC序列號中的方法是 將32位RPC序列號的高4位分配給MPU編號使用,將剩余的28位分配給真實的序列號使用。
全文摘要
本發明涉及網絡通信領域中的路由交換控制技術,其公開了一種實現多主控遠程過程調用的方法,解決傳統技術中為了區分控制指令的來源而需要作大量的工作,導致開發效率低下和系統不穩定的問題。該方法通過給每個堆疊成員設備的MPU進行編號,將MPU編號封裝在RPC序列號中,LPU根據序列號中的MPU編號確定指令來自那個MPU,很容易擴展RPC支持堆疊系統,提升開發效率,提高系統穩定性。此外,本發明還公開了一種實現多主控遠程過程調用的系統,適用于堆疊系統。
文檔編號H04L12/56GK102739552SQ20121025054
公開日2012年10月17日 申請日期2012年7月19日 優先權日2012年7月19日
發明者王煥章 申請人:邁普通信技術股份有限公司