流表处理方法、装置、开放流控制器及开放流交换机的制作方法
【技术领域】
[0001] 本发明涉及通信领域,具体而言,涉及一种流表处理方法、装置、开放流控制器及 开放流交换机。
【背景技术】
[0002] 随着软件定义网络(Software Defined ^twork,简称为SDN)概念的提出及其应 用的发展,作为SDN核必技术的化enFlow技术正处于快速发展阶段,目前利用化enFlow 技术建设的化enFlow网络已经越来越多地应用于实际的生产生活中。化enFlow网络采用 控制平面与转发平面(也被称为数据平面或用户平面)相分离的架构,图1是根据相关技 术的化enFlow网络组件架构示意图,如图1所示,化enFlow网络的控制平面由化enFlow 控制器来实现,化enFlow控制器是一种具备强大计算能力的设备,具体的设备形态可W是 个人电脑、服务器或服务器集群等,化enFlow网络的转发平面由化enFlow交换机来实现, 化enFlow交换机是一种具备强大交换能力的设备,具体的设备形态是配备多个网络端口、 基于流表(Flow T油le)进行报文处理与转发的网元设备。化enFlow控制器与化enFlow 交换机之间的接口运行化enFlow协议,所W该接口也被称为化enFlow通道的penFlow Ch曰nnel)〇
[0003] OpenFlow协议由国际标准组织开放网络基金会(Open化tworking Foundation, 简称为ON巧负责制定和修改,当前的化enFlow协议定义了多种消息用于控制器和转发 switch之间的信息传递,包括;Controller-to-Switch Messages (控制器到交换机之间的 消息),Async虹onous Messages (异步消息)和 Symmetric Messages (对称消息)Η大 类。Controller-to-Switch Messages用于控制器管理和查看交换机的状态,一般由控制 器发起,交换机对发起的查询消息进行响应。异步消息一般由交换机发起,向控制器通告自 己运行的状态、统计信息和事件。Symmetric Messages可W由控制器发起,也可W由交换 机发起,如hello消息,Echo保活消息等。在Controller-to-Switch Messages类型的消 息中,有一种〇FPMP_TABLEJEATURES的消息类型,控制器可W查询和配置交换机上的流表 操作的能力,如能够匹配哪些字段,可W执行哪些动作等等,但是送些属性和流表特征描述 不能用于创建表项的参考,即送些表项适合于郝些算法和结构创建,所W现有的交换机的 化enFlow协议的流表都是采用TCAM数据结构构建,送种构建方式的成本高,不经济。
[0004] 因此,在相关技术中,构建流表存在成本高,效率低的问题。
【发明内容】
[0005] 本发明提供了一种流表处理方法、装置、开放流控制器及开放流交换机,W至少解 决相关技术中,构建流表存在成本高,效率低的问题。
[0006] 根据本发明的一个方面,提供了一种流表处理方法,包括;扩展向开放流 化enFlow交换机发送的流表特征消息,其中,所述流表特征消息中包括有用于指示流表创 建结构的流表匹配信息;将所述流表特征消息发送给所述化enFlow交换机。
[0007] 优选地,扩展向开放流化enFlow交换机发送的流表特征消息包括w下至少之一: 扩展用于指示流表创建结构的流表匹配信息为用hash表实现流表的创建结构;扩展用于 指示流表创建结构的流表匹配信息为用路由表实现流表的创建结构。
[0008] 根据本发明的另一方面,提供了一种流表处理方法,包括;接收开放流化enFlow 控制器发送的流表特征消息,其中,所述流表特征消息中包括有用于指示流表创建结构的 流表匹配信息;依据所述流表匹配信息指示的流表创建结构创建流表。
[0009] 优选地,依据所述流表匹配信息指示的流表创建结构创建流表包括W下至少 之一;在所述流表匹配信息为用于表征掩码固定的标记〇FPTFMF_MASK_FIX置位,并且 OFPTFPT_WILDCA畑S属性的0XM队列为空的情况下,采用hash表创建所述流表;在所述流 表匹配信息为用于表征掩码同路由表的〇FPTFMF_MASK_ROUTE置位的情况下,采用路由表 创建所述流表。
[0010] 根据本发明的还一方面,提供了一种流表处理装置,包括:扩展模块,用于扩展向 开放流化enFlow交换机发送的流表特征消息,其中,所述流表特征消息中包括有用于指示 流表创建结构的流表匹配信息;发送模块,用于将所述流表特征消息发送给所述化enFlow 交换机。
[0011] 优选地,所述扩展模块包括W下至少之一;第一扩展单元,用于扩展用于指示流表 创建结构的流表匹配信息为用hash表实现流表的创建结构;第二扩展单元,用于扩展用于 指示流表创建结构的流表匹配信息为用路由表实现流表的创建结构。
[0012] 根据本发明的还一方面,提供了一种开放流化enFlow控制器,包括上述任一项所 述的装置。
[0013] 根据本发明的还一方面,提供了一种流表处理装置,包括:接收模块,用于接收开 放流化enFlow控制器发送的流表特征消息,其中,所述流表特征消息中包括有用于指示流 表创建结构的流表匹配信息;创建模块,用于依据所述流表匹配信息指示的流表创建结构 创建流表。
[0014] 优选地,所述创建模块包括W下至少之一;第一创建单元,用于在所述流表匹配信 息为用于表征掩码固定的标记〇FPTFMF_MASK_FIX置位,并且0FPTFPT_WILDCA畑S属性的 0XM队列为空的情况下,采用hash表创建所述流表;第二创建单元,用于在所述流表匹配信 息为用于表征掩码同路由表的0FPTFMF_MSK_R0UTE置位的情况下,采用路由表创建所述 流表。
[0015] 根据本发明的再一方面,提供了一种开放流化enFlow交换机,包括上述任一项所 述的装置。
[0016] 通过本发明,采用扩展向开放流化enFlow交换机发送的流表特征消息,其中,所 述流表特征消息中包括有用于指示流表创建结构的流表匹配信息;将所述流表特征消息发 送给所述化enFlow交换机,解决了相关技术中,构建流表存在成本高,效率低的问题,进而 达到了节省成本,提高流表构建效率的效果。
【附图说明】
[0017] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0018] 图1是根据相关技术的化enFlow网络组件架构示意图;
[0019] 图2是根据本发明实施例的流表处理方法一的流程图;
[0020] 图3是根据本发明实施例的流表处理方法二的流程图;
[0021] 图4是根据本发明实施例的流表处理装置一的结构框图;
[0022] 图5是根据本发明实施例的流表处理装置一中扩展模块42的优选结构框图;
[0023] 图6是根据本发明实施例的开放流化enFlow控制器的结构框图;
[0024] 图7是根据本发明实施例的流表处理装置二的结构框图;
[0025] 图8是根据本发明实施例的流表处理装置二中创建模块74的优选结构框图;
[0026] 图9是根据本发明实施例的开放流化enFlow交换机的结构框图;
[0027] 图10是根据本发明优选实施方式一的路由表存储方式的流表创建流程图;
[002引图11是根据本发明优选实施方式的化enFlow交换机在收到了控制器发送的流配 置消息后的处理流程图。
【具体实施方式】
[0029] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的 情况下,本申请中的实施例及实施例中的特征可W相互组合。
[0030] 在本实施例中提供了一种流表处理方法,图2是根据本发明实施例的流表处理方 法一的流程图,如图2所示,该流程包括如下步骤:
[0031] 步骤S202,扩展向开放流化enFlow交换机发送的流表特征消息,其中,流表特征 消息中包括有用于指示流表创建结构的流表匹配信息;
[0032] 步骤S204,将流表特征消息发送给化enFlow交换机。
[0033] 通过上述步骤,通过扩展流表特征消息中携带用于指示流表创建结构的流表匹配 信息,送样化enFlow交换机可W依据流表匹配信息灵活地配置流表结构,相对于相关技术
中采用固定的流表匹配信息进行创建流表,不仅成本高,而且效率低,采用上述方式,不仅 解决了相关技术中,构建流表存在成本高,效率低的问题,进而达到了节省成本,提高流表 构建效率的效果。
[0034] 优选地,扩展向开放流化enFlow交换机发送的流表特征消息可W采用多种方式, 例如,可W采用W下至少之一;扩展用于指示流表创建结构的流表匹配信息为用hash表实 现流表的创建结构;扩展用于指示流表创建结构的流表匹配信息为用路由表实现流表的创 建结构。
[0035] 图3是根据本发明实施例的流表处理方法二的流程图,如图3所示,该流程包括如 下步骤:
[003引步骤S302,接收开放流化enFlow控制器发送的流表特征消息,其中,流表特征消 息中包括有用于指示流表创建结构的流表匹配信息;
[0037] 步骤S304,依据流表匹配信息指示的流表创建结构创建流表。
[0038] 通过上述步骤,通过接收化enFlow控制器发送的携带用于指示流表创建结构的 流表匹配信息,送样可W依据流表匹配信息灵活地配置流表结构,相对于相关技术中采用 固定的流表匹配信息进行创建流表,不仅成本高,而且效率低,采用上述方式,不仅解决了 相关技术中,构建流表存在成本高,效率低的问题,进而达到了节省成本,提高流表构建效 率的效果。
[0039] 优选地,依据流表匹配信息指示的流表创建结构创建流表可W包括多种,下面举 例说明:例如,在流表匹配信息为用于表征掩码固定的标记〇FPTFMF_MASK_FIX置位,并且 OFPTFPT_WILDCA畑S属性的0XM队列为空的情况下,采用hash表创建流表;又例如,在流 表匹配信息为用于表征掩码同路由表的〇FPTFMF_MASK_ROUTE置位的情况下,采用路由表 创建流表。
[0040] 在本实施例中还提供了一种流表处理装置,该装置用于实现上述实施例及优选实 施方式,已经进行过说明的不再赏述。如W下所使用的,术语"模块"可W实现预定功能的 软件和/或硬件的组合。尽管W下实施例所描述的装置较佳地W软件来实现,但是硬件,或 者软件和硬件的组合的实现也是可能并被构想的。
[0041] 图4是根据本发明实施例的流表处理装置一的结构框图,如图4所示,该装置包括 扩展模块42和发送模块44,下面对该装置进行说明。
[0042] 扩展模块42,用于扩展向开放流化enFlow交换机发送的流表特征消息,其中,流 表特征消息中包括有用于指示流表创建结构的流表匹配信息;发送模块44,连接至上述扩 展模块42,用于将流表特征消息发送给化enFlow交换机。
[0043] 图5是根据本发明实施例的流表处理装置一中扩展模块42的优选结构框图,如图 5所示,该扩展模块42包括W下至少之一;第一扩展单元52、第二扩展单元54,下面对该扩 展模块42进行说明。
[0044] 第一扩展单元52,用于扩展用于指示流表创建结构的流表匹配信息为用hash表 实现流表的创建结构;第二扩展单元54,用于扩展用于指示流表创建结构的流表匹配信息 为用路由表实现流表的创建结构。
[0045] 图6是根据本发明实施例的开放流化enFlow控制器的结构框图,如图6所示,该 化enFlow控制器60包括上述任一项的流表处理装置一 62。
[0046] 图7是根据本发明实施例的流表处理装置二的结构框图,如图7所示,该装置包括 接收模块72和创建模块74,下面对该装置进行说明。
[0047] 接收模块72,用于接收开放流化enFlow控制器发送的流表特征消息,其中,流表 特征消息中包括有用于指示流表创建结构的流表匹配信息;创建模块74,连接至上述接收 模块72,用于依据流表匹配信息指示的流表创建结构创建流表。
[0048] 图8是根据本发明实施例的流表处理装置二中创建模块74的优选结构框图,如图 8所示,该创建模块74包括W下至少之一;第一创建单元82、第二创建单元84,下面对该创 建模块74进行说明。
[0049] 第一创建单元82,用于在流表匹配信息为用于表征掩码固定的标记0FPTFMF_ MSK_FIX置位,并且0FPTFPT_WILDCA畑S属性的0XM队列为空的情况下,采用hash表创建 流表;第二创建单元84,用于在流表匹配信息为用于表征掩码同路由表的0FPTFMF_MASK_ ROUTE置位的情况下,采用路由表创建流表。
[0050] 图9是根据本发明实施例的开放流化enFlow交换机的结构框图,如图9所示,该 化enFlow交换机90包括上述任一项的流表处理装置二92。
[0051] 针对相关技术中,构建流表存在成本高,效率低的问题。分析造成上述问题的原 因;在某些情况下,比如,对于匹配域的掩码信息都为固定长度或者掩码信息呈现为路由 表格式时,可W采用更加简单便捷便宜的算法构建流表,而不需要采用TCAM方式。因此在 fea化re t油le中携带有流表的匹配域字段的掩码信息是非常必要的,送样可W根据流表 匹配信息灵活的配置流表的结构,节省成本并提高流表的效率。鉴于此,为提高流表配置的 效率,节省成本,在本实施例中,提供了一种流表存储方式能力通告的方案。
[0052] 该方案包括如下处理;扩展现有的化enFlow协议中的t油le feature (流表特 征)携带流表匹配的掩码信息字段,该字段用于指示流表的创建结构。化enFlow交换机在 创建流表的时候,根据携带的流表匹配信息选择适合的数据结构存储流表条目,比如table fea化re中携带标记OFPTFMF_MASK_FIX置位,并且OFPTFPT_WILDCA畑S属性的0XM队列为 空,则化enFlow交换机在创建流表的时候可W采用hash的方式构建,既可W保证流表查找 的效率,又可W降低设备的成本。而当t油le feaUire中携带的0FPTFMF_MASK_R0UTE置位 时,化enFlow交换机在创建流表的时候可W采用路由表的方式构建。
[0053] 下面对本发明优选实施方式进行说明。
[0054] 首先,扩展现有的化enFlow协议中的t油le feature (流表特征)携带流表匹配 的信息字段的具体定义。在现有的化enFlow协议的0巧_teble_fe£Tture中增加一个变量 match_filetflag用于携带本发明提出的流表匹配的信息。扩展后的〇巧_1:油le_fe£Tture 的定义如下,斜体部分为新增的变量定义:
[00 巧]
[0057] 其中对于match_field_flag的各个位具体取值定义如下:
[0058] enum ofp_t3ble_fe曰ture_m曰tch_fl曰邑S{
[0059] OFPTFMF_MASK_FU = 1<<0,
[0060] 0FPTFMF_MASK_R0UTE = 1?1,
[0061] };
[0062] OFPTFMF_MASK_FIX--表示 0FPTFPT_MATCH 的 OXM 队列中,有 has_mask 的 oxm,其 掩码是固定的,若此时〇FPTFPT_WILDCARDS属性的OXM队列为空,即可W用hash表实现该 流表。
[0063] 0FPTFMF_MASK_R0UTE--表示 0FPTFPT_MATCH 的 0XM 队列中,有 has_mask 的 oxm, 其掩码特性同路由表,此时可W用路由表的算法实现该流表。
[0064] 当前对于match_field_flag的取值仅定义W上的两位,后续根据需要可W进行扩 展,最多可W有32个标志位。
[0065] 优选实施方式一
[0066] 在本优选实施方式中,阐述了化enFlow交换机对于本申请提出的0FPTFMF_MASK_ ROUTE标记通报某流表,化enFlow交换机根据送一信息并结合t油le fea化re其他字段创 建路由表,图10是根据本发明优选实施方式一的路由表存储方式的流表创建流程图,如图 10所示,该流程包括如下步骤:
[0067] 步骤S1002,化enFlow交换机接收到控制器发送的t油le feerture request设置 请求;
[0068] 步骤S1004, OpenFlow交换机检查request中的0FPTFPT_WILDCA畑S属性是否为 空,是则继续步骤S1006,,否则转步骤S1012,;
[0069] 步骤 S1006, OpenFlow 交换机检查 request 中的 0FPTFPT_MATCH 属性的 OXMheader
是否有非IP类型的字段,并且有has_mask设置,即化enFlow交换机检查request中的 0FPTFPT_MATCH属性,其中所有0XM header的has_mask标记都为化1 se,除了一个0XM header。并且该0XM对应源IP地址,或者目的IP地址。是则继续步骤S1008,否则转步骤 S1012 ;
[0070] 步骤 S1008, OpenFlow 交换机检查 request 中是否设置了 0FPTFMF_MASK_R0UTE 标 记,是则继续步骤S1010,否则转步骤S1012 ;
[0071] 步骤S1010,化enFlow交换机调用相应资源完成路由表的创建;
[0072] 步骤S1012,化enFlow交换机按照现有的TCAM方式创建流表。
[0073] 优选实施方式二
[0074] 在本优选实施方式中,阐述了化enFlow交换机在收到了控制器发送的流配置消 息(Flow mod)后的处理流程。图11是根据本发明优选实施方式的化enFlow交换机在收 到了控制器发送的流配置消息后的处理流程图,如图11所示,该流程包括如下步骤:
[00巧]步骤S1102,化enFlow交换机接收到控制器发送的flow mod (流表模式)添加请 求;
[0076] 步骤S1104,化enFlow交换机根据flow mod(流表模式)消息中的t油le id(流 表标识)找到对应的table feature (流表特征),确定其为路由表;
[0077] 步骤S1106, OpenFlow交换机检查flow mod中的匹配域及动作(action)与 t油lefeature (流表特征)是否一致,如果匹配域及action操作是一致,则进行步骤 S1108,否则转到步骤S1110进行报错处理;
[007引步骤S1108,化enFlow交换机解析flow mod消息为路由条目信息,插入路由表;
[0079] 步骤S1110, OpenFlow交换机向控制器发送错误error消息,error类型为0FPET_ BAD_MATCH。在本优选实施方式中,还需要扩展现有的ofp_bad_match_code的值,扩展了Η 个因为匹配不一致导致的错误,具体的扩展定义如下,其中斜体部分为新定义的错误code。
[0080] enum ofp_bad_match_code{
[0081] 0FPBMC_BAD_TYPE = 0,
[0082] 0FPBMC_BAD_LEN = 1,
[0083] 0FPBMC_BAD_TAG = 2,
[0084] 0FPBMC_BAD_DL_ADDR_MASK = 3,
[00 巧]0FPBMC_BAD_NW_ADDR_MASK = 4,
[0086] 0FPBMC_BAD_WILDCA畑S = 5,
[0087] 0FPBMC_BAD_FIELD = 6,
[0088] 0FPBMC_BAD_VALUE = 7,
[0089] 0FPBMC_BAD_MASK = 8,
[0090] 0FPBMC_BAD_PREREQ = 9,
[0091] 0FPBMC_DUP_FIELD = 10,
[0092] 0FPBMC_EWRM = 11,
[0093] OFPBAC_BAD_FIELD_MASK_FIX = 12, /*t油le fea化re 中 0FPTFMF_MASK_FIX 标志 位与当前flow entry不一重义*/
[0094] 0FPBAC_BAD_FKLD_MASK_R0UTE = 13, /*t油le fea化re 中 0FPTFMF_MASK_R0UTE 标记位与当前flow ent巧不一致*/
[0095] }
[0096] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可W用通用 的计算装置来实现,它们可W集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可W用计算装置可执行的程序代码来实现,从而,可W将它们存储 在存储装置中由计算装置来执行,并且在某些情况下,可W W不同于此处的顺序执行所示 出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或 步骤制作成单个集成电路模块来实现。送样,本发明不限制于任何特定的硬件和软件结合。
[0097] W上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可W有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种流表处理方法,其特征在于,包括: 扩展向开放流OpenFlow交换机发送的流表特征消息,其中,所述流表特征消息中包括 有用于指示流表创建结构的流表匹配信息; 将所述流表特征消息发送给所述OpenFlow交换机。2. 根据权利要求1所述的方法,其特征在于,扩展向开放流OpenFlow交换机发送的流 表特征消息包括以下至少之一: 扩展用于指示流表创建结构的流表匹配信息为用hash表实现流表的创建结构; 扩展用于指示流表创建结构的流表匹配信息为用路由表实现流表的创建结构。3. -种流表处理方法,其特征在于,包括: 接收开放流OpenFlow控制器发送的流表特征消息,其中,所述流表特征消息中包括有 用于指示流表创建结构的流表匹配信息; 依据所述流表匹配信息指示的流表创建结构创建流表。4. 根据权利要求3所述的方法,其特征在于,依据所述流表匹配信息指示的流表创建 结构创建流表包括以下至少之一: 在所述流表匹配信息为用于表征掩码固定的标记〇FPTFMF_MASK_FIX置位,并且OFPTFPT_WILDCARDS属性的0XM队列为空的情况下,采用hash表创建所述流表; 在所述流表匹配信息为用于表征掩码同路由表的0FPTFMF_MASK_R0UTE置位的情况 下,采用路由表创建所述流表。5. -种流表处理装置,其特征在于,包括: 扩展模块,用于扩展向开放流OpenFlow交换机发送的流表特征消息,其中,所述流表 特征消息中包括有用于指示流表创建结构的流表匹配信息; 发送模块,用于将所述流表特征消息发送给所述OpenFlow交换机。6. 根据权利要求5所述的装置,其特征在于,所述扩展模块包括以下至少之一: 第一扩展单元,用于扩展用于指示流表创建结构的流表匹配信息为用hash表实现流 表的创建结构; 第二扩展单元,用于扩展用于指示流表创建结构的流表匹配信息为用路由表实现流表 的创建结构。7. -种开放流OpenFlow控制器,其特征在于,包括权利要求5至6中任一项所述的装 置。8. -种流表处理装置,其特征在于,包括: 接收模块,用于接收开放流OpenFlow控制器发送的流表特征消息,其中,所述流表特 征消息中包括有用于指示流表创建结构的流表匹配信息; 创建模块,用于依据所述流表匹配信息指示的流表创建结构创建流表。9. 根据权利要求8所述的装置,其特征在于,所述创建模块包括以下至少之一: 第一创建单元,用于在所述流表匹配信息为用于表征掩码固定的标记〇FPTFMF_MASK_ FIX置位,并且OFPTFPT_WILDCARDS属性的0XM队列为空的情况下,采用hash表创建所述流 表; 第二创建单元,用于在所述流表匹配信息为用于表征掩码同路由表的〇fptfmf_mask_ROUTE置位的情况下,采用路由表创建所述流表。 置。10. -种开放流OpenFlow交换机,其特征在于,包括权利要求8至9中任一项所述的装
【专利摘要】本发明公开了一种流表处理方法、装置、开放流控制器及开放流交换机,其中,该方法包括:扩展向开放流OpenFlow交换机发送的流表特征消息,其中,流表特征消息中包括有用于指示流表创建结构的流表匹配信息;将流表特征消息发送给OpenFlow交换机,通过本发明,解决了相关技术中,构建流表存在成本高,效率低的问题,进而达到了节省成本,提高流表构建效率的效果。
【IPC分类】H04L12/937, H04L12/743, H04L12/751
【公开号】CN105490946
【申请号】CN201410478493
【发明人】胡方伟, 刘奇峰
【申请人】中兴通讯股份有限公司
【公开日】2016年4月13日
【申请日】2014年9月18日
【公告号】WO2015131617A1