调度器支持能力的查询、通知方法及装置转让专利

申请号 : CN201310400253.3

文献号 : CN104426792B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖敏梁乾灯

申请人 : 中兴通讯股份有限公司

摘要 :

本发明公开了一种调度器支持能力的查询、通知方法及装置,在上述方法中,OpenFlow控制器向OpenFlow交换机发送调度器能力查询消息,其中,调度器能力查询消息用于获取OpenFlow交换机的调度器支持能力;OpenFlow控制器接收来自于OpenFlow交换机的调度器能力查询响应消息,并根据调度器能力查询响应消息获取调度器支持能力。根据本发明提供的技术方案,实现了OpenFlow控制器预先获取OpenFlow交换机的调度器支持能力,从而有效地避免了OpenFlow控制器对OpenFlow交换机进行控制操作失败的情况发生。

权利要求 :

1.一种调度器支持能力的查询方法,其特征在于,包括:开放流OpenFlow控制器向OpenFlow交换机发送调度器能力查询消息,其中,所述调度器能力查询消息用于获取所述OpenFlow交换机的调度器支持能力;

所述OpenFlow控制器接收来自于所述OpenFlow交换机的调度器能力查询响应消息,并根据所述调度器能力查询响应消息获取所述调度器支持能力;

所述调度器支持能力包括以下至少之一:

交换机支持的最大调度器数量;

交换机支持的最大调度器嵌套层数;

单个调度器支持的最大队列数量;

单个调度器支持的调度算法类型;

单个调度器支持的拥塞策略类型;

单个调度器支持的最大队列优先级数量。

2.根据权利要求1所述的方法,其特征在于,所述OpenFlow控制器向所述OpenFlow交换机发送所述调度器能力查询消息包括:所述OpenFlow控制器判断在所述OpenFlow控制器与所述OpenFlow交换机之间的OpenFlow通道是否建立成功;

如果是,则立即发送所述调度器能力查询消息。

3.根据权利要求1所述的方法,其特征在于,在所述OpenFlow控制器根据所述调度器能力查询响应消息获取所述调度器支持能力之后,还包括:所述OpenFlow控制器接收来自于网络应用程序的调用请求;

所述OpenFlow控制器在所述调度器支持能力能够满足所述调用请求的情况下,接受所述调用请求并向所述网络应用程序反馈调用成功响应,或者,在所述调度器支持能力未能满足所述调用请求的情况下,拒绝所述调用请求并向所述网络应用程序反馈调用失败原因。

4.根据权利要求1至3中任一项所述的方法,其特征在于,所述调度器能力查询消息和所述调度器能力查询响应消息均为OpenFlow协议扩展消息。

5.一种调度器支持能力的通知方法,其特征在于,包括:开放流OpenFlow配置点被触发获取OpenFlow交换机的调度器支持能力;

所述OpenFlow配置点将获取到的所述调度器支持能力通知给OpenFlow控制器;

所述调度器支持能力包括以下至少之一:

交换机支持的最大调度器数量;

交换机支持的最大调度器嵌套层数;

单个调度器支持的最大队列数量;

单个调度器支持的调度算法类型;

单个调度器支持的拥塞策略类型;

单个调度器支持的最大队列优先级数量。

6.根据权利要求5所述的方法,其特征在于,所述OpenFlow配置点被触发获取所述调度器支持能力包括:所述OpenFlow配置点被触发向所述OpenFlow交换机发送调度器能力查询消息,其中,所述调度器能力查询消息用于获取所述OpenFlow交换机的调度器支持能力;

所述OpenFlow配置点接收来自于所述OpenFlow交换机的调度器能力查询响应消息,并根据所述调度器能力查询响应消息获取所述调度器支持能力。

7.根据权利要求5所述的方法,其特征在于,所述OpenFlow配置点经由预设接口将所述调度器支持能力通知给所述OpenFlow控制器。

8.根据权利要求5所述的方法,其特征在于,在所述OpenFlow配置点将所述调度器支持能力通知给所述OpenFlow控制器之后,还包括:所述OpenFlow控制器接收来自于网络应用程序的调用请求;

所述OpenFlow控制器在所述调度器支持能力能够满足所述调用请求的情况下,接受所述调用请求并向所述网络应用程序反馈调用成功响应,或者,在所述调度器支持能力未能满足所述调用请求的情况下,拒绝所述调用请求并向所述网络应用程序反馈调用失败原因。

9.根据权利要求5所述的方法,其特征在于,在所述OpenFlow配置点被触发获取所述调度器支持能力之前,还包括:所述OpenFlow配置点确定在所述OpenFlow配置点与所述OpenFlow交换机之间的OpenFlow管理和配置通道已经建立成功且在所述OpenFlow控制器与所述OpenFlow交换机之间的OpenFlow通道尚未建立。

