CN104821957B - 一种bfd状态机的实现方法、装置及系统 - Google Patents

一种bfd状态机的实现方法、装置及系统 Download PDF

Info

Publication number
CN104821957B
CN104821957B CN201510181055.1A CN201510181055A CN104821957B CN 104821957 B CN104821957 B CN 104821957B CN 201510181055 A CN201510181055 A CN 201510181055A CN 104821957 B CN104821957 B CN 104821957B
Authority
CN
China
Prior art keywords
bfd
local terminal
relationship
information
states
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510181055.1A
Other languages
English (en)
Other versions
CN104821957A (zh
Inventor
王震
贺彦军
张宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Raisecom Technology Co Ltd
Original Assignee
Raisecom Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Raisecom Technology Co Ltd filed Critical Raisecom Technology Co Ltd
Priority to CN201510181055.1A priority Critical patent/CN104821957B/zh
Publication of CN104821957A publication Critical patent/CN104821957A/zh
Application granted granted Critical
Publication of CN104821957B publication Critical patent/CN104821957B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本发明实施例公开了一种BFD状态机实现方法、装置及系统。该方法包括:获取BFD状态机跳转信息,所述BFD状态机跳转信息包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;从读写存储单元存储的跳转关系中,查找与所述本端BFD状态机协议标识信息、所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息对应的跳转关系;根据查找到的所述跳转关系,将所述当前本端BFD状态跳转至所述跳转关系包括的目的本端BFD状态。可以修改读写存储器读写存储单元中的BFD状态机的跳转关系,BFD状态机的实现更加灵活。

Description

一种BFD状态机的实现方法、装置及系统
技术领域
本发明涉及通信技术领域,尤其涉及一种BFD状态机的实现方法、装置及系统。
背景技术
双向转发检测(Bidirectional Forwarding Dection,BFD)是互联网工程任务组(Internet Engineering Task Force,IETF)提出的一种应用于多协议标签交换(MultiProtocol Label Switching,MPLS)和因特网协议(Internet Protocol,IP)等网络中的路径故障检测机制,它的优点是检测精度高、开销小和运行效率高,与底层介质、上层协议无关,适用于物理或者逻辑接口、数据链路以及转发引擎之间的路径检测。
通常BFD的实现方式是:相互通信的两台设备的路径上周期性发送BFD报文,一端的设备如果在预定时间内没有接收到对端设备的BFD报文,则认为在两台设备之间路径发生故障。
BFD的基础协议即请求评议(Request For Comments,RFC)5880(定制于2010年)定义了4种会话状态:初始化(init)、建立(up)、会话拆除(down)和管理层会话中断(admindown),以及这4种会话状态间的跳转关系,即BFD状态机。BFD状态机是整个BFD工作机制的核心部分。上述BFD报文中携带了指示发送该BFD报文的设备的BFD会话状态的信息。本端设备可以通过解析接收到的对端设备发送的BFD报文得到对端设备BFD会话状态,并从本端设备中获取本端设备BFD会话状态,将得到的本端设备BFD会话状态和对端设备BFD会话状态作为BFD状态机的输入,得到下一个本端设备BFD会话状态,实现了本端设备BFD会话状态的跳转。如图1所示,为RFC5880定义的状态机,其中,方框内的down、init和up为本端设备BFD会话状态,BFD会话状态跳转条件上的down、admin down、init和up等为对端设备BFD会话状态,timer表示本端BFD会话在预定时间内没有接收到对端设备发送的BFD报文,即会话超时。以当前的本端BFD会话状态是up为例,当接收到对端设备的BFD报文后,若解析得到对端设备BFD会话状态为init/up,本端BFD会话状态仍为up,若解析得到对端设备的BFD会话状态为admin down/down,本端BFD会话状态跳转至down,若在预定时间内没有接收到对端会话发送的BFD报文,本端BFD会话状态跳转为down。
根据上述BFD会话状态,BFD的检测结果如表1所示。
表1
如图2所示,为另一种协议的状态机,RFC6428(制定于2011年)定义了用于多协议标签交换传输架构(MPLS Transport Profile,MPLS–TP)网络的BFD扩展,用来支持MPLS-TP网络中伪线、标签交换路径(Label Switch Path,LSP)等路径的生存性检测。该协议定义了2种新的会话(session)模式,其中独立会话(independent session)模式下,对于发送端和接收端定义了与RFC5880不同的BFD状态机,分别如图2和图3所示。其中,错误连接(mis-connectivity)表示两个本不应该连接的设备由于错误配置导致误连接。图2中没有显示RFC6428中定义的链路故障指示(Link down indication,LDI)和链路锁定指示(Lockreport,LKR)等与BFD本身无关的BFD会话状态跳转条件,这些BFD会话状态跳转条件需要上层软件通过其他操作管理维护(Operation Administration Maintenance,OAM)消息来获得并通过配置的方法实现BFD状态机的跳转。
为了提高BFD协议的工作效率、扩展故障检测范围和增加适用场景,又定义了无缝BFD(Seamless-BFD,S-BFD)的状态机,如图4所示,对发送端的BFD状态机也与RFC5880的定义有所不同。
综上,随着标准和需求的变化,新的BFD状态机定义也会随之出现。
在RFC5880定义中,BFD会话的发送周期最小值可以为微秒级,更小的发送周期意味着更快的故障检测时间,但对设备的发送带宽要求、处理性能也提出了更高的要求。如果用软件实现BFD协议,则会占用大量的CPU资源,导致对于路由协议、保护倒换协议等其他关键处理造成响应缓慢,影响设备性能。所以在某些局端设备或者对于链路故障检测性能要求较高的场合中,会考虑使用硬件(如特定用途集成电路(Application SpecificIntegrated Circuit,ASIC)FPGA、现场可编程门阵列(Field Programmable Gate Array,FPGA)等芯片)实现BFD协议。那么,由于随着标准和需求的变化,新的BFD状态机定义出现时,用于实现BFD功能的芯片也需要与BFD状态机的变化相适应。
如果使用ASIC技术实现BFD功能,BFD状态机,即BFD会话状态之间的跳转关系,是通过基本的与非门电路单元加上基本电路单元之间的连线实现的,并且固化在芯片中。在芯片流片完成后已经定型,无法根据将来标准的变化或者特殊的需求来灵活的定制某一种状态机。如果使用FPGA技术实现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会话未超时,所述信息获取模块,具体用于:获取所述本端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为现有技术中的一种协议的BFD状态机;
图2为现有技术中的另一种协议发送端的BFD状态机;
图3为现有技术中的另一种协议接收端的BFD状态机;
图4为现有技术中的又一种协议的BFD状态机;
图5为本发明实施例提供的一种BFD状态机实现方法流程图;
图6为本发明实施例提供的第二种BFD状态机实现方法流程图;
图7为本发明实施例提供的BFD状态查找表;
图8为本发明实施例提供的第三种BFD状态机实现方法流程图;
图9为本发明实施例中根据第三种BFD状态机实现方法实现的RFC5880状态机;
图10为本发明实施例提供的一种BFD状态机装置示意图;
图11为本发明实施例提供的另一种BFD状态机装置示意图;
图12为本发明实施例提供的又一种BFD状态机装置示意图。
具体实施方式
下面结合附图和实施例对本发明提供的一种BFD状态机实现方法、装置及系统进行更详细地说明。
如图5所示,本发明实施例提供一种BFD状态机实现方法,其具体实现步骤如下:
步骤510:获取BFD状态机跳转信息,BFD状态机跳转信息包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息。
其中,本端BFD状态即本端设备的BFD会话状态。对端BFD状态即与本端设备建立会话的对端设备的BFD会话状态。BFD状态机跳转信息还可以根据实际需要,增加其它与BFD状态相关的信息。
步骤520:从读写存储单元中存储的跳转关系中,查找与本端BFD状态机协议标识信息、当前本端BFD状态,对端BFD状态和本端BFD会话是否超时信息对应的跳转关系。
其中,一个本端BFD状态机协议标识信息可以对应多条跳转关系,一条跳转关系至少包含当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息,与目的本端BFD状态的对应关系。
步骤530:根据查找到的跳转关系,将本端BFD状态跳转至该跳转关系包括的目的本端BFD状态。
本发明实施例中,获取BFD状态机跳转信息,包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;从读写存储单元中存储的跳转关系中,查找与本端BFD状态机协议标识信息对应、当前本端BFD状态,对端BFD状态和本端BFD会话是否超时信息对应的跳转关系;根据查找到的跳转关系,将当前本端BFD状态跳转至该跳转关系包括的目的本端BFD状态,从而实现了BFD状态机。由于BFD状态机的跳转关系是预先存储在读写存储单元中的,而读写存储单元可读可写,因此,不仅可以从读写存储单元中查找存储的BFD状态机的跳转关系,而且可以修改读写存储单元中的BFD状态机的跳转关系,BFD状态机的实现更加灵活,能够适应BFD状态机的变化。
应当指出的是,读写存储单元可以是具有软件配置接口的芯片,例如随机存储器(Random Access Memory,RAM),也可以是设置有软件接口的、由基本的与非门电路单元加上基本电路单元连线构成的存储电路,等等。
可选的,上述步骤520可通过多种方式实现,在一种实现方式中,按照预定格式,根据获取的本端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状态机跳转信息实现状态跳转。具体实现方式如图6所示:
步骤610:检测是否在预定时间内接收到对端发送的BFD报文,该BFD报文中至少携带了对端BFD状态,若在预定时间内接收到对端发送的BFD报文,执行步骤620,若在预定时间内未接收到对端发送的BFD报文,执行步骤640。
步骤620:确定本端与对端之间的本端BFD会话未超时,执行步骤630。
步骤630:获取本端BFD会话未超时信息和对端BFD状态,并从本端获取本端BFD状态机标识信息和当前本端BFD状态。
步骤640:确定本端BFD会话超时,执行步骤650。
步骤650:获取本端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状态查找表的查找索引的第二索引,假设称为C[0]……,C[n]。将BFD状态机协议标识信息作为BFD状态查找表的查找索引的第一索引,并将其作为每个BFD会话的本端BFD属性表的一个属性。BFD状态机的标识信息用指针(Pointer,Ptr)表示,将不同的Ptr对应到不同的协议的BFD状态机,例如可以定义Ptr=0的所有表项对应RFC5880,Ptr=1的所有表项对应RFC6428,等等。针对每一个Ptr的值,根据C[0]……,C[n]所有可能的取值组合和对应协议的BFD状态机的定义得到对应的目的本端BFD状态,该目的本端BFD状态即为该取值组合对应查找索引的表项的值。即,在表项中存储Ptr标识的BFD状态机的所有跳转关系。
其中,Ptr的宽度为W比特,则需要保证2的W次方的结果大于等于所需要支持的不同BFD状态机的数量。
假设实现的BFD状态查找表的查找索引为index={Ptr,C[2],C[1],C[0]},其中C[0]代表本端BFD状态,C[1]代表对端BFD状态或者接收BFD报文的状态(BFD报文中携带的指示该对端BFD状态的字段),C[2]代表本端BFD会话超时或者未超时,Ptr的值为BFD状态机的标识信息。假设Ptr宽度为2个bit即支持4种BFD协议定义状态机。其中C[0]和C[1]对应的BFD状态的编码为:00代表admindown,01代表down,10代表ini,11代表up;C[2]对应的编码:1代表本端BFD会话超时,0代表本端BFD会话未超时;未定义的状态以N/A表示。
如图7所示,Ptr=00代表RFC5880协议的BFD状态机;Ptr=01和10代表RFC6428协议的BFD状态机;Ptr=11代表S-BFD草案的BFD状态机。其中,本端状态(local_state)表示本端BFD状态;远端状态(remote_state)表示对端BFD状态,超时(timeout)表示本端BFD会话超时,下一个状态(next_state)表示目的本端BFD状态。
从图7可以看出Ptr=00和01者区别就在于C[0]=11时C[2]=1和C[1]=01情况下next_state不同,Ptr=00和10的区别就在于C[0]=01时C[1]=11情况下next_state不同,Ptr=00和11的有效区别也在于C[0]=01时C[1]=11情况下next_state不同。因此上层软件可以通过配置不同BFD会话的Ptr属性值来使得BFD会话在不同的协议标准间切换,也可以实现不同BFD会话支持不同协议的BFD状态机,并且如果上层软件希望临时调整BFD状态机某些条件下的下一状态或者实现另一种自定义的状态机,就可以通过配置相应查找索引的next_state值来实现。图7中的*代表2进制编码中的所有可能,例如remote_state=*代表remote_state=00/01/10/11。
在本发明实施例中,由于第一索引Ptr的值可代表多个不同BFD协议/草案,并且,多个属于不同BFD协议/草案的BFD状态机的跳转关系也是预先存储在读写存储单元中的,而读写存储单元可读可写,因此,不仅可以从读写存储单元中查找存储的BFD状态机的跳转关系,而且可以修改读写存储单元中的BFD状态机的跳转关系,BFD状态机的实现更加灵活,能够适应BFD状态机的变化。
在上述芯片的基础上,如图8所示,通过查找BFD状态表的方式实现BFD状态机,其具体过程如下:
步骤810:检测所有的BFD会话是否在预定时间内接收到对端发送的BFD报文,若在预定时间内接收到对端发送的BFD报文,该报文对应的BFD会话未超时,执行步骤820;若某个本端BFD会话在预定时间内没有接收到BFD报文,该本端BFD会话超时,执行步骤890。
步骤820:确定本端与对端之间的本端BFD会话未超时,从BFD报文中获取你的描述符(your_discriminator)即本端描述符和对端BFD状态,并记录报文接收时间等信息,执行步骤830。
其中,记录的报文接收时间用于结合预设时间判断下一个BFD会话是否超时。
步骤830:查找本端描述符表得到当前BFD报文所对应的本端BFD会话标识号,其中,本端描述符表中存储本端描述符和本端BFD会话标识号的对应关系,执行步骤840。
其中,不同的BFD会话用BFD会话标识号来标识。
步骤840:根据本端BFD会话标识号将对端BFD状态、报文接收时间等信息存储到对端BFD属性表中,执行步骤850。
步骤850:根据BFD会话的标识号查找本端BFD属性表得到BFD状态机的相关属性,至少包括:本端BFD状态和本端BFD状态机协议标识信息,执行步骤860。
步骤860:将本端BFD状态机协议标识信息作为第一索引,从读写存储单元存储的跳转关系中,确定与本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系,执行步骤870。
步骤870:将当前本端BFD状态、对端BFD状态和本端BFD会话未超时信息作为第二索引,从确定出的属于同一BFD状态机协议的跳转关系中,确定与当前本端BFD状态、对端BFD状态和本端BFD会话未超时信息唯一匹配的跳转关系。
其中,该跳转关系与查找索引的格式相同。
步骤880:根据查找到的跳转关系,将本端BFD状态跳转至该跳转关系包括的目的本端BFD状态。
步骤890:确定本端BFD会话超时,并获取超时的本端BFD会话标识号,执行步骤8100。
步骤8100:根据本端BFD会话标识号查找本端BFD属性表得到BFD状态机相关的本端BFD属性,至少包括本端BFD状态机协议标识信息和本端BFD状态,执行步骤8110。
步骤8110:根据本端BFD会话标识号查找对端BFD属性表得到BFD状态机相关的对端BFD属性,至少包括对端BFD状态,执行步骤8120。
步骤8120:将本端BFD状态机协议标识信息作为第一索引,从读写存储单元存储的跳转关系中,确定与本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系,执行步骤8130。
步骤8130:将当前本端BFD状态、对端BFD状态和本端BFD会话超时信息作为第二索引,从确定出的属于同一BFD状态机协议的跳转关系中,确定与当前本端BFD状态、对端BFD状态和本端BFD会话超时信息唯一匹配的跳转关系,执行步骤8140。
步骤8140:根据查找到的跳转关系,将本端BFD状态跳转至该跳转关系包括的目的本端BFD状态。
按照上述步骤,以RFC5880协议的BFD状态机为例,使用上面的查表方法实现的BFD状态机如图9所示。
基于同样的发明构思,如图10所示,本发明实施例提供一种BFD状态机的实现装置,包括:信息获取模块1001,关系查找模块1002和状态跳转模块1003。
信息获取模块1001,用于:获取BFD状态机跳转信息,BFD状态机跳转信息包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;
关系查找模块1002,用于:从读写存储单元存储的跳转关系中,查找与本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和所述本端BFD会话是否超时信息对应的跳转关系;
状态跳转模块1003,用于:根据查找到的跳转关系,将当前本端BFD状态跳转至跳转关系包括的目的本端BFD状态。
可选的,关系查找模块1002具体用于:
将本端BFD状态机协议标识信息作为第一索引,从读写存储单元存储的跳转关系中,确定与本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系;
将当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息作为第二索引,从确定出的属于同一BFD状态机协议的跳转关系中,确定与当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息唯一匹配的跳转关系。
可选的,如图11所示,还包括状态机存储模块1004,用于:
获取新增加的本端BFD状态机协议标识信息、跳转关系及新增加的本端BFD状态机协议标识信息与跳转关系的对应关系;
将新增加的本端BFD状态机协议标识信息、跳转关系及新增加的本端BFD状态机协议标识信息与跳转关系的对应关系保存在读写存储单元中。
可选的,本端BFD状态机协议标识信息、跳转关系及本端BFD状态机协议标识信息与跳转关系的对应关系以表格的形式存储在读写存储单元中。
可选的,本端BFD会话是否超时信息包括本端BFD会话未超时信息和本端BFD会话超时信息,如图12所示,该装置还包括:超时信息确定模块1005,用于:
信息获取模块1001获取BFD状态机跳转信息之前,检测是否在预定时间内接收到对端发送的BFD报文,BFD报文包括对端BFD状态;若在预定时间内接收到对端发送的BFD报文,则确定本端与所述对端之间的本端BFD会话未超时;若在预定时间内未接收到对端发送的BFD报文,则确定本端BFD会话超时;
若超时信息确定模块1005确定本端与对端之间的本端BFD会话未超时,信息获取模块1001,具体用于:获取本端BFD会话未超时信息和对端BFD状态,并从本端获取本端BFD状态机标识信息和当前本端BFD状态;
若超时信息确定模块1005确定本端BFD会话超时,信息获取模块1001,具体用于:获取本端BFD会话超时信息,并从本端获取本端BFD状态机标识信息、当前本端BFD状态以及对端BFD状态。
基于同样的发明构思,本发明实施例提供一种BFD状态机实现系统,该系统包括若干个BFD状态机实现装置,该装置为以上任一实施例所述的装置。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种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会话是否超时信息唯一匹配的跳转关系。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系;
将新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系保存在所述读写存储单元中。
3.根据权利要求2所述的方法,其特征在于,所述本端BFD状态机协议标识信息、所述跳转关系及所述本端BFD状态机协议标识信息与所述跳转关系的对应关系以表格的形式存储在所述读写存储单元中。
4.根据权利要求1所述的方法,其特征在于,所述本端BFD会话是否超时信息包括所述本端BFD会话未超时信息和所述本端BFD会话超时信息;
所述获取BFD状态机跳转信息之前,所述方法还包括:
检测是否在预定时间内接收到对端发送的BFD报文,所述BFD报文包括所述对端BFD状态;
若在预定时间内接收到所述对端发送的所述BFD报文,则确定本端与所述对端之间的所述本端BFD会话未超时;
获取所述本端BFD会话未超时信息和所述对端BFD状态,并从本端获取所述本端BFD状态机标识信息和所述当前本端BFD状态;
若在预定时间内未接收到所述对端发送的所述BFD报文,则确定所述本端BFD会话超时;
获取所述本端BFD会话超时信息,并从本端获取所述本端BFD状态机标识信息、所述当前本端BFD状态以及所述对端BFD状态。
5.一种BFD状态机的实现装置,其特征在于,包括:
信息获取模块,用于:获取BFD状态机跳转信息,所述BFD状态机跳转信息包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;
关系查找模块,用于:从读写存储单元存储的跳转关系中,查找与所述本端BFD状态机协议标识信息、所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息对应的跳转关系;
状态跳转模块,用于:根据查找到的所述跳转关系,将所述当前本端BFD状态跳转至所述跳转关系包括的目的本端BFD状态;
其中,所述关系查找模块具体用于:
将所述本端BFD状态机协议标识信息作为第一索引,从所述读写存储单元存储的跳转关系中,确定与所述本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系;
将所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息作为第二索引,从确定出的所述属于同一BFD状态机协议的跳转关系中,确定与所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息唯一匹配的跳转关系。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:状态机存储模块,用于:
获取新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系;
将新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系保存在所述读写存储单元中。
7.根据权利要求6所述的装置,其特征在于,所述本端BFD状态机协议标识信息、所述跳转关系及所述本端BFD状态机协议标识信息与所述跳转关系的对应关系以表格的形式存储在所述读写存储单元中。
8.根据权利要求5所述的装置,其特征在于,所述信息获取模块获取的所述本端BFD会话是否超时信息包括所述本端BFD会话未超时信息和所述本端BFD会话超时信息;
所述装置还包括:超时信息确定模块,用于:在所述信息获取模块获取BFD状态机跳转信息之前,检测是否在预定时间内接收到对端发送的BFD报文,所述BFD报文包括所述对端BFD状态;若在预定时间内接收到所述对端发送的所述BFD报文,则确定本端与所述对端之间的所述本端BFD会话未超时;若在预定时间内未接收到所述对端发送的所述BFD报文,则确定所述本端BFD会话超时;
若超时信息确定模块确定本端与所述对端之间的所述本端BFD会话未超时,所述信息获取模块,具体用于:获取所述本端BFD会话未超时信息和所述对端BFD状态,并从本端获取所述本端BFD状态机标识信息和所述当前本端BFD状态;
若超时信息确定模块确定所述本端BFD会话超时,所述信息获取模块,具体用于:获取所述本端BFD会话超时信息,并从本端获取所述本端BFD状态机标识信息、所述当前本端BFD状态以及所述对端BFD状态。
9.一种BFD状态机实现系统,其特征在于,所述系统包括若干个BFD状态机实现装置,所述装置为权利要求5~8任一项所述的装置。
CN201510181055.1A 2015-04-16 2015-04-16 一种bfd状态机的实现方法、装置及系统 Active CN104821957B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510181055.1A CN104821957B (zh) 2015-04-16 2015-04-16 一种bfd状态机的实现方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510181055.1A CN104821957B (zh) 2015-04-16 2015-04-16 一种bfd状态机的实现方法、装置及系统

Publications (2)

Publication Number Publication Date
CN104821957A CN104821957A (zh) 2015-08-05
CN104821957B true CN104821957B (zh) 2018-08-07

Family

ID=53732120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510181055.1A Active CN104821957B (zh) 2015-04-16 2015-04-16 一种bfd状态机的实现方法、装置及系统

Country Status (1)

Country Link
CN (1) CN104821957B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105553742B (zh) * 2015-12-31 2019-04-09 北京中科江南信息技术股份有限公司 基于状态机的电子报文通信方法
CN107846292B (zh) * 2016-09-19 2020-12-04 新华三技术有限公司 防止故障处理延迟的方法和装置
CN106911571B (zh) * 2017-02-28 2019-08-13 烽火通信科技股份有限公司 一种基于网络处理器的远端pw bfd描述符学习方法及系统
CN108156050A (zh) * 2017-11-28 2018-06-12 盛科网络(苏州)有限公司 无缝双向转发检测方法及装置
CN110995594A (zh) * 2019-12-23 2020-04-10 安徽皖通邮电股份有限公司 一种解决pw bfd受到攻击震荡的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434679B1 (en) * 1997-11-27 2002-08-13 Bull, S.A. Architecture for vital data management in a multi-module machine and process for implementing an architecture of this type
CN101136789A (zh) * 2006-08-30 2008-03-05 华为技术有限公司 一种实现端到端的链路检测、路由策略倒换的方法及装置
CN101170459A (zh) * 2007-11-28 2008-04-30 中兴通讯股份有限公司 基于双向转发链路进行故障检测与链路恢复的方法
CN101201753A (zh) * 2007-12-13 2008-06-18 浪潮通信信息系统有限公司 一种多状态机管理引擎的配置管理方法
CN101247270A (zh) * 2008-03-19 2008-08-20 中兴通讯股份有限公司 一种实现双向转发检测的系统及方法
CN102355414A (zh) * 2011-09-21 2012-02-15 中兴通讯股份有限公司 自动保护切换状态机处理方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434679B1 (en) * 1997-11-27 2002-08-13 Bull, S.A. Architecture for vital data management in a multi-module machine and process for implementing an architecture of this type
CN101136789A (zh) * 2006-08-30 2008-03-05 华为技术有限公司 一种实现端到端的链路检测、路由策略倒换的方法及装置
CN101170459A (zh) * 2007-11-28 2008-04-30 中兴通讯股份有限公司 基于双向转发链路进行故障检测与链路恢复的方法
CN101201753A (zh) * 2007-12-13 2008-06-18 浪潮通信信息系统有限公司 一种多状态机管理引擎的配置管理方法
CN101247270A (zh) * 2008-03-19 2008-08-20 中兴通讯股份有限公司 一种实现双向转发检测的系统及方法
CN102355414A (zh) * 2011-09-21 2012-02-15 中兴通讯股份有限公司 自动保护切换状态机处理方法及装置

Also Published As

Publication number Publication date
CN104821957A (zh) 2015-08-05

Similar Documents

Publication Publication Date Title
CN104821957B (zh) 一种bfd状态机的实现方法、装置及系统
US11297000B2 (en) Data transmission method, apparatus, and system
US10404605B2 (en) Packet processing method, device and computer storage medium
US9742667B2 (en) Packet processing method, device and system
CN106605392A (zh) 用于使用控制器在网络上进行操作的系统和方法
CN106664261A (zh) 一种配置流表项的方法、装置和系统
US20150016245A1 (en) Method and apparatus for protection switching in packet transport system
US8341231B2 (en) Systems and methods for processing heartbeat messages
CN109088819A (zh) 一种报文转发方法、交换机及计算机可读存储介质
CN103269315A (zh) 标签分配方法、装置、系统和网络设备
CN107277652A (zh) Pon接入系统的跨盘lacp链路聚合方法及装置
CN109218176B (zh) 一种报文处理的方法及装置
CN106850268A (zh) 一种线性保护倒换的实现装置及方法
CN102857436B (zh) 一种基于irf网络的流量传输方法和设备
CN108234358A (zh) 一种组播报文传输方法、装置及机器可读存储介质
CN106411731A (zh) 一种自协商lacp协议参考系统和参考端口的方法及装置
CN105681229A (zh) 扩展端口编号的方法及交换机
WO2014090098A1 (zh) 一种分布式系统中检测协议的实现方法和装置
CN102780640B (zh) 交换芯片中实现多层lm的方法及装置
CN103200029A (zh) 网管对PTN/IPRan设备的标签分配和管理的方法
US10069721B2 (en) Communication device and method applicable to stacking communication system
CN110063050B (zh) 一种业务调度方法及系统
CN112751791B (zh) 报文转发及信息处理方法、装置、电子设备及存储介质
US10897401B2 (en) Determining the importance of network devices based on discovered topology, managed endpoints, and activity
CN102647424A (zh) 一种数据传输方法及其装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant