一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

定时器调整方法、装置、电子设备和计算机可读存储介质与流程

2022-02-22 07:11:55 来源:中国专利 TAG:
定时器调整方法、装置、电子设备和计算机可读存储介质与流程

本申请涉及网络通信领域,具体而言,涉及一种定时器调整方法、装置、电子设备和计算机可读存储介质。

背景技术

双向转发检测(Bidirectional Forwarding Detection,BFD)是一套标准化的检测机制,用于快速检测网络中路径或者IP路由转发的连通状况。它提供的是一种通用的、标准化的、介质无关的、协议无关的快速故障检测机制。

随着网络技术的发展,对设备所支持的BFD会话数量和检测性能提出了更高的要求,传统的使用通用CPU软件来实现的BFD的瓶颈日趋明显,因此,为了提升BFD检测性能、降低CPU消耗,业界采用了专用硬件(FPGA、NP芯片等)来实现BFD功能,即BFD硬件检测。

在现有BFD硬件检测的技术方案中,用于BFD会话发送报文的发包间隔定时器和用于会话超时判定的检测超时定时器的时间值在设备硬件初始化时通过设备软件程序进行设置。然而,在实际使用过程中,BFD会话的检测参数(发包间隔时间和检测超时时间)是会话双方协商确定的,可能存在协商结果与设备预先设置的发包间隔时间和检测超时时间不匹配的问题,导致无法实现BFD硬件检测,从而浪费硬件资源。



技术实现要素:

本申请实施例的目的在于提供一种定时器调整方法、装置、电子设备和计算机可读存储介质,用以解决现有技术中因设备预先设置的发包间隔时间和检测超时时间与BFD会话确定的检测参数不匹配而导致无法实现BFD硬件检测,从而浪费硬件资源的问题。

第一方面,本发明提供一种定时器调整方法,应用于网络设备,所述网络设备用于与其他设备进行BFD会话,所述网络设备上设有BFD硬件检测的发包间隔定时器和BFD硬件检测的检测超时定时器,所述方法包括:根据BFD会话双方的检测参数确定目标发包间隔时间和目标检测超时时间;判断保存的BFD硬件检测的定时器配置文件中是否同时保存有所述目标发包间隔时间和所述目标检测超时时间,其中,所述定时器配置文件中保存有所述发包间隔定时器支持的发包间隔时间和所述检测超时定时器支持的检测超时时间;若否,根据预设调整规则对所述定时器配置文件进行修改,以使所述网络设备在下次启动时根据修改后的定时器配置文件对所述发包间隔定时器和所述检测超时定时器进行配置。

在本申请实施例中,网络设备上保存有BFD硬件检测的定时器配置文件,通过对定时器配置文件进行修改,可以根据实际使用过程中确定的发包间隔时间和检测超时时间动态调整BFD硬件检测发包间隔定时器和检测超时定时器的时间,无需人工手动对网络设备进行软件程序更新,即可实现对BFD硬件检测发包间隔定时器和检测超时定时器支持的时间值进行调整,尽量使发包间隔定时器和检测超时定时器支持的时间值与实际使用的时间值相匹配,充分利用硬件资源,保障BFD检测性能,同时提高了网络设备的易用性,降低了维护成本。

在可选的实施方式中,所述根据预设调整规则对所述定时器配置文件进行修改,包括:当所述定时器配置文件中保存有所述目标发包间隔时间但未保存有所述目标检测超时时间时,判断所述定时器配置文件中保存的检测超时时间中是否存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间;若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的检测超时时间中是否存在小于所述目标检测超时时间时且未被其余BFD会话使用的检测超时时间;若存在小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的最大的检测超时时间是否大于所述目标检测超时时间;若大于,将所述最大的检测超时时间修改为所述目标检测超时时间;若小于,不进行修改。

在可选的实施方式中,所述若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间,包括:若存在多个大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最小的检测超时时间修改为所述目标检测超时时间;或所述若存在小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间,包括:若存在多个小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最大的检测超时时间修改为所述目标检测超时时间。

在本申请实施例中,当存在多个大于目标检测超时时间且未被其余BFD会话使用的检测超时时间或是存在多个小于目标检测超时时间且未被其余BFD会话使用的检测超时时间时,通过上述修改方式,使该网络设备BFD硬件检测的检测超时定时器所支持的检测超时时间范围较大。

在可选的实施方式中,所述根据预设调整规则对所述定时器配置文件进行修改,包括:当所述定时器配置文件中未保存有所述目标发包间隔时间但保存有所述目标检测超时时间时,判断所述定时器配置文件中保存的发包间隔时间中是否存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的发包间隔时间中是否存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的最大的发包间隔时间是否大于所述目标发包间隔时间;若大于,将所述最大的发包间隔时间修改为所述目标发包间隔时间;若小于,不进行修改。

在可选的实施方式中,所述若存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间,包括:若存在多个大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最小的发包间隔时间修改为所述目标发包间隔时间;或所述若存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间,包括:若存在多个小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最大的发包间隔时间修改为所述目标发包间隔时间。

在本申请实施例中,当存在多个大于目标发包间隔时间且未被其余BFD会话使用的发包间隔时间或是存在多个小于目标发包间隔时间且未被其余BFD会话使用的发包间隔时间时,通过上述修改方式,使该网络设备BFD硬件检测的发包间隔定时器所支持的发包间隔时间范围较大。

在可选的实施方式中,所述根据预设调整规则对所述定时器配置文件进行修改,包括:当所述定时器配置文件中未保存有所述目标发包间隔时间且未保存有所述目标检测超时时间时,判断所述定时器配置文件中保存的发包间隔时间中是否存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的发包间隔时间中是否存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的最大的发包间隔时间是否大于所述目标发包间隔时间;若大于,将所述最大的发包间隔时间修改为所述目标发包间隔时间;若小于,不进行修改;判断所述定时器配置文件中保存的检测超时时间中是否存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间;若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的检测超时时间中是否存在小于所述目标检测超时时间时且未被其余BFD会话使用的检测超时时间;若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的最大的检测超时时间是否大于所述目标检测超时时间;若大于,将所述最大的检测超时时间修改为所述目标检测超时时间;若小于,不进行修改。

在可选的实施方式中,所述若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间,包括:若存在多个大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最小的检测超时时间修改为所述目标检测超时时间;或所述若存在小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间,包括:若存在多个小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最大的检测超时时间修改为所述目标检测超时时间;所述若存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间,包括:若存在多个大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最小的发包间隔时间修改为所述目标发包间隔时间;或所述若存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间,包括:若存在多个小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最大的发包间隔时间修改为所述目标发包间隔时间。

在本申请实施例中,通过上述修改方式,使网络设备BFD硬件检测的检测超时定时器所支持的检测超时时间范围较大且网络设备BFD硬件检测的发包间隔定时器所支持的发包间隔时间范围也较大。

第二方面,本发明提供一种定时器调整装置,配置于网络设备,所述网络设备用于与其他设备进行BFD会话,所述网络设备上设有BFD硬件检测的发包间隔定时器和BFD硬件检测的检测超时定时器,所述装置包括:确定模块,用于根据BFD会话双方的检测参数确定目标发包间隔时间和目标检测超时时间;判断模块,用于判断所在的网络设备保存的BFD硬件检测的定时器配置文件中是否同时保存有所述目标发包间隔时间和所述目标检测超时时间,其中,所述定时器配置文件中保存有所述发包间隔定时器支持的发包间隔时间和所述检测超时定时器支持的检测超时时间;修改模块,用于在所述定时器配置文件中没有同时保存有所述目标发包间隔时间和所述目标检测超时时间时,根据预设调整规则对所述定时器配置文件进行修改,以使所在的网络设备在下次启动时根据修改后的定时器配置文件对所述发包间隔定时器和所述检测超时定时器进行配置。