10.根据权利要求5至9中任一项所述的方法,其特征在于,所述调度器能力查询消息和所述调度器能力查询响应消息均为OpenFlow管理和配置通道协议扩展消息。

11.一种调度器支持能力的查询装置,其特征在于,包括:发送模块,用于向OpenFlow交换机发送调度器能力查询消息,其中,所述调度器能力查询消息用于获取所述OpenFlow交换机的调度器支持能力;

第一接收模块,用于接收来自于所述OpenFlow交换机的调度器能力查询响应消息,并根据所述调度器能力查询响应消息获取所述调度器支持能力;

所述调度器支持能力包括以下至少之一:

交换机支持的最大调度器数量;

交换机支持的最大调度器嵌套层数;

单个调度器支持的最大队列数量;

单个调度器支持的调度算法类型;

单个调度器支持的拥塞策略类型;

单个调度器支持的最大队列优先级数量。

12.根据权利要求11所述的装置,其特征在于,所述发送模块包括:判断单元,用于判断在所述OpenFlow控制器与所述OpenFlow交换机之间的OpenFlow通道是否建立成功;

发送单元,用于在所述判断单元输出为是时,发送所述调度器能力查询消息。

13.根据权利要求11所述的装置,其特征在于,所述装置还包括:第二接收模块,用于接收来自于网络应用程序的调用请求;

处理模块,用于在所述调度器支持能力能够满足所述调用请求的情况下,接受所述调用请求并向所述网络应用程序反馈调用成功响应,或者,在所述调度器支持能力未能满足所述调用请求的情况下,拒绝所述调用请求并向所述网络应用程序反馈调用失败原因。

14.一种调度器支持能力的通知装置,其特征在于,包括:获取模块,用于被触发获取OpenFlow交换机的调度器支持能力;

通知模块,用于将获取到的所述调度器支持能力通知给OpenFlow控制器;

所述调度器支持能力包括以下至少之一:

交换机支持的最大调度器数量;

交换机支持的最大调度器嵌套层数;

单个调度器支持的最大队列数量;

单个调度器支持的调度算法类型;

单个调度器支持的拥塞策略类型;

单个调度器支持的最大队列优先级数量。

15.根据权利要求14所述的装置,其特征在于,所述获取模块包括:发送单元,用于被触发向所述OpenFlow交换机发送调度器能力查询消息,其中,所述调度器能力查询消息用于获取所述OpenFlow交换机的调度器支持能力;

获取单元,用于接收来自于所述OpenFlow交换机的调度器能力查询响应消息,并根据所述调度器能力查询响应消息获取所述调度器支持能力。

16.根据权利要求14所述的装置,其特征在于,所述装置还包括:确定模块,用于确定在所述OpenFlow配置点与所述OpenFlow交换机之间的OpenFlow管理和配置通道已经建立成功且在所述OpenFlow控制器与所述OpenFlow交换机之间的OpenFlow通道尚未建立。

说明书 :

调度器支持能力的查询、通知方法及装置

技术领域

[0001] 本发明涉及通信领域,具体而言,涉及一种调度器支持能力的查询、通知方法及装置。

背景技术

