多核路由器的版本升級處理方法及多核路由器的制造方法
【專利摘要】本發(fā)明提供一種多核路由器的版本升級處理方法及多核路由器。該多核路由器包括主控核和多個轉(zhuǎn)發(fā)核,該方法包括:所述多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核接收所述主控核發(fā)送的升級指令,所述升級指令用于指示所述第一轉(zhuǎn)發(fā)核轉(zhuǎn)為新的主控核;所述第一轉(zhuǎn)發(fā)核接收到所述升級指令后,執(zhí)行升級文件中的主控制程序;將所述第一轉(zhuǎn)發(fā)核作為新的主控核。本發(fā)明實施例技術(shù)方案可在版本升級時,不對路由器進(jìn)行重啟動,從而可克服重啟動帶來的業(yè)務(wù)中斷問題。
【專利說明】多核路由器的版本升級處理方法及多核路由器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實施例涉及通信技術(shù),尤其涉及一種多核路由器的版本升級處理方法及多核路由器。
【背景技術(shù)】
[0002]路由器是連接因特網(wǎng)中各局域網(wǎng)、廣域網(wǎng)的設(shè)備,可以對網(wǎng)絡(luò)中的報文進(jìn)行轉(zhuǎn)發(fā)和處理,并可選擇最佳路徑對報文進(jìn)行轉(zhuǎn)發(fā)。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,往往需要對路由器的軟件版本進(jìn)行不斷升級,以使得路由器可以最新的軟件版本運(yùn)行,確保路由器報文進(jìn)行轉(zhuǎn)發(fā)或處理的準(zhǔn)確性和可靠性,多核路由器的軟件程序主要包括由主控核執(zhí)行的主控制程序,以及由轉(zhuǎn)發(fā)核執(zhí)行的轉(zhuǎn)發(fā)處理程序。
[0003]目前,在多核路由器進(jìn)行版本升級時,首先將升級文件下載到路由器的存儲器中,然后重新啟動路由器,使路由器重新啟動時可執(zhí)行該升級文件,完成路由器版本升級處理,使得路由器可以該升級文件對報文進(jìn)行轉(zhuǎn)發(fā)和處理。但是,路由器在重啟過程中,所有經(jīng)過該路由器的業(yè)務(wù)將會中斷,影響業(yè)務(wù)的正常處理,導(dǎo)致用戶業(yè)務(wù)使用體驗較差;而且,對于部分業(yè)務(wù)用戶而言,例如下載文件的業(yè)務(wù)用戶還會因業(yè)務(wù)中斷而導(dǎo)致下載失敗。
[0004]綜上,現(xiàn)有多核路由器進(jìn)行版本升級處理過程中,需要重新啟動路由器,而在路由器重啟過程中將會導(dǎo)致業(yè)務(wù)處理中斷,影響業(yè)務(wù)的正常處理。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供一種多核路由器的軟件升級處理方法及多核路由器,可克服現(xiàn)有路由器版本升級過程中重啟帶來的業(yè)務(wù)中斷問題。
[0006]第一方面,本發(fā)明實施例提供一種多核路由器的版本升級處理方法,所述多核路由器包括主控核和多個轉(zhuǎn)發(fā)核,該方法包括:
[0007]所述多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核接收所述主控核發(fā)送的升級指令,所述升級指令用于指示所述第一轉(zhuǎn)發(fā)核轉(zhuǎn)為新的主控核;
[0008]所述第一轉(zhuǎn)發(fā)核接收到所述升級指令后,執(zhí)行升級文件中的主控制程序;
[0009]將所述第一轉(zhuǎn)發(fā)核作為新的主控核。
[0010]結(jié)合第一方面,在第一種可能實現(xiàn)方式中,所述第一轉(zhuǎn)發(fā)核接收到所述升級指令后,執(zhí)行升級文件中的主控制程序,具體包括:
[0011]所述第一轉(zhuǎn)發(fā)核接收到所述升級指令后,停止接收新的報文,并輪詢所述第一轉(zhuǎn)發(fā)核的緩存器中的報文;
[0012]所述第一轉(zhuǎn)發(fā)核輪詢到包括所述升級指令的報文時,執(zhí)行所述升級文件中的主控制程序。
[0013]結(jié)合第一方面的第一種可能實現(xiàn)方式中,在第二種可能實現(xiàn)方式中,所述將所述第一轉(zhuǎn)發(fā)核作為新的主控核之前,還包括:
[0014]向所述多個轉(zhuǎn)發(fā)核中除所述第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級指令,以便接收到所述轉(zhuǎn)發(fā)核升級指令的轉(zhuǎn)發(fā)核執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序,實現(xiàn)轉(zhuǎn)發(fā)核的升級。
[0015]結(jié)合第一方面的第二種可能實現(xiàn)方式中,在第三種可能實現(xiàn)方式中,所述向所述多個轉(zhuǎn)發(fā)核中除所述第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級指令,具體包括:
[0016]向所述多個轉(zhuǎn)發(fā)核中除所述第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核中的部分轉(zhuǎn)發(fā)核發(fā)送升級指令。
[0017]結(jié)合第一方面的第二或第三種可能實現(xiàn)方式中,在第四種可能實現(xiàn)方式中,所述將所述第一轉(zhuǎn)發(fā)核作為新的主控核之前,還包括:
[0018]向所述主控核和未實現(xiàn)轉(zhuǎn)發(fā)核升級的轉(zhuǎn)發(fā)核發(fā)送升級完成指令,以便所述主控核或未實現(xiàn)轉(zhuǎn)發(fā)核升級的轉(zhuǎn)發(fā)核接收到所述升級完成指令后,執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處
理程序。
[0019]第二方面,本發(fā)明實施例提供一種多核路由器的版本升級處理方法,所述多核路由器包括主控核和多個轉(zhuǎn)發(fā)核,該方法包括:
[0020]獲取用于版本升級的升級文件,并存儲;
[0021]向所述多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核發(fā)送升級指令,以便所述第一轉(zhuǎn)發(fā)核接收到所述升級指令后執(zhí)行所述升級文件中的主控制程序,作為新的主控核。
[0022]結(jié)合第一方面,在第一種可能實現(xiàn)方式中,所述的多核路由器的版本升級處理方法還包括:
[0023]接收所述第一轉(zhuǎn)發(fā)核發(fā)送的升級完成指令;
[0024]將所述主控核作為轉(zhuǎn)發(fā)核,執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序。
[0025]第三方面,本發(fā)明實施例提供一種多核路由器,包括主控核和多個轉(zhuǎn)發(fā)核,所述多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核包括:
[0026]升級指令接收模塊,用于接收所述主控核發(fā)送的升級指令,所述升級指令用于指示所述第一轉(zhuǎn)發(fā)核轉(zhuǎn)為新的主控核;
[0027]升級處理模塊,用于接收到所述升級指令后,執(zhí)行升級文件中的主控制程序;
[0028]升級完成模塊,用于將所述第一轉(zhuǎn)發(fā)核作為新的主控核。
[0029]結(jié)合第三方面,在第一種可能實現(xiàn)方式中,所述升級處理模塊,具體用于接收到所述升級指令后,停止接收新的報文,并輪詢所述第一轉(zhuǎn)發(fā)核的緩存器中的報文,以及用于輪詢到包括所述升級指令的報文時,執(zhí)行所述升級文件中的主控制程序。
[0030]結(jié)合第三方面的第一種可能實現(xiàn)方式中,在第二種可能實現(xiàn)方式中,所述的多核路由器還包括:
[0031]轉(zhuǎn)發(fā)核升級指令發(fā)送模塊,用于向所述多個轉(zhuǎn)發(fā)核中除所述第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級指令,以便接收到所述轉(zhuǎn)發(fā)核升級指令的轉(zhuǎn)發(fā)核執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序,實現(xiàn)轉(zhuǎn)發(fā)核的升級。
[0032]結(jié)合第三方面的第二種可能實現(xiàn)方式中,在第三種可能實現(xiàn)方式中,所述轉(zhuǎn)發(fā)核升級指令發(fā)送模塊,具體用于向所述多個轉(zhuǎn)發(fā)核中除所述第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核中的部分轉(zhuǎn)發(fā)核發(fā)送升級指令。
[0033]結(jié)合第三方面的第二種或第三種可能實現(xiàn)方式中,在第四種可能實現(xiàn)方式中,所述的多核路由器還包括:[0034]升級完成指令發(fā)送模塊,用于向所述主控核和未實現(xiàn)轉(zhuǎn)發(fā)核升級的轉(zhuǎn)發(fā)核發(fā)送升級完成指令,以便所述主控核或未實現(xiàn)轉(zhuǎn)發(fā)核升級的轉(zhuǎn)發(fā)核接收到所述升級完成指令后,執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序。
[0035]第四方面,本發(fā)明實施例提供一種多核路由器,包括主控核和多個轉(zhuǎn)發(fā)核,所述主控核包括:
[0036]升級文件獲取模塊,用于獲取用于版本升級的升級文件,并存儲;
[0037]升級指令發(fā)送模塊,用于向所述多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核發(fā)送升級指令,以便所述第一轉(zhuǎn)發(fā)核接收到所述升級指令后執(zhí)行所述升級文件中的主控制程序,作為新的主控核。
[0038]結(jié)合第四方面,在第一種可能實現(xiàn)方式中,所述的多核路由器還包括:
[0039]升級完成指令接收模塊,用于接收所述第一轉(zhuǎn)發(fā)核發(fā)送的升級完成指令;
[0040]主控核升級處理模塊,用于將所述主控核作為轉(zhuǎn)發(fā)核,執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序。
[0041]本發(fā)明實施例提供的多核路由器的版本升級處理方法及多核路由器,在對多核路由器的版本進(jìn)行升級時,可通過向轉(zhuǎn)發(fā)核發(fā)送升級指令,由轉(zhuǎn)發(fā)核來執(zhí)行升級文件中的主控程序的方式,將轉(zhuǎn)發(fā)核作為新的控制核,這樣,在版本升級過程中,不需要重新啟動路由器,可避免路由器升級過程中因重啟動導(dǎo)致的業(yè)務(wù)中斷問題。
【專利附圖】
【附圖說明】
[0042]圖1為本發(fā)明實施例一提供的多核路由器的版本升級處理方法的流程示意圖;
[0043]圖2為本發(fā)明實施例二提供的多核路由器的版本升級處理方法的流程示意圖;
[0044]圖3為本發(fā)明實施例三提供的多核路由器的版本升級處理方法的流程示意圖;
[0045]圖4為本發(fā)明實施例四提供的多核路由器的版本升級處理方法的流程示意圖;
[0046]圖5A為本發(fā)明實施例五提供的多核路由器的版本升級處理方法的流程示意圖;
[0047]圖5B為版本升級處理之前的多核路由器中4核的狀態(tài)示意圖;
[0048]圖5C為版本升級處理后的多核路由器中4核的狀態(tài)示意圖;
[0049]圖6為本發(fā)明實施例六提供的多核路由器中第一轉(zhuǎn)發(fā)核的結(jié)構(gòu)示意圖;
[0050]圖7為本發(fā)明實施例七提供的多核路由器中主控核的結(jié)構(gòu)示意圖。
【具體實施方式】
[0051]圖1為本發(fā)明實施例一提供的多核路由器的版本升級處理方法的流程示意圖。本實施例可應(yīng)用于多核路由器的版本升級處理中,該多核路由器可包括主控核和多個轉(zhuǎn)發(fā)核,當(dāng)多核路由器有需要用于版本升級的升級文件時,主控核可向其中的第一轉(zhuǎn)發(fā)核發(fā)送升級指令,以便第一轉(zhuǎn)發(fā)核可基于該升級指令進(jìn)行版本升級處理,其中,用于版本升級的升級文件包括可供主控核執(zhí)行的主控制程序,以及供轉(zhuǎn)發(fā)核執(zhí)行的轉(zhuǎn)發(fā)處理程序。具體地,如圖1所示,本實施例方法可包括如下步驟:
[0052]步驟101、第一轉(zhuǎn)發(fā)核接收主控核發(fā)送的升級指令,該升級指令用于指示第一轉(zhuǎn)發(fā)核轉(zhuǎn)為新的主控核;
[0053]步驟102、第一轉(zhuǎn)發(fā)核接收到該升級指令后,執(zhí)行升級文件中的主控制程序;[0054]步驟103、將該第一轉(zhuǎn)發(fā)核作為新的主控核。
[0055]本實施例中,當(dāng)多核路由器需要進(jìn)行版本升級時,主控核可向多個轉(zhuǎn)發(fā)核中的一個轉(zhuǎn)發(fā)核,例如向第一轉(zhuǎn)發(fā)核發(fā)送升級指令,使得第一轉(zhuǎn)發(fā)核可根據(jù)該升級指令來執(zhí)行升級文件中的主控制程序,使得第一轉(zhuǎn)發(fā)核可作為新的主控核,且該新的主控核可對其他轉(zhuǎn)發(fā)核以及主控核發(fā)送相關(guān)指令,執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,從而完成版本升級。在此過程中,不需要重新啟動路由器,從而可避免路由器重啟造成的業(yè)務(wù)中斷。
[0056]本領(lǐng)域技術(shù)人員可以理解,多核路由器中主控核和轉(zhuǎn)發(fā)核的硬件結(jié)構(gòu)相同,主控核用于執(zhí)行主控制程序,以便對整個多核路由器進(jìn)行管理,同時也可對報文進(jìn)行一定的處理;而轉(zhuǎn)發(fā)核則用于執(zhí)行轉(zhuǎn)發(fā)處理程序,以對報文進(jìn)行轉(zhuǎn)發(fā)處理。其中,所述的主控制程序包括有操作系統(tǒng),例如vxworks等操作系統(tǒng),并可具有其他控制處理程序,使得主控核可對其他轉(zhuǎn)發(fā)核進(jìn)行管理和控制,并可進(jìn)行部分報文的處理操作等。本實施例對升級文件中的主控制程序以及轉(zhuǎn)發(fā)處理程序所實現(xiàn)的功能等不做特別限制。
[0057]本發(fā)明實施例提供的多核路由器的版本升級處理方法,在對路由器的軟件版本進(jìn)行升級時,可通過向轉(zhuǎn)發(fā)核發(fā)送升級指令,由轉(zhuǎn)發(fā)核來執(zhí)行升級文件中的主控制程序,并由該轉(zhuǎn)發(fā)核作為新的控制核,這樣,在版本升級過程中,不需要重新啟動路由器,可避免路由器升級過程中因重啟動導(dǎo)致的業(yè)務(wù)中斷問題。
[0058]圖2為本發(fā)明實施例二提供的多核路由器的版本升級處理方法的流程示意圖。如圖2所示,本實施例方法可包括如下步驟:
[0059]步驟201、第一轉(zhuǎn)發(fā)核接收主控核發(fā)送的升級指令后,將所述升級指令存儲在緩存器中,并停止接收新的報文;
[0060]步驟202、第一轉(zhuǎn)發(fā)核對緩存器中的報文進(jìn)行輪詢,確定輪詢到的報文是否為包括升級指令的報文,是則執(zhí)行步驟203,否則,對輪詢到的報文進(jìn)行處理,并繼續(xù)執(zhí)行步驟202 ;
[0061]步驟203、第一轉(zhuǎn)發(fā)核執(zhí)行用于版本升級的升級文件中的主控制程序;
[0062]步驟204、第一轉(zhuǎn)發(fā)核向其他轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級指令,以便其他轉(zhuǎn)發(fā)核接收到該轉(zhuǎn)發(fā)核升級指令后執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,實現(xiàn)轉(zhuǎn)發(fā)核的升級;
[0063]步驟205、第一轉(zhuǎn)發(fā)核向主控核發(fā)送升級完成指令,以便主控核接收到升級完成指令后,作為轉(zhuǎn)發(fā)核,執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,將主控核升級為轉(zhuǎn)發(fā)核。
[0064]上述步驟201和步驟202中,第一轉(zhuǎn)發(fā)核在接收到主控核發(fā)送的升級指令后,可將其暫存在緩存器中,并停止接收新的報文,這樣,第一轉(zhuǎn)發(fā)核在接收到升級指令后,可通過輪詢自身緩存器中的報文,直到輪詢到包括該升級指令的報文時,才執(zhí)行步驟203,執(zhí)行升級文件中的主控制程序,這樣第一轉(zhuǎn)發(fā)核可在其接收到的報文均處理完畢才執(zhí)行升級文件,從而可確保第一轉(zhuǎn)發(fā)核升級為主控核的過程中,第一轉(zhuǎn)發(fā)核正在處理的業(yè)務(wù)不會中斷掉。
[0065]上述步驟203中,第一轉(zhuǎn)發(fā)核執(zhí)行升級文件中的主控制程序,具體是指執(zhí)行主控核的啟動加載程序(BootLoader),從而可通過該BootLoader將存儲在存儲器中的升級文件中的主控制程序作為啟動包,使得第一轉(zhuǎn)發(fā)核可執(zhí)行該升級文件中的主控制程序。本領(lǐng)域技術(shù)人員可以理解,所述的BootLoader類似于計算機(jī)系統(tǒng)中的BIOS程序,可用于加載操作系統(tǒng)等程序,其具體實現(xiàn)過程在此不再贅述。[0066]本實施例中,主控核接收到該升級文件后,可將其存儲到存儲設(shè)備,例如Flah芯片中,這樣,第一轉(zhuǎn)發(fā)核執(zhí)行該升級文件的主控制程序時,就可以從該存儲設(shè)備中讀取該升級文件中的主控制程序。
[0067]本領(lǐng)域技術(shù)人員可以理解,當(dāng)?shù)谝晦D(zhuǎn)發(fā)核執(zhí)行升級文件中的主控制程序后,可暫不不接收報文,同時可與主控核共享硬件資源,這樣,第一轉(zhuǎn)發(fā)核在執(zhí)行主控制程序的過程中,主控核仍可按自己的進(jìn)程來處理相應(yīng)的報文或管理工作,從而不受影響。
[0068]上述步驟204和步驟205中,第一轉(zhuǎn)發(fā)核在執(zhí)行升級文件中的主控制程序后,就可以通知其他轉(zhuǎn)發(fā)核以及主控核,指示其他轉(zhuǎn)發(fā)核執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,以及指示主控核轉(zhuǎn)換為轉(zhuǎn)發(fā)核,并執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,從而實現(xiàn)轉(zhuǎn)發(fā)核以及主控核的升級。
[0069]上述步驟203中,第一轉(zhuǎn)發(fā)核執(zhí)行升級文件的主控制程序時,還需要獲取主控核的配置文件以及狀態(tài)數(shù)據(jù),以便第一轉(zhuǎn)發(fā)核作為新的主控核時,可以與主控核狀態(tài)保持一致。其中,所述的配置文件可以存儲在路由器中的存儲芯片上,而主控核的狀態(tài)數(shù)據(jù)可實時通過核間通信來傳輸,或者,也可通過備份機(jī)制,例如HA機(jī)制來確保狀態(tài)數(shù)據(jù)的同步。
[0070]上述步驟204和步驟205中,其他轉(zhuǎn)發(fā)核接收到轉(zhuǎn)發(fā)核升級指令后,可暫停其他報文的接收,并在處理完自身緩存器中的報文后,才執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,實現(xiàn)轉(zhuǎn)發(fā)核的升級;同時,主控核在接收到升級完成指令后,可暫停報文的接收,并在自身緩存器中的報文處理完畢后,再執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,以實現(xiàn)主控核升級為轉(zhuǎn)發(fā)核。
[0071]實際應(yīng)用中,在主控核升級為轉(zhuǎn)發(fā)核之前,第一轉(zhuǎn)發(fā)核雖然與主控核共享硬件資源,其并不會接收報文,并對報文進(jìn)行處理,在此過程中,仍舊由主控核來處理,直到向主控核發(fā)送升級完成指令,第一轉(zhuǎn)發(fā)核才作為真正的主控核進(jìn)行報文處理,以避免兩個主控核同時處理報文。
[0072]圖3為本發(fā)明實施例三提供的多核路由器的版本升級處理方法的流程示意圖。如圖3所示,本實施例方法可包括如下步驟:
[0073]步驟301-步驟303,與圖2中的步驟201-步驟202相同。
[0074]步驟304、第一轉(zhuǎn)發(fā)核向其他轉(zhuǎn)發(fā)核中的部分轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級指令;
[0075]步驟305、接收到該轉(zhuǎn)發(fā)核升級指令的部分轉(zhuǎn)發(fā)核暫停接收新的報文,并在自身上的報文處理完畢后,執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,并通知第一轉(zhuǎn)發(fā)核返回轉(zhuǎn)發(fā)核升級成功指令;
[0076]步驟306、第一轉(zhuǎn)發(fā)核接收到該部分轉(zhuǎn)發(fā)核發(fā)送的轉(zhuǎn)發(fā)核升級成功指令后,向主控核以及其他轉(zhuǎn)發(fā)核發(fā)送暫停指令;
[0077]步驟307、主控核以及其他轉(zhuǎn)發(fā)核接收到暫停指令后,停止接收新的報文,并返回響應(yīng)消息給主控核;
[0078]步驟308、第一轉(zhuǎn)發(fā)核接收到主控核返回的響應(yīng)消息后,向返回轉(zhuǎn)發(fā)核升級成功指令的該部分轉(zhuǎn)發(fā)核發(fā)送升級完成指令,以便該部分轉(zhuǎn)發(fā)核開始接收報文;
[0079]步驟309、第一轉(zhuǎn)發(fā)核向主控核以及其他轉(zhuǎn)發(fā)核發(fā)送升級完成指令;
[0080]步驟310、主控核和其他轉(zhuǎn)發(fā)核接收到升級完成指令后,執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,使得主控核轉(zhuǎn)為轉(zhuǎn)發(fā)核。
[0081 ] 上述步驟304-步驟305中,第一轉(zhuǎn)發(fā)核在執(zhí)行主控制程序后,可首先向部分轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級指令,以便對該部分轉(zhuǎn)發(fā)核進(jìn)行版本升級。且轉(zhuǎn)發(fā)核在接收到轉(zhuǎn)發(fā)核升級指令后,可立即停止接收新的報文,并對自身的報文處理后,執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,這樣,在部分轉(zhuǎn)發(fā)核升級過程中,其他轉(zhuǎn)發(fā)核還可執(zhí)行報文轉(zhuǎn)發(fā)功能,可確保報文轉(zhuǎn)發(fā)的順利進(jìn)行。
[0082]上述步驟306-步驟308中,當(dāng)步驟304-步驟305中的部分轉(zhuǎn)發(fā)核均執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序后,即可向第一轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級成功指令,以便第一轉(zhuǎn)發(fā)核可向其他轉(zhuǎn)發(fā)核以及主控核發(fā)送暫停指令,并通過向該部分轉(zhuǎn)發(fā)核發(fā)送升級完成指令,以便在對主控核和其他轉(zhuǎn)發(fā)核進(jìn)行版本升級過程中,由該部分轉(zhuǎn)發(fā)核執(zhí)行報文轉(zhuǎn)發(fā)的處理,確保主控核和其他轉(zhuǎn)發(fā)核升級時仍舊可進(jìn)行報文的轉(zhuǎn)發(fā)。
[0083]上述步驟309-步驟310中,第一轉(zhuǎn)發(fā)核通知升級完成的轉(zhuǎn)發(fā)核開始接收報文后,即可通過向主控核和其他轉(zhuǎn)發(fā)核發(fā)送升級完成指令的方式,由主控核和其他轉(zhuǎn)發(fā)核來執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,以實現(xiàn)主控核以及其他轉(zhuǎn)發(fā)核的升級。且在此過程中,第一轉(zhuǎn)發(fā)核可完全占用多核路由器的硬件資源,成為新的主控核,而原來的主控核通過執(zhí)行轉(zhuǎn)發(fā)處理程序則變成新的轉(zhuǎn)發(fā)核。
[0084]圖4為本發(fā)明實施例四提供的多核路由器的版本升級處理方法的流程示意圖。本實施例執(zhí)行主體為多核路由器中的主控核,具體地,如圖4所示,本實施例方法可包括如下步驟:
[0085]步驟401、主控核獲取用于版本升級的升級文件,并存儲;
[0086]步驟402、主控核向多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核發(fā)送升級指令,以便第一轉(zhuǎn)發(fā)核接收到升級指令后執(zhí)行升級文件中的主控制程序,作為新的主控核。
[0087]本實施例中,主控核通過上述步驟將升級指令發(fā)送給第一轉(zhuǎn)發(fā)核后,第一轉(zhuǎn)發(fā)核就可以執(zhí)行上述圖1-圖3中所示步驟,實現(xiàn)版本升級的處理。
[0088]本實施例中,主控核還可接收第一轉(zhuǎn)發(fā)核發(fā)送的升級完成指令,并可將主控核作為轉(zhuǎn)發(fā)核,執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,作為轉(zhuǎn)發(fā)核對網(wǎng)絡(luò)上的報文進(jìn)行處理。
[0089]本實施例中,在其他轉(zhuǎn)發(fā)核升級過程中,可首先對部分轉(zhuǎn)發(fā)核進(jìn)行升級,然后再對其他轉(zhuǎn)發(fā)核進(jìn)行升級,這樣,可在整個升級過程中,不會影響新的報文的處理。
[0090]為便于對本發(fā)明實施例技術(shù)方案有更好的了解,下面將以包括4核的多核路由器的版本升級過程進(jìn)行說明。
[0091]圖5A為本發(fā)明實施例五提供的多核路由器的版本升級處理方法的流程示意圖;圖5B為版本升級處理之前的多核路由器中4核的狀態(tài)示意圖;圖5C為版本升級處理后的多核路由器中4核的狀態(tài)示意圖。本實施例中,如圖5B所示,版本升級處理前,多核路由器中的主控核為核1,核2、核3和核4均為轉(zhuǎn)發(fā)核,當(dāng)主控核,即核I接收到版本升級指示后,可從網(wǎng)絡(luò)中下載用于版本升級的升級文件,并存儲在存儲芯片中,同時可執(zhí)行版本升級處理過程,具體地,如圖5A-圖5C所示,本實施例方法可包括如下步驟:
[0092]步驟501、作為主控核的核I接收到版本升級指令后,從網(wǎng)絡(luò)上下載升級文件,并存儲在存儲芯片中;
[0093]步驟502、核I向作為轉(zhuǎn)發(fā)核的核3發(fā)送升級指令;
[0094]步驟503、核3接收到升級指令后,存儲在緩存器中,并停止接收其他報文;
[0095]步驟504、核3輪詢緩存器中的報文,直到輪詢到該升級指令,執(zhí)行步驟505 ;[0096]步驟505、核3執(zhí)行升級文件中的主控制程序;
[0097]步驟506、核3發(fā)送轉(zhuǎn)發(fā)核升級指令給作為轉(zhuǎn)發(fā)核的核2 ;
[0098]步驟507、核2接收到該轉(zhuǎn)發(fā)核升級指令后,存儲在自身的緩存器中,并停止接收新的報文;
[0099]步驟508、核2輪詢自身緩存器中的報文,直到輪詢到轉(zhuǎn)發(fā)核升級指令后,執(zhí)行上述的升級文件中的轉(zhuǎn)發(fā)處理程序;
[0100]步驟509、核3向作為主控核的核I和核4發(fā)送暫停指令,并在接收到核I和核4的響應(yīng)指令后,向核2發(fā)送升級成功指令;
[0101]步驟510、核2接收到升級成功指令后,開始接收報文并按照升級文件中轉(zhuǎn)發(fā)處理程序?qū)笪倪M(jìn)行處理;
[0102]步驟511、核I接收到暫停指令后,停止對多核路由器的硬件資源的使用;
[0103]步驟512、核2占用多核路由器的硬件資源,并向核I和核4發(fā)送升級完成指令;
[0104]步驟513、核I和和4接收到升級完成指令后,執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,接收報文并對報文進(jìn)行處理,至此,版本升級全部完成。
[0105]本領(lǐng)域技術(shù)人員可也理解,當(dāng)核3執(zhí)行升級文件中的主控制程序后,上述步驟506-步驟508中,核3也可向所有的轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級指令,先升級全部的轉(zhuǎn)發(fā)核,其后,再對主控核進(jìn)行升級為轉(zhuǎn)發(fā)核。
[0106]上述步驟512和步驟513中,核I已暫停執(zhí)行對硬件資源的使用,因此,普通報文的發(fā)送已經(jīng)不被控制核所接收,因此,核3可通過郵箱中斷發(fā)送升級完成指令給主控核,以將主控核轉(zhuǎn)為轉(zhuǎn)發(fā)核。
[0107]圖6為本發(fā)明實施例六提供的多核路由器中第一轉(zhuǎn)發(fā)核的結(jié)構(gòu)示意圖。本實施例多核核包括主控核和多個轉(zhuǎn)發(fā)核,該主控核與多個轉(zhuǎn)發(fā)核之間均可相互連接,其中,如圖6所示,該多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核包括升級指令接收模塊11、升級處理模塊12和升級完成模塊13,其中:
[0108]升級指令接收模塊11,用于接收主控核發(fā)送的升級指令,該升級指令用于指示第一轉(zhuǎn)發(fā)核轉(zhuǎn)為新的主控核;
[0109]升級處理模塊12,用于接收到所述升級指令后,執(zhí)行升級文件中的主控制程序;
[0110]升級完成模塊13,用于將第一轉(zhuǎn)發(fā)核作為新的主控核。
[0111]本實施例中,上述的升級處理模塊12,具體可用于接收到所述升級指令后,停止接收新的報文,并輪詢所述第一轉(zhuǎn)發(fā)核的緩存器中的報文,以及用于輪詢到包括所述升級指令的報文時,執(zhí)行所述升級文件中的主控制程序。
[0112]本實施例中,如圖6所示,第一轉(zhuǎn)發(fā)核還可包括轉(zhuǎn)發(fā)核升級指令發(fā)送模塊14,用于向所述多個轉(zhuǎn)發(fā)核中除第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級指令,以便接收到該轉(zhuǎn)發(fā)核升級指令的轉(zhuǎn)發(fā)核執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序,實現(xiàn)轉(zhuǎn)發(fā)核的升級。具體地,該轉(zhuǎn)發(fā)核升級指令發(fā)送模塊14可用于向多個轉(zhuǎn)發(fā)核中除第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核中的部分轉(zhuǎn)發(fā)核發(fā)送升級指令。
[0113]本實施例中,如圖6所示,第一轉(zhuǎn)發(fā)核還可包括升級完成指令發(fā)送模塊15,用于向主控核和未實現(xiàn)轉(zhuǎn)發(fā)核升級的轉(zhuǎn)發(fā)核發(fā)送升級完成指令,以便主控核或未實現(xiàn)轉(zhuǎn)發(fā)核升級的轉(zhuǎn)發(fā)核接收到升級完成指令后,執(zhí)行升級文件中的轉(zhuǎn)發(fā)處理程序。[0114]本實施例提供的多核路由器,第一轉(zhuǎn)發(fā)核可執(zhí)行上述本發(fā)明實施例提供的方法完成版本升級過程,其具體實現(xiàn)可參見上述本發(fā)明方法實施例的說明,在此不再贅述。
[0115]圖7為本發(fā)明實施例七提供的多核路由器中主控核的結(jié)構(gòu)示意圖。本實施例多核核包括主控核和多個轉(zhuǎn)發(fā)核,如圖7所示,該主控核包括升級文件獲取模塊21和升級指令發(fā)送模塊22,其中:
[0116]升級文件獲取模塊21,用于獲取用于版本升級的升級文件,并存儲;
[0117]升級指令發(fā)送模塊22,用于向多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核發(fā)送升級指令,以便第一轉(zhuǎn)發(fā)核接收到該升級指令后執(zhí)行升級文件中的主控制程序,作為新的主控核。其中,該第一轉(zhuǎn)發(fā)核具體可以為圖6中所示的第一轉(zhuǎn)發(fā)核。
[0118]本實施例中,如圖7所示,該主控核還可包括升級完成指令接收模塊23,用于接收第一轉(zhuǎn)發(fā)核發(fā)送的升級完成指令;以及主控核升級處理模塊24,用于將主控核作為轉(zhuǎn)發(fā)核,執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序。
[0119]本實施例提供的多核路由器,主控核可執(zhí)行上述本發(fā)明實施例提供的方法完成版本升級過程,其具體實現(xiàn)可參見上述本發(fā)明方法實施例的說明,在此不再贅述。
[0120]本領(lǐng)域技術(shù)人員可以理解,上述圖6所示的多核路由器中,主控核也可包括圖7所示主控核中的各功能模塊,其可以與第一轉(zhuǎn)發(fā)核一起實現(xiàn)對固件的升級處理。
[0121]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0122]最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種多核路由器的版本升級處理方法,所述多核路由器包括主控核和多個轉(zhuǎn)發(fā)核,其特征在于,所述方法包括: 所述多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核接收所述主控核發(fā)送的升級指令,所述升級指令用于指示所述第一轉(zhuǎn)發(fā)核轉(zhuǎn)為新的主控核; 所述第一轉(zhuǎn)發(fā)核接收到所述升級指令后,執(zhí)行升級文件中的主控制程序; 將所述第一轉(zhuǎn)發(fā)核作為新的主控核。
2.根據(jù)權(quán)利要求1所述的多核路由器的版本升級處理方法,其特征在于,所述第一轉(zhuǎn)發(fā)核接收到所述升級指令后,執(zhí)行升級文件中的主控制程序,具體包括: 所述第一轉(zhuǎn)發(fā)核接收到所述升級指令后,停止接收新的報文,并輪詢所述第一轉(zhuǎn)發(fā)核的緩存器中的報文; 所述第一轉(zhuǎn)發(fā)核輪詢到包括所述升級指令的報文時,執(zhí)行所述升級文件中的主控制程序。
3.根據(jù)權(quán)利要求2所述的多核路由器的版本升級處理方法,其特征在于,所述將所述第一轉(zhuǎn)發(fā)核作為新的主控核之前,還包括: 向所述多個轉(zhuǎn)發(fā)核中除所述第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級指令,以便接收到所述轉(zhuǎn)發(fā)核升級指令的轉(zhuǎn)發(fā)核執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序,實現(xiàn)轉(zhuǎn)發(fā)核的升級。
4.根據(jù)權(quán)利要求3所述的多核路由器的版本升級處理方法,其特征在于,所述向所述多個轉(zhuǎn)發(fā)核中除所述第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級指令,具體包括: 向所述多個轉(zhuǎn)發(fā)核中除所述第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核中的部分轉(zhuǎn)發(fā)核發(fā)送升級指令。
5.根據(jù)權(quán)利要求3或4所述的多核路由器的版本升級處理方法,其特征在于,所述將所述第一轉(zhuǎn)發(fā)核作為新的主控核之前,還包括: 向所述主控核和未實現(xiàn)轉(zhuǎn)發(fā)核升級的轉(zhuǎn)發(fā)核發(fā)送升級完成指令,以便所述主控核或未實現(xiàn)轉(zhuǎn)發(fā)核升級的轉(zhuǎn)發(fā)核接收到所述升級完成指令后,執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序。
6.一種多核路由器的版本升級處理方法,所述多核路由器包括主控核和多個轉(zhuǎn)發(fā)核,其特征在于,所述方法包括: 獲取用于版本升級的升級文件,并存儲; 向所述多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核發(fā)送升級指令,以便所述第一轉(zhuǎn)發(fā)核接收到所述升級指令后執(zhí)行所述升級文件中的主控制程序,作為新的主控核。
7.根據(jù)權(quán)利要求6所述的多核路由器的版本升級處理方法,其特征在于,還包括: 接收所述第一轉(zhuǎn)發(fā)核發(fā)送的升級完成指令; 將所述主控核作為轉(zhuǎn)發(fā)核,執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序。
8.一種多核路由器,包括主控核和多個轉(zhuǎn)發(fā)核,其特征在于,所述多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核包括: 升級指令接收模塊,用于接收所述主控核發(fā)送的升級指令,所述升級指令用于指示所述第一轉(zhuǎn)發(fā)核轉(zhuǎn)為新的主控核; 升級處理模塊,用于接收到所述升級指令后,執(zhí)行升級文件中的主控制程序;升級完成模塊,用于將所述第一轉(zhuǎn)發(fā)核作為新的主控核。
9.根據(jù)權(quán)利要求8所述的多核路由器,其特征在于,所述升級處理模塊,具體用于接收到所述升級指令后,停止接收新的報文,并輪詢所述第一轉(zhuǎn)發(fā)核的緩存器中的報文,以及用于輪詢到包括所述升級指令的報文時,執(zhí)行所述升級文件中的主控制程序。
10.根據(jù)權(quán)利要求9所述的多核路由器,其特征在于,還包括: 轉(zhuǎn)發(fā)核升級指令發(fā)送模塊,用于向所述多個轉(zhuǎn)發(fā)核中除所述第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核發(fā)送轉(zhuǎn)發(fā)核升級指令,以便接收到所述轉(zhuǎn)發(fā)核升級指令的轉(zhuǎn)發(fā)核執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序,實現(xiàn)轉(zhuǎn)發(fā)核的升級。
11.根據(jù)權(quán)利要求10所述的多核路由器,其特征在于,所述轉(zhuǎn)發(fā)核升級指令發(fā)送模塊,具體用于向所述多個轉(zhuǎn)發(fā)核中除所述第一轉(zhuǎn)發(fā)核之外的其他轉(zhuǎn)發(fā)核中的部分轉(zhuǎn)發(fā)核發(fā)送升級指令。
12.根據(jù)權(quán)利要求10或11所述的多核路由器,其特征在于,還包括: 升級完成指令發(fā)送模塊,用于向所述主控核和未實現(xiàn)轉(zhuǎn)發(fā)核升級的轉(zhuǎn)發(fā)核發(fā)送升級完成指令,以便所述主控核或未實現(xiàn)轉(zhuǎn)發(fā)核升級的轉(zhuǎn)發(fā)核接收到所述升級完成指令后,執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序。
13.一種多核路由器,包括主控核和多個轉(zhuǎn)發(fā)核,其特征在于,所述主控核包括: 升級文件獲取模塊,用于獲取用于版本升級的升級文件,并存儲; 升級指令發(fā)送模塊,用于向所述多個轉(zhuǎn)發(fā)核中的第一轉(zhuǎn)發(fā)核發(fā)送升級指令,以便所述第一轉(zhuǎn)發(fā)核接收到所述升級指令后執(zhí)行所述升級文件中的主控制程序,作為新的主控核。
14.根據(jù)權(quán)利要求13所述的 多核路由器,其特征在于,還包括: 升級完成指令接收模塊,用于接收所述第一轉(zhuǎn)發(fā)核發(fā)送的升級完成指令; 主控核升級處理模塊,用于將所述主控核作為轉(zhuǎn)發(fā)核,執(zhí)行所述升級文件中的轉(zhuǎn)發(fā)處理程序。
【文檔編號】H04L12/24GK103856349SQ201210524125
【公開日】2014年6月11日 申請日期:2012年12月7日 優(yōu)先權(quán)日:2012年12月7日
【發(fā)明者】鄧軍軍, 余興 申請人:華為技術(shù)有限公司