具体实施方式
针对现有技术存在的上述问题,本发明实施例提供了一种BFD实现方案用以充分利用设备硬件资源,并提高BFD会话业务规格。
下面结合附图对本发明实施例进行详细描述。
如图1所示,本发明实施例提供的一种BFD实现方法,应用于包括分布式设备11及分布式设备11的BFD对端设备12的系统架构中,分布式设备11包括主控CPU 111和至少2个OAM CPU 112,其中,OAM CPU 1被指定为基准OAM CPU。其中,主控CPU 111上增加了计算各OAM CPU 112的会话同步时间的功能;OAM CPU 112上增加了根据OAM CPU 112发送BFD报文的周期T0和会话同步时间Xi向BFD对端设备12发送BFD报文的功能。
具体的,主控CPU 111用于触发OAM CPU 112向BFD对端设备12发送ECHO报文,以及根据各非基准OAM CPU与基准OAM CPU所发送的ECHO报文的接收时间的比较结果,计算各OAM CPU的会话同步时间;OAM CPU112用于,根据OAM CPU 112发送BFD报文的周期T0和各自的会话同步时间向BFD对端设备12发送BFD报文。在本实施例中,分布式设备11的BFD对端设备12的功能没有改进,用于接收并返回各OAM CPU 112发送的ECHO报文。
分布式设备11在初始化时,在主控CPU 111上配置BFD会话业务的周期T和/或分布式设备11中各OAM CPU 112发送BFD报文的时间周期T0,并指定其中的一个OAM CPU 112为基准OAM CPU,则其余的OAM CPU 112即为非基准OAM CPU。BFD会话业务的周期T为分布式设备11的BFD对端设备12接收分布式设备11发送BFD报文的时间间隔;OAM CPU 112发送BFD报文的时间周期T0为OAM CPU向BFD对端设备12发送报文的时间间隔,T0是OAM CPU 112的硬件性能参数,分布式设备11中的各OAM CPU 112发送BFD报文的时间周期T0都相同。
优选的,分布式设备11初始化时,还可以在主控CPU 111上配置分布式设备11中OAM CPU的数量n。当BFD系统架构构建完成后,分布式设备11中OAM CPU 112的数量n随即确定,当分布式设备11初始化时,OAM CPU 112的数量n即可配置给主控CPU 111。其中,BFD会话业务的周期T、OAM CPU112发送BFD报文的时间周期T0和OAM CPU 112的数量n之间存在以下关系:T=T0/n。
具体的,分布式设备11初始化过程还包括以下流程:
主控CPU 111向分布式设备11中的各OAM CPU 112发送标识请求消息(即向各OAM CPU 112询问其OAM CPU标识),以建立BFD会话,各OAMCPU 112接收到主控CPU 111发送的标识请求消息后,向主控CPU 111发送响应消息,该响应消息中携带有各OAM CPU标识信息(即返回各自的OAM CPU标识)。
分布式设备11中OAM CPU 112的数量n也可以在初始化时,由主控CPU 111根据各OAM CPU 112返回的BFD会话建立响应消息获知。
本发明实施例将以分布式设备11在初始化过程中,在主控CPU 111上配置OAM CPU 112的数量n为例,详细说明BFD实现流程,参见图2,为本发明实施例提供的BFD实现流程示意图,分布式设备11初始化完成之后,该流程包括以下步骤:
步骤201,主控CPU 111生成会话描述符,并将会话描述符分别发送给分布式设备11中的各OAM CPU 112。
优选的,会话描述符可以包括:各OAM CPU 112发送BFD报文的时间周期T0、OAM CPU 112的数量n以及表示会话已建立的会话状态。
步骤202,各OAM CPU 112在接收到主控CPU 111发送的会话描述符后,向分布式设备11的BFD对端设备12发送ECHO报文。
具体的,分布式设备11中的各OAM CPU 112在接收到主控CPU 111发送的会话描述符后,若发现该会话描述符中的会话状态为会话已建立,则向BFD对端设备12发送ECHO报文。优选的,OAM CPU 112向BFD对端设备12发送ECHO报文,并由对端设备12返回,实现对链路的双向监测。
步骤203,BFD对端设备12接收到ECHO报文后,将该ECHO报文返回给相应的OAM CPU 112,并由相应OAM CPU 112转发给主控CPU 111。
步骤204,主控CPU 111接收OAM CPU 112转发的ECHO报文,并记录接收时间。
具体的,主控CPU 111接收各OAM CPU 112转发的ECHO报文,并根据ECHO报文中携带的OAM CPU标识信息,确定各OAM CPU 112所发送的ECHO报文的接收时间。
步骤205,主控CPU 111根据各ECHO报文的接收时间,计算各OAM CPU112的会话同步时间,该会话同步时间即为各OAM CPU 112的发包延时时间。
具体的,主控CPU 111将各非基准OAM CPU所发送的ECHO报文的接收时间,分别与基准OAM CPU所发送的ECHO报文的接收时间进行比较,并根据比较结果计算各OAM CPU的会话同步时间。例如,将OAM CPU 1作为基准OAM CPU,则OAM CPU 1的会话同步时间即为0,分布式设备11中非基准OAM CPU的会话同步时间为相对于OAM CPU 1的发包延时时间。
主控CPU 111可以根据公式(1)或(2)计算各OAM CPU 112的会话同步时间:
若ti>=t1,则Xi=T*(i-1)-(ti-t1); (1)
若ti<t1,则Xi=T*i-(t1-ti); (2)
其中,i=2,3,...n(n为分布式设备11中OAM CPU 112的数量);T=T0/n;
t1为主控CPU 111接收基准OAM CPU(OAM CPU 1)发送的ECHO报文的接收时间(该ECHO报文由OAM CPU 1发送给BFD对端设备12,由BFD对端设备12返回,并由OAM CPU 1转发给主控CPU 111);
ti为主控CPU 111接收非基准OAM CPU中第i个OAM CPU发送的ECHO报文的接收时间(该ECHO报文由OAM CPU i发送给BFD对端设备12,由BFD对端设备12返回,并由OAM CPU i转发给主控CPU 111);
Xi为第i个OAM CPU 112的会话同步时间。
从上述计算各OAM CPU 112的会话同步时间的公式中可以看出,主控CPU 111记录的各OAM CPU 112所发送的ECHO报文的接收时间为相对时间,即本发明实施例关注的是各非基准OAM CPU发送的ECHO报文的接收时间与基准OAM CPU发送的ECHO报文的接收时间之间的时间差。
通过各OAM CPU 112延时会话同步时间Xi发送BFD报文,能够使分布式设备11作为整体,向BFD对端设备12发送的BFD报文的周期为T=T0/n,其中,T0为OAM CPU 112发送BFD报文的周期,n为分布式设备11中OAMCPU 112的数量。
步骤206,主控CPU 111根据各OAM CPU 112的会话同步时间,生成同步后的会话描述符,并分别发送给相应的OAM CPU 112。
同步后的会话描述符可以包括:OAM CPU 112的会话同步时间Xi、分布式设备11中OAM CPU 112的数量n、以及表示会话同步已完成的会话状态。
具体的,主控CPU 111生成同步后的会话描述符,并将所述同步后的会话描述符分别发送给各OAM CPU 112,该同步后的会话描述符中包括各OAMCPU 112的会话同步时间,即,主控CPU 111生成一个同步后的会话描述符(其中包含分布式设备11中全部OAM CPU 112的会话同步时间),并将这该同步后的会话描述符发送给各OAM CPU 112。
主控CPU 111也可以分别为各OAM CPU 112生成同步后的会话描述符,并将为相应OAM CPU 112生成的同步后的会话描述符发送给相应OAM CPU112,为相应OAM CPU 112生成的同步后的会话描述符中包括所述相应OAMCPU 112的会话同步时间,即,主控CPU 111分别为各OAM CPU 112生成同步后的会话描述符(其中包括各自OAM CPU 112的会话同步时间),并将生成的各同步后的会话描述符发送给各OAM CPU 112。
步骤207,各OAM CPU 111在接收到同步后的会话描述符之后,根据OAMCPU 112发送BFD报文的周期T0和各自的会话同步时间,向BFD对端设备12发送BFD报文。
具体的,分布式设备11中的OAM CPU 112在接收到主控CPU 111发送的同步后的会话描述符后,若发现该同步后的会话描述符中的会话状态为会话同步已完成,则各OAM CPU 112根据各自的会话同步时间Xi进行顺序延时,并按照OAM CPU 112发送报文的时间周期T0,向BFD对端设备12发送ECHO报文。其中,基准OAM CPU的会话同步时间为0,基准OAM CPU在接收到主控CPU 111发送的同步后的会话描述符,并发现会话状态为会话同步已完成时,立即按照周期T0向BFD对端设备12发送ECHO报文(不发生延时);非基准OAM CPU i在接收到主控CPU 111发送的同步后的会话描述符,并发现会话状态为会话同步已完成时,延时会话同步时间Xi,按照周期T0向BFD对端设备12发送ECHO报文。
通过上述BFD实现流程,实现了BFD对端设备12按照周期T=T0/n接收各OAM CPU 112发送的ECHO报文,从而将BFD会话业务的规格从T0提高到T0/n。
为更清楚的描述本发明的上述实施例,下面以包括2个OAM CPU的分布式设备为例,说明本发明实施例的具体实现过程。
分布式设备初始化时,主控CPU上配置BFD会话业务的周期T为100ms,分布式设备中各OAM CPU发送BFD报文的时间周期T0为200ms,分布式设备中OAM CPU的数量n为2,主控CPU将OAM CPU 1作为基准OAM CPU。主控CPU分别向分布式设备中的2个OAM CPU发送标识请求消息,询问各OAM CPU的ID,OAM CPU 1和OAM CPU 2接收到主控CPU发送的标识请求消息后,返回各自的OAM CPU标识。
主控CPU生成会话描述符,并分别发送给OAM CPU 1和OAM CPU 2,会话描述符包含:
OAM CPU个数为2;
会话参数为100*2,表示建立的BFD会话的实际发包间隔时间参数是200ms;
会话状态为“建立”。
OAM CPU 1接收到会话描述符后,若发现会话状态为“建立”,则向BFD对端设备发送ECHO报文1;OAM CPU 2接收到会话描述符后,若发现会话状态为“建立”,则向BFD对端设备发送ECHO报文2。BFD对端设备将接收到的ECHO报文1返回给OAM CPU 1,将接收到的ECHO报文2返回给OAMCPU 2;OAM CPU 1将ECHO报文1发送给主控CPU,OAM CPU 2将ECHO报文2发送给主控CPU。
在BFD会话业务同步之前,OAM CPU 1和OAM CPU 2发送ECHO报文的时间示意图如图3a所示,主控CPU记录接收到ECHO报文1的时间t1,以及记录接收到ECHO报文2的时间t2。在本发明实施例中,OAM CPU 2发送的ECHO报文2晚于OAM CPU 1发送的ECHO报文1到达主控CPU,即t2>t1。
主控CPU将OAM CPU 1作为基准OAM CPU,认为OAM CPU 1是第一个发送ECHO报文的,因此,OAM CPU 1的会话同步时间X1=0。主控CPU利用公式(1)计算OAM CPU 2的会话同步时间X2,X2=100-(t2-t1)。
主控CPU根据OAM CPU 1和OAM CPU 2的会话同步时间,生成同步后的会话描述符,并分别发送给OAM CPU 1和OAM CPU 2。同步后的会话描述符包含:
OAMCPU个数为2;
会话参数为100*2,表示建立的BFD会话的实际发包间隔时间参数是200ms;
会话同步时间X1=0;X2=100-(t2-t1);
会话状态为“同步完成”。
OAM CPU 1接收到同步后的会话描述符后,若发现会话状态为“同步完成”,则按照100ms的周期(即OAM CPU发送BFD报文的时间周期T0),向BFD对端设备发送BFD报文(不产生延时,即X1=0);OAM CPU 2接收到同步后的会话描述符后,若发现会话状态为“同步完成”,则延时X2后,按照100ms的周期向BFD对端设备发送BFD报文。
BFD会话业务同步开始后,OAM CPU 1和OAM CPU 2发送BFD报文的时间示意图如图3a所示,OAM CPU 2延时X2时间发送BFD报文,且OAM CPU2发送的BFD报文相对于OAM CPU 1发送的BFD报文晚周期T(100ms)到达主控CPU。
BFD会话业务同步后,BFD对端设备接收BFD报文的示意图如图3b所示,对于BFD对端设备来说,每隔周期T(100ms),都会接收到BFD报文,从而将BFD会话业务规格从200ms提高到了100ms。
在本发明另一实施例中,在BFD会话业务同步之前,OAM CPU 2发送的ECHO报文2早于OAM CPU 1发送的ECHO报文1到达主控CPU,即t2<t1。但是,主控CPU仍然认为OAM CPU 1是第一个发送ECHO报文的,将OAMCPU 1作为基准OAM CPU,即OAM CPU 1的会话同步时间X1=0。主控CPU利用公式(2)计算OAM CPU 2的会话同步时间X2,X2=100*2-(t1-t2)。
BFD会话业务同步开始后,OAM CPU 2延时X2后,按照100ms的周期向BFD对端设备发送BFD报文。对于BFD对端设备来说,每隔周期T(100ms),都会接收到ECHO报文,从而将BFD会话业务规格从200ms提高到了100ms。
本发明实施例提供的BFD实现方法及设备,通过主控CPU根据各非基准OAM CPU与基准OAM CPU所发送的ECHO报文的接收时间的比较结果,计算出各OAM CPU的会话同步时间,以使各OAM CPU根据OAM CPU发送BFD报文的周期和各自的会话同步时间向BFD对端设备发送BFD报文,从而实现将分布式设备作为整体,发送BFD报文的周期达到T0/n。在本发明实施例中,BFD会话规格依据分布式设备中所有的OAM CPU决定,解决了现有的分布式设备中BFD会话业务规格由一个OAM CPU决定而带来的设备硬件资源利用率不高的问题,充分利用了分布式设备的OAM CPU的硬件资源,实现了将BFD会话业务规格成倍提高。
基于相同的技术构思,本发明实施例还提供了一种分布式设备。该分布式设备的结构示意图如图1所示,该分布式设备11包括:主控CPU 111和多个OAM CPU 112,其中的一个OAM CPU 112被指定为基准OAM CPU。
主控CPU 111用于,触发各OAM CPU 112向分布式设备的BFD对端设备12发送ECHO报文,以及接收由BFD对端设备12返回的,并由相应OAM CPU112转发的ECHO报文,并将各非基准OAM CPU所发送的ECHO报文的接收时间,分别与基准OAM CPU所发送的ECHO报文的接收时间进行比较,并根据比较结果计算各OAM CPU 112的会话同步时间,以使本设备向其BFD对端设备发送的BFD报文的周期为T0/n,其中,T0为各OAM CPU 112发送BFD报文的周期,n为OAM CPU 112的数量;以及将OAM CPU 112的会话同步时间分别发送给相应OAM CPU 112;
OAM CPU 112用于,根据各OAM CPU 112发送BFD报文的周期T0和各自的会话同步时间,向BFD对端设备12发送BFD报文。
主控CPU 111具体用于,根据以下公式计算分布式设备11中各OAMCPU112的会话同步时间:
若ti>=t1,则Xi=T*(i-1)-(ti-t1);
若ti<t1,则Xi=T*i-(t1-ti);
其中,i=2,3,...n;T=T0/n;t1为主控CPU 111接收基准OAM CPU所发送的ECHO报文的接收时间;ti为主控CPU 111接收非基准OAM CPU中第i个OAM CPU 112所发送的ECHO报文的接收时间;Xi为第i个OAM CPU 112的会话同步时间。
主控CPU 111具体用于,生成会话描述符,并将会话描述符分别发送给各OAM CPU 112,会话描述符中包括表示会话已建立的会话状态。
主控CPU 111具体用于,生成同步后的会话描述符,并将同步后的会话描述符分别发送给各OAM CPU 112,同步后的会话描述符中包括各OAM CPU112的会话同步时间;或者,分别为各OAM CPU生成同步后的会话描述符,并将为相应OAM CPU生成的同步后的会话描述符发送给相应OAM CPU,为相应OAM CPU生成的同步后的会话描述符中包括相应OAM CPU 112的会话同步时间。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。