[0002] 目前,相关技术中的开放流(OpenFlow)网络作为一种软件定义网络(Software Defined Network,简称为SDN),其采用控制平面与转发平面(也称为数据平面)相分离的架构。图1是根据相关技术的OpenFlow网络组件架构的示意图。如图1所示,OpenFlow网络的管理平面由OpenFlow配置点来实现,OpenFlow配置点是一种运行着网管软件的设备,具体的设备形态可以是个人电脑或者服务器等。OpenFlow网络的控制平面由OpenFlow控制器来实现,OpenFlow控制器是一种具备强大计算能力的设备,具体的设备形态可以是个人电脑、服务器或者服务器集群等,网络应用程序(App)可以通过应用程序编程接口(API)调用OpenFlow控制器以实现对OpenFlow网络的控制。OpenFlow网络的转发平面由OpenFlow交换机来实现,OpenFlow交换机是一种具备强大交换能力的设备,具体的设备形态是配备多个网络端口、基于流表(Flow Table)进行报文处理与转发的网络设备。OpenFlow配置点与OpenFlow交换机之间的接口运行OpenFlow管理和配置(OF-Config)协议,OpenFlow控制器与OpenFlow交换机之间的接口运行OpenFlow协议,上述两个协议均由国际标准组织开放网络基金会(Open Networking Foundation,简称为ONF)负责制定和修改。
[0003] ONF于2013年3月正式发布的OF-Config协议1.1.1版本,规定了OF-Config协议流程。ONF又于2013年4月正式发布的OpenFlow交换机规范1.3.2版本,规定了OpenFlow协议流程以及OpenFlow交换机内部的报文处理流程。在OpenFlow网络的初始化过程中,网络操作员首先会利用OpenFlow配置点对OpenFlow交换机进行配置,其中,可以包括:配置OpenFlow控制器的互联网协议(Internet Protocol,简称为IP)地址,然后OpenFlow交换机就会利用这个配置的OpenFlow控制器IP地址发起并建立其与OpenFlow控制器之间的OpenFlow通道,OpenFlow通道采用的是传输控制协议(Transmission Control Protocol,简称为TCP)连接,同时还可以在TCP连接之上建立包含了安全加密机制的传输层安全(Transport Layer Security,简称为TLS)协议连接。
[0004] 针对相关技术中的OpenFlow交换机规范和OF-Config协议无法实现层次化服务质量(Hierarchical Quality of Service,简称为H-QoS)所要求的多层队列调度的问题,一个有效的解决方案就是在OpenFlow交换机内部的报文处理流程中引入可嵌套的调度器,从而利用调度器来实现业务流量的多层队列调度。
[0005] 图2是根据相关技术的OpenFlow交换机规范1.3.2版本中OpenFlow交换机实现队列调度功能的报文处理流程的示意图。如图2所示,从入端口进入OpenFlow交换机的报文首先会进行流表匹配,流表是由OpenFlow控制器通过OpenFlow协议下发到OpenFlow交换机的。图3是根据相关技术的OpenFlow流表格式的示意图。如图3所示,流表中可以包含多个流表条目(Flow Table Entry),每个流表条目中的“匹配字段”都可以是报文头中的任意字段(例如:地址字段、用户标识字段、服务优先级字段等)。而对于流表匹配成功的报文会执行相应流表条目中的指令(Instruction)。有一条指令“Write-Actions action”可用于向动作集合(Action Set)中添加新的动作(Action),有一个动作“Set-Queue queue_id”可用于将报文加入相应的队列,多个队列之间还可以完成队列调度功能,队列的配置参数是由OpenFlow配置点通过OF-Config协议静态下发到OpenFlow交换机的。作为动作集合中的一个动作,设置队列(Set-Queue)动作实现的加入队列和队列调度功能都是在OpenFlow交换机报文处理流程的最后执行的,这就使得OpenFlow交换机只能实现基于输出端口的单层队列调度。
[0006] 图4是根据相关技术的在引入调度器后OpenFlow交换机实现队列调度功能的报文处理流程的示意图。如图4所示,从入端口进入OpenFlow交换机的报文首先会进行流表匹配,对于流表匹配成功的报文会执行相应流表条目中的指令。有一条指令“Scheduler Queue scheduler_id queue_id”可用于直接调用调度器,并将报文加入调度器中相应的队列,多个队列之间根据调度器的配置完成队列调度功能。图5是根据相关技术的容纳调度器的OpenFlow调度器表格式的示意图。如图5所示,调度器表中可以包含多个调度器,每个调度器包含“调度器标识”(Scheduler ID)和“队列标识”(Queue ID)字段,上述两个字段是流表指令调用调度器时所使用的标识,用于保证报文进入正确的调度器的正确队列中;每个调度器同样也包含“下一层调度器标识”(Next Level Scheduler ID)字段,该字段用于调度器中的队列调用相应的下一层调度器,该字段取值为0时表示不调用任何其它调度器;每个调度器同样也包含“测量器标识”(Meter ID)字段,该字段用于调度器中的队列调用相应的测量器,该字段取值为0时表示不调用任何测量器;每个调度器当然还可以包含“拥塞策略”(Congestion Policy)、“调度算法”(Scheduling Algorithm)、“队列优先级”(Queue Priority)和“队列权重”(Queue Weight)等队列拥塞管理和队列调度通常需要使用的参数。为了增加队列调度的灵活性,OpenFlow交换机中的调度器不是由OpenFlow配置点通过OF-Config协议静态下发的,而是由OpenFlow控制器根据网络应用程序的要求通过OpenFlow协议动态下发的。调度器并不与输出端口相关联,且支持嵌套功能,这就使得OpenFlow交换机能够实现多层队列调度功能。
[0007] 在OpenFlow网络中,不同的OpenFlow交换机可能是由不同的生产商设计制造的,而且OpenFlow控制器与OpenFlow交换机也很有可能是来自不同生产商的两个分离的网络实体,由此导致了不同的OpenFlow交换机可能具备不同的调度器支持能力,而且当网络应用程序通过API接口调用OpenFlow控制器对OpenFlow交换机进行调度器的增加和修改等操作时,可能会出现由于OpenFlow控制器预先缺乏对于OpenFlow交换机调度器支持能力的了解而导致操作失败的情况。
[0008] 针对相关技术中由于OpenFlow控制器预先缺乏对于OpenFlow交换机调度器支持能力的了解而导致操作失败的问题,目前尚未提出有效的解决方案。

发明内容