在可选的实施方式中,所述修改模块具体用于当所述定时器配置文件中保存有所述目标发包间隔时间但未保存有所述目标检测超时时间时,判断所述定时器配置文件中保存的检测超时时间中是否存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间;若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的检测超时时间中是否存在小于所述目标检测超时时间时且未被其余BFD会话使用的检测超时时间;若存在小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的最大的检测超时时间是否大于所述目标检测超时时间;若大于,将所述最大的检测超时时间修改为所述目标检测超时时间;若小于,不进行修改。

在可选的实施方式中,所述修改模块具体用于若存在多个大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最小的检测超时时间修改为所述目标检测超时时间;或若存在多个小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最大的检测超时时间修改为所述目标检测超时时间。

在可选的实施方式中,所述修改模块具体用于当所述定时器配置文件中未保存有所述目标发包间隔时间但保存有所述目标检测超时时间时,判断所述定时器配置文件中保存的发包间隔时间中是否存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的发包间隔时间中是否存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的最大的发包间隔时间是否大于所述目标发包间隔时间;若大于,将所述最大的发包间隔时间修改为所述目标发包间隔时间;若小于,不进行修改。

在可选的实施方式中,所述修改模块具体用于若存在多个大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最小的发包间隔时间修改为所述目标发包间隔时间;或若存在多个小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最大的发包间隔时间修改为所述目标发包间隔时间。

在可选的实施方式中,所述修改模块具体用于当所述定时器配置文件中未保存有所述目标发包间隔时间且未保存有所述目标检测超时时间时,判断所述定时器配置文件中保存的发包间隔时间中是否存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的发包间隔时间中是否存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的最大的发包间隔时间是否大于所述目标发包间隔时间;若大于,将所述最大的发包间隔时间修改为所述目标发包间隔时间;若小于,不进行修改;判断所述定时器配置文件中保存的检测超时时间中是否存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间;若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的检测超时时间中是否存在小于所述目标检测超时时间时且未被其余BFD会话使用的检测超时时间;若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的最大的检测超时时间是否大于所述目标检测超时时间;若大于,将所述最大的检测超时时间修改为所述目标检测超时时间;若小于,不进行修改。

在可选的实施方式中,所述修改模块具体用于若存在多个大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最小的检测超时时间修改为所述目标检测超时时间;或若存在多个小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最大的检测超时时间修改为所述目标检测超时时间;若存在多个大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最小的发包间隔时间修改为所述目标发包间隔时间;或若存在多个小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最大的发包间隔时间修改为所述目标发包间隔时间。

第三方面,本发明提供一种电子设备,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如前述实施方式任一项所述的方法。

第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如前述实施方式中任一项所述的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种定时器调整方法的流程图;

图2为本申请实施例提供的一种定时器调整装置的结构框图;

图3为本申请实施例的电子设备的结构示意图。

图标:200-定时器调整装置;201-确定模块;202-判断模块;203-修改模块;300-电子设备;301-处理器;302-通信接口;303-存储器;304-总线。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

请参阅图1,图1为本申请实施例提供的一种定时器调整方法的流程图,该定时器调整方法应用于网络设备,该网络设备用于与其他设备进行BFD会话,网络设备上设有BFD硬件检测的发包间隔定时器和BFD硬件检测的检测超时定时器,该定时器调整方法可以包括如下步骤:

步骤101:根据BFD会话双方的检测参数确定目标发包间隔时间和目标检测超时时间。

步骤102:判断保存的BFD硬件检测的定时器配置文件中是否同时保存有目标发包间隔时间和目标检测超时时间。

步骤103:若否,根据预设调整规则对定时器配置文件进行修改。

下面将结合示例对上述步骤进行说明。

步骤101:根据BFD会话双方的检测参数确定目标发包间隔时间和目标检测超时时间。

