一种openflow处理方法、消息处理方法、控制器与交换机技术

技术编号:13864136 阅读:54 留言:0更新日期:2016-10-19 16:51
本发明专利技术实施例公开了一种openflow处理方法,用于在保证兼容性的情况下实现范围的表达。本发明专利技术实施例提供的openflow处理方法中,控制器确定目标匹配域的范围;生成OFPT_FLOW_MOD消息,该OFPT_FLOW_MOD消息的目标flow match field结构体中包括所述目标匹配域的范围;将所述OFPT_FLOW_MOD消息发送给交换机。由于本发明专利技术实施例提供的方法可以仅使用一个flow match field结构体即可表示目标匹配域的范围,而不需要两条flow match field结构体,因此只需要修改目标匹配域对应的flow match field结构体即可实现范围表达,不需要在ofp_match结构体中新增flow match field结构体,没有改动ofp_match结构体的大小,符合Openflow协议的规范,兼容性较好。本发明专利技术实施例还提供了相关的消息处理方法、控制器与交换机。

【技术实现步骤摘要】

本专利技术涉及互联网领域,尤其涉及一种openflow表达方法、消息处理方法、控制器与交换机。
技术介绍
开放流(openflow)技术是斯坦福大学提出的一种南向协议,它借鉴IT业的发展过程,通过控制与转发分离,控制集中软件化和转发硬件平台的通用化来加速网络的变革。OpenFlow技术中的重要设备包括控制器与交换机,其中交换机是核心组件,由OpenFlow协议、安全通道和流表三部分组成;控制器通过安全通道下发流表项到交换机的流表中,交换机按照流表进行匹配(match)等操作。但是传统的openflow协议的匹配域没有对范围表达的支持,当需要完成范围表达时,openflow需要通过精确化来表达,比如用户希望对5000-6000端口进行访问控制,使用ACL来做的话,使用1个流表就能够做到;如果用openflow来做,因为openflow不支持范围的表达,所以只能通过精确表达来配置流表项,需要1000次精确表达,生成1000个流表项。这样就浪费了有限的流表资源。Openflow协议是通过OFPT_FLOW_MOD消息来配置交换机流表的,OFPT_FLOW_MOD消息中包括match结构体(即ofp_match结构体)和action结构体,其中ofp_match结构体用于描述流表的匹配部分。ofp_match结构体包括多个flow match field结构体,为了实现范围的表达,现阶段的技术中一般在ofp_match结构体中增加新的flow match field结构体,并使用匹配域对应的flow match field结构体以及新增的flow match field结构体,来分别表示匹配域的范围的起始值与结束值。但是,Openflow特定协议版本的ofp_match结构体的大小是固定的,现阶段的技术所使用的方法改动了ofp_match结构体的结构,不符合Openflow协议的规范,破坏了控制器和交换机之间的兼容性,无法后向兼容。
技术实现思路
本专利技术实施例提供了一种openflow表达方法,用于在保证兼容性的情况下实现范围的表达。本专利技术实施例的第一方面提供了一种开放流openflow表达方法,包括:确定目标匹配域的范围,所述目标匹配域不支持位掩码bitmask;生成OFPT_FLOW_MOD消息,所述OFPT_FLOW_MOD消息包括ofp_match结构体,所述ofp_match结构体包括与一个或多个匹配域一一对应的一个或多个flow match field结构体,所述一个或多个flow match field结构体中包括与所述目标匹配域对应的目标flow match field结构体,所述目标flow match field结构体中包括所述目标匹配域的范围;将所述OFPT_FLOW_MOD消息发送给交换机。结合本专利技术实施例的第一方面,本专利技术实施例的第一方面的第一种实现方式中,每个所述flow match field结构体中包括头部与身体部,所述头部包括oxm_hasmask字段,当所述oxm_hasmask字段的取值为1时,所述身体部包括oxm_mask字段与oxm_value字段;所述目标flow match field结构体中,oxm_hasmask字段的取值为1,oxm_mask字段表示所述目标匹配域的范围的起始值,oxm_value字段表示所述目标匹配域的范围的结束值;或,所述目标flow match field结构体中,oxm_hasmask字段的取值为1,oxm_mask字段表示所述目标匹配域的范围的结束值,oxm_value字段表示所述目标匹配域的范围的起始值。结合本专利技术实施例的第一方面或第一方面的第一种实现方式,本专利技术实施例的第一方面的第二种实现方式中,所述目标匹配域包括:OXM_OF_TCP_SRC域、OXM_OF_TCP_DST域、OFPXMT_OFB_UDP_SRC域、OFPXMT_OFB_UDP_DST域、OFPXMT_OFB_SCTP_SRC域、或OFPXMT_OFB_SCTP_DST域。本专利技术实施例的第二方面提供了一种开放流openflow表达方法,包括:确定目标匹配域的范围;生成第一OFPT_FLOW_MOD消息,所述第一OFPT_FLOW_MOD消息包括ofp_match结构体,所述ofp_match结构体包括与一个或多个匹配域一一对应的一个或多个flow match field结构体,所述一个或多个flow match field结构体中包括与所述目标匹配域对应的第一目标flow match field结构体,所述第一目标flow match field结构体包括所述目标匹配域的范围的起始值;将所述第一OFPT_FLOW_MOD消息发送给交换机;生成第二OFPT_FLOW_MOD消息,所述第二OFPT_FLOW_MOD消息包括ofp_match结构体,所述ofp_match结构体包括与一个或多个匹配域一一对应的一个或多个flow match field结构体,所述一个或多个flow match field结构体中包括与所述目标匹配域对应的第二目标flow match field结构体,所述第二目标flow match field结构体包括所述目标匹配域的范围的结束值;将所述第二OFPT_FLOW_MOD消息发送给交换机。结合本专利技术实施例的第二方面,本专利技术实施例的第二方面的第一种实现方式中,每个所述flow match field结构体包括头部与身体部,所述头部包括oxm_hasmask字段,当所述oxm_hasmask字段的取值为1时,所述身体部包括oxm_mask字段与oxm_value字段;所述第一目标flow match field结构体中,oxm_hasmask的取值为1,oxm_mask字段的取值为全1,oxm_value字段表示所述目标匹配域的范围的起始值;所述第二目标flow match field中,oxm_hasmask字段的取值为1,oxm_mask字段的取值为全1,oxm_value字段表示所述目标匹配域的范围的结束值。本专利技术实施例的第三方面提供了一种消息处理方法,包括:接收控制器发送的OFPT_FLOW_MOD消息,所述OFPT_FLOW_MOD消息包括ofp_match结构体,所述ofp_match结构体包括与一个或多个匹配域一一对应的一个或多个flow match field结构体,所述一个或多个flow match field结构体中包括与目标匹配域对应的目标flow match field结构体,所述目标flow match field结构体中包括所述目标匹配域的范围,其中,所述目标匹配域不支持位掩码bitmask;根据所述目标flow match field结构体,确定所述目标匹配域的范围。结合本专利技术实施例的第三方面,本专利技术实施例的第三方面的第一种实现方式中,每个所述flow match field结构体中包括头部与身体部,所述头部包括oxm_hasmask字段,所述目标flow match field结构体的oxm_hasmask字段的取值为1,所述目标flow match field结构体的身体部包括oxm_mask字段与本文档来自技高网
...