[0009] 本发明提供了一种调度器支持能力的查询、通知方法及装置,以至少解决相关技术中由于OpenFlow控制器预先缺乏对于OpenFlow交换机调度器支持能力的了解而导致操作失败的问题。
[0010] 根据本发明的一个方面,提供了一种调度器支持能力的查询方法。
[0011] 根据本发明的调度器支持能力的查询方法包括:OpenFlow控制器向OpenFlow交换机发送调度器能力查询消息,其中,调度器能力查询消息用于获取OpenFlow交换机的调度器支持能力;OpenFlow控制器接收来自于OpenFlow交换机的调度器能力查询响应消息,并根据调度器能力查询响应消息获取调度器支持能力。
[0012] 优选地,OpenFlow控制器向OpenFlow交换机发送调度器能力查询消息包括:OpenFlow控制器判断在OpenFlow控制器与OpenFlow交换机之间的OpenFlow通道是否建立成功;如果是,则立即发送调度器能力查询消息。
[0013] 优选地,在OpenFlow控制器根据调度器能力查询响应消息获取调度器支持能力之后,还包括:OpenFlow控制器接收来自于网络应用程序的调用请求;OpenFlow控制器在调度器支持能力能够满足调用请求的情况下,接受调用请求并向网络应用程序反馈调用成功响应,或者,在调度器支持能力未能满足调用请求的情况下,拒绝调用请求并向网络应用程序反馈调用失败原因。
[0014] 优选地,调度器支持能力包括以下至少之一:交换机支持的最大调度器数量;交换机支持的最大调度器嵌套层数;单个调度器支持的最大队列数量;单个调度器支持的调度算法类型;单个调度器支持的拥塞策略类型;单个调度器支持的最大队列优先级数量。
[0015] 优选地,调度器能力查询消息和调度器能力查询响应消息均为OpenFlow协议扩展消息。
[0016] 根据本发明的另一方面,提供了一种调度器支持能力的通知方法。
[0017] 根据本发明的调度器支持能力的通知方法包括:OpenFlow配置点被触发获取OpenFlow交换机的调度器支持能力;OpenFlow配置点将获取到的调度器支持能力通知给OpenFlow控制器。
[0018] 优选地,OpenFlow配置点被触发获取调度器支持能力包括:OpenFlow配置点被触发向OpenFlow交换机发送调度器能力查询消息,其中,调度器能力查询消息用于获取OpenFlow交换机的调度器支持能力;OpenFlow配置点接收来自于OpenFlow交换机的调度器能力查询响应消息,并根据调度器能力查询响应消息获取调度器支持能力。
[0019] 优选地,OpenFlow配置点经由预设接口将调度器支持能力通知给OpenFlow控制器。
[0020] 优选地,在OpenFlow配置点将调度器支持能力通知给OpenFlow控制器之后,还包括:OpenFlow控制器接收来自于网络应用程序的调用请求;OpenFlow控制器在调度器支持能力能够满足调用请求的情况下,接受调用请求并向网络应用程序反馈调用成功响应,或者,在调度器支持能力未能满足调用请求的情况下,拒绝调用请求并向网络应用程序反馈调用失败原因。
[0021] 优选地,在OpenFlow配置点被触发获取调度器支持能力之前,还包括:OpenFlow配置点确定在OpenFlow配置点与OpenFlow交换机之间的OpenFlow管理和配置通道已经建立成功且在OpenFlow控制器与OpenFlow交换机之间的OpenFlow通道尚未建立。
[0022] 优选地,调度器支持能力包括以下至少之一:交换机支持的最大调度器数量;交换机支持的最大调度器嵌套层数;单个调度器支持的最大队列数量;单个调度器支持的调度算法类型;单个调度器支持的拥塞策略类型;单个调度器支持的最大队列优先级数量。
[0023] 优选地,调度器能力查询消息和调度器能力查询响应消息均为OpenFlow管理和配置通道协议扩展消息。
[0024] 根据本发明的又一方面,提供了一种调度器支持能力的查询装置。
[0025] 根据本发明的调度器支持能力的查询装置包括:发送模块,用于向OpenFlow交换机发送调度器能力查询消息,其中,调度器能力查询消息用于获取OpenFlow交换机的调度器支持能力;第一接收模块,用于接收来自于OpenFlow交换机的调度器能力查询响应消息,并根据调度器能力查询响应消息获取调度器支持能力。
[0026] 优选地,发送模块包括:判断单元,用于判断在OpenFlow控制器与OpenFlow交换机之间的OpenFlow通道是否建立成功;发送单元,用于在判断单元输出为是时,发送调度器能力查询消息。
[0027] 优选地,上述装置还包括:第二接收模块,用于接收来自于网络应用程序的调用请求;处理模块,用于在调度器支持能力能够满足调用请求的情况下,接受调用请求并向网络应用程序反馈调用成功响应,或者,在调度器支持能力未能满足调用请求的情况下,拒绝调用请求并向网络应用程序反馈调用失败原因。
[0028] 根据本发明的再一方面,提供了一种调度器支持能力的通知装置。
[0029] 根据本发明的调度器支持能力的通知装置包括:获取模块,用于被触发获取OpenFlow交换机的调度器支持能力;通知模块,用于将获取到的调度器支持能力通知给OpenFlow控制器。
[0030] 优选地,获取模块包括:发送单元,用于被触发向OpenFlow交换机发送调度器能力查询消息,其中,调度器能力查询消息用于获取OpenFlow交换机的调度器支持能力;获取单元,用于接收来自于OpenFlow交换机的调度器能力查询响应消息,并根据调度器能力查询响应消息获取调度器支持能力。
[0031] 优选地,上述装置还包括:确定模块,用于确定在OpenFlow配置点与OpenFlow交换机之间的OpenFlow管理和配置通道已经建立成功且在OpenFlow控制器与OpenFlow交换机之间的OpenFlow通道尚未建立。
[0032] 通过本发明实施例,采用OpenFlow控制器向OpenFlow交换机发送调度器能力查询消息,该调度器能力查询消息用于获取OpenFlow交换机的调度器支持能力;OpenFlow控制器接收来自于OpenFlow交换机的调度器能力查询响应消息,并根据调度器能力查询响应消息获取调度器支持能力,即通过OpenFlow控制器向OpenFlow交换机发送调度器能力查询消息,以获取OpenFlow交换机的调度器支持能力,由此解决了相关技术中由于OpenFlow控制器预先缺乏对于OpenFlow交换机调度器支持能力的了解而导致操作失败的问题,进而实现了OpenFlow控制器预先获取OpenFlow交换机的调度器支持能力,从而有效地避免了OpenFlow控制器对OpenFlow交换机进行控制操作失败的情况发生。

