发明内容
有鉴于此,本发明提供一种ISSU升级过程协议不中断的方法及装置,以解决现有技术方案中,线卡板CPU重启导致协议报文丢失引起的协议异常的问题。
为达到上述目的,本发明提供一种ISSU升级过程中协议不中断的方法,应用于网络设备上,所述网络设备中配置有主控板及至少配有两块线卡板,并且线卡板间存在物理通道,所述方法包括:
主控板为升级线卡板选定备用线卡板,将备用线卡板信息附带在通知消息中通知升级线卡板升级,并始终保持备用线卡板在升级过程中不被升级重启;
主控板修改对应升级线卡板的协议发包处理流程,将发往升级线卡板的协议报文软转发给备用线卡板,由备用线卡板通过线卡板间的物理通道硬件转发给升级线卡板;
升级线卡板收到主控板的通知消息后,修改升级线卡板上送CPU本地转发表项,将需要上送升级线卡板CPU的协议报文,通过线卡板间的物理通道硬件转发到备用线卡板上,由备用线卡板将协议报文软转发给主控板。
优选地,所述主控板进一步用于选择已升级完成的线卡板或者尚未开始升级的线卡板作为备用线卡板。
优选的,所述主控板进一步用于通知两个以及两个以上线卡板进行升级。
优选地,所述升级线卡板在升级完成后,修改上送CPU本地转发表项,将协议报文目的地址重设为本地总线,并通知主控板升级完成。
优选地,所述主控板进一步用于在收到升级线卡板升级完成的通知消息后,恢复对应的所述升级线卡板的协议发包处理流程,主控板发往所述升级线卡板的协议报文不再软转给备用线卡板。
本发明还提供一种ISSU升级过程中协议不中断的设备,应用于网络设备上,所述网络设备中配置有主控板及至少配有两块线卡板,并且线卡板间存在物理通道,所述设备包括:
升级控制单元,用于为升级线卡板选定备用线卡板,将备用线卡板信息附带在通知消息中通知升级线卡板升级,并始终保持备用线卡板在升级过程中不被升级重启;
主控板转送单元,用于修改主控板对应升级线卡板的协议发包处理流程,将发往升级线卡板的协议报文软转发给备用线卡板,再由备用线卡板通过线卡板间的物理通道硬件转发到升级线卡板;
线卡板转送单元,用于在收到主控板通知升级的消息后,修改升级线卡板上送CPU本地转发表项,将需要上送升级线卡板CPU的协议报文,通过线卡板间的物理通道硬件转发给备用线卡板,由备用线卡板将协议报文软转发给主控板。
优选地,所述升级控制单元进一步用于选择已升级完成的线卡板或者尚未开始升级的线卡板作为备用线卡板;
优选地,所述升级控制单元进一步用于通知两个以及两个以上线卡板进行升级。
优选地,所述线卡板转送单元进一步用于,在升级完成后,修改升级线卡板上送CPU本地转发表项,将协议报文目的地址重设为本地总线,并通知主控板升级完成。
优选地,所述主控板转送单元进一步用于在收到升级线卡板升级完成的通知消息后,恢复对应的所述升级线卡板的协议发包处理流程,主控板发往所述升级线卡板的协议报文不再软转给备用线卡板。。
与现有技术相比,本发明实施例至少具有以下优点:ISSU升级过程中,在线卡板上ASIC/NP转发芯片与主控板CPU无数据通道的情况下,ISSU升级过程协议不丢包。同时在ISSU升级过程中,线卡板间协议报文的转发,复用普通数据报文通道,基于现有的硬件不需要额外辅助,降低了硬件成本。
具体实施方式
本发明提供一种简单易行的机制,通过复用线卡板间物理通道,使得在ISSU升级过程中,在网络设备上线卡板ASIC/NP转发芯片与主控板CPU无数据通道的情况下,实现升级过程协议不中断。
参见图1,本发明是在如图1所示形态的网络设备上实施的。在优选的实施方式中所述网络设备为高端交换机和路由器。所述高端交换机和路由器中配置有主控板及至少配有两块线卡板,并且线卡板间存在物理通道,两块主控板,负责整个设备的管理以及各种协议的运行。两主控板互为备份,一块主控板异常后,另外一块代替其对设备的管理和协议运行工作,主控板与主控板之间通过LSW(Lan Switch,局域网交换机)交换芯片互连。
参见图2,图2是本实施例中高端交换机和路由器主控板与线卡板的具体连接图,其中ASIC/NP芯片负责网络数据报文的转发和接收设备需要处理的协议报文,将接收到的数据报文或协议报文交由本板CPU或主控板处理。主控板与线卡板之间,可使用LSW与线卡板转发芯片互连,也可使用LSW与线卡板CPU相连。其中LSW与线卡板转发芯片互连构成数据通道,用来转发主控板与线卡板间的数据报文;LSW与线卡板CPU互连构成控制通道,用来转发主控板与线卡板间的协议报文。线卡板与线卡板之间,通过转发芯片互连形成物理通道,在现有技术中,该物理通道用来传送线卡板间的普通数据报文。
与接收普通数据报文相同,线卡板接收到协议报文后,转发到对应的ASIC/NP转发芯片,由ASIC/NP转发芯片决定硬转发或软转发到主控板CPU。硬转发需主控板与线卡板之间有专用数据通道,并且要求转发芯片预留专用转发物理端口。软转发基于主控板与线卡板间的控制通道,转发芯片将报文通过本地PCI-E(Peripheral Component Interconnect Express,外部设备总线标准)总线或其它通道上送本地线卡板CPU,然后由线卡板CPU将报文转发到主控板处理。
协议报文发送与协议报文接收类似,也可以基于两种方式实现,主控板使用专用数据通道传输协议报文到对应ASIC/NP转发芯片,或将报文软转发到线卡板CPU,然后由线卡板CPU将报文再转发到下挂ASIC/NP转发芯片。协议报文采用CPU软转发方案,可以减少转发芯片物理端口浪费,同时可以降低硬件成本,但对于线卡板CPU要求略高。随着CPU性能的提升,CPU已不是协议报文软转发瓶颈,因此本发明中所提及的协议报文转发采用CPU软转发方案。
ISSU升级前正常工作状态下,参见图2,线卡板协议报文分别通过本地PCI-E总线上送本地CPU,然后由本地CPU软转发到主控板CPU。主控板发送协议报文,分别软转发到线卡板的CPU,然后线卡板本地CPU再通过本地PCI-E总线将协议报文转发到本地ASIC/NP转发芯片,ASIC/NP转发芯片再将协议报文转到协议对应的出端口。
以下结合附图对本发明所述技术方案进行详细描述。
本发明提供一种ISSU升级过程协议不中断的方法,应用在网络设备上,参见图3,该方法具体执行如下步骤:
步骤S301,主控板为升级线卡板选定备用线卡板;其中主控板始终保持所选择的备用线卡板在升级过程中不被升级重启,只有在相关线卡板升级完成后,才启动备用线卡板的升级过程;
在该步骤中,主控板优先选择已经升级完成的线卡板作为备用线卡板,当没有线卡板完成升级时,指定尚未开始升级的线卡板作为备用线卡板。
步骤S302,主控板通知升级线卡板进行升级,通知消息中附带备用线卡板信息;
具体地,在该步骤中,主控板可以同时通知两个以及两个以上的多块线卡板进行升级,而且两个以及两个以上的多块线卡板在升级过程中可以使用同一块线卡板作为备用线卡板,备用线卡板通过分别读取主控板协议报文中所附带物理出端口信息,将协议报文准确转送至对应的升级线卡板。
步骤S303,修改主控板对应升级线卡板的协议发包处理流程,主控板发往升级线卡板的协议报文将被重定向到备用线卡板。
具体地,所述协议发包处理流程在修改前,主控板在协议报文中附加物理出端口目的地址,协议报文将通过主控板CPU直接软转发给升级线卡板CPU,升级线卡板CPU再通过本地总线将协议报文转发到本地转发芯片,最后本地转发芯片根据协议报文中附带的物理出端口地址将协议报文硬件转发到升级线卡板对应的目的端口上。当主控板修改了协议发包处理流程,此时协议报文不再软转发给升级线卡板CPU,而是软转发到备用线卡板CPU。
步骤S304,主控板发往升级线卡板的协议报文被软转发到备用线卡板上,由备用线卡板通过线卡板间的物理通道硬件转发给升级线卡板;
具体地,在该步骤中,由于升级线卡板CPU在升级过程中停止协议软转发工作,主控板发往被升级线卡板的协议报文,将通过主控板CPU软转到对应的备用线卡板CPU上,备用线卡板CPU接收到主控板发来的协议报文后,将协议报文通过本地PCI-E总线转发到本地ASIC/NP转发芯片,备用线卡板本地ASIC/NP转发芯片读取协议报文中的物理出端口目的地址,通过线卡板间的物理通道将协议报文硬件转发到被升级线卡板对应的目的端口上。
步骤S305,升级线卡板接收到主控板发来的通知消息后,修改上送CPU的本地转发表项,将协议报文目的地址设为备用线卡板。
具体地,主控板将通知消息通过主控板CPU软转发到升级线卡板CPU,升级线卡板CPU通过本地PCI-E总线将通知消息下发到本地ASIC/NP转发芯片并通知ASIC/NP转发芯片修改本地转发表项,本地ASIC/NP转发芯片接收到该通知消息后,修改上送CPU的本地转发表项,将协议报文的目的地址设为备用线卡板转发芯片。
步骤S306,升级开始后,需要上送升级线卡板CPU的协议报文,通过线卡板间的物理通道,硬件转发给备用线卡板,再由备用线卡板软转发给主控板;
具体地,在该步骤中,由于升级线卡板在升级过程中停止协议软转发工作,需要上送到本地CPU的协议报文将无法透传,因此被升级线卡板需要将上送本地CPU的协议报文通过与备用线卡板间的物理通道转发到备用线卡板ASIC/NP转发芯片上,备用线卡板ASIC/NP转发芯片接收到此报文后,通过本地转发表项,将协议报文上送到本地CPU,然后再通过本地CPU软转到主控板CPU上。
步骤S307,当升级线卡板升级完成后,再次修改升级线卡板的上送CPU本地转发表项,将协议报文目的地址重设为本地PCI-E总线,并通知主控板升级完成;
具体地,在该步骤中,对于升级完成的线卡板,协议报文将直接透传,该线卡板送往主控板的协议报文不再需要通过线卡板间的物理通道硬件转发到备用线卡板ASIC/NP转发芯片,协议报文将通过本地PCI-E总线上送到本地CPU,再经过本地CPU直接软转发给主控板CPU。
步骤S308,主控板收到升级线卡板升级完成的通知消息后,恢复对应的所述升级线卡板的协议发包处理流程,主控板发往所述升级线卡板的协议报文不再软转给备用线卡板。
具体地,在该步骤中,由于升级完成的线卡板协议报文将直接透传,主控板发往该线卡板的协议报文不再软转给备用线卡板CPU,将通过主控板CPU直接软转发到升级线卡板CPU。至此升级完成,主控板通知其他未升级线卡板进行升级,重复以上各步骤。
基于与上述方法同样的构思,本发明还提供一种ISSU升级过程协议不中断的装置40,如图4所示,应用于网络设备上,所述装置40包括:
升级控制单元41,用于为升级线卡板选定备用线卡板,始终保持备用线卡板在升级过程中不被升级重启,并将备用线卡板信息附带在通知消息中通知升级线卡板升级;
主控板转送单元42,用于修改主控板对应升级线卡板的协议发包处理流程,将发往升级线卡板的协议报文软转发给备用线卡板,由备用线卡板通过线卡板间的物理通道硬件转发到升级线卡板;
线卡板转送单元43,用于在收到主控板通知升级的消息后,修改升级线卡板上送CPU本地转发表项,将需要上送升级线卡板CPU的协议报文,通过线卡板间的物理通道硬件转发给备用线卡板,由备用线卡板将协议报文软转发给主控板。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
通过以上实施例的描述,本领域技术人员可以理解实施例中装置中的单元可以合并为一个单元,也可以进一步拆分成多个子单元。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。