本发明专利技术公开了一种路由器及其软件升级方法,其中,该路由器包括:多核CPU以及相互独立的第一内存区域和第二内存区域,多核CPU包括控制平面CPU和数据平面CPU,其中:第一内存区域用于存储控制平面程序;第二内存区域用于存储数据平面程序;数据平面CPU用于使用第二内存区域中的数据平面程序处理数据报文;控制平面CPU用于使用第一内存区域中的控制平面程序处理协议报文,以及,当路由器进行软件升级时,进行复位并仅将第一内存区域清零,在复位启动后,将新版本的控制平面程序加载到第一内存区域,并运行第一内存区域中的新版本的控制平面程序。本发明专利技术能够提高软转发路由器的可用性。
【技术实现步骤摘要】
路由器及其软件升级方法
本专利技术涉及软件升级
,特别涉及一种路由器及其软件升级方法。
技术介绍
最初的软件升级,尤其是嵌入式系统的软件升级,主要依赖于软件的重新启动。但是,这个过程持续的时间较长,并且在软件升级过程中,业务会处于中断状态。而对于某些核心设备以及某些特殊应用场合的设备来说,这样的代价是不能接受的。所以,如何在软件升级过程中确保业务不发生中断,成为亟待解决的问题。为了解决上述问题,提出了ISSU(In-ServiceSoftwareUpgrade,业务不中断升级)。ISSU是一种能够保证在软件升级过程中,业务不中断或者中断时间较短的升级方式,它提供了高可用性的软件升级方式。与之前的软件升级不同的是,支持ISSU的设备在升级过程中,业务是处于正常状态,因此,能够在最大程度上,为用户提供了高可用性。路由器是网络中进行数据路由转发的重要设备之一。按照由软件实现数据转发、还是由硬件实现数据转发,可以将路由器分为软转发路由器和硬转发路由器两类。其中,软转发路由器是指通过CPU(CentralProcessingUnit,中央处理单元)转发的路由器。和它相对的硬转发路由器,通常包括NP(NetworkProcessor,网络处理器)转发、ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)转发、FPGA(FieldProgrammableGateArray,现场可编程门阵列)转发的路由器等。现有技术中,硬转发路由器可以通过与交换机类似的方式支持ISSU,即,在软件升级过程中,CPU重启,而负责业务转发的转发芯片不重启,从而做到转发的业务数据不中断。但是,由于软转发路由器是通过CPU进行业务转发的,因此,无法采用上述方法来实现ISSU,从而无法在软件升级过程中,实现业务不中断。
技术实现思路
有鉴于此,本专利技术提供了一种路由器及其软件升级方法,以至少解决软转发路由器无法实现ISSU,即无法在软件升级过程中,实现业务不中断的问题。本专利技术的技术方案如下:一方面,提供了一种路由器,该路由器通过CPU转发数据报文,包括:多核CPU以及相互独立的第一内存区域和第二内存区域,多核CPU包括控制平面CPU和数据平面CPU,其中:第一内存区域用于存储控制平面程序,控制平面程序包括路由协议的相关程序;第二内存区域用于存储数据平面程序,数据平面程序包括数据报文转发处理的相关程序;数据平面CPU用于使用第二内存区域中的数据平面程序处理数据报文;控制平面CPU用于使用第一内存区域中的控制平面程序处理协议报文,以及,当路由器进行软件升级时,进行复位并仅将第一内存区域清零,在复位启动后,将新版本的控制平面程序加载到第一内存区域,并运行第一内存区域中的新版本的控制平面程序。另一方面,还提供了一种路由器的软件升级方法,该路由器通过CPU转发数据报文,该路由器包括多核CPU以及相互独立的第一内存区域和第二内存区域,多核CPU包括控制平面CPU和数据平面CPU,该方法包括:在第一内存区域存储控制平面程序,控制平面程序包括路由协议的相关程序,控制平面CPU使用第一内存区域中的控制平面程序处理协议报文;在第二存储区域存储数据平面程序,数据平面程序包括数据报文转发处理的相关程序,数据平面CPU使用第二内存区域中的数据平面程序处理数据报文;控制平面CPU在路由器需要进行软件升级时,复位自身并将第一内存区域清零;控制平面CPU在复位启动后,将新版本的控制平面程序加载到第一内存区域,并运行第一内存区域中的新版本的控制平面程序。本专利技术的以上技术方案中,通过将路由器中的多核CPU分为负责数据报文转发处理的数据平面CPU和负责数据报文转发处理以外的工作(包括协议报文的处理)的控制平面CPU,将内存分为服务于控制平面CPU的第一内存区域和服务于数据平面CPU的第二内存区域,在路由器开始进行软件升级时,仅复位控制平面CPU并仅对第一内存区域清零,控制平面CPU在复位启动后,加载并运行新版本的控制平面程序,在此过程中,数据平面CPU维持运行状态并且第二内存区域不清零,这样,能够确保负责数据报文转发处理(即业务转发处理)的数据平面CPU在控制平面CPU进行软件升级过程中,仍然能够正常运行,进行数据报文转发处理,从而确保了业务的不中断,支持了ISSU,提高了软转发路由器的可用性。附图说明图1是根据本专利技术的实施例一的软转发路由器的架构图;图2是根据本专利技术的实施例一的软转发路由器的软件升级方法的流程图;图3是根据本专利技术的实施例二的在写入新版本的数据平面程序代码前,Section3的结构示意图;图4是根据本专利技术的实施例二的在写入新版本的数据平面程序代码后,Section3的结构示意图;图5是根据本专利技术的实施例三的控制平面CPU的结构示意图。具体实施方式实施例一本专利技术实施例提供了一种通过CPU转发数据报文的路由器,称为软转发路由器,该路由器的架构如图1所示。该路由器中的CPU为多核CPU(即包含有多个CPU核心),在多核CPU越来越普及的今天,大部分的软转发路由器都是基于多核CPU设计的。另外,该路由器中的内存中包含有两个相互独立的存储区域:第一内存区域和第二内存区域。本实施例中,该路由器中的多核CPU包括两部分:控制平面(ControlPlane)CPU,负责完成协议报文的处理、转发表项生成和下发的工作,路由器上的其它功能,如管理等,也都在控制平面CPU上完成;协议报文包括各种路由选择协议报文,还可以包括网络管理协议报文。数据平面(DataPlane)CPU,负责完成数据报文的转发处理。数据报文包括需要路由器查表转发的报文。控制平面CPU和数据平面CPU中各自包含多核CPU中的1个或多个CPU核心,具体数量由产品形态确定,本专利技术对此不做限定。第一内存区域(在图1中记为Section1)服务于控制平面CPU,用于存储各种协议的相关程序的数据、代码等,例如存储如路由协议(routingprotocol)的相关程序(即控制平面程序),其中,路由协议例如可以是RIP(RoutingInformationProtocol,路由信息协议)、IGP(InteriorGatewayProtocol,内部网关协议)和OSPF(OpenShortestPathFirst,开放最短路径优先)等。第一内存区域还可以存储网络管理等协议的相关程序。控制平面CPU通过运行这些程序,可以实现对路由协议报文、网络管理协议报文等的处理,例如,根据路由协议报文生成及下发数据报文的转发表项、向其他路由器发送路由协议报文等,根据网络管理协议报文执行相应的设备管理等。第二内存区域用于存储数据平面CPU进行数据报文转发处理所需的转发表项、以及数据报文转发处理的相关程序(即数据平面程序)。这个内存区域中的转发表项,数据平面CPU在进行数据报文转发的时候会来查询,而控制平面CPU生成转发表项时会主动下发。也可以进一步将第二内存区域划分为两个存储区域(可以记为:Section2和Section3),一个存储区域(例如为Section2)用于存储转发表项,而另一个存储区域(例如为Section3)用于存储数据报文转发处理的相关程序(即数据平面程序),本专利技术对此不做限定本文档来自技高网...
【技术保护点】
一种路由器,所述路由器通过中央处理单元CPU转发数据报文,其特征在于,包括:多核CPU以及相互独立的第一内存区域和第二内存区域,所述多核CPU包括控制平面CPU和数据平面CPU,其中:所述第一内存区域用于存储控制平面程序,所述控制平面程序包括路由协议的相关程序;所述第二内存区域用于存储数据平面程序,所述数据平面程序包括数据报文转发处理的相关程序;所述数据平面CPU用于使用所述第二内存区域中的数据平面程序处理数据报文;所述控制平面CPU用于使用所述第一内存区域中的控制平面程序处理协议报文,以及,当所述路由器进行软件升级时,进行复位并仅将所述第一内存区域清零,在复位启动后,将新版本的控制平面程序加载到所述第一内存区域,并运行所述第一内存区域中的所述新版本的控制平面程序。
【技术特征摘要】
1.一种路由器,所述路由器通过中央处理单元CPU转发数据报文,其特征在于,包括:多核CPU以及相互独立的第一内存区域和第二内存区域,所述多核CPU包括控制平面CPU和数据平面CPU,其中:所述第一内存区域用于存储控制平面程序,所述控制平面程序包括路由协议的相关程序;所述第二内存区域用于存储数据平面程序,所述数据平面程序包括数据报文转发处理的相关程序;所述数据平面CPU用于使用所述第二内存区域中的数据平面程序处理数据报文;所述控制平面CPU用于使用所述第一内存区域中的控制平面程序处理协议报文,以及,当所述路由器进行软件升级时,进行复位并仅将所述第一内存区域清零,在复位启动后,将新版本的控制平面程序加载到所述第一内存区域,并运行所述第一内存区域中的所述新版本的控制平面程序;其中,所述第二内存区域还用于存储所述控制平面CPU生成并下发的转发表项,所述数据平面CPU还用于按照所述第二内存区域中的转发表项转发数据报文,则,所述控制平面CPU包括:判断模块,用于判断新版本的控制平面程序对应的新转发表项与升级前的旧版本的控制平面程序对应的旧转发表项的格式是否相同;转化模块,用于在所述判断模块的判断结果为所述新转发表项与旧转发表项的格式不同时,对所述第二内存区域中的旧转发表项进行格式转化,以符合所述新转发表项的格式。2.根据权利要求1所述的路由器,其特征在于,所述控制平面CPU还包括:写入模块,其中:所述判断模块还用于在判断出所述新转发表项与旧转发表项的格式相同之后,或者在所述转化模块对所述第二内存区域中的旧转发表项进行转化之后,判断所述数据平面程序是否需要升级;所述写入模块用于在所述判断模块判断所述数据平面程序需要升级时,将新版本的数据平面程序写入所述第二内存区域中的预留区域,所述预留区域与旧版本的数据平面程序的保存位置相独立。3.根据权利要求2所述的路由器,其特征在于,所述数据平面CPU包括至少两个CPU核心,所述至少两个CPU核心逐个从旧版本的数据平面程序切换至新版本的数据平面程序,其中,所述逐个是指一个CPU核心切换至新版本的数据平面程序后,下一个CPU核心再切换。4.根据权利要求3所述的路由器,其特征在于,所述控制平面CPU还包括:删除模块,用于在所述数据平面CPU包含的所有CPU核心均切换至新版本的数据平面程序后,删除所述第二内存区域中...
【专利技术属性】
技术研发人员:魏巍,
申请(专利权)人:杭州华三通信技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。