当网络设备需要与其他网络设备进行BFD硬件检测时,首先根据BFD会话双方的检测参数协商确定目标发包间隔时间和目标检测超时时间。

需要说明的是,若两个设备之间要进行BFD检测,会根据BFD协议发送BFD报文协商确定出发包间隔时间和检测超时时间,本申请实施例对BFD报文的形式以及具体如何确定发包间隔时间和检测超时时间不做具体限定。

举例来说,在一个网络中,存在设备A和设备B两台设备,其中,设备A支持BFD硬件检测。需要说明的是,对设备B是否支持BFD硬件检测不做限定,设备B可以为支持BFD硬件检测的网络设备,也可以为采用软件进行BFD检测的网络设备。

对于设备A来说,设备A与设备B建立了一个异步模式的BFD会话。

针对该BFD会话,设备A和设备B的检测参数分别为:

设备A:检测倍数5、本地最小发送间隔10ms、本地最小接收间隔10ms;

设备B:检测倍数5、本地最小发送间隔35ms、本地最小接收间隔35ms;

基于上述BFD会话双方的检测参数,设备A协商出的目标发包间隔时间和目标检测超时时间为:

目标发包间隔时间=max(本地最小发送间隔10ms,对端最小接收间隔35ms)=35ms。

目标检测超时时间=本地检测倍数5×max(本地最小接收间隔10ms,对端最小发送间隔35ms)=175ms。

步骤102:判断保存的BFD硬件检测的定时器配置文件中是否同时保存有目标发包间隔时间和目标检测超时时间。

本申请实施例提供的网络设备中,保存有BFD硬件检测的定时器配置文件。该定时器配置文件中保存有该设备的发包间隔定时器支持的发包间隔时间和检测超时定时器支持的检测超时时间。

初始状态下,该定时器配置文件中存储发包间隔定时器和检测超时定时器的缺省时间值。用户也可以根据网络设备的应用场景,通过修改该配置文件的内容对定时器配置文件中发包间隔定时器支持的发包间隔时间和检测超时定时器支持的检测超时时间进行初始设置。

举例来说,定时器配置文件可以如下表(单位为毫秒):

表1定时器配置文件缺省时间值

用户可以根据设备A的应用场景的需要,例如设备A检测倍数为5,且需要部分较大的BFD发包间隔,将定时器配置文件修改为(单位为毫秒):

表2用户定制后定时器配置文件时间值

根据上述定时器配置文件可知,该网络设备的发包间隔定时器支持16种发包间隔时间和16种检测超时时间。

当网络设备启动时,会根据定时器配置文件中保存的发包间隔时间和检测超时时间对发包间隔定时器和检测超时定时器进行配置,使得该网络设备可以采用配置文件中保存的发包间隔时间和检测超时时间进行BFD硬件检测。

确定目标发包间隔时间和目标检测超时时间后,网络设备A判断定时器配置文件中是否同时保存有确定的目标发包间隔时间和目标检测超时时间。若同时保存有目标发包间隔时间和目标检测超时时间,则可以进行BFD硬件检测。若没有同时保存有目标发包间隔时间和目标检测超时时间,该BFD会话本次需采用软件检测。

步骤103:若否,根据预设调整规则对定时器配置文件进行修改。

本申请实施例中,若定时器配置文件中没有同时保存有目标发包间隔时间和目标检测超时时间,则根据预设调整规则对定时器配置文件进行修改。需要说明的是,网络设备在启动后,便根据启动时的定时器配置文件对发包间隔定时器和检测超时定时器进行了配置,在网络设备运行过程中,修改定时器配置文件并不会马上生效,需要在网络设备下次启动时,根据修改后的定时器配置文件对发包间隔定时器和检测超时定时器进行配置,进而使得该网络设备再下次启动后,可以对目标发包间隔时间和目标检测超时时间对应的BFD会话采用BFD硬件检测。

作为一种可选的实施方式,上述步骤103可以包括如下内容:

当定时器配置文件中保存有目标发包间隔时间但未保存有目标检测超时时间时,判断定时器配置文件中保存的检测超时时间中是否存在大于目标检测超时时间且未被其余BFD会话使用的检测超时时间。

若存在大于目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为目标检测超时时间。

若不存在大于目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断定时器配置文件中保存的检测超时时间中是否存在小于目标检测超时时间时且未被其余BFD会话使用的检测超时时间。

若存在小于目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为目标检测超时时间。

若不存在小于目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断定时器配置文件中保存的最大的检测超时时间是否大于目标检测超时时间;若大于,将最大的检测超时时间修改为目标检测超时时间;若小于,不进行修改。

本申请实施例中,当定时器配置文件中保存有目标发包间隔时间但未保存有目标检测超时时间时,说明此时网络设备的发包间隔定时器支持目标发包间隔时间但检测超时定时器不支持目标检测超时时间,因此,需要对定时器配置文件中保存的检测超时时间进行修改。

需要说明的是,相比于软件检测,硬件BFD检测对发包间隔时间和检测超时时间较小时具有更高的准确性,因此,本申请实施例在对定时器配置文件中保存的检测超时时间进行修改时,会优先将大于目标检测超时时间的时间值修改为目标检测超时时间。

此外,考虑到一个网络设备在同一时间内,可以与多个设备进行BFD会话。每个BFD会话的检测参数存在差异(即发包间隔时间和检测超时时间存在差异)。为了保证其余BFD会话不会因为修改而产生影响,在确定要被替换的检测超时时间时,还会考虑大于目标检测超时时间的时间值是否被其他BFD会话使用。

因此,若存在大于目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为目标检测超时时间。

若定时器配置文件中没有保存有大于目标检测超时时间,或者所有大于目标检测超时时间的检测超时时间都有BFD会话使用,则判断定时器配置文件中保存的检测超时时间中是否存在小于目标检测超时时间时且未被其余BFD会话使用的检测超时时间。

若存在小于目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为目标检测超时时间。

若不存在大于目标检测超时时间且未被其余BFD会话使用的检测超时时间,且不存在小于目标检测超时时间且未被其余BFD会话使用的检测超时时间,说明定时器配置文件中保存的所有检测超时时间均被占用了。此时,判断定时器配置文件中保存的最大的检测超时时间是否大于目标检测超时时间,若大于,将最大的检测超时时间修改为目标检测超时时间。若小于,则不对若定时器配置文件进行修改。

需要说明的是,由于硬件BFD检测对发包间隔时间和检测超时时间较小时具有更高的准确性,因此,优先满足发包间隔时间小的BFD会话。于是,比较定时器配置文件中保存的最大的检测超时时间与目标检测超时时间的大小,将二者较小的时间值保存在定时器配置文件中。

若定时器配置文件中保存的最大的检测超时时间小于目标检测超时时间,则说明本次BFD会话确定的目标检测超时时间比其他正在使用BFD硬件检测的检测超时时间都大,由于硬件BFD检测对发包间隔时间和检测超时时间较小时具有更高的准确性,于是让硬件资源优先满足检测超时时间较小的BFD会话。目标检测超时时间对应的BFD会话采用软件检测。

此外,考虑到可能存在多个大于目标检测超时时间且未被其余BFD会话使用的检测超时时间或是存在多个小于目标检测超时时间且未被其余BFD会话使用的检测超时时间的情况,作为一种可选的实施方式,若存在多个大于目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最小的检测超时时间修改为目标检测超时时间;若存在多个小于目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最大的检测超时时间修改为目标检测超时时间。

本申请实施例中,当存在多个大于目标检测超时时间且未被其余BFD会话使用的检测超时时间或是存在多个小于目标检测超时时间且未被其余BFD会话使用的检测超时时间时,通过上述修改方式,使该网络设备BFD硬件检测的检测超时定时器所支持的检测超时时间范围较大。