附图说明

[0033] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0034] 图1是根据相关技术的OpenFlow网络组件架构的示意图;
[0035] 图2是根据相关技术的OpenFlow交换机规范1.3.2版本中OpenFlow交换机实现队列调度功能的报文处理流程的示意图;
[0036] 图3是根据相关技术的OpenFlow流表格式的示意图;
[0037] 图4是根据相关技术的在引入调度器后OpenFlow交换机实现队列调度功能的报文处理流程的示意图;
[0038] 图5是根据相关技术的容纳调度器的OpenFlow调度器表格式的示意图;
[0039] 图6是根据本发明实施例的调度器支持能力的查询方法的流程图;
[0040] 图7是根据本发明优选实施例的OpenFlow交换机调度器支持能力的查询方法的示意图;
[0041] 图8是根据本发明实施例的调度器支持能力的通知方法的流程图;
[0042] 图9是根据本发明优选实施例的OpenFlow交换机调度器支持能力的通知方法的示意图;
[0043] 图10是根据本发明实施例的调度器支持能力的查询装置的结构框图;
[0044] 图11是根据本发明优选实施例的调度器支持能力的查询装置的结构框图;
[0045] 图12是根据本发明实施例的调度器支持能力的通知装置的结构框图;
[0046] 图13是根据本发明优选实施例的调度器支持能力的通知装置的结构框图。

具体实施方式

