系統(tǒng)軟件升級期間的無損耗不間斷報文處理方法
【專利摘要】一種在網絡部件中實施的用于在線業(yè)務軟件升級(ISSU)的方法,所述方法包括從在所述網絡部件的印刷電路板上的數據平面處運行以處理和轉發(fā)多個報文的多個轉發(fā)內核(FC)中選擇待升級的FC,并且通過軟件升級來重置所述選擇的FC,其中所述至少一個其它FC在所述選擇的FC進行升級時繼續(xù)處理和轉發(fā)報文。
【專利說明】系統(tǒng)軟件升級期間的無損耗不間斷報文處理方法
[0001]相關申請案交叉申請
[0002]本發(fā)明要求2012年10月12日由徐俊遞交的發(fā)明名稱為“系統(tǒng)軟件升級期間的無損耗不間斷報文處理方法”的第13/650363號美國專利申請案的在先申請優(yōu)先權,該在先申請的內容以引用的方式并入本文本中,如同全文再現一般。
【技術領域】
[0003]本發(fā)明涉及通信網絡,尤其涉及系統(tǒng)軟件升級期間的無損耗不間斷報文處理。
【背景技術】
[0004]某些網絡設備,例如在運營商網絡和大型企業(yè)網絡中,要求高可靠性。在這些網絡中,網絡連接正常運行時間可超過約99 %,包括系統(tǒng)規(guī)劃的軟件升級和規(guī)劃外的停機時間。由于正在進行的特征升級和來自網絡設備的供應商的新軟件發(fā)布,網絡設備在設備運行期間可能需要有規(guī)劃的軟件升級,本文也稱在線業(yè)務軟件升級(ISSU)。行業(yè)已采用不同的ISSU方案來減少規(guī)劃的ISSU期間的系統(tǒng)或設備停機時間。
[0005]在一項ISSU方案中,網絡設備包括兩塊印刷電路板(或兩塊線卡)或實施控制平面升級而非數據平面升級。ISSU涉及(為控制平面)將新軟件或軟件升級加載到兩塊單板中的一塊上,同時在其余一塊單板上繼續(xù)運行舊軟件版本。當升級完成時,設備可切換到具有新加載的軟件或軟件升級的單板上。思科系統(tǒng)公司2006年的“(思科IOS高可用性(HA)—在線業(yè)務軟件升級(ISSU) (Cisco IOS High Availability (HA) — In-ServiceSoftware Upgrade (ISSU)) ”描述了這一 ISSU方案,該文檔以引用方式并入本文本。在另一ISSU方案中,網絡設備包括兩塊數據平面單板和/或兩塊控制平面單板,可用于為數據平面和/或控制平面加載升級并從舊版本切換到升級后的版本。然而,基于這一方案,網絡設備需要為兩塊單板提供雙倍系統(tǒng)資源并且仍可能在單板切換期間遭受延遲或停機。進一步地,使用這一方案為ISSU支持狀態(tài)特征可能會很復雜且成本較高。思科系統(tǒng)公司2008年的“(思科ASR1000 系列:ISSU部署指南和案例研究(Cisco ASRIOOOSeries:1SSU DeploymentGuide and Case Study) ”和華為公司的“NE40E 全業(yè)務路由器(NE40E Universal ServiceRouter)”描述了這一 ISSU方案,這些文檔以引用方式并入本文本。上述ISSU方案因使用兩塊單板可能增加相關聯(lián)的系統(tǒng)成本和復雜性。進一步地,在規(guī)劃的軟件升級停機期間,使用此類方案的底層系統(tǒng)和設備可能仍會受到對系統(tǒng)服務的影響,例如一些報文處理和轉發(fā)延遲。
【發(fā)明內容】
[0006]在一項實施例中,本發(fā)明包括在網絡部件中實施的用于ISSU的方法,所述方法包括從在所述網絡部件的印刷電路板上的數據平面處運行以處理和轉發(fā)多個報文的多個轉發(fā)內核(FC)中選擇待升級的FC,并且通過軟件升級來重置所述選擇的FC,其中所述至少一個其它FC在所述選擇的FC進行升級時繼續(xù)處理和轉發(fā)報文。[0007]在另一項實施例中,本發(fā)明包括一種網絡部件,所述網絡部件包括印刷電路板,所述印刷電路板包括多個FC,其中所述每個FC用于操作和轉發(fā)報文;耦合到所述多個FC的處理器,用于從所述多個FC中選擇FC,關閉所述選擇的FC以停止轉發(fā)報文,為所述選擇的FC上傳升級后的FC軟件版本,給所述選擇的FC分配新資源,配置所述選擇的FC使其加入所述印刷電路板上運行的其它FC進行報文操作和轉發(fā),以及在配置所述選擇的FC后開啟所述選擇的FC,其中至少一個所述FC用于在所述選擇的FC被關閉時轉發(fā)報文。
[0008]在又一項實施例中,本發(fā)明包括一種網絡部件,所述網絡部件包括處理單板,所述處理單板包括至少一個處理器,用于運行控制平面處的控制器和數據平面處的多個FC,其中所述多個FC的每個FC用于處理和轉發(fā)多個報文,以及所述控制器用于關閉一個或多個所述FC以進行升級而至少一個或多個剩余FC處理和轉發(fā)報文。
[0009]結合附圖和權利要求書,可從以下的詳細描述中更清楚地理解這些和其它特征。
【專利附圖】
【附圖說明】
[0010]為了更完整地理解本發(fā)明,現在參考以下結合附圖和詳細描述進行的簡要描述,其中相同參考標號表不相同部分。
[0011]圖1為多核轉發(fā)架構的實施例的示意圖。
[0012]圖2示出了多核轉發(fā)架構的ISSU方案的實施例。
[0013]圖3示出了多核轉發(fā)架構的ISSU方案的另一實施例。
[0014]圖4為ISSU方法的實施例的流程圖。
[0015]圖5為印刷電路板的實施例的示意圖。
[0016]圖6為通用網絡部件的實施例的示意圖。
【具體實施方式】
[0017]首先應該了解的是,盡管下文提供了一種或多種實施例實現方式,本發(fā)明公開的系統(tǒng)和/或方法可通過多種其它已知的或存在的技術實現。本發(fā)明決不應限于下文所說明的所述說明性實施方案、圖式和技術,包括本文所說明并描述的示范性設計和實施方案,而是可以在所附權利要求書的范圍以及其均等物的完整范圍內修改。
[0018]本文所公開的是用于為網絡部件提供ISSU的系統(tǒng)、方法和裝置,例如路由器或類似的數據轉發(fā)部件。所公開的ISSU方案可使用單塊印刷電路板(也稱單板或PCB)或單線卡系統(tǒng)或架構并且相比使用雙單板系統(tǒng)或架構的舊ISSU方案降低了成本和復雜度??蔀榘ㄒ粋€或多個具有多核架構的處理器或中央處理器(CPU)的網絡部件實施本文描述的ISSU,g卩,其中每個CPU或處理芯片可運行多個內核處理和轉發(fā)報文。不同于其它ISSU方案那樣通過在兩塊單板之間切換來重置用于報文處理和轉發(fā)的內核,本文提出的ISSU可任意或按序管理單塊單板系統(tǒng)的各個內核以在不中斷所有內核的報文轉發(fā)情況下升級運行中的軟件。具體而言,ISSU可一次操作一個內核,同時保持單板上的其它內核處理報文和操作數據轉發(fā)。通過照此一次升級一個內核,轉發(fā)部件的多核單板可實現不間斷報文處理和轉發(fā)的ISSU。本文提出的ISSU的優(yōu)勢包括ISSU流程期間零或幾乎零丟包、減少規(guī)劃的升級所需的系統(tǒng)停機時間、相比其它ISSU方案更簡單的系統(tǒng)ISSU步驟,以及通過使用單塊處理單板而非雙單板來節(jié)約系統(tǒng)資源和成本。[0019]圖1示出了可用于在網絡中操作、處理和轉發(fā)報文或數據的多核轉發(fā)架構100的實施例。多核轉發(fā)架構100可以是網絡部件(例如,路由器,交換機,網橋或其它任何數據處理/轉發(fā)部件)的一部分,可以位于該網絡部件處,或耦合到該網絡部件。該網絡部件可包括單塊單板或線卡(LC),包括一個或多個CPU或處理器(例如多核處理器),其可實施多核轉發(fā)架構100。多核轉發(fā)架構100可包括對應于控制平面的控制器110和對應于數據平面的多個轉發(fā)內核(Fe) 120。例如,多核轉發(fā)架構100可包括整數n+1個FC120,在圖1中標記為FC0120至FCnl20??刂破?10和FC120可使用運行于一個和多個CPU上的軟件部件(例如,軟件程序)實施。控制器110可在管理和控制FC120的控制平面或層運行。FC120可在操作、處理和轉發(fā)數據或報文的數據平面或層運行。
[0020]圖2示出了可為多核轉發(fā)架構(例如,多核轉發(fā)架構100)實施的ISSU方案200的實施例。ISSU方案200可用于升級多核轉發(fā)架構的數據平面處的多個FC220(例如,升級FC軟件版本)。FC220可類似于FC120。ISSU方案200可實現不間斷ISSU,其中至少一些FC220可在ISSU期 間隨時操作、處理和轉發(fā)數據或報文。一次可將一個或少量FC220切下線并進行升級,而一個或多個FC220繼續(xù)(在數據平面處)運行和操作數據。
[0021]最初,n+1個 FC220(標記為 FC0220、FC1220、......、FCn220)可在 ISSU 之前運行。
在ISSU期間,多核轉發(fā)架構的控制器210可將一個正在運行的FC220(例如,FC0220)切下線并釋放該FC220的資源,例如已分配的內存、處理功率和輸入/輸出連接??苫贔C220的狀態(tài)(例如FC220操作的報文或負載量)任意選擇FC220,或根據FC220的某個預定的順序或序列選擇FC220。在本示例中,首先選擇的是FC0220。FC0220下線后,控制器210可開始更新或升級該離線FC0220。升級過程可包括為轉發(fā)過程指定一個或多個選項在該離線FC0220上重啟,這些選項可包括開機畫面、版本檢查和/或數據結構檢查等。當所有檢查都通過且離線FC0220的軟件升級成功完成后,控制器210可分配新資源給FC0220并允許新加載和升級的FC0220加入其它在線FC220 (例如FC1220、……、FCn220)進行報文操作和處理。
[0022]在照此升級了一個FC220后,控制器210可依照同樣的流程逐個升級剩余其它FC220,例如以某種順序依次升級,直至升級完所有FC220。例如,控制器210接下來可將FC1220切下線,升級FC1220(例如,執(zhí)行FC軟件升級),并加載新升級的FC1220以開始在數據平面處運行并操作報文轉發(fā)。控制器210可繼續(xù)以類似方式逐個升級剩余FC220(例如FC2220到FCn220),直至多核轉發(fā)架構的所有FC220都升級完畢。圖2展示了不同時間階段的ISSU流程進度,其中陰影方框表示該階段完成升級的FC220。
[0023]在某些實施例中,如果系統(tǒng)處理能力足夠(例如,如果系統(tǒng)在單板或LC上包括足夠的P⑶或處理器和/或其它必需的系統(tǒng)資源),系統(tǒng)可使一個以上FC220經歷上述ISSU流程。例如,控制器210可指示兩個或更多FC220停止處理報文并大致同時開始升級所選FC220。升級所選FC220可獨立進行或無需實質的同步。雖然一些FC220正在升級,但系統(tǒng)可有足夠的剩余FC220運行以處理報文轉發(fā)和防止丟包。
[0024]在ISSU方案200中,控制平面處的控制器210可管理各FC220從(在單塊單板的一個或多個CPU上)運行轉為暫停。在運行時,FC220可輪詢來自緩沖區(qū)的報文進行報文處理和/或對輸入/輸出中斷作出響應。報文緩沖區(qū)和IO中斷可由單板上所有或多個FC220共享。當控制器210發(fā)送重置命令升級所選FC220時,該FC220可(例如,在完成其待決報文的處理后)停止輪詢來自共享緩沖區(qū)的報文。所選FC220還可(例如,在完成任意待決報文的處理后)停止對IO中斷的響應。然而,剩余運行的FC220可能不會受到控制器210重置命令對所選FC220的影響,而繼續(xù)正常處理來自共享緩沖區(qū)的報文和/或IO中斷。因此,所選FC220的暫??赡懿粫е聛G包或大量報文處理延遲,其中報文可繼續(xù)由剩余運行的FC220操作。
[0025]在一些情況下,所選FC220可能仍需要更多報文去完成其自身的報文處理,例如在互聯(lián)網協(xié)議(IP)碎片整理、傳輸控制協(xié)議(TCP)序列或其它傳輸方案的情況下,所選FC220在從控制器210接收到重置命令后可繼續(xù)輪詢所需的來自共享緩沖區(qū)的報文。所選FC220可輪詢來自緩沖區(qū)的報文直至FC220使用所需報文完成其自身的報文處理,隨后停止對來自共享緩沖區(qū)的報文正常處理。這樣便不會產生丟包?;蛘?,所選FC220也可不完成其自身的報文處理,而是將輪詢的報文排列入專用第二共享報文緩沖區(qū)或排列待其它運行的FC220選擇和處理。系統(tǒng)可將該第二專用緩沖區(qū)處理或排列成高優(yōu)先級隊列以待報文處理,其中其它運行的FC220可在隊列中挑選報文進行高優(yōu)先級處理。
[0026]在所選FC220自身的報文處理完畢后,FC220可釋放該FC220曾使用的其它共享資源,例如,鎖、表條目、數據結構、存儲器或其它共享資源??刂破?10可協(xié)助FC220釋放關聯(lián)資源,包括報文緩沖區(qū)和任意相關聯(lián)的數據結構、存儲器、鎖或其組合。所選FC220可能需要一個界定但非嚴格限定的周期去完成上述任務。在所選FC220釋放資源后,FC220可自主調節(jié)步伐實施ISSU流程的后續(xù)步驟。在釋放共享資源后,FC220可經歷多個獨立于其它運行的FC220的升級步驟,例如重啟和初始化,以在其軟件升級期間使用新軟件版本重啟。其它運行的FC220可繼續(xù)保持運行狀態(tài),直至經控制器210指示或管理進行重置升級,因此系統(tǒng)整體可繼續(xù)不間斷處理報文。
[0027]用新軟件版本升級后的FC220隨后可開始訪問共享緩沖區(qū)和/或IO中斷并輪詢報文以進行其自身的處理和轉發(fā)。在此階段,升級后的FC220可正常執(zhí)行其報文轉發(fā)功能,而系統(tǒng)整體可能仍正進行ISSU流程(即,正在升級一個或多個其它FC220)。控制器210和FC軟件版本在ISSU前后可彼此兼容。
[0028]圖3示出了可為多核轉發(fā)架構(例如多核轉發(fā)架構100)實施的另一 ISSU方案300的實施例。ISSU方案300可用于升級多核轉發(fā)架構的控制平面處的控制器310和數據平面處的多個FC320??刂破?10和FC320可分別類似于控制器110和FC120。ISSU方案300可實現不間斷ISSU,其中至少一些FC320可在ISSU期間的任意時刻操作、處理和轉發(fā)數據或報文。
[0029]最初,n+1個 FC320(標記為 FC0320、FC1320、......、FCn320)可在 ISSU 之前運行。
在ISSU期間可升級控制器310和FC320 (例如,進行軟件升級)。為實現控制器和FC的平滑升級,其中不中斷報文處理和轉發(fā)且不丟包,可在ISSU期間將具有升級控制器軟件版本的新控制器315引入到數據平面。新控制器315可使用任意現存或支持的方法檢索來自舊控制器310的狀態(tài)信息。新控制器315可建立其本地轉發(fā)表和FC共享表。當ISSU方案300開始時,所有FC320可與舊控制器310相關聯(lián)(即,被舊控制器310管理),并且新控制器315最初可不具有與其相關聯(lián)的FC320(圖3中的階段I)。
[0030]在新控制器315建立和穩(wěn)定后(準備開始運行),舊控制器310可在一個離線時間點開始設置一個FC320 (或者,如果系統(tǒng)資源允許,一次設置少量FC320)??苫贔C320的狀態(tài)或根據預定順序任意選擇FC320。所選FC320 (例如,階段2的FC0320)隨后可停止報文處理并釋放其資源。舊控制器310隨后可釋放其對所選FC320的控制。新控制器315隨后可使用支持的控制器到控制器通信接管釋放的FC320,升級FC320并為其展開轉發(fā)過程,分配資源給FC320,并允許新加載和升級的FC320開始操作報文(圖3的階段2)。通過主要由ISSU方案300中的新控制器315實施,ISSU方案300的FC升級步驟可類似于FC方案200的FC升級步驟。
[0031]按照同樣的流程,可對舊控制器310控制的所有FC320(例如,逐個)進行升級并將它們與新控制器315關聯(lián),直至所有FC320都升級完畢并從舊控制器310遷移到新控制器315 (圖3的階段3)。在所有FC320都升級并遷移后,舊控制器310 (舊控制器軟件版本)可隨其共享表和資源移除(圖3的階段4)。ISSU方案300可提供平滑或簡潔的操作共享資源的方法??晒潭ǖ豢舍尫诺囊粋€資源可以是報文輸入隊列,該隊列可在系統(tǒng)級別分配。ISSU方案300可為整個數據平面,包括FC320和其它部件以及相關聯(lián)的資源,或只為在數據平面中的FC320提供升級。
[0032]圖4示出了可在多核轉發(fā)架構(例如,多核轉發(fā)架構100)中實施的ISSU方法400的實施例。例如,ISSU方法400可通過轉發(fā)部件實施為ISSU方案200或ISSU方案300的一部分。方法400可開始于步驟或方框410,可選擇其中在單塊單板或LC上運行的多個FC中的一個或多個進行升級。例如,控制器(例如,控制器210)可選擇關閉在單板的一個或多個CPU上運行的一個或多個FC(例如,FC220)并使用新的或升級后的FC軟件版本對其進行升級。如果系統(tǒng)資源(例如,存儲器、處理器等)允許,可選擇一個以上FC大致同時進行升級。可基于與FC的運行狀態(tài)相關的某些標準(例如,空閑或輕負荷FC)任意選擇FC,或按照單板上FC的預定順序或序列選擇。
[0033]在方框420處,可關閉所選FC來停止操作和轉發(fā)報文。如上所述,可以平滑方式關閉FC,在該方式中,可 在FC被關閉之前完成緩沖區(qū)中待決報文的處理或將報文卸載到其它FC,防止丟包。在方框430處,可為所選FC上傳新的或升級后的FC軟件版本。在方框440處,可分配新資源給升級后的FC。這些資源可包括存儲器、CPU和其它實現報文處理和轉發(fā)的系統(tǒng)資源。在方框450處,升級后的FC可用于加入在單板上運行的其它FC進行報文處理和操作。
[0034]在決定方框460處,方法400可確定單板上是否有任意剩余的FC需要升級。例如,方法400可確定是否用新FC軟件版本升級所有的FC。如果達到方框460中的條件,即,有一個或多個剩余FC需要升級,則該方法可返回至方框410處選擇剩余FC中的一個或多個進行升級。否則,方法400可結束。在其它實施例中,可實施包括類似步驟的類似方法對數據平面處的FC和控制平面處的控制器進行升級。該方法還可包括另外如下步驟:增加新控制器(例如,新的或升級后的控制器軟件版本)和(例如,逐個)將升級后的FC從舊控制器(例如,舊控制器軟件版本)重新分配到新控制器,然后移除舊控制器和相關聯(lián)的資源,如ISSU方案300所述。
[0035]圖5示出了用于實施本文所述的多核轉發(fā)架構(例如,多核轉發(fā)架構100)的印刷電路板500(下文稱為單板)的實施例。單板500可包括入端口 510、接收器(Rx)512、共享緩沖區(qū)520、存儲器522,、控制器524、共享通信總線526、包括轉發(fā)內核FC0、FC1、……、FCN的全交換式結構528、發(fā)射器(Tx) 532和出端口 530。每個入端口都可耦合到所示接收器512以接收來自其它網絡部件(例如,路由器)的信號和報文/數據。來自每個接收器的報文可存儲在共享緩沖區(qū)520中待進一步處理。來自緩沖區(qū)520的報文可經由總線526傳送到所示包括n+1個轉發(fā)內核的全交換式結構528。存儲器522可存儲用于所示轉發(fā)內核的一個或多個升級的軟件。另外,存儲器522可提供配置控制器524的操作的軟件和數據。控制器524可以是先前描述的控制器210等。控制器524可經由總線526與緩沖區(qū)524和轉發(fā)內核FCO、FCl、……、FCn通信。轉發(fā)內核可通過發(fā)射器532傳輸報文,每個發(fā)射器532都可耦合到出端口 530。如前所述,所選待升級的轉發(fā)內核可輪詢來自緩沖區(qū)520的報文直至所選轉發(fā)內核使用所需報文完成其自身的報文處理,隨后停止其對來自共享緩沖區(qū)的報文的正常處理。這樣便不會產生丟包。另外,單板500可包括加載有控制器524上的軟件的升級后的軟件版本的第二控制器525,以實施參考圖3討論的ISSU方案300??刂破?24和第二控制器525可在單個處理器上實施,或在多個處理器上單獨實施。
[0036]盡管圖5示出了三個入端口 510、三個接收器512、三個發(fā)射器532和三個出端口530用于說明性目的,單板500可包括任意數目的這些元件。此外,總線526可選,因為可硬連接控制器524、緩沖區(qū)520和全交換式結構528使其直接互相通信。控制器524和/或全交換式結構528可通過處理器實施,處理器本身可實施為一個或多個中央處理器(CPU)芯片、內核(例如,多核處理器)、現場可編程門陣列(FPGA)、專用集成電路(ASIC)和/或數字信號處理器(DSP)??刂破?24和轉發(fā)內核FC0、FC1、……、FCn可在一個或多個處理器上的軟件中實施。上文描 述的網絡部件可在任意通用網絡部件上實施,例如計算機或具有足夠處理功率的網絡部件、存儲器資源和網絡處理其必需的工作負載的吞吐能力。圖6示出了適于實施本文所述的部件的一個或多個實施例的典型通用網絡部件600。例如,網絡部件600可包括以下任意項,或成為以下任意項的一部分,或位于以下任意項,或耦合到以下任意項:路由器、網絡部件、或包括多個轉發(fā)架構(例如,多核轉發(fā)架構100)的服務器。網絡部件600包括處理器602 (可稱為CPU),其與包括輔助存儲器604的存儲器設備、只讀存儲器(ROM) 606、隨機存取存儲器(RAM) 608、輸入/輸出(I/O)設備610和網絡連接設備612進行通信。處理器602可實施為一個或多個CPU芯片、內核(例如,多核處理器)、FPGA、ASIC和/或DSP,并且/或者可以是一個或多個ASIC的一部分。處理器602可用于實施上述任意ISSU方案和方法。例如,處理器602可用于(通過硬件和/或軟件)實施或支持方案200和/或300和方法400。
[0037]輔助存儲器604通常包括一個或多個磁盤驅動器或可擦除可編程ROM(EPROM)并用于數據的非易失性存儲。輔助存儲器604可以用于存儲程序,當選擇執(zhí)行這些程序時,所述程序將加載到RAM608中。R0M606用于存儲在程序執(zhí)行期間讀取的指令以及可能讀取的數據。R0M606為非易失性存儲設備,其存儲容量相對于輔助存儲器604的較大存儲容量而言通常較小。RAM608用于存儲易失性數據,還可能用于存儲指令。對R0M606和RAM608 二者的存取通常比對輔助存儲器604的存取速度要快。
[0038]應理解,通過將可執(zhí)行指令編程和/或加載至單板500,存儲器522、控制器524和包括轉發(fā)內核FCO、FCU……、FCn的全交換式結構528中的至少之一被改變,將單板500部分轉換成特定機器或裝置,例如,本發(fā)明宣揚的擁有新穎功能的多核轉發(fā)架構。類似地,應理解,通過將可執(zhí)行指令編程和/或加載至網絡部件600,處理器602、RAM606和R0M608中的至少之一被改變,將網絡部件600部分轉換成特定機器或裝置,例如,本發(fā)明宣揚的擁有新穎功能的多核轉發(fā)架構。加載可執(zhí)行軟件至計算機所實現的功能可以通過公知設計規(guī)則轉換成硬件實施,這在電力工程和軟件工程領域是很基礎的。決定使用軟件還是硬件來實施一個概念通常取決于對設計穩(wěn)定性及待生產的單元數量的考慮,而不是從軟件領域轉換至硬件領域中所涉及的任何問題。一般來說,經常變動的設計更適于在軟件中實施,因為重新編寫硬件實施比重新編寫軟件設計更為昂貴。通常,穩(wěn)定及大規(guī)模生產的設計更適于在如專用集成電路(ASIC)這樣的硬件中實施,因為運行硬件實施的大規(guī)模生產比軟件實施更為便宜。設計通??梢砸攒浖问竭M行開發(fā)和測試,之后通過公知設計規(guī)則轉變成專用集成電路中等同的硬件實施,該集成電路硬線軟件指令。由新ASIC控制的機器是一特定的機器或裝置,同樣地,編程和/或加載有可執(zhí)行指令的電腦可視為特定的機器或裝置。
[0039]本發(fā)明公開至少一項實施例,且所屬領域的普通技術人員對所述實施例和/或所述實施例的特征作出的變化、組合和/或修改均在本發(fā)明公開的范圍內。因組合、合并和/或省略所述實施例的特征而得到的替代性實施例也在本發(fā)明的范圍內。應當理解的是,本發(fā)明已明確闡明了數值范圍或限制,此類 明確的范圍或限制應包括涵蓋在上述范圍或限制(如從大約I至大約10的范圍包括2、3、4等;大于0.10的范圍包括0.11,0.12,0.13等)內的類似數量級的迭代范圍或限制。例如,每當公開具有下限R1和上限Ru的數值范圍時,具體是公開落入所述范圍內的任何數字。具體而言,所述范圍內的以下數字是特別揭示的:R=尺1+1^0^-1?1),其中1^為從1%至1』100%范圍內以1%遞增的變量,即,k為1%、2%、3%、
4%,5%,......,50%,51%,52%,......、95%、96%、97%、98%、99%或 100%。此外,還特
此公開了,上文定義的兩個R值所定義的任何數值范圍。除非另有說明,否則使用術語“約”是指隨后數字的±10%。相對于權利要求的某一要素,術語“可選擇”的使用表示該要素可以是需要的,或者也可以是不需要的,二者均在所述權利要求的范圍內。使用如“包括”、“包含”和“具有”等較廣術語應被理解為提供對如“由……組成”、“基本上由……組成”以及“大體上由……組成”等較窄術語的支持。因此,保護范圍不受上文所述的限制,而是由所附權利要求書定義,所述范圍包含所附權利要求書的標的物的所有等效物。每項和每條權利要求作為進一步公開的內容并入說明書中,且權利要求書是本發(fā)明的實施例。所述揭示內容中的參考的論述并不是承認其為現有技術,尤其是具有在本申請案的在先申請 優(yōu)先權日:期之后的
【公開日】期的任何參考。本發(fā)明中所引用的所有專利、專利申請案和公開案的揭示內容特此以引用的方式并入本文本中,其提供補充本發(fā)明的示例性、程序性或其它細節(jié)。
[0040]雖然本發(fā)明中已提供若干實施例,但應理解,在不脫離本發(fā)明的精神或范圍的情況下,本發(fā)明所公開的系統(tǒng)和方法可以以許多其它特定形式來體現。本發(fā)明的實例應被視為說明性而非限制性的,且本發(fā)明并不限于本文本所給出的細節(jié)。例如,各種元件或部件可以在另一系統(tǒng)中組合或合并,或者某些特征可以省略或不實施。
[0041 ] 此外,在不脫離本發(fā)明的范圍的情況下,各種實施例中描述和說明為離散或單獨的技術、系統(tǒng)、子系統(tǒng)和方法可以與其它系統(tǒng)、模塊、技術或方法進行組合或合并。展示或論述為彼此耦合或直接耦合或通信的其它項也可以采用電方式、機械方式或其它方式通過某一接口、設備或中間部件間接地耦合或通信。其它變化、替代和改變的示例可以由本領域的技術人員在不脫離本文精神和所公開的范圍的情況下確定。
【權利要求】
1.一種在網絡部件中實施的用于在線業(yè)務軟件升級(ISSU)的方法,其特征在于,所述方法包括: 從在所述網絡部件的印刷電路板上的數據平面處運行以處理和轉發(fā)多個報文的多個轉發(fā)內核(Fe)中選擇FC;以及 通過軟件升級重置所述選擇的FC ; 其中至少一個其它FC在所述選擇的FC進行升級時處理和轉發(fā)報文。
2.根據權利要求1所述的方法,其特征在于,進一步包括從所述多個FC中依次選擇其它FC進行升級,直至沒有剩余FC需要升級。
3.根據權利要求2所述的方法,其特征在于,一次只選擇一個FC進行升級,而所述其它FC處理和轉發(fā)所述報文。
4.根據權利要求3所述的方法,其特征在于,如果有充足的系統(tǒng)資源支持大致同時對多個FC進行所述升級,則選擇一個以上所述FC大致同時進行升級,而所述其它FC處理和轉發(fā)所述報文。
5.根據權利要求1所述的方法,其特征在于,所述FC由在所述印刷電路板上的控制平面處運行的控制器基于負載狀態(tài)選擇進行升級。
6.根據權利要求2所述的方法,其特征在于,根據所述FC的預定序列選擇所述FC進行升級。
7.根據權利要求1所述的方法,其特征在于,所述FC是在所述印刷電路板上的一個或多個處理器上運行的軟件部件。
8.根據權利要求2所述的方法,其特征在于,在所述印刷電路板上的處理器上運行的控制器軟件選擇和重置所述FC進行升級。
9.一種網絡部件,其特征在于,包括: 印刷電路板,包括多個轉發(fā)內核(FC),其中所述每個FC用于轉發(fā)報文;以及 耦合到所述多個FC的處理器,用于: 從所述多個FC中選擇FC ; 關閉所述選擇的FC停止轉發(fā)報文; 為所述選擇的FC上傳升級后的FC軟件版本; 給所述選擇的FC分配新資源; 配置所述選擇的FC使其加入所述印刷電路板上運行的其它所述FC進行報文轉發(fā);以及 在配置所述選擇的FC后開啟所述選擇的FC ; 其中至少一個所述FC用于在所述選擇的FC被關閉時轉發(fā)報文。
10.根據權利要求9所述的網絡部件,其特征在于,如果有充足的可用資源允許,則大致同時升級一個以上所述FC。
11.據權利要求10所述的網絡部件,其特征在于,大致同時升級一個以上所述FC,升級獨立進行且無需同步。
12.根據權利要求9所述的網絡部件,其特征在于,通過一次選擇和關閉一個或多個所述FC來對所有所述FC進行升級,無需關閉所有所述FC。
13.根據權利要求9所述的網絡部件,其特征在于,所述選擇的FC在被關閉之前停止輪詢來自共享緩沖區(qū)的報文或對所述FC的輸入/輸出(IO)中斷作出響應,其中所述選擇的FC在關閉之前將其來自共享緩沖區(qū)的報文卸載到所述其它運行的FC進行操作和轉發(fā),以及所述被卸載的報文排列在高優(yōu)先級緩沖區(qū)中待所述其它運行的FC訪問來進行操作和轉發(fā)。
14.根據權利要求9所述的網絡部件,其特征在于,所述選擇的FC繼續(xù)輪詢來自共享緩沖區(qū)的報文或對所述FC的輸入/輸出(IO)作出響應以在關閉之前完成任何必需的報文處理。
15.根據權利要求9所述的網絡部件,其特征在于,進一步包括耦合到所述多個FC的每個FC的緩沖區(qū),其中所述緩沖區(qū)用于存儲待所述選擇的FC轉發(fā)的多個報文,其中在所述選擇的FC被關閉時存在于所述緩沖區(qū)中預期發(fā)送給所述選擇的FC的任意報文保留在所述緩沖區(qū)中,直至所述選擇的FC被開啟。
16.一種網絡部件,其特征在于,包括: 印刷電路板,包括至少一個處理器,用于運行控制平面處的控制器和數據平面處的多個轉發(fā)內核(FC), 其中所述多個FC的每個FC用于處理和轉發(fā)多個報文;以及 所述控制器用于關閉一個或多個所述FC以進行升級而至少一個或多個剩余FC處理和轉發(fā)報文。
17.根據權利要求16所述的網絡部件,其特征在于, 所述控制器具有第一軟件, 所述至少一個處理器進一步包括具有所述第一軟件的升級后的軟件版本的第二控制器,以及 所述至少一個處理器進一步用于將所述多個FC遷移到所述第二控制器以在被所述控制器關閉后進行升級。
18.根據權利要求17所述的網絡部件,其特征在于,所述一個或多個FC進一步用于在被所述第二控制器升級后加入報文處理和轉發(fā)。
19.根據權利要求16所述的網絡部件,其特征在于,所述一個或多個重置的FC在被關閉后面臨多個升級步驟,包括重啟和初始化,步調由所述每個重置的FC獨立自定。
20.根據權利要求16 所述的網絡部件,其特征在于,所述處理器進一步用于釋放所述重置的FC在重置之前使用的共享資源,包括共享緩沖區(qū)、鎖、表條目、數據結構、存儲器或其組合。
【文檔編號】G06F9/445GK103946800SQ201380003972
【公開日】2014年7月23日 申請日期:2013年10月12日 優(yōu)先權日:2012年10月12日
【發(fā)明者】徐俊 申請人:華為技術有限公司