作为一种可选的实施方式,上述步骤103可以包括如下内容:

当定时器配置文件中未保存有目标发包间隔时间但保存有目标检测超时时间时,判断定时器配置文件中保存的检测超时时间中是否存在大于目标检测超时时间且未被其余BFD会话使用的检测超时时间。

若存在大于目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为目标检测超时时间。

若不存在大于目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断定时器配置文件中保存的检测超时时间中是否存在小于目标检测超时时间时且未被其余BFD会话使用的检测超时时间。

若存在小于目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为目标检测超时时间。

若不存在小于目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断定时器配置文件中保存的最大的检测超时时间是否大于目标检测超时时间;若大于,将最大的检测超时时间修改为目标检测超时时间;若小于,不进行修改。

本申请实施例中,当定时器配置文件中未保存有目标发包间隔时间但保存有目标检测超时时间时,说明此时网络设备的检测超时定时器支持目标检测超时时间但发包间隔定时器不支持目标发包间隔时间,因此,需要对定时器配置文件中保存的发包间隔时间进行修改。

可以理解,对定时器配置文件中保存的发包间隔时间进行修改的具体修改方式与对定时器配置文件中保存的发包间隔时间进行修改的具体修改方式对应,为使说明书简洁,相同或相近部分可互相参照,在此不做赘述。

作为一种可选的实施方式,上述步骤103可以包括如下内容:

当所述定时器配置文件中未保存有所述目标发包间隔时间且未保存有所述目标检测超时时间时,判断所述定时器配置文件中保存的发包间隔时间中是否存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;

若存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;

若不存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的发包间隔时间中是否存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;

若存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;

若不存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的最大的发包间隔时间是否大于所述目标发包间隔时间;若大于,将所述最大的发包间隔时间修改为所述目标发包间隔时间;若小于,不进行修改;

判断所述定时器配置文件中保存的检测超时时间中是否存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间;

若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;

若不存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的检测超时时间中是否存在小于所述目标检测超时时间时且未被其余BFD会话使用的检测超时时间;

若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;

若不存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的最大的检测超时时间是否大于所述目标检测超时时间;若大于,将所述最大的检测超时时间修改为所述目标检测超时时间;若小于,不进行修改。

本申请实施例中,当定时器配置文件中未保存有目标发包间隔时间且未保存有目标检测超时时间时,说明此时网络设备的检测超时定时器不支持目标检测超时时间,且发包间隔定时器也不支持目标发包间隔时间,因此,需要对定时器配置文件中保存的发包间隔时间和检测超时时间进行修改。

可以理解,对定时器配置文件中保存的发包间隔时间进行修改的具体修改方式和对定时器配置文件中保存的发包间隔时间进行修改的具体修改方式在前述实施方式中已经介绍,为使说明书简洁,相同或相近部分可互相参照,在此不做赘述。

作为一种可选的实施方式,定时器配置文件中还可以包括发包间隔时间上限值和检测超时时间上限值。本申请实施例中,只有当目标发包间隔时间小于发包间隔时间上限值且目标检测超时时间小于检测超时时间上限值时,才根据预设调整规则对定时器配置文件进行修改。

由于硬件BFD检测对发包间隔时间和检测超时时间较小时具有更高的准确性,若确定出的目标发包间隔时间或目标检测超时时间大于对应的上限值,则不对定时器配置文件进行修改,让该BFD会话采用软件检测。本申请实施例优先对目标发包间隔时间和目标检测超时时间较小的BFD会话进行BFD硬件检测,充分利用硬件资源,保障网络设备的总体BFD检测性能。

作为一种可选的实施方式,本申请提供的定时器调整方法还包括:当定时器配置文件中保存的发包间隔时间发生修改后,将定时器配置文件保存的发包间隔时间按照从小到大的顺序进行排序;当定时器配置文件中保存的检测超时时间发生修改后,将定时器配置文件保存的检测超时时间按照从小到大的顺序进行排序。通过上述方式,使得定时器配置文件中的时间值均是按照从小到大的顺序进行排序,便于后续处理,当需要对定时器配置文件进行修改时,提高处理效率。