[0047] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0048] 图6是根据本发明实施例的调度器支持能力的查询方法的流程图。如图6所示,该方法可以包括以下处理步骤:
[0049] 步骤S602:OpenFlow控制器向OpenFlow交换机发送调度器能力查询消息,其中,调度器能力查询消息用于获取OpenFlow交换机的调度器支持能力;
[0050] 步骤S604:OpenFlow控制器接收来自于OpenFlow交换机的调度器能力查询响应消息,并根据调度器能力查询响应消息获取调度器支持能力。
[0051] 相关技术中,由于OpenFlow控制器预先缺乏对于OpenFlow交换机调度器支持能力的了解而导致操作失败。采用如图6所示的方法,OpenFlow控制器向OpenFlow交换机发送调度器能力查询消息,其中,调度器能力查询消息用于获取OpenFlow交换机的调度器支持能力;OpenFlow控制器接收来自于OpenFlow交换机的调度器能力查询响应消息,并根据调度器能力查询响应消息获取调度器支持能力,由此使得OpenFlow控制器能够在对OpenFlow交换机进行控制操作之前即可获知OpenFlow交换机的调度器支持能力,以克服相关技术中出现的由于OpenFlow控制器预先缺乏对于OpenFlow交换机调度器支持能力的了解从而导致操作失败的缺陷,进而有效地避免了OpenFlow控制器对OpenFlow交换机进行控制操作失败的情况发生。
[0052] 优选地,在步骤S602中,OpenFlow控制器向OpenFlow交换机发送调度器能力查询消息可以包括以下操作:
[0053] 步骤S1:OpenFlow控制器判断在OpenFlow控制器与OpenFlow交换机之间的OpenFlow通道是否建立成功;
[0054] 步骤S2:如果是,则立即发送调度器能力查询消息。
[0055] 在优选实施例中,当OpenFlow控制器与OpenFlow交换机之间的OpenFlow通道建立成功之后,OpenFlow控制器立即向OpenFlow交换机发送调度器能力查询消息,以查询OpenFlow交换机的调度器支持能力。即为了确保OpenFlow控制器在对OpenFlow交换机进行调度器操作之前就能够预先获知OpenFlow交换机的调度器支持能力,OpenFlow控制器应在与OpenFlow交换机之间的OpenFlow通道刚刚建立起来的时候就向OpenFlow交换机发送调度器能力查询消息。
[0056] 需要说明的是,OpenFlow控制器发往OpenFlow交换机的调度器能力查询消息是对相关技术中的OpenFlow协议消息的一个扩展,它是一种“从控制器到交换机”(Controller-to-Switch)类型的多部分(Multipart)OpenFlow协议消息,而之所以采用多部分协议消息,是因为调度器能力查询消息用来查询的调度器支持能力会比较多,单个消息体由于字节数的限制无法承载如此多的信息。
[0057] 在优选实施例中,调度器能力查询消息能够查询到的OpenFlow交换机的调度器支持能力可以包括但不限于以下至少之一:
[0058] (1)交换机支持的最大调度器数量;
[0059] (2)交换机支持的最大调度器嵌套层数;
[0060] (3)单个调度器支持的最大队列数量;
[0061] (4)单个调度器支持的调度算法类型;
[0062] (5)单个调度器支持的拥塞策略类型;
[0063] (6)单个调度器支持的最大队列优先级数量。
[0064] 在优选实施例中,当OpenFlow交换机接收到OpenFlow控制器发送的调度器能力查询消息后,将会向OpenFlow控制器回复调度器能力查询响应消息,以反馈当前交换机所支持的调度器能力。与调度器能力查询消息相同,OpenFlow交换机向OpenFlow控制器发送的调度器能力查询响应消息同样也是对相关技术中的OpenFlow协议消息的一个扩展,它也是一种“从控制器到交换机”(Controller-to-Switch)类型的多部分(Multipart)OpenFlow协议消息。
[0065] 优选地,在步骤S604,OpenFlow控制器根据调度器能力查询响应消息获取调度器支持能力之后,还可以包括以下步骤:
[0066] 步骤S3:OpenFlow控制器接收来自于网络应用程序的调用请求;
[0067] 步骤S4:OpenFlow控制器在调度器支持能力能够满足调用请求的情况下,接受调用请求并向网络应用程序反馈调用成功响应,或者,在调度器支持能力未能满足调用请求的情况下,拒绝调用请求并向网络应用程序反馈调用失败原因。
[0068] 作为本发明的一个优选实施例,图7是根据本发明优选实施例的OpenFlow交换机调度器支持能力的查询方法的示意图。如图7所示,OpenFlow控制器可以通过扩展的OpenFlow协议向OpenFlow交换机查询调度器支持能力。在该优选实施例中,当OpenFlow控制器与OpenFlow交换机之间的OpenFlow通道建立成功之后,OpenFlow控制器立即向OpenFlow交换机发送调度器能力查询消息,查询OpenFlow交换机的调度器支持能力。OpenFlow交换机在接收到OpenFlow控制器发送的调度器能力查询消息后,向OpenFlow控制器回复调度器能力查询响应消息,以反馈当前交换机支持的调度器能力。网络应用程序通过API接口调用OpenFlow控制器对网络进行操作,OpenFlow控制器根据网络中OpenFlow交换机的调度器支持能力来判断能否满足网络应用程序的调用请求并对网络应用程序进行反馈。
[0069] 在该优选实施例中,如果OpenFlow交换机的调度器支持能力可以满足网络应用程序的调用请求,则OpenFlow控制器会接受网络应用程序的调用并反馈调用成功响应;如果OpenFlow交换机的调度器支持能力无法满足网络应用程序的调用请求,则OpenFlow控制器会拒绝网络应用程序的调用并反馈拒绝原因。
[0070] 需要说明的是,在该优选实施例中,OpenFlow控制器是以主动(proactive)的方式向OpenFlow交换机查询调度器支持能力,也即在OpenFlow通道建立成功之后发送调度器能力查询消息是自动触发的,不需要网络操作员的人工干预。
[0071] 图8是根据本发明实施例的调度器支持能力的通知方法的流程图。如图8所示,该方法可以包括以下处理步骤:
[0072] 步骤S802:OpenFlow配置点被触发获取OpenFlow交换机的调度器支持能力;
[0073] 步骤S804:OpenFlow配置点将获取到的调度器支持能力通知给OpenFlow控制器。
[0074] 采用如图8所示的方法,解决了相关技术中由于OpenFlow控制器预先缺乏对于OpenFlow交换机调度器支持能力的了解而导致操作失败的问题,进而实现了OpenFlow控制器预先获取OpenFlow交换机的调度器支持能力,从而有效地避免了OpenFlow控制器对OpenFlow交换机进行控制操作失败的情况发生。
[0075] 优选地,在步骤S802中,OpenFlow配置点被触发获取调度器支持能力可以包括以下操作:
[0076] 步骤S1:OpenFlow配置点被触发向OpenFlow交换机发送调度器能力查询消息,其中,调度器能力查询消息用于获取OpenFlow交换机的调度器支持能力;
[0077] 步骤S2:OpenFlow配置点接收来自于OpenFlow交换机的调度器能力查询响应消息,并根据调度器能力查询响应消息获取调度器支持能力。
[0078] 在优选实施例中,当OpenFlow配置点与OpenFlow交换机之间的OF-Config通道建立成功后,在网络操作员的触发下,OpenFlow配置点向OpenFlow交换机发送调度器能力查询消息,查询OpenFlow交换机的调度器支持能力。根据OF-Config协议1.1.1版本的规定,OpenFlow配置点需要在OpenFlow控制器与OpenFlow交换机建立OpenFlow通道之前对OpenFlow交换机进行配置,上述配置通常是由网络操作员来完成的。因此,网络操作员在利用OpenFlow配置点对OpenFlow交换机进行配置时即可触发对OpenFlow交换机调度器支持能力的查询,由此可以确保OpenFlow配置点和网络操作员在OpenFlow控制器对OpenFlow交换机进行调度器操作之前就预先获知OpenFlow交换机的调度器支持能力。
[0079] 需要说明的是,OpenFlow配置点发往OpenFlow交换机的调度器能力查询消息是对相关技术中的OF-Config协议消息的一个扩展,其所查询的OpenFlow交换机的调度器支持能力可以包括但不限于以下至少之一:
[0080] (1)交换机支持的最大调度器数量;
[0081] (2)交换机支持的最大调度器嵌套层数;
[0082] (3)单个调度器支持的最大队列数量;
[0083] (4)单个调度器支持的调度算法类型;
[0084] (5)单个调度器支持的拥塞策略类型;
[0085] (6)单个调度器支持的最大队列优先级数量。
[0086] OpenFlow交换机在接收到OpenFlow配置点发送的调度器能力查询消息后,便会向OpenFlow配置点回复调度器能力查询响应消息,以反馈当前交换机所支持的调度器能力。
[0087] 在优选实施例中,与调度器能力查询消息相同,OpenFlow交换机向OpenFlow配置点发送的调度器能力查询响应消息同样也是对相关技术中的OF-Config协议消息的一个扩展。
[0088] 在优选实施例中,OpenFlow配置点或者网络操作员可以将获知的OpenFlow交换机调度器支持能力告知OpenFlow控制器。如果OpenFlow配置点与OpenFlow控制器之间存在接口,则OpenFlow配置点在接收到OpenFlow交换机回复的调度器能力查询响应消息后,立即通过该接口将获知的OpenFlow交换机调度器支持能力告知OpenFlow控制器;如果OpenFlow配置点与OpenFlow控制器之间不存在接口,则由网络操作员将通过OpenFlow配置点获知的OpenFlow交换机调度器支持能力输入到OpenFlow控制器。
[0089] 优选地,在步骤S804,OpenFlow配置点将调度器支持能力通知给OpenFlow控制器之后,还可以包括以下步骤:
[0090] 步骤S3:OpenFlow控制器接收来自于网络应用程序的调用请求;
[0091] 步骤S4:OpenFlow控制器在调度器支持能力能够满足调用请求的情况下,接受调用请求并向网络应用程序反馈调用成功响应,或者,在调度器支持能力未能满足调用请求的情况下,拒绝调用请求并向网络应用程序反馈调用失败原因。
[0092] 图9是根据本发明优选实施例的OpenFlow交换机调度器支持能力的通知方法的示意图。如图9所示,OpenFlow配置点通过扩展的OF-Config协议向OpenFlow交换机查询调度器支持能力,然后再将获知的OpenFlow交换机调度器支持能力告知OpenFlow控制器。在该优选实施例中,在网络操作员的触发下,OpenFlow配置点向OpenFlow交换机发送调度器能力查询消息,查询OpenFlow交换机的调度器支持能力。OpenFlow交换机在接收到OpenFlow配置点发送的调度器能力查询消息后,向OpenFlow配置点回复调度器能力查询响应消息,以反馈当前交换机支持的调度器能力。OpenFlow配置点或者网络操作员会将获知的OpenFlow交换机调度器支持能力告知OpenFlow控制器。如果OpenFlow配置点与OpenFlow控制器之间存在接口,则OpenFlow配置点在接收到OpenFlow交换机回复的调度器能力查询响应消息后,立即通过该接口将获知的OpenFlow交换机调度器支持能力告知OpenFlow控制器,其是自动触发的,不需要网络操作员的人工干预;但是,如果OpenFlow配置点与OpenFlow控制器之间不存在接口,则需要由网络操作员将通过OpenFlow配置点获知的OpenFlow交换机调度器支持能力输入到OpenFlow控制器。网络应用程序通过API接口调用OpenFlow控制器对网络进行操作,OpenFlow控制器根据网络中OpenFlow交换机的调度器支持能力来判断能否满足网络应用程序的调用请求并对网络应用程序进行反馈。
[0093] 如果OpenFlow交换机的调度器支持能力可以满足网络应用程序的调用请求,则OpenFlow控制器会接受网络应用程序的调用并反馈调用成功响应;如果OpenFlow交换机的调度器支持能力无法满足网络应用程序的调用请求,则OpenFlow控制器会拒绝网络应用程序的调用并反馈拒绝原因。
[0094] 需要说明的是,上述OpenFlow配置点是以按需(on-demand)的方式向OpenFlow交换机查询调度器支持能力,也即发送调度器能力查询消息不是自动触发的,而是需要网络操作员的人工触发。
[0095] 图10是根据本发明实施例的调度器支持能力的查询装置的结构框图。如图10所示,该调度器支持能力的查询装置可以包括:发送模块10,用于向OpenFlow交换机发送调度器能力查询消息,其中,调度器能力查询消息用于获取OpenFlow交换机的调度器支持能力;第一接收模块20,用于接收来自于OpenFlow交换机的调度器能力查询响应消息,并根据调度器能力查询响应消息获取调度器支持能力。
[0096] 采用如图10所示的装置,解决了相关技术中由于OpenFlow控制器预先缺乏对于OpenFlow交换机调度器支持能力的了解而导致操作失败的问题,进而实现了OpenFlow控制器预先获取OpenFlow交换机的调度器支持能力,从而有效地避免了OpenFlow控制器对OpenFlow交换机进行控制操作失败的情况发生。
[0097] 优选地,如图11所示,发送模块10可以包括:判断单元100,用于判断在OpenFlow控制器与OpenFlow交换机之间的OpenFlow通道是否建立成功;发送单元102,用于在判断单元输出为是时,发送调度器能力查询消息。
[0098] 优选地,如图11所示,上述装置还可以包括:第二接收模块30,用于接收来自于网络应用程序的调用请求;处理模块40,用于在调度器支持能力能够满足调用请求的情况下,接受调用请求并向网络应用程序反馈调用成功响应,或者,在调度器支持能力未能满足调用请求的情况下,拒绝调用请求并向网络应用程序反馈调用失败原因。
[0099] 图12是根据本发明实施例的调度器支持能力的通知装置的结构框图。如图12所示,该调度器支持能力的通知装置可以包括:获取模块50,用于被触发获取OpenFlow交换机的调度器支持能力;通知模块60,用于将获取到的调度器支持能力通知给OpenFlow控制器。
[0100] 采用如图12所示的装置,解决了相关技术中由于OpenFlow控制器预先缺乏对于OpenFlow交换机调度器支持能力的了解而导致操作失败的问题,进而实现了OpenFlow控制器预先获取OpenFlow交换机的调度器支持能力,从而有效地避免了OpenFlow控制器对OpenFlow交换机进行控制操作失败的情况发生。
[0101] 优选地,如图13所示,获取模块50可以包括:发送单元500,用于被触发向OpenFlow交换机发送调度器能力查询消息,其中,调度器能力查询消息用于获取OpenFlow交换机的调度器支持能力;获取单元502,用于接收来自于OpenFlow交换机的调度器能力查询响应消息,并根据调度器能力查询响应消息获取调度器支持能力。
[0102] 优选地,如图13所示,上述装置还可以包括:确定模块70,用于确定在OpenFlow配置点与OpenFlow交换机之间的OpenFlow管理和配置通道已经建立成功且在OpenFlow控制器与OpenFlow交换机之间的OpenFlow通道尚未建立。
[0103] 从以上的描述中,可以看出,上述实施例实现了如下技术效果(需要说明的是这些效果是某些优选实施例可以达到的效果):采用本发明实施例所提供的技术方案能够解决相关技术中由于OpenFlow控制器预先缺乏对于OpenFlow交换机调度器支持能力的了解而导致操作失败的问题,进而实现了OpenFlow控制器预先获取OpenFlow交换机的调度器支持能力,从而有效地避免了OpenFlow控制器对OpenFlow交换机进行控制操作失败的情况发生。
[0104] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0105] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。