【技术保护点】
一种开放流openflow表达方法,其特征在于,包括:确定目标匹配域的范围,所述目标匹配域不支持位掩码bitmask;生成OFPT_FLOW_MOD消息,所述OFPT_FLOW_MOD消息包括ofp_match结构体,所述ofp_match结构体包括与一个或多个匹配域一一对应的一个或多个flow match field结构体,所述一个或多个flow match field结构体中包括与所述目标匹配域对应的目标flow match field结构体,所述目标flow match field结构体中包括所述目标匹配域的范围;将所述OFPT_FLOW_MOD消息发送给交换机。

【技术特征摘要】
1.一种开放流openflow表达方法,其特征在于,包括:确定目标匹配域的范围,所述目标匹配域不支持位掩码bitmask;生成OFPT_FLOW_MOD消息,所述OFPT_FLOW_MOD消息包括ofp_match结构体,所述ofp_match结构体包括与一个或多个匹配域一一对应的一个或多个flow match field结构体,所述一个或多个flow match field结构体中包括与所述目标匹配域对应的目标flow match field结构体,所述目标flow match field结构体中包括所述目标匹配域的范围;将所述OFPT_FLOW_MOD消息发送给交换机。2.根据权利要求1所述的openflow表达方法,其特征在于,每个所述flow match field结构体中包括头部与身体部,所述头部包括oxm_hasmask字段,当所述oxm_hasmask字段的取值为1时,所述身体部包括oxm_mask字段与oxm_value字段;所述目标flow match field结构体中,oxm_hasmask字段的取值为1,oxm_mask字段表示所述目标匹配域的范围的起始值,oxm_value字段表示所述目标匹配域的范围的结束值;或,所述目标flow match field结构体中,oxm_hasmask字段的取值为1,oxm_mask字段表示所述目标匹配域的范围的结束值,oxm_value字段表示所述目标匹配域的范围的起始值。3.根据权利要求1或2所述的openflow表达方法,其特征在于,所述目标匹配域包括:OXM_OF_TCP_SRC域、OXM_OF_TCP_DST域、OFPXMT_OFB_UDP_SRC域、OFPXMT_OFB_UDP_DST域、OFPXMT_OFB_SCTP_SRC域、或OFPXMT_OFB_SCTP_DST域。4.一种开放流openflow表达方法,其特征在于,包括:确定目标匹配域的范围;生成第一OFPT_FLOW_MOD消息,所述第一OFPT_FLOW_MOD消息包括ofp_match结构体,所述ofp_match结构体包括与一个或多个匹配域一一对应的一个或多个flow match field结构体,所述一个或多个flow match field结构体中包括与所述目标匹配域对应的第一目标flow match field结构体,所
\t述第一目标flow match field结构体包括所述目标匹配域的范围的起始值;将所述第一OFPT_FLOW_MOD消息发送给交换机;生成第二OFPT_FLOW_MOD消息,所述第二OFPT_FLOW_MOD消息包括ofp_match结构体,所述ofp_match结构体包括与一个或多个匹配域一一对应的一个或多个flow match field结构体,所述一个或多个flow match field结构体中包括与所述目标匹配域对应的第二目标flow match field结构体,所述第二目标flow match field结构体包括所述目标匹配域的范围的结束值;将所述第二OFPT_FLOW_MOD消息发送给交换机。5.根据权利要求4所述的openflow表达方法,其特征在于,每个所述flow match field结构体包括头部与身体部,所述头部包括oxm_hasmask字段,当所述oxm_hasmask字段的取值为1时,所述身体部包括oxm_mask字段与oxm_value字段;所述第一目标flow match field结构体中,oxm_hasmask的取值为1,oxm_mask字段的取值为全1,oxm_value字段表示所述目标匹配域的范围的起始值;所述第二目标flow match field中,oxm_hasmask字段的取值为1,oxm_mask字段的取值为全1,oxm_value字段表示所述目标匹配域的范围的结束值。6.一种消息处理方法,其特征在于,包括:接收控制器发送的OFPT_FLOW_MOD消息,所述OFPT_FLOW_MOD消息包括ofp_match结构体,所述ofp_match结构体包括与一个或多个匹配域一一对应的一个或多个flow match field结构体,所述一个或多个flow match field结构体中包括与目标匹配域对应的目标flow match field结构体,所述目标flow match field结构体中包括所述目标匹配域的范围,其中,所述目标匹配域不支持位掩码bitmask;根据所述目标flow match field结构体,确定所述目标匹配域的范围。7.根据权利要求6所述的消息处理方法,其特征在于,每个所述flow match field结构体中包括头部与身体部,所述头部包括oxm_hasmask字段,所述目标flow match field结构体的oxm_hasmask字段的取值为1,所述目标flow match field结构体的身体部包括oxm_mask字段与oxm_value字段;所述根据所述目标flow match field结构体,确定所述目标匹配域的范围包括:将所述目标flow match field结构体的oxm_mask字段作为所述目标匹配域的范围的起始值,将oxm_value字段作为所述目标匹配域的范围的结束值;或,将所述目标flow match field结构体的oxm_mask字段作为所述目标匹配域的范围的结束值,将oxm_value字段作为所述目标匹配域的范围的起始值。8.根据权利要求6或7所述的消息处理方法,其特征在于,所述目标匹配域包括:OXM_OF_TCP_SRC域、OXM_OF_TCP_DST域、OFPXMT_OFB_UDP_SRC域、OFPXMT_OFB_UDP_DST域、OFPXMT_OFB_SCTP_SRC域、或OFPXMT_OFB_SCTP_DST域。9.一种消息处理方法,其特征在于,包括:接收控制器发送的第一OFPT_FLOW_MOD消息,所述第一OFPT_FLOW_MOD消息包括ofp_match结构体,所述ofp_match结构体包括与一个或多个匹配域一一对应的一个或多个flow match field结构体,所述一个或多个flow match field结构体中包括与目标匹配域对应的第一目标flow match field结构体,所述第一目标flow match field结构体包括所述目标匹配域的范围的起始值;从所述第一目标flow match field结构体中获取所述目标匹配域的范围的起始值;接收控制器发送的第二OFPT_FLOW_MOD消息,所述第二OFPT_FLOW_MOD消息包括ofp_match结构体,所述ofp_match结构体包括与一个或多个匹配域一一对应的一个或多个flow match field结构体,所述一个或多个flow match field结构体中包括与目标匹配域对应的第二目标flow match field结构体,所述第二目标flow match field结构体包括所述目标匹配域的范围的结束值;从所述第二目标flow match field结构体中获取所述目标匹配域的范围的结束值。10.根据权利要求9所述的消息处理方法,其特征在于,每个所述flow
\tmatch field结构体包括头部与身体部,所述头部包括oxm_hasmask字段,所述第一目标flow match field结构体与第二目标flow match field结构体中:oxm_hasmask字段的取值为1,身体部包括oxm_mask字段与oxm_value字段,其中oxm_mask字段的取值为全1;所述从所述第一目标flow match field结构体中获取所述目标匹配域的范围的起始值包括:将所述第一目标flow match field结构体的oxm_value字段作为所述目标匹配域的范围的起始值;所述从所述第二目标flow match field结构体中获取所述目标匹配域的范围的结束值包括:将所述第二目标flow match field结构体的oxm_value字段作为所述目标匹配域的范围的结束值。11.根据权利要求10所述的消息处理方法,其特征在于,所述接收控制器发送的第一OFPT_FLOW_MOD消息之后还包括:将所述一个或多个flow match field结构体中,头部的oxm_hasmask字段的取值为1,且身体部oxm_mask字段的取值为全1的flow match field结构体,确定为第一目标flow match field结构体,并将所述第一目标flow match field结构体对应的匹配域确定为目标匹配域;所述接收控制器发送的第二OFPT_FLOW_MOD消息之前还包括:若所述控制器发送的OFPT_FLOW_MOD消息中,与所述目标匹配域对应的flow match field结构体的头部的oxm_hasmask字段的取值为1,且身体部oxm_mask字段的取值为全1,则将所述控制器发送的OFPT_FLOW_MOD消息确定为第二OFPT_FLOW_MOD消息;或,所述接收控制器发送的第二OFPT_FLOW_MOD消息之后还包括:将所述一个或多个flow match field结构体中,头部的oxm_hasmask字段的取值为1,且身体部oxm_mask字段的取值为全1的flow match field结构体,确定为第二目标flow match field结构体,并将所述第二目标flow match field结构体对应的匹配域确定为目标匹配域;所述接收控制器发送的第一OFPT_FLOW_MOD消息之前还包括:若所述控制器发送的OFPT_FLOW_MOD消息中,与所述目标匹配域对
\t应的flow match field结构体的头部的oxm_hasmask字段的取值为1,且身体部oxm_mask字段的取值为全1,则将所述控制器发送的OFPT_FLOW_MOD消息确定为第一OFPT_FLOW_MOD消息...

【专利技术属性】
技术研发人员:杨永强
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1