报文匹配信息的发送方法、装置、存储介质及电子装置与流程

文档序号:18737725发布日期:2019-09-21 01:23阅读:107来源:国知局
报文匹配信息的发送方法、装置、存储介质及电子装置与流程
本发明涉及通信领域,具体而言,涉及一种报文匹配信息的发送方法、装置、存储介质及电子装置。
背景技术
:作为软件定义网络的一个实例,OpenFlow(开放流,为描述方面,后续简称OF)网络采用控制平面与转发平面相分离的架构,图1是OF网络组件架构示意图。如图1所示,OF网络的控制平面由OF控制器(即,开放流控制器器)来实现,OF网络的转发平面由OF交换机(即,开放流交换机)来实现,OF控制器与OF交换机之间运行OF协议。OF控制器利用OF协议向OF交换机下发流表(FlowTable)和组表(GroupTable),从而达到控制数据转发的目的,实现了控制平面和转发平面的分离。开放网络基金会(OpenNetworkingFoundation,简称为ONF)制定的OF交换机规范中定义了OF控制器和OF交换机之间交互的三类消息:OF控制器到OF交换机消息,异步消息以及对称消息。其中异步消息中包括packet-in消息,该消息的作用是将那些经过流水线处理的需要上送的数据报文以及相关流水线信息上送给OF控制器。OF协议定义的Packet-in消息中包括以下几类信息:(1)流水线处理相关的信息,包括查询的流表ID(Identification,身份标识号码)、流表项的cookie以及上送原因等;(2)数据报文相关的信息,包括报文匹配信息、报文长度以及报文内容。协议描述了报文匹配信息包括两类,一类是流水线匹配字段信息,这些匹配信息无法通过解析数据报文得到,比如接收数据报文的入端口号。协议要求上送的匹配信息中必须包含所有设备支持的流水线匹配信息,这些匹配信息对应的数值不为0。另外一类是数据报文内容相关的匹配信息,这些信息可以通过解析数据报文获得,比如二层MAC地址信息、三层IP地址信息、四层端口号信息等等。协议描述了这些匹配信息是可选支持的,且考虑到上送packet-in效率问题,大多数的交换机不应该包含这些匹配信息。这样,控制器也不应该依赖于这些匹配信息而应该自己解析数据报文提取。协议对匹配信息的上述约束带来的一些问题,包括:(1)限制了上送匹配信息的灵活性,比如强制要求所有的流水线匹配信息都要上送,无法根据设备自身的能力或者业务要求灵活选择上送;(2)会导致一些互通性、兼容性问题;比如设备上送了异厂商不支持的流水线匹配字段,导致对接出现问题;或者设备升级支持了上送新的流水线匹配字段,导致和之前的控制器对接出现问题,升级失败。针对相关技术中存在的开放流交换机和开放流控制器之间的互通性和兼容性的问题目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种报文匹配信息的发送方法、装置、存储介质及电子装置,以至少解决相关技术中存在的开放流交换机和开放流控制器之间的互通性和兼容性的问题。根据本发明的一个实施例,提供了一种报文匹配信息的发送方法,包括:按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息,其中,所述匹配信息指令是在所述开放流交换机与开放流控制器进行了匹配信息支持能力协商之后,由所述开放流控制器所指示的指令;将提取的所述第一匹配信息发送给所述开放流控制器。可选地,在按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,所述方法还包括:所述开放流交换机通过如下方式与所述开放流控制器进行所述匹配信息支持能力协商:接收来自所述开放流控制器的协商请求消息;在所述开放流交换机支持匹配信息发送的情况下,根据所述协商请求消息将所述开放流交换机所支持的匹配信息发送给所述开放流控制器,以指示所述开放流控制器根据所述开放流交换机所支持的匹配信息和所述开放流控制器所支持的匹配信息确定所述开放流交换机和所述开放流控制器均支持的匹配信息。可选地,在根据所述协商请求消息将所述开放流交换机所支持的匹配信息发送给所述开放流控制器之后、且在所述按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,所述方法还包括:接收来自所述开放流控制器的第一流表,其中,当所述开放流控制器支持所述匹配信息指令发送时,所述第一流表的扩展的第一预定消息中携带所述匹配信息指令;在确定所述第一流表的扩展的第一预定消息中携带所述匹配信息指令,且在所述开放流交换机所支持的匹配信息包括所述匹配信息指令所指示的匹配信息时,创建与所述第一流表对应的第二流表,其中,在所述第二流表的扩展的第二预定消息中携带所述匹配信息指令。可选地,在按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,所述方法还包括:从所述第二流表中扩展的所述第二预定消息中获取所述匹配信息指令。可选地,在接收来自所述开放流控制器的第一流表之后,所述方法还包括:在所述开放流交换机所支持的匹配信息不包括所述匹配信息指令所指示的匹配信息时,向所述开放流控制器回复错误响应消息。可选地,在接收来自所述开放流控制器的协商请求消息之后,所述方法还包括:在所述开放流交换机不支持匹配信息发送的情况下,接收来自所述开放流控制器的第一流表,其中,所述第一流表中不携带所述匹配信息指令;按照第一预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。可选地,在根据所述协商请求消息将所述开放流交换机所支持的匹配信息发送给所述开放流控制器之后、且在所述按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,所述方法还包括:接收来自所述开放流控制器的第一流表,其中,当所述开放流控制器不支持所述匹配信息指令发送时,所述第一流表中不携带所述匹配信息指令;在确定所述第一流表中不携带所述匹配信息指令时,按照第二预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。可选地,所述开放流交换机按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息;所述开放流交换机将提取的所述第一匹配信息发送给所述开放流控制器。根据本发明的另一个实施例,还提供了一种报文匹配信息的发送方法,包括:在开放流控制器与开放流交换机进行了匹配信息支持能力协商之后,向所述开放流交换机发送匹配信息指令,其中,所述匹配信息指令用于所述开放流交换机在接收到报文后,按照所述匹配信息指令提取与所述报文对应的第一匹配信息,并将所述第一匹配信息发送给所述开放流控制器。可选地,在向所述开放流交换机发送匹配信息指令之前,所述方法还包括:所述开放流控制器通过如下方式与所述开放流交换机进行匹配信息支持能力协商:向所述开放流交换机发送协商请求消息,其中,所述协商请求消息用于请求所述开放流交换机将自身所支持的匹配信息上报给所述开放流控制器;在所述开放流交换机支持匹配信息发送的情况下,接收所述开放流交换机发送的所述开放流交换机所支持的匹配信息;根据所述开放流交换机所支持的匹配信息和所述开放流控制器所支持的匹配信息确定所述开放流交换机和所述开放流控制器均支持的匹配信息。可选地,向所述开放流交换机发送匹配信息指令包括:在所述开放流控制器支持所述匹配信息指令发送时,向所述开放流交换机发送第一流表,其中,所述第一流表的扩展的第一预定消息中携带所述匹配信息指令,所述第一流表用于指示所述开放流交换机在确定所述开放流交换机所支持的匹配信息包括所述匹配信息指令所指示的匹配信息时,创建与所述第一流表对应的第二流表,所述第二流表的扩展的第二预定消息中携带所述匹配信息指令。可选地,在向所述开放流交换机发送第一流表之后,所述方法还包括:接收来自所述开放流交换机的错误响应,其中,所述错误响应用于指示所述开放流交换机所支持的匹配信息不包括所述匹配信息指令所指示的匹配信息。可选地,在向所述开放流交换机发送协商请求消息之后,所述方法还包括:在所述开放流交换机不支持匹配信息发送的情况下,向所述开放流交换机发送第一流表,其中,所述第一流表中不携带所述匹配信息指令,所述第一流表用于指示所述开放流交换机按照第一预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。可选地,在根据所述开放流交换机所支持的匹配信息和所述开放流控制器所支持的匹配信息确定所述开放流交换机和所述开放流控制器均支持的匹配信息之后,所述方法还包括:在所述开放流控制器不支持所述匹配信息指令发送时,向所述开放流交换机发送第一流表,其中,所述第一流表中不携带所述匹配信息指令,所述第一流表用于指示所述开放流交换机按照第二预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。可选地,在开放流控制器与开放流交换机进行了匹配信息支持能力协商之后,所述开放流控制器向所述开放流交换机发送所述匹配信息指令。根据本发明的另一个实施例,提供了一种报文匹配信息的发送装置,包括:提取模块,用于按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息,其中,所述匹配信息指令是在所述开放流交换机与开放流控制器进行了匹配信息支持能力协商之后,由所述开放流控制器所指示的指令;第一发送模块,用于将提取的所述第一匹配信息发送给所述开放流控制器。可选地,所述装置还包括:第一协商模块,用于在按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,通过如下方式与所述开放流控制器进行所述匹配信息支持能力协商:接收来自所述开放流控制器的协商请求消息;在所述开放流交换机支持匹配信息发送的情况下,根据所述协商请求消息将所述开放流交换机所支持的匹配信息发送给所述开放流控制器,以指示所述开放流控制器根据所述开放流交换机所支持的匹配信息和所述开放流控制器所支持的匹配信息确定所述开放流交换机和所述开放流控制器均支持的匹配信息。根据本发明的另一个实施例,还提供了一种报文匹配信息的发送装置,包括:第二发送模块,用于在开放流控制器与开放流交换机进行了匹配信息支持能力协商之后,向所述开放流交换机发送匹配信息指令,其中,所述匹配信息指令用于所述开放流交换机在接收到报文后,按照所述匹配信息指令提取与所述报文对应的第一匹配信息,并将所述第一匹配信息发送给所述开放流控制器。可选地,所述装置还包括:第二协商模块,用于在向所述开放流交换机发送匹配信息指令之前,通过如下方式与所述开放流交换机进行匹配信息支持能力协商:向所述开放流交换机发送协商请求消息,其中,所述协商请求消息用于请求所述开放流交换机将自身所支持的匹配信息上报给所述开放流控制器;在所述开放流交换机支持匹配信息发送的情况下,接收所述开放流交换机发送的所述开放流交换机所支持的匹配信息;根据所述开放流交换机所支持的匹配信息和所述开放流控制器所支持的匹配信息确定所述开放流交换机和所述开放流控制器均支持的匹配信息。根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。通过本发明,由于匹配信息指令是在开放流交换机和开放流控制器进行了匹配信息支持能力协商之后,由开放流控制器所指示的,且该第一匹配信息是按照匹配信息指令所提取的与接收到的报文相对应的匹配信息,因此,发送给开放流控制器的第一匹配信息是满足开放流交换机和开放流控制器之间的互通性和兼容性的。因此,可以解决相关技术中开放流交换机和开放流控制器之间的互通性和兼容性的问题,达到保证开放流交换机和开放流控制器之间互联互通效果。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的OF网络组件架构示意图;图2是根据本发明实施例的报文匹配信息的发送方法的交互图;图3是根据本发明实施例的另一种报文匹配信息的发送方法的交互图;图4是根据本发明实施例的OF控制器和OF交换机匹配信息能力协商时序图一;图5是根据本发明实施例的OF控制器下发携带匹配信息指令的流表示意图一;图6是根据本发明实施例的OF控制器下发携带匹配信息指令的流表示意图二;图7是根据本发明实施例的OF控制器和OF交换机匹配信息能力协商时序图二;图8是根据本发明实施例的OF控制器和OF交换机匹配信息能力协商时序图三;图9是根据本发明实施例的OF控制器和OF交换机匹配信息能力协商时序图四;图10是根据本发明实施例的报文匹配信息的发送装置的结构框图;图11是根据本发明实施例的另一种报文匹配信息的发送装置的结构框图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。实施例一本发明实施例中的方案是可以应用于开放流Openflow网络中的,下面结合实施例对本发明进行说明:在本实施例中提供了一种报文匹配信息的发送方法,图2是根据本发明实施例的报文匹配信息的发送的交互图,如图2所示,该交互包括如下步骤:步骤S202,按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息,其中,所述匹配信息指令是在所述开放流交换机与开放流控制器进行了匹配信息支持能力协商之后,由所述开放流控制器所指示的指令;步骤S204,将提取的所述第一匹配信息发送给所述开放流控制器。其中,执行上述操作的可以是开放流交换机(在本发明中,OpenFlow交换机可以简称为OF交换机,也可以直接称为开放流交换机,OpenFlow控制器可以简称为OF控制器,也可以直接称为开放流控制器)。图2是以开放流交换机执行上述操作为例进行说明的。在上述实施例中,由于匹配信息指令是在开放流交换机和开放流控制器进行了匹配信息支持能力协商之后,由开放流控制器所指示的,且该第一匹配信息是按照匹配信息指令所提取的与接收到的报文相对应的匹配信息,因此,发送给开放流控制器的第一匹配信息是满足开放流交换机和开放流控制器之间的互通性和兼容性的。因此,可以解决相关技术中开放流交换机和开放流控制器之间的互通性和兼容性的问题,达到保证开放流交换机和开放流控制器之间互联互通效果。在一个可选实施例中,在按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,上述方法还包括:所述开放流交换机通过如下方式与所述开放流控制器进行所述匹配信息支持能力协商:接收来自所述开放流控制器的协商请求消息;在该开放流交换机支持匹配信息发送的情况下,根据上述协商请求消息将所述开放流交换机所支持的匹配信息发送给所述开放流控制器,以指示所述开放流控制器根据所述开放流交换机所支持的匹配信息和所述开放流控制器所支持的匹配信息确定所述开放流交换机和所述开放流控制器均支持的匹配信息。在本实施例中,OF控制器和OF交换机在通道建立后,OF控制器可以主动发起OFPMP_TABLE_FEAUTRES请求来查询OF交换机的流表能力(对应于本实施例中交换机所支持的匹配信息)。OF交换机收到OFPMP_TABLE_FEAUTRES请求后,将本设备(即,OF交换机)支持的流表能力通过OFPMP_TABLE_FEAUTRES响应消息上报给OF控制器。其中流表能力里面包括本设备支持的报文匹配信息上送能力。OF控制器收到OFPMP_TABLE_FEAUTRES响应消息后,将响应消息中的报文匹配信息能力与本地支持的报文匹配信息能力(对应于本实施例中的开放流控制器所支持的匹配信息)进行协商比较。协商的原则是判断两者是否具有公共的匹配信息能力,如果有,则可以协商成功,且协商后的匹配信息能力为两者的交集(对应于本实施例中开放流交换机和开放流控制器均支持的匹配信息)。如果没有,则协商失败。如果协商成功,后续OF控制器下发流表时可以携带报文匹配信息的指令,用于精确控制通过packet-in上送的报文匹配信息。如果协商失败,OF控制器可以基于本地策略进行相关操作,比如可以选择关闭当前OF通道连接,具体策略可由OF控制器定义。在一个可选实施例中,在根据所述协商请求消息将所述开放流交换机所支持的匹配信息发送给所述开放流控制器之后、且在所述按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,所述方法还包括:接收来自所述开放流控制器的第一流表,其中,当所述开放流控制器支持所述匹配信息指令发送时,所述第一流表的扩展的第一预定消息中携带所述匹配信息指令;在确定所述第一流表的扩展的第一预定消息中携带所述匹配信息指令,且在所述开放流交换机所支持的匹配信息包括所述匹配信息指令所指示的匹配信息时,创建与所述第一流表对应的第二流表,其中,在所述第二流表的扩展的第二预定消息中携带所述匹配信息指令。在本实施例中,OF控制器可以采用扩展experiment消息(对应于本实施例中第一流表的扩展的第一预定消息,当然,也可以采用扩展流表中的其他消息或其他字段来实现)实现携带报文匹配信息指令(对应于本实施例中的匹配信息指令),OF交换机收到OF控制器下发的携带报文匹配信息指令的流表(对应于本实施例中的第一流表)时,首先进行匹配信息能力的有效性检查,如果流表中携带的匹配信息在本地支持范围内,则认为有效,本地会生成对应的转发表项(对应于本实施例中的第二流表),在转发表项的扩展的第二预定消息中携带匹配信息指令。一旦OF交换机生成本地转发流表项,后续当有数据报文命中该流表且要求上送控制器时,会根据该指令中设置的匹配信息进行精确上送。由于现在的OF流水线支持多级流表操作,往往数据报文要经过多级流表项处理后才会上送控制器。在此期间,每经过一级流表项处理,就根据对应的匹配信息指令将相关匹配信息存储在上送集合中,待流水线处理结束后,如果最终要求将数据报文上送控制器,此时将上送集合中的匹配信息一起组织上送。在一个可选实施例中,在按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,所述方法还包括:从所述第二流表中扩展的所述第二预定消息中获取所述匹配信息指令。在本实施例中,匹配信息指令采用扩展消息实现,OF交换机在本地生成的转发列表项中扩展的消息中获取匹配信息指令。在一个可选实施例中,在接收来自所述开放流控制器的第一流表之后,所述方法还包括:在所述开放流交换机所支持的匹配信息不包括所述匹配信息指令所指示的匹配信息时,向所述开放流控制器回复错误响应消息。在本实施例中,如果流表(对应于本实施例中的第一流表)中携带的匹配信息超出了本地支持范围,或者开放流交换机与开放流控制器的匹配信息支持能力协商失败,则拒绝该流表项的添加行为,OF控制器可以基于本地策略进行相关操作,比如可以选择关闭当前OF通道连接,具体策略可由OF控制器定义,并返回一个错误信息给OF控制器。在一个可选实施例中,在接收来自所述开放流控制器的协商请求消息之后,所述方法还包括:在所述开放流交换机不支持匹配信息发送的情况下,接收来自所述开放流控制器的第一流表,其中,所述第一流表中不携带所述匹配信息指令;按照第一预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。在本实施例中,当有些OF交换机不支持上报匹配信息能力时,为便于兼容支持这些OF交换机,要求OF控制器对这些OF交换机不下发携带匹配信息指令的流表项。当OF交换机需要上送数据报文给控制器时,按照OF交换机缺省的实现选择匹配信息进行上送。在一个可选实施例中,在根据所述协商请求消息将所述开放流交换机所支持的匹配信息发送给所述开放流控制器之后、且在所述按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,所述方法还包括:接收来自所述开放流控制器的第一流表,其中,当所述开放流控制器不支持所述匹配信息指令发送时,所述第一流表中不携带所述匹配信息指令;在确定所述第一流表中不携带所述匹配信息指令时,按照第二预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。在本实施例中,当有些OF控制器不支持匹配信息指令时,为便于兼容支持这些OF控制器,当OF交换机需要上送数据报文给OF控制器时,发现对应的流表项没有携带匹配信息指令,则按照OF交换机缺省的实现选择匹配信息进行上送。在一个可选实施例中,所述开放流交换机按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息;所述开放流交换机将提取的所述第一匹配信息发送给所述开放流控制器。实施例二在本实施例中,还提供了另一种报文匹配信息的发送方法,图3是根据本发明实施例的报文匹配信息的发送的交互图,如图3所示,该交互包括如下步骤:步骤S302,在开放流控制器与开放流交换机进行了匹配信息支持能力协商之后,向所述开放流交换机发送匹配信息指令,其中,所述匹配信息指令用于所述开放流交换机在接收到报文后,按照所述匹配信息指令提取与所述报文对应的第一匹配信息,并将所述第一匹配信息发送给所述开放流控制器。其中,执行上述操作的可以是开放流控制器(在本发明中,OpenFlow控制器可以简称为OF控制器,也可以直接称为开放流控制器,OpenFlow交换机可以简称为OF交换机,也可以直接称为开放流交换机)。图3是以开放流控制器执行上述操作为例进行说明的。在上述实施例中,由于在开放流控制器与开放流交换机进行了匹配信息支持能力协商之后,由开放流控制器向开放流交换机发送匹配信息指令,以使开放流交换机可以按照匹配信息指令提取与接收到的报文相对应的匹配信息,因此,开放流控制器接收到的第一匹配信息是满足开放流交换机和开放流控制器之间的互通性和兼容性的。因此,可以解决相关技术中开放流交换机和开放流控制器之间的互通性和兼容性的问题,达到保证开放流交换机和开放流控制器之间互联互通效果。在一个可选实施例中,在向所述开放流交换机发送匹配信息指令之前,所述方法还包括:所述开放流控制器通过如下方式与所述开放流交换机进行匹配信息支持能力协商:向所述开放流交换机发送协商请求消息,其中,所述协商请求消息用于请求所述开放流交换机将自身所支持的匹配信息上报给所述开放流控制器;在所述开放流交换机支持匹配信息发送的情况下,接收所述开放流交换机发送的所述开放流交换机所支持的匹配信息;根据所述开放流交换机所支持的匹配信息和所述开放流控制器所支持的匹配信息确定所述开放流交换机和所述开放流控制器均支持的匹配信息。在一个可选实施例中,向所述开放流交换机发送匹配信息指令包括:在所述开放流控制器支持所述匹配信息指令发送时,向所述开放流交换机发送第一流表,其中,所述第一流表的扩展的第一预定消息中携带所述匹配信息指令,所述第一流表用于指示所述开放流交换机在确定所述开放流交换机所支持的匹配信息包括所述匹配信息指令所指示的匹配信息时,创建与所述第一流表对应的第二流表,所述第二流表的扩展的第二预定消息中携带所述匹配信息指令。在一个可选实施例中,在向所述开放流交换机发送第一流表之后,所述方法还包括:接收来自所述开放流交换机的错误响应,其中,所述错误响应用于指示所述开放流交换机所支持的匹配信息不包括所述匹配信息指令所指示的匹配信息。在一个可选实施例中,在向所述开放流交换机发送协商请求消息之后,所述方法还包括:在所述开放流交换机不支持匹配信息发送的情况下,向所述开放流交换机发送第一流表,其中,所述第一流表中不携带所述匹配信息指令,所述第一流表用于指示所述开放流交换机按照第一预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。在一个可选实施例中,在根据所述开放流交换机所支持的匹配信息和所述开放流控制器所支持的匹配信息确定所述开放流交换机和所述开放流控制器均支持的匹配信息之后,所述方法还包括:在所述开放流控制器不支持所述匹配信息指令发送时,向所述开放流交换机发送第一流表,其中,所述第一流表中不携带所述匹配信息指令,所述第一流表用于指示所述开放流交换机按照第二预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。在一个可选实施例中,在开放流控制器与开放流交换机进行了匹配信息支持能力协商之后,所述开放流控制器向所述开放流交换机发送所述匹配信息指令。下面结合具体实施例对本发明进行说明:具体实施例1图4是OF控制器和OF交换机匹配信息能力协商时序图一。如图4所示,本具体实施例中,OF控制器和OF交换机匹配信息能力协商过程包括以下三个步骤:步骤1,OF控制器是协商的主动发起方,在OF通道建立后(对应于图4中的S401和S402),向OF交换机发送OFPMP_TABLE_FEAUTRES请求(对应于协商请求消息)来查询OF交换机的流表能力(对应于开放流交换机所支持的匹配信息,对应于图4中的S403)。步骤2,OF交换机收到请求后,将本设备支持的流表能力通过OFPMP_TABLE_FEAUTRES响应消息上报给OF控制器(对应于图4中的S404)。本实施例中,OF交换机支持的流表能力中包括匹配信息能力,该能力通过扩展experiment消息实现(对应于第一流表的扩展的第一预定消息)。扩展的experiment消息格式如下:其中扩展子类型exp_type定义如下:其中变长字段oxm_fields代表OF交换机当前支持上送的匹配信息集合,每个oxm_fields类型代表一个匹配信息。oxm_fields的内容同协议规范定义的structofp_match结构中的oxm_fields语义一致。本实施例中,OF交换机回复OFPMP_TABLE_FEAUTRES响应消息时,携带的上送匹配信息包括如下oxm_field,如表1:表1上送匹配信息类型数值含义OFPXMT_OFB_IN_PORT0交换机入端口OFPXMT_OFB_IN_PHY_PORT1交换机物理入端口OFPXMT_OFB_METADATA2流表项之间的元数据OFPXMT_OFB_ETH_DST3以太网目的地址OFPXMT_OFB_ETH_TYPE5以太网帧类型OFPXMT_OFB_IPV4_SRC11IPv4源地址OFPXMT_OFB_IPV4_DST12IPv4目的地址FPXMT_OFB_TCP_DST14TCP目的端口号为描述方面,本实施例后面简称OF交换机的上送匹配信息能力集合为{0,1,2,3,5,11,12,14}。步骤3,OF控制器收到OFPMP_TABLE_FEAUTRES响应消息后,将响应消息中的匹配信息能力与本地支持的匹配信息能力进行比较。本实施例中,OF控制器的匹配信息能力集合如表2所示:表2为描述方面,本实施例后面简称OF控制器的匹配信息能力集合为{0,1,2,3,4,5,6,11,12}。经过协商比较,得到OF控制器和OF交换机的共同匹配信息能力集合为{0,1,2,3,5,11,12}。下面结合图5介绍OF控制器下发携带匹配信息指令的流表以及OF交换机处理流表的过程,包括以下四个步骤:步骤501,OF控制器下发一个流表(对应于第一流表),该流表包括以下信息(对应于图5中的1、2、3):(1)匹配以太网类型0x0806;(2)匹配信息指令,指令中要求精确上送匹配信息集合为{0,11};(3)OFPIT_APPLY_ACTIONS指令,携带一个OFPAT_OUTPUT行为,端口号为控制器预留端口CONTROLLER。其中匹配信息指令采用扩展experiment消息实现。扩展的experiment消息格式如下:其中变长字段oxm_fields同上述structofp_instruction_experiment_upsend中的oxm_fields含义一致。步骤502,OF交换机收到这个流表后,首先对匹配信息指令的有效性进行检查,由于本地支持的匹配信息能力集合为{0,1,2,3,5,11,12,14},{0,11}属于该能力集合,所以判断下发流表中携带的匹配信息能力有效,本地创建对应的流表项。步骤503,当OF交换机收到以太网类型为0x0806的报文,按照流表项中的匹配信息指令提取匹配信息{0,11}封装在packet-in的match字段中上送OF控制器。步骤504,OF控制器收到上送的packet-in后,基于这些匹配信息可以进行相应的处理,比如进行arp学习,具体处理逻辑由OF控制器决定。本实施例存在另外一种情况,即如果控制器下发的指令中携带的匹配信息集合超过了OF交换机支持的能力范围,OF交换机可以选择回复一个错误信息给OF控制器。下面结合图6来介绍这个过程,包括以下三个步骤:步骤601,OF控制器下发一个流表,该流表包括以下信息(对应于图6中的1、2、3):(1)匹配以太网类型0x0806;(2)上送匹配信息指令,指令中要求精确上送匹配信息集合为{0,7};(3)OFPIT_APPLY_ACTIONS指令,携带一个OFPAT_OUTPUT行为,端口号为控制器预留端口CONTROLLER。步骤602,OF交换机收到这个流表后,首先对匹配信息指令的有效性进行检查,由于本地支持的上送匹配信息能力集合为{0,1,2,3,5,11,12,14},而{0,7}不属于该能力集合,所以判断下发流表中携带的匹配信息能力无效,返回一个错误error消息给控制器。该错误信息的错误类型为OFPET_BAD_INSTRUCTION,错误代码采用新扩展的OFPBIC_UNSUP_UNSEND_FIELD,表示不支持OF控制器设置的上送匹配信息。其中OFPBIC_UNSUP_UNSEND_FIELD扩展定义为步骤603,OF控制器收到上送的错误消息后,知道下发的流表的匹配信息能力超过了OF交换机的能力范围,此时控制器可以选择向上层业务继续反馈这个错误,具体处理逻辑由OF控制器决定。具体实施例2图7是OF控制器和OF交换机匹配信息能力协商时序图二。如图7所示,本实施例中,OF控制器和OF交换机匹配信息能力协商过程包括以下三个步骤:步骤1,OF控制器是协商的主动发起方,在OF通道建立后(对应于图7中的S701和S702),向OF交换机发送OFPMP_TABLE_FEAUTRES请求来查询OF交换机的流表能力(对应于图7中的S703)。步骤2,OF交换机收到请求后,将本设备支持的流表能力通过OFPMP_TABLE_FEAUTRES响应消息上报给OF控制器(对应于图7中的S704)。本实施例中,OF交换机支持的流表能力中包括匹配信息能力,该能力通过扩展experiment消息实现,消息格式同实施具体实施例1。本实例中,OF交换机回复OFPMP_TABLE_FEAUTRES响应消息时,携带的上送匹配信息如表3:表3上送匹配信息类型数值含义OFPXMT_OFB_IN_PORT0交换机入端口OFPXMT_OFB_TCP_DST14TCP目的端口号为描述方面,本实施例后面简称OF交换机的上送匹配信息能力集合为{0,14}。步骤3,OF控制器收到OFPMP_TABLE_FEAUTRES响应消息后,将响应消息中的匹配信息能力与本地支持的匹配信息能力进行比较。本实施例中,OF控制器的匹配信息能力集合如表4所示:表4上送匹配信息类型数值含义OFPXMT_OFB_IN_PHY_PORT1交换机物理入端口OFPXMT_OFB_METADATA2流表项之间的元数据OFPXMT_OFB_ETH_DST3以太网目的地址OFPXMT_OFB_ETH_SRC4以太网源地址OFPXMT_OFB_ETH_TYPE5以太网帧类型OFPXMT_OFB_VLAN_VID6VLANID为描述方面,本实施例后面简称OF控制器的匹配信息能力集合为{1,2,3,4,5,6}。经过协商比较,发现两者没有共同的匹配信息能力集。此时OF控制器认为当前的OF交换机不可管控,可以选择关闭当前的OF通道连接,具体处理逻辑由OF控制器决定。具体实施例3图8是OF控制器和OF交换机匹配信息能力协商时序图三。如图8所示,本实施例中,OF控制器和OF交换机匹配信息能力协商过程包括以下三个步骤:步骤1,OF控制器是协商的主动发起方,在OF通道建立后(对应于图8中的S801和S802),向OF交换机发送OFPMP_TABLE_FEAUTRES请求来查询OF交换机的流表能力(对应于图8中的S803)。步骤2,OF交换机收到请求后,将本设备支持的流表能力通过OFPMP_TABLE_FEAUTRES响应消息上报给OF控制器(对应于图8中的S804)。本实施例中,OF交换机支持的流表能力中包括匹配信息能力,该能力通过扩展experiment消息实现,消息格式同具体实施例1。本实例中,OF交换机回复OFPMP_TABLE_FEAUTRES响应消息时,携带的上送匹配信息如表5:表5为描述方面,本实施例后面简称OF交换机的上送匹配信息能力集合为{0,1,2}。步骤3,OF控制器收到OFPMP_TABLE_FEAUTRES响应消息后,由于本实施例中,OF控制器不支持匹配信息能力协商,所以不会进行匹配信息能力协商。后续OF控制器下发的流表项中不会携带匹配信息指令。当OF交换机上送数据报文给OF控制器时,发现对应流表项没有携带匹配信息指令,则按照本地缺省的处理逻辑提取匹配信息进行上送。这样,对于不支持设置匹配信息的OF控制器可以和支持设置匹配信息的OF交换机正常交互packet-in消息,不存在兼容性问题。具体实施例4图9是OF控制器和OF交换机匹配信息能力协商时序图四。如图9所示,本实施例中,OF控制器和OF交换机匹配信息能力协商过程包括以下三个步骤:步骤1,OF控制器是协商的主动发起方,在OF通道建立后(对应于图9中的S901和S902),向OF交换机发送OFPMP_TABLE_FEAUTRES请求来查询OF交换机的流表能力(对应于图9中的S903)。步骤2,OF交换机收到请求报文后,将本设备支持的流表能力通过OFPMP_TABLE_FEAUTRES响应消息上报给OF控制器(对应于图9中的S904)。本实施例中,由于OF交换机不支持流表项中携带匹配信息指令,所以回复的响应报文中不包括匹配信息能力。步骤3,OF控制器收到OFPMP_TABLE_FEAUTRES响应消息后,发现OF交换机不支持设置匹配信息能力,所以不会进行匹配信息能力协商。后续OF控制器下发的流表项中也不会携带匹配信息指令。当OF交换机上送数据报文给OF控制器时,发现对应流表项没有携带匹配信息指令,则按照本地缺省的处理逻辑提取匹配信息进行上送。这样,对于不支持设置匹配信息的OF交换机可以和支持设置匹配信息的OF控制器正常交互packet-in消息,不存在兼容性问题。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例三在本实施例中还提供了一种报文匹配信息的发送装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图10是根据本发明实施例的报文匹配信息的发送装置的结构框图,如图10所示,该装置包括如下模块:提取模块1002,用于按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息,其中,所述匹配信息指令是在所述开放流交换机与开放流控制器进行了匹配信息支持能力协商之后,由所述开放流控制器所指示的指令;第一发送模块1004,连接至上述提取模块1002,用于将提取的所述第一匹配信息发送给所述开放流控制器。在一个可选实施例中,上述装置还包括:第一协商模块,用于在按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,通过如下方式与所述开放流控制器进行所述匹配信息支持能力协商:接收来自所述开放流控制器的协商请求消息;在所述开放流交换机支持匹配信息发送的情况下,根据所述协商请求消息将所述开放流交换机所支持的匹配信息发送给所述开放流控制器,以指示所述开放流控制器根据所述开放流交换机所支持的匹配信息和所述开放流控制器所支持的匹配信息确定所述开放流交换机和所述开放流控制器均支持的匹配信息。在一个可选实施例中,上述装置还用于:在根据所述协商请求消息将所述开放流交换机所支持的匹配信息发送给所述开放流控制器之后、且在所述按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,接收来自上述开放流控制器的第一流表,其中,当所述开放流控制器支持所述匹配信息指令发送时,所述第一流表的扩展的第一预定消息中携带所述匹配信息指令;在确定所述第一流表的扩展的第一预定消息中携带所述匹配信息指令,且在所述开放流交换机所支持的匹配信息包括所述匹配信息指令所指示的匹配信息时,创建与所述第一流表对应的第二流表,其中,在所述第二流表的扩展的第二预定消息中携带所述匹配信息指令。在一个可选实施例中,上述装置还用于,在按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,从所述第二流表中扩展的所述第二预定消息中获取所述匹配信息指令。在一个可选实施例中,上述装置还用于,在接收来自上述开放流控制器的第一流表之后,在所述开放流交换机所支持的匹配信息不包括所述匹配信息指令所指示的匹配信息时,向所述开放流控制器回复错误响应消息。在一个可选实施例中,上述装置还用于:在接收来自上述开放流控制器的协商请求消息之后,在所述开放流交换机不支持匹配信息发送的情况下,接收来自所述开放流控制器的第一流表,其中,所述第一流表中不携带所述匹配信息指令;按照第一预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。在一个可选实施例中,上述装置还用于,在根据所述协商请求消息将所述开放流交换机所支持的匹配信息发送给所述开放流控制器之后、且在所述按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息之前,接收来自所述开放流控制器的第一流表,其中,当所述开放流控制器不支持所述匹配信息指令发送时,所述第一流表中不携带所述匹配信息指令;在确定所述第一流表中不携带所述匹配信息指令时,按照第二预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。在一个可选实施例中,上述装置是可以应用于开放流交换机中的,也就是说,由开放流交换机按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息;并且由该开放流交换机将提取的所述第一匹配信息发送给所述开放流控制器。实施例四在本实施例中还提供了另一种报文匹配信息的发送装置,图11是根据本发明实施例的另一种报文匹配信息的发送装置的结构框图,如图11所示,该装置包括如下模块:第二发送模块1102,用于在开放流控制器与开放流交换机进行了匹配信息支持能力协商之后,向所述开放流交换机发送匹配信息指令,其中,所述匹配信息指令用于所述开放流交换机在接收到报文后,按照所述匹配信息指令提取与所述报文对应的第一匹配信息,并将所述第一匹配信息发送给所述开放流控制器。在一个可选实施例中,上述装置还包括:第二协商模块,用于在向所述开放流交换机发送匹配信息指令之前,通过如下方式与所述开放流交换机进行匹配信息支持能力协商:向所述开放流交换机发送协商请求消息,其中,所述协商请求消息用于请求所述开放流交换机将自身所支持的匹配信息上报给所述开放流控制器;在所述开放流交换机支持匹配信息发送的情况下,接收所述开放流交换机发送的所述开放流交换机所支持的匹配信息;根据所述开放流交换机所支持的匹配信息和所述开放流控制器所支持的匹配信息确定所述开放流交换机和所述开放流控制器均支持的匹配信息。在一个可选实施例中,上述第二发送模块1102可以通过如下方式向上述开放流交换机发送匹配信息指令:在上述开放流控制器支持上述匹配信息指令发送时,向上述开放流交换机发送第一流表,其中,所述第一流表的扩展的第一预定消息中携带所述匹配信息指令,所述第一流表用于指示所述开放流交换机在确定所述开放流交换机所支持的匹配信息包括所述匹配信息指令所指示的匹配信息时,创建与所述第一流表对应的第二流表,所述第二流表的扩展的第二预定消息中携带所述匹配信息指令。在一个可选实施例中,上述装置还用于,在向所述开放流交换机发送第一流表之后,接收来自上述开放流交换机的错误响应,其中,该错误响应用于指示所述开放流交换机所支持的匹配信息不包括所述匹配信息指令所指示的匹配信息。在一个可选实施例中,上述装置还用于,在向上述开放流交换机发送协商请求消息之后,在上述开放流交换机不支持匹配信息发送的情况下,向上述开放流交换机发送第一流表,其中,该第一流表中不携带所述匹配信息指令,该第一流表用于指示所述开放流交换机按照第一预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。在一个可选实施例中,上述装置还用于,在根据所述开放流交换机所支持的匹配信息和所述开放流控制器所支持的匹配信息确定所述开放流交换机和所述开放流控制器均支持的匹配信息之后,上述开放流控制器不支持所述匹配信息指令发送时,向上述开放流交换机发送第一流表,其中,该第一流表中不携带所述匹配信息指令,该第一流表用于指示所述开放流交换机按照第二预定缺省处理方式提取与所述报文对应的匹配信息,并发送给所述开放流控制器。在一个可选实施例中,上述装置是可以应用于开放流控制器中的,也就是说,在开放流控制器与开放流交换机进行了匹配信息支持能力协商之后,由上述开放流控制器向所述开放流交换机发送所述匹配信息指令。需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。实施例五本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:S1,按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息,其中,所述匹配信息指令是在所述开放流交换机与开放流控制器进行了匹配信息支持能力协商之后,由所述开放流控制器所指示的指令;S2,将提取的所述第一匹配信息发送给所述开放流控制器。可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:S1,在开放流控制器与开放流交换机进行了匹配信息支持能力协商之后,向所述开放流交换机发送匹配信息指令,其中,所述匹配信息指令用于所述开放流交换机在接收到报文后,按照所述匹配信息指令提取与所述报文对应的第一匹配信息,并将所述第一匹配信息发送给所述开放流控制器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-OnlyMemory,简称为ROM)、随机存取存储器(RandomAccessMemory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:S1,按照匹配信息指令提取与开放流交换机接收到的报文对应的第一匹配信息,其中,所述匹配信息指令是在所述开放流交换机与开放流控制器进行了匹配信息支持能力协商之后,由所述开放流控制器所指示的指令;S2,将提取的所述第一匹配信息发送给所述开放流控制器。可选地,处理器还被设置为通过计算机程序执行以下步骤:S1,在开放流控制器与开放流交换机进行了匹配信息支持能力协商之后,向所述开放流交换机发送匹配信息指令,其中,所述匹配信息指令用于所述开放流交换机在接收到报文后,按照所述匹配信息指令提取与所述报文对应的第一匹配信息,并将所述第一匹配信息发送给所述开放流控制器。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1