一种检测光口状态的方法和装置与流程

文档序号:12131285阅读:749来源:国知局
一种检测光口状态的方法和装置与流程

本申请涉及网络通信技术领域,特别涉及一种检测光口状态的方法和装置。



背景技术:

在二层交换网络中,一旦存在环网就会造成报文在环路内不断循环和增生,产生广播风暴,从而占有所有的有效带宽,使网络变得不可用,在这样的情况下,生成树协议应运而生。生成树协议通过有选择性地阻塞网络冗余链路,来达到消除网络二层环路的目的,同时具备链路备份的功能。

然而,生成树协议对于收敛速度通常要求较高,比如通常要求收敛速度达到1秒以内。在实际应用中,由于受组网设备之间硬件、接口类型、软件光口扫描检测机制不同等因素的影响,使得一些万兆光口的交换机设备的收敛速度很难达到这个要求。



技术实现要素:

有鉴于此,本申请提供一种检测光口状态的方法和装置,应用于框式交换机设备,加快光口的link down事件检测的速度。

具体地,本申请是通过如下技术方案实现的:

一种检测光口状态的方法,应用于框式交换机设备,在所述框式交换机设备的CPU与媒体访问控制MAC芯片之间,使用一片可编程逻辑芯片作为接口桥片,包括:

可编程逻辑芯片实时检测光模块的RX_LOS信号;

如果RX_LOS信号取值发生变化,可编程逻辑芯片将检测到的RX_LOS信号所对应的取值写入CPU可访问的预设内存空间中;

可编程逻辑芯片通过中断信号,将所述预设内存空间中的取值上报至CPU,以由CPU根据所述预设内存空间中的取值所指示的光口状态进行光口link down检测。

一种检测光口状态的装置,应用于框式交换机设备,在所述框式交换机设备的CPU与媒体访问控制MAC芯片之间,使用一片可编程逻辑芯片作为接口桥片,包括:

检测单元,用于可编程逻辑芯片实时检测光模块的RX_LOS信号;

读写单元,用于如果RX_LOS信号取值发生变化,可编程逻辑芯片将检测到的RX_LOS信号所对应的取值写入CPU可访问的预设内存空间中;

上报单元,用于可编程逻辑芯片通过中断信号,将所述预设内存空间中的取值上报至CPU,以由CPU根据所述预设内存空间中的取值所指示的光口状态进行光口link down检测。

本申请中,通过可编程逻辑芯片实时检测光模块的RX_LOS信号;如果RX_LOS信号取值发生变化,可编程逻辑芯片将检测到的RX_LOS信号所对应的取值写入CPU可访问的预设内存空间中;然后可编程逻辑芯片通过中断信号,将所述预设内存空间中的取值上报至CPU,以由CPU根据所述预设内存空间中的取值所指示的光口状态进行光口link down检测。

由于可编程逻辑芯片可以在实时的检测到光模块的RX_LOS信号发生变化时,通过产生中断信号将光口的取值变化事件主动上报至CPU,而不需要由CPU在软件层面通过启动线程定期轮询光口的取值来完成光口的link down检测,因此可以加快光口link down事件的检测速度,有效降低设备的收敛速度,降低CPU的使用率,以及降低link down事件误报的概率提升设备的可靠性

附图说明

图1为本申请一示例性实施例示出的一种检测光口状态的方法流程图;

图2为相关技术中一示例性实施例示出的一种框式交换机的硬件结构图;

图3为本申请一示例性实施例示出的一种框式交换机的硬件结构图;

图4为本申请一示例性实施例示出的一种检测光口状态的装置所在框式交换机设备的一种硬件结构图;

图5为本申请一示例性实施例示出的一种检测光口状态的装置。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在相关技术中,设备在检测光口的状态时,通常是由光模块将RX_LOS信号上报给网卡中的PHY芯片来进行检测完成的;PHY芯片在对光模块上报的RX_LOS信号进行检测时,如果接收到的RX_LOS信号的取值为高电平1,则代表光口的link状态为正常状态;如果接收到的RX_LOS信号的取值为低电平0,则代表光口的link状态为down状态;同时,CPU可以启动一个线程向PHY芯片定期轮询光口link状态。

然而,一方面,CPU通过启动线程,来定期轮询光口的link状态,使得CPU并不能对光口的link down事件进行实时的检测,需要等到该线程的定时周期到达后,才会去轮询光口的取值,因此会导致检测到光口的link down事件的速度变慢,从而导致生成树协议在生成网络拓扑的过程中,设备收敛速度变得很慢。

另一方面,设备采用线程定期轮询光口的取值,如果在下一轮询周期到达之前,该光口对应的RX_LOS信号发生了变化,而CPU无法在光口的取值发生变化时,第一时间检测到这一变化,从而可能导致光口的link down事件的误报。

另外,设备采用线程定期轮询光口取值,然后根据扫描结果来进行光口的link down检测的方式,会出现光口取值没有发生变化时,CPU仍然会通过线程周期性的轮询光口的取值,从而造成CPU处理资源的浪费。

为了解决相关技术中存在的问题,本申请提供了一种检测光口状态的方法,应用于框式交换机设备,在所述框式交换机设备的CPU与MAC芯片之间,使用一片可编程逻辑芯片作为接口桥片,通过可编程逻辑芯片实时检测光模块的RX_LOS信号;如果RX_LOS信号取值发生变化,可编程逻辑芯片将检测到的RX_LOS信号所对应的取值写入CPU可访问的预设内存空间中;然后可编程逻辑芯片通过中断信号,将所述预设内存空间中的取值上报至CPU,以由CPU根据所述预设内存空间中的取值所指示的光口状态进行光口link down检测。

一方面,可编程逻辑芯片采用实时检测光模块的RX_LOS信号方式,当检测到RX_LOS信号的取值发生变化时,可以通过产生中断信号,通知CPU根据RX_LOS信号取值所对应的光口状态来进行光口link down检测,而不需要在CPU的执行程序中进行排队,等待CPU的处理,因此实现了加快光口link down检测速度的目标,从而在生成树协议生成网络拓扑的过程中,提升设备收敛速度。

另一方面,可编程逻辑芯片采用实时检测光模块的RX_LOS信号的方式,在RX_LOS信号发生了变化,CPU可以马上检测预设内存中各光口的取值,从而使得光口link down事件可以及时检测,不会导致光口的link down事件的误报。

另外,通过可编程逻辑芯片中断信号,将预设内存空间中的取值上报至CPU,然后CPU通过中断任务上下文来对此次中断信号进行处理,而不采用线程定期轮询光口取值,然后根据扫描结果来进行光口的link down检测的方式,因此可以避免光口取值没有发生变化时,CPU仍然使用线程轮询光口取值,造成CPU资源的浪费的情况,从而可以降低CPU的使用率。

请参见图1,图1为本申请示出的一示例性实施例示出的一种检测光口状态的方法流程图,应用于框式交换机设备,在所述框式交换机设备的CPU与MAC芯片之间,使用一片可编程逻辑芯片作为接口桥片,具体执行以下步骤:

步骤101:可编程逻辑芯片实时检测光模块的RX_LOS信号;

步骤102:如果RX_LOS信号取值发生变化,可编程逻辑芯片将检测到的RX_LOS信号所对应的取值写入CPU可访问的预设内存空间中;

步骤103:通过可编程逻辑芯片中断信号,将所述预设内存空间中的取值上报至CPU,以由CPU根据所述预设内存空间中的取值所指示的光口状态进行光口link down检测。

请参见图2,图2为相关技术中一示例性实施例示出的一种框式交换机的硬件结构图;

在图2中,设备在检测光口的状态时,通常是由光模块将RX_LOS信号上报给网卡中的PHY芯片来进行检测来完成的;PHY芯片在对光模块上报的RX_LOS信号进行检测时,如果接收到的RX_LOS信号的取值为高电平1,则代表光口的link状态为正常状态;如果接收到的RX_LOS信号的取值为低电平0,则代表光口的link状态为down状态;同时,CPU可以启动一个线程向PHY芯片定期轮询光口link状态。

在本例中,可以对图2所示出的上述框式交换机的硬件结构,以及光口状态的检测流程进行改进,可以使用一片可编程逻辑芯片,作PCIE桥片,与PCIE进行数据和指令交换的芯片,光模块的RX_LOS信号将会上报给可编程逻辑芯片进行处理,可编程逻辑芯片处理完成后,如果RX_LOS信号的取值发生变化,可以产生中断,然后将RX_LOS信号的取值上报至CPU可访问的内存空间。而CPU可以不再启用线程来定期轮询光口link状态,从而可以加快光口link down事件的检测速度,提升设备运行生成树协议的收敛速度。

请参见图3,图3为本申请一示例性实施例示出的一种框式交换机的硬件结构图。

在本例中,可编程逻辑芯片可以实时检测光模块的RX_LOS信号,当可编程逻辑芯片检测到RX_LOS信号的取值为1时,则表明该RX_LOS信号对应的光口为正常状态,在这样的情况下,则可编程逻辑芯片可以继续保持对光模块的RX_LOS信号的实时检测状态。

如果RX_LOS信号取值发生变化,即此时可编程逻辑芯片检测到的RX_LOS信号的取值为0,则表明该RX_LOS信号对应的光口为down状态,在这样的情况下,则可编程逻辑芯片可以将检测的RX_LOS信号所对应的取值写入CPU可访问的预设内存空间中,所述预设内存空间可以是CPU中的内存空间,也可以是可编程逻辑芯片的内存空间,只要CPU可以访问到该内存空间即可。

在示出的一种实施方式中,在框式交换机设备的CPU中可以创建光口扫描线程,所述光口扫描线程具体用于当CPU接收到中断请求时,CPU可以中断任务上下文,然后启动光口扫描线程,对CPU预设的内存空间中的各光口进行扫描,然后根据各光口的取值,对各光口的link状态进行相应的检测。