以下以一个具体示例,对上述实施方式进行详细介绍。

举例来说,在一个网络中,存在设备A和设备B两台设备,其中,设备A支持BFD硬件检测。

设备A中保存的定时器配置文件为:

发包间隔时间上限为100,检测超时时间为500。

设备A与设备B建立了一个异步模式的BFD会话。针对该BFD会话,设备A和设备B的检测参数分别为:

设备A:检测倍数5、本地最小发送间隔10ms、本地最小接收间隔10ms;

设备B:检测倍数5、本地最小发送间隔35ms、本地最小接收间隔35ms;

基于上述BFD会话双方的检测参数,设备A协商出的目标发包间隔时间和目标检测超时时间为:

目标发包间隔时间=max(本地最小发送间隔10ms,对端最小接收间隔35ms)=35ms。

目标检测超时时间=本地检测倍数5×max(本地最小接收间隔10ms,对端最小发送间隔35ms)=175ms。

根据定时器配置文件可知,目标发包间隔时间值35和目标检测超时时间值175都不大于硬件检测的时间上限值,但是定时器配置文件并未保存有发包间隔时间和检测超时时间。因此,需要对定时器配置文件进行修改。

在定时器配置文件中查找到第一个大于目标发包间隔时间值的发包间隔时间为40,以及第一个大于目标检测超时时间175的检测超时时间为200。

假设发包间隔时间值40和检测超时时间值200都没有BFD会话使用,则将目标发包间隔时间值35替换发包间隔时间值40,使用目标检测超时时间值175替换检测超时时间值200,并对时间值进行重新排序(此时顺序无变化)。

设备A修改后的定时器配置文件为:

设备A下一次启动时(无需更新设备A的软件程序),会根据修改后的定时器配置文件中设置BFD硬件检测的发包间隔定时器和BFD硬件检测的检测超时定时器的时间值,使得该BFD会话即可使用BFD硬件检测。

综上所述,本申请提供一种定时器调整方法,网络设备上保存有BFD硬件检测的定时器配置文件,通过对定时器配置文件进行修改,可以根据实际使用过程中确定的发包间隔时间和检测超时时间动态调整BFD硬件检测发包间隔定时器和检测超时定时器的时间,无需人工手动对网络设备进行软件程序更新,即可实现对BFD硬件检测发包间隔定时器和检测超时定时器支持的时间值进行调整,尽量使发包间隔定时器和检测超时定时器的支持时间值与实际使用的时间值相匹配,充分利用硬件资源,保障BFD检测性能,同时提高了网络设备的易用性,降低了维护成本。

基于同一发明构思,本申请实施例中还提供一种定时器调整装置。请参阅图2,图2为本申请实施例提供的一种定时器调整装置的结构框图,该定时器调整装置200配置于网络设备,所述网络设备用于与其他设备进行BFD会话,所述网络设备上设有BFD硬件检测的发包间隔定时器和BFD硬件检测的检测超时定时器,该定时器调整装置200可以包括:

确定模块201,用于根据BFD会话双方的检测参数确定目标发包间隔时间和目标检测超时时间;

判断模块202,用于判断所在的网络设备保存的BFD硬件检测的定时器配置文件中是否同时保存有所述目标发包间隔时间和所述目标检测超时时间,其中,所述定时器配置文件中保存有所述发包间隔定时器支持的发包间隔时间和所述检测超时定时器支持的检测超时时间;

修改模块203,用于在所述定时器配置文件中没有同时保存有所述目标发包间隔时间和所述目标检测超时时间时,根据预设调整规则对所述定时器配置文件进行修改,以使所在的网络设备在下次启动时根据修改后的定时器配置文件对所述发包间隔定时器和所述检测超时定时器进行配置。

在可选的实施方式中,所述修改模块203具体用于当所述定时器配置文件中保存有所述目标发包间隔时间但未保存有所述目标检测超时时间时,判断所述定时器配置文件中保存的检测超时时间中是否存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间;若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的检测超时时间中是否存在小于所述目标检测超时时间时且未被其余BFD会话使用的检测超时时间;若存在小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的最大的检测超时时间是否大于所述目标检测超时时间;若大于,将所述最大的检测超时时间修改为所述目标检测超时时间;若小于,不进行修改。

在可选的实施方式中,所述修改模块203具体用于若存在多个大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最小的检测超时时间修改为所述目标检测超时时间;或若存在多个小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最大的检测超时时间修改为所述目标检测超时时间。

在可选的实施方式中,所述修改模块203具体用于当所述定时器配置文件中未保存有所述目标发包间隔时间但保存有所述目标检测超时时间时,判断所述定时器配置文件中保存的发包间隔时间中是否存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的发包间隔时间中是否存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的最大的发包间隔时间是否大于所述目标发包间隔时间;若大于,将所述最大的发包间隔时间修改为所述目标发包间隔时间;若小于,不进行修改。

在可选的实施方式中,所述修改模块203具体用于若存在多个大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最小的发包间隔时间修改为所述目标发包间隔时间;或若存在多个小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最大的发包间隔时间修改为所述目标发包间隔时间。

在可选的实施方式中,所述修改模块203具体用于当所述定时器配置文件中未保存有所述目标发包间隔时间且未保存有所述目标检测超时时间时,判断所述定时器配置文件中保存的发包间隔时间中是否存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的发包间隔时间中是否存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间;若存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将该发包间隔时间修改为所述目标发包间隔时间;若不存在小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,判断所述定时器配置文件中保存的最大的发包间隔时间是否大于所述目标发包间隔时间;若大于,将所述最大的发包间隔时间修改为所述目标发包间隔时间;若小于,不进行修改;判断所述定时器配置文件中保存的检测超时时间中是否存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间;若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的检测超时时间中是否存在小于所述目标检测超时时间时且未被其余BFD会话使用的检测超时时间;若存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将该检测超时时间修改为所述目标检测超时时间;若不存在大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,判断所述定时器配置文件中保存的最大的检测超时时间是否大于所述目标检测超时时间;若大于,将所述最大的检测超时时间修改为所述目标检测超时时间;若小于,不进行修改。

在可选的实施方式中,所述修改模块203具体用于若存在多个大于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最小的检测超时时间修改为所述目标检测超时时间;或若存在多个小于所述目标检测超时时间且未被其余BFD会话使用的检测超时时间,将多个检测超时时间中最大的检测超时时间修改为所述目标检测超时时间;若存在多个大于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最小的发包间隔时间修改为所述目标发包间隔时间;或若存在多个小于所述目标发包间隔时间且未被其余BFD会话使用的发包间隔时间,将多个发包间隔时间中最大的发包间隔时间修改为所述目标发包间隔时间。

请参阅图3,图3为本申请实施例的电子设备300的结构示意图,该电子设备300包括:至少一个处理器301,至少一个通信接口302,至少一个存储器303和至少一个总线304。其中,总线304用于实现这些组件直接的连接通信,通信接口302用于与其他节点设备进行信令或数据的通信,存储器303存储有处理器301可执行的机器可读指令。当电子设备300运行时,处理器301与存储器303之间通过总线304通信,机器可读指令被处理器301调用时执行如上述定时器调整方法。

处理器301可以是一种集成电路芯片,具有信号处理能力。上述处理器301可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器303可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。

可以理解,图3所示的结构仅为示意,电子设备300还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。于本申请实施例中,电子设备300可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备300也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。

此外,本申请实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被计算机运行时,执行如上述实施例中定时器调整方法的步骤。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献