一种加速PBT隧道故障快速倒换的方法
技术领域
本发明涉及PBT隧道故障处理,具体的说是一种加速PBT隧道故障快速倒换的方法。
背景技术
随着PBT技术(Provider Backbone Transport,运营商骨干传送)的发展和成熟,对多个PBT隧道提供小于50毫秒的保护倒换时间则是需要解决的问题。目前PBT隧道故障处理方案是这样的:在故障发生时,线卡通过管理通道把故障隧道信息逐条上报给主控板卡,主控板卡接收并处理上报的单条故障隧道信息,生成相应的隧道倒换信息,然后主控板卡通过管理通道把单条故障隧道的倒换信息下发到故障相关联的所有线卡上执行倒换操作。这种PBT隧道故障保护倒换方式在单条故障隧道的保护倒换过程中主控板卡与线卡进行了至少两次CPU之间的通信过程,如果有N条故障隧道,则倒换过程中至少需要主控板卡与线卡进行2×N次CPU通信过程才能完成倒换。这种PBT隧道故障保护倒换方式不但消耗了管理带宽并且增加了保护倒换时延,在PBT隧道数量较少时可以达到小于50毫秒的保护倒换时间,若增加PBT保护隧道数量则相应的故障倒换时间也会增加,无法满足小于50毫秒的保护倒换时间要求,这样就对PBT隧道数量有了一定的限制。如何保证在多个PBT隧道同时出现故障的情况下仍然保证50毫秒的倒换时间则成为一个有待解决的实际问题。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种加速PBT隧道故障快速倒换的方法,通过故障隧道的批量收集、批量上报,以及隧道倒换信息的批量下发、批量写入,实现在多个PBT隧道同时出现故障的情况下仍然能保证50毫秒的倒换时间,并且不占用过多CPU及管理通道资源,易于实现和扩展。
为达到以上目的,本发明采取的技术方案是:
一种加速PBT隧道故障快速倒换的方法,其特征在于:其具体步骤为:
101、线卡实时批量收集所有故障隧道信息,并把收集到的多个故障隧道信息打包封装到一个数据包中,得到封装的故障隧道信息数据包,完成批量收集操作;
102、线卡经管理通道把封装的故障隧道信息数据包上报主控板卡,完成批量上报操作;
103、主控板卡接收线卡上报的封装的故障隧道信息数据包并逐条进行故障处理,生成故障隧道倒换信息,并把生成的故障隧道倒换信息存储在主控板卡上的隧道倒换信息库内;
104、主控板卡处理完成一个封装的故障隧道信息数据包内的所有数据后,通过管理通道把隧道倒换信息库内的故障隧道倒换信息批量下发给故障相关的所有线卡,完成批量下发操作;
105、故障相关的所有线卡分别从管理通道接收主控板卡下发的故障隧道倒换信息,并将故障隧道倒换信息批量写入硬件表,完成故障隧道的倒换操作。
在上述技术方案的基础上,步骤101中,所说的故障隧道是指连续三次不能收到对方回应帧的PBT隧道,所说的故障隧道信息至少包括隧道工作状态、隧道ID;所说的数据包的封装格式为:版本号+数据长度+类型+隧道个数+隧道状态列表。
在上述技术方案的基础上,步骤102中,如果需要上报的封装的故障隧道信息数据包的大小超过管理通道的最大传输单元MTU限制,则线卡先根据管理通道的最大传输单元MTU的大小拆分封装的故障隧道信息数据包,再将拆分后的封装的故障隧道信息数据包逐一上报。
在上述技术方案的基础上,步骤103中,当主控板卡接收线卡上报的拆分后的封装的故障隧道信息数据包时,主控板卡可采用两种方式进行处理:一是接收到所有的拆分后的封装的故障隧道信息数据包并合并成封装的故障隧道信息数据包后,再逐条进行故障处理,生成故障隧道倒换信息;二是边接收拆分后的封装的故障隧道信息数据包,边逐条进行故障处理,生成故障隧道倒换信息。
在上述技术方案的基础上,步骤104中,如果需要下发的故障隧道倒换信息的大小超过管理通道的最大传输单元MTU限制,则主控板卡先根据管理通道的最大传输单元MTU的大小拆分故障隧道倒换信息,再将拆分后的故障隧道倒换信息逐一下发。
在上述技术方案的基础上,步骤105中,故障相关的所有线卡分别使用系统提供的一次可更改多个连续隧道的工作状态的功能指令完成批量写入硬件表操作,当系统不提供一次可更改多个连续隧道的工作状态的功能指令时,则逐条把故障隧道倒换信息写入硬件隧道表项。
本发明所述的加速PBT隧道故障快速倒换的方法,通过故障隧道的批量收集、批量上报,以及隧道倒换信息的批量下发、批量写入,实现在多个PBT隧道同时出现故障的情况下仍然能保证50毫秒的倒换时间,并且不占用过多CPU及管理通道资源,易于实现和扩展。
附图说明
本发明有如下附图:
图1故障隧道信息数据包的封装格式
图2加速PBT隧道故障快速倒换的方法的流程图
具体实施方式
以下结合附图对本发明作进一步详细说明。
图2为本发明所述的加速PBT隧道故障快速倒换的方法的流程图。如图所示,其具体步骤为:
101、线卡实时批量收集所有故障隧道信息,并把收集到的多个故障隧道信息打包封装到一个数据包中,得到封装的故障隧道信息数据包,完成批量收集操作;
102、线卡经管理通道把封装的故障隧道信息数据包上报主控板卡,完成批量上报操作;
103、主控板卡接收线卡上报的封装的故障隧道信息数据包并逐条进行故障处理,生成故障隧道倒换信息,并把生成的故障隧道倒换信息存储在主控板卡上的隧道倒换信息库内;
104、主控板卡处理完成一个封装的故障隧道信息数据包内的所有数据后,通过管理通道把隧道倒换信息库内的故障隧道倒换信息批量下发给故障相关的所有线卡,完成批量下发操作;
105、故障相关的所有线卡分别从管理通道接收主控板卡下发的故障隧道倒换信息,并将故障隧道倒换信息批量写入硬件表,完成故障隧道的倒换操作。
在上述技术方案的基础上,步骤101中,所说的故障隧道是指连续三次不能收到对方回应帧的PBT隧道,所说的故障隧道信息至少包括隧道工作状态、隧道ID;所说的数据包的封装格式为:版本号+数据长度+类型+隧道个数+隧道状态列表,封装格式可参见图1。把多个发生故障的PBT隧道的故障隧道信息封装到一个数据包中去,可以有效减少向主控板卡上报的次数。其中其值目前为1的“类型”字段为预留字段,以便将来扩展时用。故障隧道的判断也可以采用现有技术实现或根据需要自行制定判断规则。
在上述技术方案的基础上,步骤102中,如果需要上报的封装的故障隧道信息数据包的大小超过管理通道的最大传输单元MTU限制,则线卡先根据管理通道的最大传输单元MTU的大小拆分封装的故障隧道信息数据包,再将拆分后的封装的故障隧道信息数据包逐一上报。拆分后的封装的故障隧道信息数据包最好能在和主控板卡的一个会话链接中完成上报,以减少线卡与主控板卡之间建立链接的次数。如果在一个会话链接中不能完成上报,也可在多个会话链接中进行故障隧道信息的上报,其结果是增加了会话链接次数和故障上报的时延。
在上述技术方案的基础上,步骤103中,当主控板卡接收线卡上报的拆分后的封装的故障隧道信息数据包时,主控板卡可采用两种方式进行处理:一是接收到所有的拆分后的封装的故障隧道信息数据包并合并成封装的故障隧道信息数据包后,再逐条进行故障处理,生成故障隧道倒换信息;二是边接收拆分后的封装的故障隧道信息数据包,边逐条进行故障处理,生成故障隧道倒换信息。生成故障隧道倒换信息均存储于主控板卡的隧道倒换信息库内,而不是逐条下发到故障隧道所关联的线卡上,这样做的目的是为了减少主控板卡与线卡之间的通信次数,以保证倒换时间的要求。隧道倒换信息库是一个或多个隧道倒换信息的集合,隧道倒换信息写入隧道倒换信息库时按隧道ID从小到大依次存放,每条隧道倒换信息占用隧道倒换信息库的一行。隧道倒换信息库的实质是一个数据库,隧道倒换信息库的实现可以采用现有技术。
在上述技术方案的基础上,步骤104中,如果需要下发的故障隧道倒换信息的大小超过管理通道的最大传输单元MTU限制,则主控板卡先根据管理通道的最大传输单元MTU的大小拆分故障隧道倒换信息,再将拆分后的故障隧道倒换信息逐一下发。拆分后的故障隧道倒换信息最好能在和线卡的一个会话链接中完成上报,以减少线卡与主控板卡之间建立链接的次数。如果在一个会话链接中不能完成上报,也可在多个会话链接中进行故障隧道信息的上报,其结果是增加了会话链接次数和故障上报的时延。
在上述技术方案的基础上,步骤105中,故障相关的所有线卡分别使用系统提供的一次可更改多个连续隧道的工作状态的功能指令完成批量写入硬件表操作,当系统不提供一次可更改多个连续隧道的工作状态的功能指令时,则逐条把故障隧道倒换信息写入硬件隧道表项。批量写入隧道倒换信息要求系统提供一次可更改多个连续隧道的工作状态的功能指令,以此加速硬件隧道表项的倒换速度。如果硬件不支持批量写入的功能,也可把隧道倒换信息逐条写入硬件隧道表项,但增加了隧道倒换时延。例如:武汉烽火网络M8228E和M8416E两款PBT设备就提供了批量写入隧道倒换信息的指令,且硬件隧道倒换功能的实现是通过关闭或打开隧道的发送和接收功能来完成的。其提供的sys_ITag_Up_Link_Valid_BMP_write_once指令实现了对一组连续的隧道发送功能的同时操作,且允许该组连续隧道中部分隧道打开发送功能部分隧道关闭发送功能。该指令的参数依次包括:故障端口号;该组连续隧道中起始隧道的硬件地址;隧道组中各隧道的发送状态(1表示允许发送,0表示不允许发送)。其提供的sys_ITag_Down_LinK_Valid_BMP_write_once指令实现了对一组连续的隧道接收功能的同时操作,且允许该组连续隧道中部分隧道打开接收功能部分隧道关闭接收功能。该指令的参数依次包括:故障端口号;该组连续隧道中起始隧道的硬件地址;隧道组中各隧道的接收状态(1表示允许接收,0表示不允许接收)。在下发的故障隧道倒换信息的大小超过管理通道的最大传输单元MTU限制情况出现时,线卡接收完全部的拆分后的故障隧道倒换信息后,再执行步骤105所说的批量写入硬件表操作。
利用本发明提供的方法,减少了主控板卡与线卡交换信息的通信次数和CPU资源的占用,从而实现多个PBT隧道的故障快速倒换,增加PBT通信设备在50毫秒保护倒换时间内完成倒换的最大隧道数量。
上述技术方案中的故障的发现,收集,上报,处理,以及隧道倒换信息下发,写入硬件等几个步骤。在实际应用中,根据单卡、多卡设备的不同或功能支持的不同可能会有所不同。总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。