在正常情况下,光模块的光口为高电平,在CPU内存中对应于光口的取值为1,如果光口为down状态,则在CPU内存中对应于光口的取值为0。

当可编程逻辑芯片检测到RX_LOS信号的取值发生变化,可编程逻辑芯片可以产生中断信号,将该中断信号发送至CPU,CPU响应于该中断信号,CPU就可以中断任务上下文,然后唤醒光口扫描线程,通过光口扫描线程对预设内存空间中各光口对应的取值进行扫描,来进行各光口的link down检测。

如果扫描到任一光口的取值为0,此时可以确定该光口发生了link down事件,此时可以进一步将检测到的该光口的link down事件上报至CPU的内核协议栈继续进行处理。CPU的内核协议栈在接收到CPU上报的link down事件后,可以基于生成树协议重新进行协议处理,重新计算网络拓扑。

通过这种方式,由于光口的状态检测将不再依赖于CPU的定时轮询,而是由可编程逻辑芯片主动上报,因此可以提升link down事件的检测速度,降低生成树协议的收敛速度。

其中,在示出的一种实施方式中,CPU在通过上述光口扫描线程对光模块的所有光口进行扫描时,该光口扫描线程还可以实时判断内存空间中所有的光口是否全部完成扫描,如果内存中所有的光口全部完成扫描,则终止所述光口扫描线程,进入睡眠状态,等待下一次的唤醒;如果内存中所有光口没有完成扫描,则光口扫描线程可以继续对剩余的光口进行扫描,直到所有的光口全部完成扫描。

由以上本申请提供的技术方案可见,通过可编程逻辑芯片实时检测光模块的RX_LOS信号;如果RX_LOS信号取值发生变化,可编程逻辑芯片将检测到的RX_LOS信号所对应的取值写入CPU可访问的预设内存空间中;然后可编程逻辑芯片通过中断信号,将所述预设内存空间中的取值上报至CPU,以由CPU根据所述预设内存空间中的取值所指示的光口状态进行光口link down检测。

一方面,可编程逻辑芯片采用实时检测光模块的RX_LOS信号方式,当检测到RX_LOS信号的取值发生变化时,可以通过产生中断信号,通知CPU根据RX_LOS信号取值所对应的光口状态来进行光口link down检测,而不需要在CPU的执行程序中进行排队,等待CPU的处理,因此实现了加快光口link down检测速度的目标,从而在生成树协议生成网络拓扑的过程中,提升设备收敛速度。

另一方面,可编程逻辑芯片采用实时检测光模块的RX_LOS信号的方式,如果RX_LOS信号发生了变化,CPU可以马上检测预设内存中各光口的取值,从而使得光口的link down事件可以及时检测,不会导致光口的link down事件的误报。

另外,通过可编程逻辑芯片中断信号,将预设内存空间中的取值上报至CPU,然后CPU通过中断任务上下文来对此次中断信号进行处理,而不采用线程定期轮询光口取值,然后根据扫描结果来进行光口的link down检测的方式,因此可以避免光口取值没有发生变化时,CPU仍然使用线程轮询光口取值,造成CPU资源的浪费的情况,从而可以降低CPU的使用率。

与前述一种检测光口状态的方法的实施例相对应,本申请还提供了一种检测光口状态的装置的实施例。

本申请一种检测光口状态的装置的实施例可以应用在框式交换机设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在框式交换机设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请一种检测光口状态的装置所在框式交换机设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的框式交换机设备通常根据该检测光口状态的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图5,图5为本申请示出的一种检测光口状态的装置,应用于框式交换机设备,在所述框式交换机设备的CPU与MAC芯片之间,使用一片可编程逻辑芯片作为接口桥片,所述装置包括:检测单元510,读写单元520,上报单元530。

其中,检测单元510,用于可编程逻辑芯片实时检测光模块的RX_LOS信号。

读写单元520,用于如果RX_LOS信号取值发生变化,可编程逻辑芯片将检测到的RX_LOS信号所对应的取值写入CPU可访问的预设内存空间中。

上报单元530,用于可编程逻辑芯片通过中断信号,将所述预设内存空间中的取值上报至CPU,以由CPU根据所述预设内存空间中的取值所指示的光口状态进行光口link down检测。

在本例中,所述装置还包括:

创建单元,用于在CPU中创建光口扫描线程。

扫描单元,用于CPU响应于接收到的中断信号,启动所述光口扫描线程对所述预设内存空间中各光口对应的取值进行扫描;

执行单元,用于当检测到所述内存空间中记录的任一光口的取值所指示的光口状态为Down状态时,确定检测到该光口的link down事件。

判断单元,用于判断所述各光口是否全部完成扫描;如果所述各光口全部完成扫描,则终止所述光口扫描线程。

在本实施方式中,所述执行单元,进一步用于将检测到的该光口的link down事件上报给CPU的内核协议栈,基于生成树协议重新计算网络拓扑。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1