一种OpenFlow网络中流表配置的方法、装置和系统的制作方法
【专利摘要】本发明提供一种OpenFlow网络中流表配置的方法、装置和系统,能够提升网络系统的业务切换适应能力,提高工作效率。所述方法包括:控制设备确定交换设备需要转发的业务类型;根据所述交换设备需要转发的业务类型和预存储的业务类型与流表匹配能力信息的对应关系,确定所述业务类型对应的流表匹配能力信息;发送流表配置消息给所述交换设备,所述流表配置消息携带所述业务类型对应的流表匹配能力信息,以使得所述交换设备根据所述流表匹配能力信息,配置所述业务类型所需的流表。本发明适用于通信领域。
【专利说明】—种OpenF1w网络中流表配置的方法、装置和系统
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种OpenFlow网络中流表配置的方法、装置和系统。
【背景技术】
[0002]随着通信技术的发展,网络领域的创新步伐已经远远落后于服务器端,客户需要网络可以更快速并且更容易的配置,因此人们开始把注意力放到可编程网络上,SDN(Software Defined Network,软件定义的网络)应运而生。
[0003]SDN是把传统封闭的网络变成一个开放式的环境,就像电脑一样可以实现编程,创建易于管理的网络虚拟化层,将网络控制从物理基础设施中解耦,让第三方开发网络应用程序来控制网络的运行。OpenFlow技术是实现SDN的一种方式,它能够让用户自己定义流量,并决定流量在网络中的传输路径。
[0004]基于OpenFlow技术组成的OpenFlow网络包括OpenFlow控制器、OpenFlow交换机。其中OpenFlow交换机是核心组件,由OpenFlow协议、安全通道和流表三部分组成。
[0005]根据OpenFlow协议,OpenFlow交换机在与控制器建立连接时,需向控制器报告自身具备的能力,包括交换机当前支持的流表级数、每级流表的表项数量、每级流表的流表匹配域类型。控制器根据交换机的能力报告制定该交换机的流规则,下发到交换机的流表中。但是,如果交换机的应用场景发生改变,导致所述交换设备需要转发的业务类型发生改变,交换机所支持的流表匹配域无法满足改变后的业务类型时,则控制器无法生成相应的流规贝U,更无法完成相应的转发业务。现有技术在交换机的应用场景发生改变时,将OpenFlow交换机退出联网,对交换机重新进行软件甚至硬件的配置,再接入交换网络,重新与控制器建立连接,最终生成对应的流规则,完成相应的转发业务。
[0006]该方法虽然最终可以实现交换机的应用场景发生改变时业务的正常转发,但是必须通过将OpenFlow交换机退出联网的方式实现,使得整个网络系统的业务切换适应能力差,影响工作效率。
【发明内容】
[0007]本发明的实施例提供一种OpenFlow网络中流表配置的方法、装置和系统,能够支持流表的动态配置,提升网络系统的业务切换适应能力,提高工作效率。
[0008]为达到上述目的,本发明的实施例采用如下技术方案:
[0009]第一方面,本发明实施例提供一种OpenFlow网络中流表配置的方法,所述方法基于OpenFlow协议的控制设备,所述方法包括:
[0010]确定交换设备需要转发的业务类型;
[0011]根据所述交换设备需要转发的所述业务类型和预存储的业务类型与流表匹配能力信息的对应关系,确定所述业务类型对应的流表匹配能力信息;
[0012]发送流表配置消息给所述交换设备,所述流表配置消息携带所述业务类型对应的流表匹配能力信息,以使得所述交换设备根据所述流表匹配能力信息,配置所述业务类型所需的流表。
[0013]根据第一方面,在第一种可能的实现方式中,所述流表匹配能力信息包括所述业务类型对应的流表级数、每级流表的表项数量、每级流表的流表匹配域类型。
[0014]根据第一种可能的实现方式,在第二种可能的实现方式中,在所述发送流表配置消息给所述交换设备前,所述方法还包括:
[0015]接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型;
[0016]判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致;
[0017]若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,执行所述发送流表配置消息给所述交换设备的步骤。
[0018]根据第一种可能的实现方式,在第三种可能的实现方式中,在所述发送流表配置消息给所述交换设备前,所述方法还包括:
[0019]判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型;
[0020]若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,执行所述发送流表配置消息给所述交换设备的步骤。
[0021]根据第一种可能的实现方式,在第四种可能的实现方式中,在所述发送流表配置消息给所述交换设备前,所述方法还包括:
[0022]接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型;
[0023]判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致;
[0024]若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,判断所述业务类型对应的每级流表的流表流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型;
[0025]若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,执行所述发送流表配置消息给所述交换设备的步骤。
[0026]根据第一种可能的实现方式,在第五种可能的实现方式中,在所述发送流表配置消息给所述交换设备前,所述方法还包括:
[0027]接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型;
[0028]判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型;
[0029]若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致;
[0030]若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,执行所述发送流表配置消息给所述交换设备的步骤。
[0031]根据第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式,在第六种可能的实现方式中,交换设备每级流表能支持的流表匹配域类型预先存储在所述控制设备中;
[0032]所述判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,包括:
[0033]根据预先存储的所述交换设备每级流表能支持的流表匹配域类型,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型。
[0034]根据第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式,在第七种可能的实现方式中,在所述判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型前,还包括:
[0035]接收所述交换设备发送的所述交换设备每级流表能支持的流表匹配域类型;
[0036]所述判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,包括:
[0037]根据所述交换设备发送的所述交换设备每级流表能支持的流表匹配域类型,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型。
[0038]根据第一方面至第七种可能的实现方式,在第八种可能的实现方式中,在所述发送流表配置消息给所述交换设备后,所述方法还包括:
[0039]发送第一指示消息给所述交换设备,所述第一指示消息携带所述控制设备下发的流规则和所述流规则对应的目标级数流表的信息,所述第一指示消息指示所述交换设备将所述控制设备下发的所述流规则适配所述目标级数流表并保存适配结果,其中,所述目标级数流表为即将存放所述适配结果的一级流表。
[0040]第二方面,本发明实施例提供一种OpenFlow网络中流表配置的方法,所述方法基于OpenFlow协议的交换设备,所述方法包括:
[0041]接收控制设备发送的流表配置消息,所述流表配置消息携带所述交换设备需要转发的业务类型对应的流表匹配能力信息;
[0042]根据所述交换设备需要转发的所述业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中。
[0043]根据第二方面,在第一种可能的实现方式中,所述流表匹配能力信息包括所述业务类型对应的流表级数、每级流表的表项数量、每级流表的流表匹配域类型。
[0044]根据第一种可能的实现方式,在第二种可能的实现方式中,在所述接收所述控制设备发送的流表配置消息前,所述方法还包括:
[0045]发送所述交换设备当前配置的每级流表的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时发送流表配置消息。
[0046]根据第一种可能的实现方式,在第三种可能的实现方式中,在所述接收控制设备发送的流表配置消息前,所述方法还包括:
[0047]发送所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型时发送所述流表配置消息。
[0048]根据第一种可能的实现方式,在第四种可能的实现方式中,在所述接收控制设备发送的流表配置消息前,所述方法还包括:
[0049]发送所述交换设备当前配置的每级流表的流表匹配域类型和所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时,判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型时发送所述流表配置消息;
[0050]或
[0051]发送所述交换设备当前配置的每级流表的流表匹配域类型和所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表的流表匹配域类型时,判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时发送所述流表配置消息。
[0052]根据第二方面至第四种可能的实现方式,在第五种可能的实现方式中,所述根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中,包括:
[0053]清除所述交换设备中当前配置的流表内容,释放流表存储资源;
[0054]根据所述需要转发的业务类型对应的流表匹配能力信息,对所述流表存储资源进行重新划分和映射。
[0055]根据第二方面至第五种可能的实现方式,在第六种可能的实现方式中,在所述接收控制设备发送的流表配置消息后,根据所述需要转发的业务类型对应的流表的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中前,所述方法还包括:
[0056]关闭转发业务端口,其中,所述转发业务端口用于转发所述交换设备需要转发的业务类型对应的业务数据包;
[0057]在所述根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中后,所述方法还包括:
[0058]打开所述转发业务端口。
[0059]根据第二方面至第六种可能的实现方式,在第七种可能的实现方式中,在所述根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中后,所述方法还包括:
[0060]接收所述控制设备发送的第一指示消息,所述第一指示消息携带所述控制设备下发的流规则和所述流规则对应的目标级数流表的信息,所述第一指示消息指示所述交换设备将所述控制设备下发的所述流规则适配所述目标级数流表并保存适配结果,其中,所述目标级数流表为即将存放所述适配结果的一级流表;
[0061]将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表后保存适配结果。
[0062]根据第七种可能的实现方式,在第八种可能的实现方式中,所述第一指示消息还携带所述流规则的类型,其中,所述流规则的类型包括精确流规则或通配流规则;
[0063]所述将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表后保存适配结果,包括:
[0064]根据所述第一指示消息携带的所述流规则的类型,确定所述流规则是精确流规则还是通配流规则;
[0065]若所述流规则是精确流规则,根据所述目标级数流表当前配置的流表匹配域类型,从所述流规则中抽取与所述目标级数流表适配的流表匹配域;
[0066]根据所述目标级数流表的存储结构,将所述与所述目标级数流表适配的所述流表匹配域重新排列;
[0067]将排列后的与所述目标级数流表适配的所述流表匹配域和所述流规则的其它信息对应存储到所述目标级数流表对应的存储器。
[0068]根据第七种可能的实现方式,在第九种可能的实现方式中,所述第一指示消息还携带所述流规则的类型,其中,所述流规则的类型包括精确流规则或通配流规则;
[0069]所述将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表后保存适配结果,包括:
[0070]根据所述第一指示消息携带的所述流规则的类型,确定所述流规则是精确流规则还是通配流规则;
[0071]若所述流规则是通配流规则,根据所述目标级数流表当前配置的流表匹配域类型,从所述流规则中抽取与所述目标级数流表适配的流表匹配域;
[0072]将所述流规则中与所述目标级数流表不适配的流表匹配域设置掩码;
[0073]将所述已经将所述流规则中与所述目标级数流表不适配的流表匹配域设置掩码的流规则存储在所述目标级数流表对应的存储器。
[0074]第三方面,本发明实施例提供一种OpenFlow控制设备,所述控制设备包括业务类型确定单元、流表匹配能力信息确定单元、发送单元;
[0075]所述业务类型确定单元,用于确定交换设备需要转发的业务类型;
[0076]所述流表匹配能力信息确定单元,用于根据所述交换设备需要转发的所述业务类型和预存储的业务类型与流表匹配能力信息的对应关系,确定所述业务类型对应的流表匹配能力信息;
[0077]所述发送单元,用于发送流表配置消息给所述交换设备,所述流表配置消息携带所述业务类型对应的流表匹配能力信息,以使得所述交换设备根据所述流表匹配能力信息,配置所述业务类型所需的流表。
[0078]根据第三方面,在第一种可能的实现方式中,所述流表匹配能力信息包括所述业务类型对应的流表级数、每级流表的表项数量、每级流表的流表匹配域类型。
[0079]根据第一种可能的实现方式,在第二种可能的实现方式中,所述控制设备还包括接收单元、执行判断单元、执行单元;
[0080]所述接收单元,还用于在所述发送单元发送流表配置消息给所述交换设备前,接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型;
[0081]所述执行判断单元,用于判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致;
[0082]所述执行单元,用于若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,执行所述发送流表配置消息给所述交换设备的步骤。
[0083]根据第一种可能的实现方式,在第三种可能的实现方式中,所述控制设备还包括执行判断单元、执行单元;
[0084]所述执行判断单元,用于在所述发送单元发送流表配置消息给所述交换设备前,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型;
[0085]所述执行单元,用于若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,执行所述发送流表配置消息给所述交换设备的步骤。
[0086]根据第一种可能的实现方式,在第四种可能的实现方式中,所述控制设备还包括接收单元、执行判断单元、执行单元;
[0087]所述接收单元,用于在所述发送单元发送流表配置消息给所述交换设备前,接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型;
[0088]所述执行判断单元,用于判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致;
[0089]若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型;
[0090]所述执行单元,用于若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,执行所述发送流表配置消息给所述交换设备的步骤。
[0091]根据第一种可能的实现方式,在第五种可能的实现方式中,所述控制设备还包括接收单元、执行判断单元、执行单元;
[0092]所述接收单元,用于在所述发送单元发送流表配置消息给所述交换设备前,接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型;
[0093]所述执行判断单元,用于判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型;
[0094]若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致;
[0095]所述执行单元,用于若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,执行所述发送流表配置消息给所述交换设备的步骤。
[0096]根据第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式,在第六种可能的实现方式中,交换设备每级流表能支持的流表匹配域类型预先存储在所述控制设备中;
[0097]所述执行判断单元判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,包括:
[0098]根据预先存储的所述交换设备每级流表能支持的流表匹配域类型,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型。
[0099]根据第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式,在第七种可能的实现方式中,所述接收单元,用于在所述执行判断单元判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型前,接收所述交换设备发送的所述交换设备每级流表能支持的流表匹配域类型;
[0100]所述执行判断单元判断所述业务类型对应的每级流表的匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,包括:
[0101]根据所述交换设备发送的所述交换设备每级流表能支持的流表匹配域类型,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型。
[0102]根据第三方面至第七种可能的实现方式,在第八种可能的实现方式中,所述发送单元,还用于在所述发送流表配置消息给所述交换设备后,发送第一指示消息给所述交换设备,所述第一指示消息携带所述控制设备下发的流规则和所述流规则对应的目标级数流表信息,所述第一指示消息指示所述交换设备将所述控制设备下发的所述流规则适配所述目标级数流表并保存适配结果,其中,所述目标级数流表为即将存放所述适配结果的一级流表。
[0103]第四方面,本发明实施例提供一种OpenFlow交换设备,所述交换设备包括接收单元、配置单元;
[0104]所述接收单元,用于接收控制设备发送的流表配置消息,所述流表配置消息携带所述交换设备需要转发的业务类型对应的流表匹配能力信息;
[0105]所述配置单元,用于根据所述需要转发的所述业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中。
[0106]根据第四方面,在第一种可能的实现方式中,所述流表匹配能力信息包括所述业务类型对应的流表级数、每级流表的表项数量、每级流表的流表匹配域类型。
[0107]根据第一种可能的实现方式,在第二种可能的实现方式中,所述交换设备还包括发送单元;
[0108]所述发送单元,用于在所述接收单元接收所述控制设备发送的流表配置消息前,发送所述交换设备当前配置的每级流表的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时发送流表配置消息。
[0109]根据第一种可能的实现方式,在第三种可能的实现方式中,所述交换设备还包括发送单元;
[0110]所述发送单元,用于在所述接收单元接收所述控制设备发送的流表配置消息前,发送所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型时发送所述流表配置消息。
[0111]根据第一种可能的实现方式,在第四种可能的实现方式中,所述交换设备还包括发送单元;
[0112]所述发送单元,用于发送所述交换设备当前配置的每级流表的流表匹配域类型和所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时,判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型时发送所述流表配置消息;
[0113]或
[0114]所述发送单元,用于发送所述交换设备当前配置的每级流表的流表匹配域类型和所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型时,判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时发送所述流表配置消息。
[0115]根据第四方面至第四种可能的实现方式,在第五种可能的实现方式中,所述配置单元根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中包括:
[0116]清除所述交换设备中当前配置的流表内容,释放流表存储资源;
[0117]根据所述需要转发的业务类型对应的流表匹配能力信息,对所述流表存储资源进行重新划分和映射。
[0118]根据第四方面至第五种可能的实现方式,在第六种可能的实现方式中,所述交换设备还包括关闭单元和打开单元;
[0119]所述关闭单元,用于在所述接收单元接收控制设备发送的流表配置消息后,所述配置单元根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中前,关闭转发业务端口,其中,所述转发业务端口用于转发所述交换设备需要转发的业务类型对应的业务数据包;
[0120]所述打开单元,用于在所述配置单元根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中后,打开所述转发业务端口。
[0121]根据第四方面至第六种可能的实现方式,在第七种可能的实现方式中,所述交换设备还包括适配单元和存储单元;
[0122]所述接收单元,还用于在所述配置单元根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中后,接收所述控制设备发送的第一指示消息,所述第一指示消息携带所述控制设备下发的流规则和所述流规则对应的目标级数流表的信息,所述第一指示消息指示所述交换设备将所述控制设备下发的所述流规则适配所述目标级数流表并保存适配结果,其中,所述目标级数流表为即将存放所述适配结果的一级流表;
[0123]所述适配单元,用于将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表;
[0124]所述存储单元,用于存储适配结果。
[0125]根据第七种可能的实现方式,在第八种可能的实现方式中,所述第一指示消息还携带所述流规则的类型,其中,所述流规则的类型包括精确流规则或通配流规则;
[0126]所述适配单元将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表包括:
[0127]根据所述第一指示消息携带的所述流规则的类型,确定所述流规则是精确流规则还是通配流规则;
[0128]若所述流规则是精确流规则,根据所述目标级数流表当前配置的流表匹配域类型,从所述流规则中抽取与所述目标级数流表适配的流表匹配域;
[0129]根据所述目标级数流表的存储结构,将所述与所述目标级数流表适配的所述流表匹配域重新排列;
[0130]所述存储单元存储适配结果包括:
[0131]将排列后的与所述目标级数流表适配的所述流表匹配域和所述流规则的其它信息对应存储到所述目标级数流表对应的存储器。
[0132]根据第七种可能的实现方式,在第九种可能的实现方式中,所述第一指示消息还携带所述流规则的类型,其中,所述流规则的类型包括精确流规则或通配流规则;
[0133]所述适配单元将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表包括:
[0134]根据所述第一指示消息携带的所述流规则的类型,确定所述流规则是精确流规则还是通配流规则;
[0135]若所述流规则是通配流规则,根据所述目标级数流表当前配置的流表匹配域类型,从所述流规则中抽取与所述目标级数流表适配的流表匹配域;
[0136]将所述流规则中与所述目标级数流表不适配的流表匹配域设置掩码;
[0137]所述存储单元存储适配结果包括:
[0138]将所述已经将所述流规则中与所述目标级数流表不适配的流表匹配域设置掩码的流规则存储在所述目标级数流表对应的存储器。
[0139]第五方面,本发明实施例提供一种OpenFlow网络系统,所述系统包括本发明实施例提供的任一项OpenFlow控制设备和OpenFlow交换设备。
[0140]可见,本发明实施例提供一种的OpenFlow网络中流表配置的方法、装置和系统,控制设备确定交换设备需要转发的业务类型;根据所述交换设备需要转发的所述业务类型和预存储的业务类型与流表匹配能力信息的对应关系,确定所述业务类型对应的流表匹配能力信息;发送流表配置消息给所述交换设备;所述交换设备接收所述控制设备发送的流表配置消息,根据所述流表配置消息携带的所述交换设备需要转发的所述业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中。基于上述实施例的描述,在交换设备的应用场景改变,导致所述交换设备需要转发的业务类型发生改变,所述交换设备当前配置的流表匹配域无法满足改变后的业务类型时,通过流表的动态配置,使得交换设备配置后的流表匹配域满足应用场景改变后的业务类型,增强了整个网络系统的业务切换适应能力,提升了系统的工作效率。
【专利附图】
【附图说明】
[0141]图1为本发明实施例提供的一种OpenFlow网络中流表配置的方法;
[0142]图2为本发明实施例提供的另一种OpenFlow网络中流表配置的方法;
[0143]图3为本发明实施例提供的又一种OpenFlow网络中流表配置的方法;
[0144]图4为本发明实施例提供的又一种OpenFlow网络中流表配置的方法;
[0145]图5为本发明实施例提供的又一种OpenFlow网络中流表配置的方法;
[0146]图6为本发明实施例提供的又一种OpenFlow网络中流表配置的方法;
[0147]图7为本发明实施例提供的又一种OpenFlow网络中流表配置的方法;
[0148]图8为本发明实施例提供的一种OpenFlow网络中交换设备将控制设备下发的流规则适配目标级数流表后保存的方法;
[0149]图9为本发明实施例提供的一种精确匹配流规则转化图;
[0150]图10为本发明实施例提供的一种通配匹配流规则转化图;
[0151]图11为本发明实施例提供的一种OpenFlow控制设备;
[0152]图12为本发明实施例提供的另一种OpenFlow控制设备;
[0153]图13为本发明实施例提供的又一种OpenFlow控制设备;
[0154]图14为本发明实施例提供的一种OpenFlow交换设备;
[0155]图15为本发明实施例提供的另一种OpenFlow交换设备;
[0156]图16为本发明实施例提供的又一种OpenFlow交换设备;
[0157]图17为本发明实施例提供的又一种OpenFlow交换设备;
[0158]图18为本发明实施例提供的一种OpenFlow控制设备;
[0159]图19为本发明实施例提供的另一种OpenFlow控制设备;
[0160]图20为本发明实施例提供的另一种OpenFlow控制设备;
[0161]图21为本发明实施例提供的一种OpenFlow交换设备;
[0162]图22为本发明实施例提供的另一种OpenFlow交换设备;
[0163]图23为本发明实施例提供的又一种OpenFlow交换设备;
[0164]图24为本发明实施例提供的一种OpenFlow网络系统。
【具体实施方式】
[0165]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0166]OpenFlow协议将传统的固定的物理硬件组成的网络改造成动态可变的软件定义网络SDN (Software Defined Network,软件定义网络),是一套具有开放接口的协议,能够实现控制面与转发面的分离。
[0167]基于OpenFlow协议组成的网络系统包括OpenFlow控制器和OpenFlow交换设备。其中,所述控制器对与其连接的交换设备进行管理,如管理交换设备的建立新流表、更新、删除和查找流表等。所述交换设备在所述OpenFlow网络中执行来自所述控制器的命令,根据所述控制器下发的流规则对接收到的数据包进行转发。当所述交换机对于某一个接收到的数据包无法找到对应的流规则时,则把该数据包发送给所述控制器,由所述控制器决定该包的转发动作,并下发新的流规则到所述交换设备。
[0168]OpenFlow交换设备由流表、安全通道和OpenFlow协议三部分组成。其中,所述交换设备通过所述安全通道与OpenFlow控制器连接。所述OpenFlow协议用来描述控制器与交换设备之间交互所用信息的标准,所述流表是所述交换设备进行转发策略控制的核心数据结构,交换设备通过查找所述流表来决策对进入交换机的网络流量所采取的行为。
[0169]OpenFlow交换设备接收OpenFlow控制器下发的流规则,并将其存储在称为流表的装置中,流表的每一个表项即为一个流规则,流规则由Match Field (匹配域)、Counters(计数器)和Act1ns (指令集)组成,其中,匹配域用于与接收到的数据报文进行匹配,计数器用于记录该表项与数据报文匹配的统计信息,指令集决定报文如何转发。
[0170]匹配域分为两类,一类为精确匹配项,即数据报文需要与该匹配域完全相等才称作匹配成功;一类为通配匹配项,即数据报文的一部分与该匹配域中的对应部分一致即称为匹配成功,其余部分可以在匹配过程中忽略,该忽略规则由匹配域中的mask (掩码)位决定。
[0171]OpenFlow协议1.1及以上版本规定了 OpenFlow交换设备的多流表结构,即交换设备中存在多级流表,分别存储不同内容的流规则,对于接收到的数据报文,从TableO (O级流表)开始匹配,根据表项中的指令集对后续流表进行串行查找。
[0172]实施例一、
[0173]本发明实施例提供一种OpenFlow网络中流表配置的方法,所述方法基于OpenFlow协议的控制设备,具体如图1所示,包括:
[0174]101、确定交换设备需要转发的业务类型。
[0175]具体的,在所述OpenFlow网络中,当所述交换设备与所述控制设备建立连接时,所述控制设备首先确定所述交换设备需要转发的业务类型。
[0176]102、根据所述交换设备需要转发的业务类型和预存储的业务类型与流表匹配能力信息的对应关系,确定所述业务类型对应的流表匹配能力信息。
[0177]具体的,在所述OpenFlow网络中,所述控制设备中预先存储了业务类型与流表匹配能力信息的对应关系,当所述控制设备确定交换设备需要转发的业务类型后,根据所述交换设备需要转发的业务类型和预存储的业务类型与流表匹配能力信息的对应关系,确定所述业务类型对应的流表匹配能力信息。
[0178]具体的,所述流表匹配能力信息可以包括所述业务类型对应的流表级数、每级流表的表项数量、每级流表的流表匹配域类型,本发明实施例对此不作具体限定。
[0179]需要说明的是,交换设备在每级流表中分别提供不同的流表匹配域类型,以适应特定的应用场景,支持所需的转发业务,如表一所示:
[0180]表一
[0181]
【权利要求】
1.一种OpenFlow网络中流表配置的方法,所述方法基于OpenFlow协议的控制设备,其特征在于,所述方法包括: 确定交换设备需要转发的业务类型; 根据所述交换设备需要转发的所述业务类型和预存储的业务类型与流表匹配能力信息的对应关系,确定所述业务类型对应的流表匹配能力信息; 发送流表配置消息给所述交换设备,所述流表配置消息携带所述业务类型对应的流表匹配能力信息,以使得所述交换设备根据所述流表匹配能力信息,配置所述业务类型所需的流表。
2.根据权利要求1所述的方法,其特征在于,所述流表匹配能力信息包括所述业务类型对 应的流表级数、每级流表的表项数量、每级流表的流表匹配域类型。
3.根据权利要求2所述的方法,其特征在于,在所述发送流表配置消息给所述交换设备前,所述方法还包括: 接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型;判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致; 若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,执行所述发送流表配置消息给所述交换设备的步骤。
4.根据权利要求2所述的方法,其特征在于,在所述发送流表配置消息给所述交换设备前,所述方法还包括: 判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型; 若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,执行所述发送流表配置消息给所述交换设备的步骤。
5.根据权利要求2所述的方法,其特征在于,在所述发送流表配置消息给所述交换设备前,所述方法还包括: 接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型;判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致; 若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,判断所述业务类型对应的每级流表的流表流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型; 若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,执行所述发送流表配置消息给所述交换设备的步骤。
6.根据权利要求2所述的方法,其特征在于,在所述发送流表配置消息给所述交换设备前,所述方法还包括: 接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型;判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型; 若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致; 若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,执行所述发送流表配置消息给所述交换设备的步骤。
7.根据权利要求4-6任一项所述的方法,其特征在于,交换设备每级流表能支持的流表匹配域类型预先存储在所述控制设备中; 所述判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,包括: 根据预先存储的所述交换设备每级流表能支持的流表匹配域类型,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型。
8.根据权利要求4-6任一项所述的方法,其特征在于,在所述判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型前,还包括: 接收所述交换设备发送的所述交换设备每级流表能支持的流表匹配域类型; 所述判断所述业 务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,包括: 根据所述交换设备发送的所述交换设备每级流表能支持的流表匹配域类型,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型。
9.根据权利要求1-8任一项所述的方法,其特征在于,在所述发送流表配置消息给所述交换设备后,所述方法还包括: 发送第一指示消息给所述交换设备,所述第一指示消息携带所述控制设备下发的流规则和所述流规则对应的目标级数流表的信息,所述第一指示消息指示所述交换设备将所述控制设备下发的所述流规则适配所述目标级数流表并保存适配结果,其中,所述目标级数流表为即将存放所述适配结果的一级流表。
10.一种OpenFlow网络中流表配置的方法,所述方法基于OpenFlow协议的交换设备,其特征在于,所述方法包括: 接收控制设备发送的流表配置消息,所述流表配置消息携带所述交换设备需要转发的业务类型对应的流表匹配能力信息; 根据所述交换设备需要转发的所述业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中。
11.根据权利要求10所述的方法,其特征在于,所述流表匹配能力信息包括所述业务类型对应的流表级数、每级流表的表项数量、每级流表的流表匹配域类型。
12.根据权利要求11所述的方法,其特征在于,在所述接收所述控制设备发送的流表配置消息前,所述方法还包括: 发送所述交换设备当前配置的每级流表的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时发送流表配置消息。
13.根据权利要求11所述的方法,其特征在于,在所述接收控制设备发送的流表配置消息前,所述方法还包括: 发送所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型时发送所述流表配置消息。
14.根据权利要求11所述的方法,其特征在于,在所述接收控制设备发送的流表配置消息前,所述方法还包括: 发送所述交换设备当前配置的每级流表的流表匹配域类型和所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时,判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持 的流表匹配域类型时发送所述流表配置消息; 或 发送所述交换设备当前配置的每级流表的流表匹配域类型和所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表的流表匹配域类型时,判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时发送所述流表配置消息。
15.根据权利要求10-14任一项所述的方法,其特征在于,所述根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中,包括: 清除所述交换设备中当前配置的流表内容,释放流表存储资源; 根据所述需要转发的业务类型对应的流表匹配能力信息,对所述流表存储资源进行重新划分和映射。
16.根据权利要求10-15任一项所述的方法,其特征在于,在所述接收控制设备发送的流表配置消息后,根据所述需要转发的业务类型对应的流表的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中前,所述方法还包括:关闭转发业务端口,其中,所述转发业务端口用于转发所述交换设备需要转发的业务类型对应的业务数据包; 在所述根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中后,所述方法还包括: 打开所述转发业务端口。
17.根据权利要求10-16任一项所述的方法,其特征在于,在所述根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中后,所述方法还包括: 接收所述控制设备发送的第一指示消息,所述第一指示消息携带所述控制设备下发的流规则和所述流规则对应的目标级数流表的信息,所述第一指示消息指示所述交换设备将所述控制设备下发的所述流规则适配所述目标级数流表并保存适配结果,其中,所述目标级数流表为即将存放所述适配结果的一级流表; 将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表后保存适配结果。
18.根据权利要求17所述的方法,其特征在于,所述第一指示消息还携带所述流规则的类型,其中,所述流规则的类型包括精确流规则或通配流规则; 所述将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表后保存适配结果,包 括: 根据所述第一指示消息携带的所述流规则的类型,确定所述流规则是精确流规则还是通配流规则; 若所述流规则是精确流规则,根据所述目标级数流表当前配置的流表匹配域类型,从所述流规则中抽取与所述目标级数流表适配的流表匹配域; 根据所述目标级数流表的存储结构,将所述与所述目标级数流表适配的所述流表匹配域重新排列; 将排列后的与所述目标级数流表适配的所述流表匹配域和所述流规则的其它信息对应存储到所述目标级数流表对应的存储器。
19.根据权利要求17所述的方法,其特征在于,所述第一指示消息还携带所述流规则的类型,其中,所述流规则的类型包括精确流规则或通配流规则; 所述将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表后保存适配结果,包括: 根据所述第一指示消息携带的所述流规则的类型,确定所述流规则是精确流规则还是通配流规则; 若所述流规则是通配流规则,根据所述目标级数流表当前配置的流表匹配域类型,从所述流规则中抽取与所述目标级数流表适配的流表匹配域; 将所述流规则中与所述目标级数流表不适配的流表匹配域设置掩码; 将所述已经将所述流规则中与所述目标级数流表不适配的流表匹配域设置掩码的流规则存储在所述目标级数流表对应的存储器。
20.一种OpenFlow控制设备,其特征在于,所述控制设备包括业务类型确定单元、流表匹配能力信息确定单元、发送单元;所述业务类型确定单元,用于确定交换设备需要转发的业务类型; 所述流表匹配能力信息确定单元,用于根据所述交换设备需要转发的所述业务类型和预存储的业务类型与流表匹配能力信息的对应关系,确定所述业务类型对应的流表匹配能力信息; 所述发送单元,用于发送流表配置消息给所述交换设备,所述流表配置消息携带所述业务类型对应的流表匹配能力信息,以使得所述交换设备根据所述流表匹配能力信息,配置所述业务类型所需的流表。
21.根据权利要求20所述的控制设备,其特征在于,所述流表匹配能力信息包括所述业务类型对应的流表级数、每级流表的表项数量、每级流表的流表匹配域类型。
22.根据权利要求21所述的控制设备,其特征在于,所述控制设备还包括接收单元、执行判断单元、执行单元; 所述接收单元,还用于在所述发送单元发送流表配置消息给所述交换设备前,接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型; 所述执行判断单元,用于判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致; 所述执行单元,用于若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,执行所述发送流表配置消息给所述交换设备的步骤。
23.根据权利要求21所述的控制设备,其特征在于,所述控制设备还包括执行判断单元、执行单元; 所述执行判断单元,用于在所述发送单元发送流表配置消息给所述交换设备前,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型; 所述执行单元,用于若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,执行所述发送流表配置消息给所述交换设备的步骤。
24.根据权利要求21所述的控制设备,其特征在于,所述控制设备还包括接收单元、执行判断单元、执行单元; 所述接收单元,用于在所述发送单元发送流表配置消息给所述交换设备前,接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型; 所述执行判断单元,用于判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致; 若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型; 所述执行单元,用于若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,执行所述发送流表配置消息给所述交换设备的步骤。
25.根据权利要求21所述的控制设备,其特征在于,所述控制设备还包括接收单元、执行判断单元、执行单元; 所述接收单元,用于在所述发送单元发送流表配置消息给所述交换设备前,接收所述交换设备发送的所述交换设备当前配置的每级流表的流表匹配域类型; 所述执行判断单元,用于判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型; 若所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型,判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述业务类型对应的每级流表的流表匹配域类型一致; 所述执行单元,用于若所述交换设备当前配置的每级流表的流表匹配域类型与所述业务类型对应的每级流表的流表匹配域类型不一致,执行所述发送流表配置消息给所述交换设备的步骤。
26.根据权利要求23-25任一项所述的控制设备,其特征在于,交换设备每级流表能支持的流表匹配域类型预先存储在所述控制设备中; 所述执行判断单元判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,包括: 根据预先存储 的所述交换设备每级流表能支持的流表匹配域类型,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型。
27.根据权利要求23-25任一项所述的控制设备,其特征在于, 所述接收单元,用于在所述执行判断单元判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型前,接收所述交换设备发送的所述交换设备每级流表能支持的流表匹配域类型; 所述执行判断单元判断所述业务类型对应的每级流表的匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,包括: 根据所述交换设备发送的所述交换设备每级流表能支持的流表匹配域类型,判断所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型。
28.根据权利要求20-27任一项所述的控制设备,其特征在于, 所述发送单元,还用于在所述发送流表配置消息给所述交换设备后,发送第一指示消息给所述交换设备,所述第一指示消息携带所述控制设备下发的流规则和所述流规则对应的目标级数流表的信息,所述第一指示消息指示所述交换设备将所述控制设备下发的所述流规则适配所述目标级数流表并保存适配结果,其中,所述目标级数流表为即将存放所述适配结果的一级流表。
29.—种OpenFlow交换设备,其特征在于,所述交换设备包括接收单元、配置单元; 所述接收单元,用于接收控制设备发送的流表配置消息,所述流表配置消息携带所述交换设备需要转发的业务类型对应的流表匹配能力信息; 所述配置单元,用于根据所述需要转发的所述业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中。
30.根据权利要求29所述的交换设备,其特征在于,所述流表匹配能力信息包括所述业务类型对应的流表级数、每级流表的表项数量、每级流表的流表匹配域类型。
31.根据权利要求30所述的交换设备,其特征在于,所述交换设备还包括发送单元; 所述发送单元,用于在所述接收单元接收所述控制设备发送的流表配置消息前,发送所述交换设备当前配置的每级流表的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时发送流表配置消息。
32.根据权利要求30所述的交换设备,其特征在于,所述交换设备还包括发送单元; 所述发送单元,用于在所述接收单元接收所述控制设备发送的流表配置消息前,发送所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型时发送所述流表配置消息。
33.根据权利要求30所述的交换设备,其特征在于,所述交换设备还包括发送单元; 所述发送单元,用于发送所述交换设备当前配置的每级流表的流表匹配域类型和所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表 的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时,判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型时发送所述流表配置消息; 或 所述发送单元,用于发送所述交换设备当前配置的每级流表的流表匹配域类型和所述交换设备每级流表能支持的流表匹配域类型给所述控制设备,以使得所述控制设备判断所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型是否为所述交换设备对应级别的流表能支持的流表匹配域类型,且所述控制设备在所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型为所述交换设备对应级别的流表能支持的流表匹配域类型时,判断所述交换设备当前配置的每级流表的流表匹配域类型是否与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型一致,且所述控制设备在所述交换设备当前配置的每级流表的流表匹配域类型与所述交换设备需要转发的所述业务类型对应的每级流表的流表匹配域类型不一致时发送所述流表配置消息。
34.根据权利要求29-33任一项所述的交换设备,其特征在于,所述配置单元根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中包括: 清除所述交换设备中当前配置的流表内容,释放流表存储资源;根据所述需要转发的业务类型对应的流表的流表匹配能力信息,对所述流表存储资源进行重新划分和映射。
35.根据权利要求29-34任一项所述的交换设备,其特征在于,所述交换设备还包括关闭单元和打开单元; 所述关闭单元,用于在所述接收单元接收控制设备发送的流表配置消息后,所述配置单元根据所述需要转发的业务类型对应的流表的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中前,关闭转发业务端口,其中,所述转发业务端口用于转发所述交换设备需要转发的业务类型对应的业务数据包; 所述打开单元,用于在所述配置单元根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中后,打开所述转发业务端口。
36.根据权利要求29-35任一项所述的交换设备,其特征在于,所述交换设备还包括适配单元和存储单元; 所述接收单元,还用于在所述配置单元根据所述需要转发的业务类型对应的流表匹配能力信息,将所述交换设备需要转发的业务类型对应的流表配置在所述交换设备中后,接收所述控制设备发送的第一指示消息,所述第一指示消息携带所述控制设备下发的流规则和所述流规则对应的目标级数流表的信息,所述第一指示消息指示所述交换设备将所述控制设备下发的所述流规则适配所述目标级数流表并保存适配结果,其中,所述目标级数流表为即将存放所述适配结果的一级流表; 所述适配单元,用于将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表; 所述存储单元,用于存储适配结果。
37.根据权利要求36所述的交换设备,其特征在于,所述第一指示消息还携带所述流规则的类型,其中,所述流规则的类型包括精确流规则或通配流规则; 所述适配单元将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表包括: 根据所述第一指示消息携带的所述流规则的类型,确定所述流规则是精确流规则还是通配流规则; 若所述流规则是精确流规则,根据所述目标级数流表当前配置的流表匹配域类型,从所述流规则中抽取与所述目标级数流表适配的流表匹配域; 根据所述目标级数流表的存储结构,将所述与所述目标级数流表适配的所述流表匹配域重新排列; 所述存储单元存储适配结果包括: 将排列后的与所述目标级数流表适配的所述流表匹配域和所述流规则的其它信息对应存储到所述目标级数流表对应的存储器。
38.根据权利要求36所述的交换设备,其特征在于,所述第一指示消息还携带所述流规则的类型,其中,所述流规则的类型包括精确流规则或通配流规则; 所述适配单元将所述控制设备发送的所述第一指示消息携带的所述流规则适配所述目标级数流表包括:根据所述第一指示消息携带的所述流规则的类型,确定所述流规则是精确流规则还是通配流规则; 若所述流规则是通配流规则,根据所述目标级数流表当前配置的流表匹配域类型,从所述流规则中抽取与所述目标级数流表适配的流表匹配域; 将所述流规则中与所述目标级数流表不适配的流表匹配域设置掩码; 所述存储单元存储适配结果包括: 将所述已经将所述流规则中与所述目标级数流表不适配的流表匹配域设置掩码的流规则存储在所述目标级数流表对应的存储器。
39.一种OpenFlow网络系统,其特征在于,所述系统包括:如权利要求20-28任一项所述的OpenFlow控制 设备和如权利要求29-38任一项所述的OpenFlow交换设备。
【文档编号】H04L12/931GK104079492SQ201310105392
【公开日】2014年10月1日 申请日期:2013年3月28日 优先权日:2013年3月28日
【发明者】宋昆鹏, 李纪先 申请人:华为技术有限公司