一种流表同步的实现方法及转发设备
技术领域
本发明涉及通信技术领域,尤其涉及一种流表同步的实现方法及转发设备。
背景技术
软件定义网络(Software Defined Networking,SDN)是一种新型网络架构,具有控制与转发解耦、集中控制和开放可编程接口的特点,是业界普遍看好的技术发展方向。
开放式流(OpenFlow)协议是当前SDN架构下控制面与转发面的设备之间的标准,在控制面与转发面解耦之后,控制器可以通过Openflow协议对处于转发设备(如交换机)的行为进行控制。
控制器通过控制交换机上的流表(Flow Table),实现对交换机中待转发报文的转发行为进行控制,具体包括:交换机保存有基于控制器生成的流表,其中一个流表中可以包含多个流表项,每个流表项中主要包含报文的匹配项、操作等信息;交换机接收到一个报文后,按照设定顺序依次将流表中每个流表项包含的匹配项与该报文进行匹配,在一个流表项包含的匹配项与该报文匹配成功后,立即执行该流表项中的操作。
交换机保存的多个流表之间,有些流表需要实现同步,如学习流表 (LearningTable)和转发流表(Forwarding Table),在交换机中学习到一个新的流表项保存至学习流表后,控制器需要将该新的流表项进行转换生成同步流表项,令其满足转发流表的格式,转换后将同步流表项发送至交换机,交换机将该同步流表项保存到转发流表中,这个过程需要控制器和交换机进行多次信令交互,且控制器在对流表项进行转换时,需要耗费计算资源,增加了同步时延。
因此,如何实现不同流表间的自动同步,以大量减少控制器和转发设备之间的信令交互,同时缩小同步时延,降低控制器的计算压力,是基于 OpenFlow协议的SDN网络架构中亟待解决的问题。
发明内容
本发明实施例提供了一种流表同步的实现方法及转发设备,用以解决现有技术中存在的流表间同步时耗费控制器计算资源,增加同步时延的问题。
第一方面,一种流表同步的实现方法,包括:
转发设备在对一源流表修改后,确定与所述源流表关联的同步规则,同步规则中包括源流表标识、目标流表标识,以及源流表项的转换规则,其中,所述源流表项为所述源流表标识对应的源流表中的流表项,所述同步规则包括的源流表标识与所述源流表的源流表标识相同;
所述转发设备根据所述源流表,确定待同步的源流表项,并根据所述源流表项的转换规则,对所述待同步的源流表项进行转换,将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中。
结合第一方面,在第一方面的第一种可能的实现方式中,当对所述源流表修改为将待增加的源流表项安装至所述源流表中时,所述转发设备根据所述源流表,确定需要同步的源流表项,包括:
所述转发设备将安装到所述源流表中所述待增加的源流表项作为待同步的源流表项;或者
当对所述源流表修改为对所述源流表中待修改的源流表项进行修改时,所述转发设备根据所述源流表,确定需要同步的源流表项,包括:
所述转发设备将所述源流表中的所述待修改的源流表项、修改后的源流表项作为待同步的源流表项;或者
当对所述源流表修改为将所述源流表中的待无效的源流表项进行无效处理时,所述转发设备根据所述源流表,确定需要同步的源流表项,包括:
所述转发设备将所述源流表中所述待无效的源流表项作为待同步的源流表项。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,当对所述源流表修改为将待增加的源流表项安装至所述源流表中时,所述转发设备将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中,包括:
所述转发设备将生成的目标流表项安装到所述目标流表标识对应的目标流表中。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,当对所述源流表修改为对所述源流表中待修改的源流表项进行修改时,所述转发设备将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中,包括:
在所述目标流表标识对应的目标流表中,查找到所述待修改的源流表项转换后生成的目标流表项后,对查找到的目标流表项进行无效处理;
将修改后的源流表项转换后生成的目标流表项安装到所述目标流表标识对应的目标流表中。
结合第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,当对所述源流表修改为将所述源流表中的待无效的源流表项进行无效处理时,所述转发设备将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中,包括:
在所述目标流表标识对应的目标流表中,查找到生成的目标流表项后,对查找到的目标流表项进行无效处理。
结合第一方面的第二种或第三种可能的实现方式,在第一方面的第五种可能的实现方式中,所述转发设备将生成的目标流表项安装到所述目标流表标识对应的目标流表中,包括:
将生成的包含有同步规则标识的所述目标流表项,安装到所述目标流表标识对应的目标流表中,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的。
结合第一方面或第一方面的以上任一种可能的实现方式,在第一方面的第六种可能的实现方式中,所述转发设备在将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中之后,还包括:
向所述控制器发送目标流表变化通知消息。
结合第一方面或第一方面的以上任一种可能的实现方式,在第一方面的第七种可能的实现方式中,还包括:
所述转发设备接收所述控制器发送同步规则增加消息,所述同步规则增加消息中包含待增加的同步规则;
所述转发设备将所述待增加的同步规则中包括的源流表标识对应的源流表与接收的所述待增加的同步规则建立关联。
结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述转发设备在接收到控制器发送的同步规则增加消息之后,在将所述待增加的同步规则中包括的源流表标识对应的源流表、接收的所述同步规则建立关联之前,还包括:
对所述待增加的同步规则进行校验,并确定校验通过。
结合第一方面的第八种可能的实现方式,在第一方面的第九种可能的实现方式中,所述转发设备在将所述待增加的同步规则中包括的源流表标识对应的源流表、接收的所述同步规则建立关联之后,还包括:
向所述控制器发送同步规则增加响应消息。
结合第一方面的第七至第九种可能的实现方式中的任一种可能的实现方式,在第一方面的第十种可能的实现方式中,所述转发设备在接收所述控制器发送同步规则增加消息之后,还包括:
根据所述待增加的同步规则包括的源流表项的转换规则,对所述待增加的同步规则中包括的源流表标识对应的源流表中的源流表项进行转换,将转换后生成的目标流表项同步至所述待增加的同步规则包括的目标流表标识对应的目标流表中。
结合第一方面或第一方面的第一至第十种可能的实现方式中的任一种可能的实现方式,在第一方面的第十一种可能的实现方式中,还包括:
所述转发设备接收所述控制器发送的同步规则修改消息,所述同步规则修改消息中包括同步规则修改规则;
所述转发设备根据所述同步规则修改消息,确定待修改的同步规则;
所述转发设备根据所述同步规则修改规则、以及所述待修改的同步规则,生成新同步规则,其中,所述新同步规则与所述待修改的同步规则中包括的源流表标识和目标流表标识相同,且包括的源流表项的转换规则不同;
所述转发设备将所述待修改的同步规则中包括的源流表标识对应的源流表与所述待修改的同步规则解除关联;并将所述新同步规则中包括的源流表标识对应的源流表与所述新同步规则建立关联。
结合第一方面的第十一种可能的实现方式,在第一方面的第十二种可能的实现方式中,所述转发设备在确定待修改的同步规则之后,在生成新同步规则之前,还包括:
基于所述待修改的同步规则,对所述同步规则修改消息进行校验,并确定校验通过。
结合第一方面或第一方面的第一至第十种可能的实现方式中的任一种可能的实现方式,在第一方面的第十三种可能的实现方式中,还包括:
所述转发设备接收所述控制器发送的同步规则修改消息,所述同步规则修改消息中包括新同步规则;
所述转发设备根据所述同步规则修改消息,确定待修改的同步规则,其中,所述新同步规则与所述待修改的同步规则中包括的源流表标识和目标流表标识相同,且包括的源流表项的转换规则不同;
所述转发设备将所述待修改的同步规则中包括的源流表标识对应的源流表与所述待修改的同步规则解除关联;并将所述新同步规则中包括的源流表标识对应的源流表与所述新同步规则建立关联。
结合第一方面的第十三种可能的实现方式,在第一方面的第十四种可能的实现方式中,所述转发设备在接收所述控制器发送的同步规则修改消息之后,在确定待修改的同步规则之前,还包括:
对所述新同步规则进行校验,并确定校验通过。
结合第一方面的第十一或第十三种可能的实现方式,在第一方面的第十五种可能的实现方式中,所述转发设备在确定待修改的同步规则之后,还包括:
在所述待修改的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待修改的同步规则生成的目标流表项;
对确定的目标流表项进行无效处理。
结合第一方面的第十五种可能的实现方式,在第一方面的第十六种可能的实现方式中,所述转发设备在所述待修改的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待修改的同步规则生成的目标流表项,包括:
当所述待修改的同步规则包含的目标流表标识对应的目标流表中,目标流表项中保存有同步规则标识时,在所述目标流表中,查找包含的同步规则标识为所述待修改的同步规则的同步规则标识的目标流表项,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的;
将查找到的目标流表项作为基于所述待修改的同步规则生成的目标流表项。
结合第一方面的第十五或第十六种可能的实现方式,在第一方面的第十七种可能的实现方式中,所述转发设备在对确定的目标流表项进行无效处理之后,还包括:
根据所述新同步规则包括的源流表项的转换规则,对所述新同步规则包括的源流表标识对应的源流表中的源流表项进行转换,将转换后生成的目标流表项同步至所述新同步规则包括的目标流表标识对应的目标流表中。
结合第一方面的第十七种可能的实现方式,在第一方面的第十八种可能的实现方式中,所述转发设备将转换后生成的目标流表项同步至所述新同步规则包括的目标流表标识对应的目标流表中,包括:
将生成的目标流表项安装到所述新同步规则包括的目标流表标识对应的目标流表中。
结合第一方面的第十一至第十八种可能的实现方式中任一种可能的实现方式,在第一方面的第十九种可能的实现方式中,所述转发设备在确定待修改的同步规则之后,还包括:
向所述控制器发送同步规则修改响应消息。
结合第一方面或第一方面的以上任一种可能的实现方式,在第一方面的第二十种可能的实现方式中,还包括:
所述转发设备接收所述控制器发送的同步规则删除消息;
所述转发设备根据所述同步规则删除消息,确定待删除的同步规则;
所述转发设备将所述待删除的同步规则中包括的源流表标识对应的源流表与所述待删除的同步规则解除关联。
结合第一方面的第二十种可能的实现方式,在第一方面的第二十一种可能的实现方式中,所述转发设备在确定待删除的同步规则之后,还包括:
在所述待删除的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待删除的同步规则生成的目标流表项,并对确定的目标流表项进行无效处理。
结合第一方面的第二十一种可能的实现方式,在第一方面的第二十二种可能的实现方式中,所述转发设备在所述待删除的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待删除的同步规则生成的目标流表项,包括:
当所述待删除的同步规则包含的目标流表标识对应的目标流表中,目标流表项中保存有同步规则标识时,在所述目标流表中,查找包含的同步规则标识为所述待删除的同步规则的同步规则标识的目标流表项,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的;
将查找到的目标流表项作为基于所述待删除的同步规则生成的目标流表项。
结合第一方面的第二十至第二十二种可能的实现方式中的任一种可能的实现方式,在第一方面的第二十三种可能的实现方式中,所述转发设备在将所述待删除的同步规则中包括的源流表标识对应的源流表与所述待删除的同步规则解除关联之后,还包括:
向所述控制器发送同步规则删除响应消息。
结合第一方面的第一种可能的实现方式,在第一方面的第二十四种可能的实现方式中,所述转发设备对待无效的源流表项进行无效处理,包括:
对所述待无效的源流表项设置设定的老化时间。
结合第一方面的第三、第四、第十五、第二十一种可能的实现方式中的任一种可能的实现方式,在第一方面的第二十五种可能的实现方式中,所述转发设备对目标流表项进行无效处理,包括:
对所述目标流表项设置设定的老化时间。
结合第一方面的第二十五种可能的实现方式,在第一方面的第二十六种可能的实现方式中,所述转发设备对目标流表项进行无效处理,还包括:
当所述目标流表项中保存有同步规则标识时,将所述目标流表项中包含的同步规则标识删除,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的。
第二方面,一种转发设备,包括:
第一确定单元,用于在对一源流表修改后,确定与所述源流表关联的同步规则,同步规则中包括源流表标识、目标流表标识,以及源流表项的转换规则,其中,所述源流表项为所述源流表标识对应的源流表中的流表项,所述同步规则包括的源流表标识与所述源流表的源流表标识相同;
第一处理单元,用于根据所述源流表,确定待同步的源流表项,并根据所述源流表项的转换规则,对所述待同步的源流表项进行转换,将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第一处理单元,用于:
当对所述源流表修改为将待增加的源流表项安装至所述源流表中时,将安装到所述源流表中所述待增加的源流表项作为待同步的源流表项;或者
当对所述源流表修改为对所述源流表中待修改的源流表项进行修改时,将所述源流表中的所述待修改的源流表项、修改后的源流表项作为待同步的源流表项;或者
当对所述源流表修改为将所述源流表中的待无效的源流表项进行无效处理时,将所述源流表中所述待无效的源流表项作为待同步的源流表项。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,当对所述源流表修改为将待增加的源流表项安装至所述源流表中时,所述第一处理单元,用于:
将生成的目标流表项安装到所述目标流表标识对应的目标流表中。
结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,当对所述源流表修改为对所述源流表中待修改的源流表项进行修改时,所述第一处理单元,用于:
在所述目标流表标识对应的目标流表中,查找到所述待修改的源流表项转换后生成的目标流表项后,对查找到的目标流表项进行无效处理;
将修改后的源流表项转换后生成的目标流表项安装到所述目标流表标识对应的目标流表中。
结合第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现方式中,当对所述源流表修改为将所述源流表中的待无效的源流表项进行无效处理时,所述第一处理单元,用于:
在所述目标流表标识对应的目标流表中,查找到生成的目标流表项后,对查找到的目标流表项进行无效处理。
结合第二方面的第二种或第三种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第一处理单元,在将生成的目标流表项安装到所述目标流表标识对应的目标流表中时,用于:
将生成的包含有同步规则标识的所述目标流表项,安装到所述目标流表标识对应的目标流表中,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的。
结合第二方面或第二方面的以上任一种可能的实现方式,在第二方面的第六种可能的实现方式中,还包括:
第一发送单元,用于在将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中之后,向所述控制器发送目标流表变化通知消息。
结合第二方面或第二方面的以上任一种可能的实现方式,在第二方面的第七种可能的实现方式中,还包括:
第一接收单元,用于接收所述控制器发送同步规则增加消息,所述同步规则增加消息中包含待增加的同步规则;
第一关联单元,用于将所述待增加的同步规则中包括的源流表标识对应的源流表与接收的所述待增加的同步规则建立关联。
结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,还包括:
第一校验单元,用于在接收到控制器发送的同步规则增加消息之后,在将所述待增加的同步规则中包括的源流表标识对应的源流表、接收的所述同步规则建立关联之前,对所述待增加的同步规则进行校验,并确定校验通过。
结合第二方面的第八种可能的实现方式,在第二方面的第九种可能的实现方式中,第二发送单元,用于:
在将所述待增加的同步规则中包括的源流表标识对应的源流表、接收的所述同步规则建立关联之后,向所述控制器发送同步规则增加响应消息。
结合第二方面的第七至第九种可能的实现方式中的任一种可能的实现方式,在第二方面的第十种可能的实现方式中,还包括:
第二处理单元,用于在接收所述控制器发送同步规则增加消息之后,根据所述待增加的同步规则包括的源流表项的转换规则,对所述待增加的同步规则中包括的源流表标识对应的源流表中的源流表项进行转换,将转换后生成的目标流表项同步至所述待增加的同步规则包括的目标流表标识对应的目标流表中。
结合第二方面或第二方面的第一至第十种可能的实现方式中的任一种可能的实现方式,在第二方面的第十一种可能的实现方式中,还包括:
第二接收单元,用于接收所述控制器发送的同步规则修改消息,所述同步规则修改消息中包括同步规则修改规则;
第二确定单元,用于根据所述同步规则修改消息,确定待修改的同步规则;
生成单元,用于根据所述同步规则修改规则、以及所述待修改的同步规则,生成新同步规则,其中,所述新同步规则与所述待修改的同步规则中包括的源流表标识和目标流表标识相同,且包括的源流表项的转换规则不同;
第二关联单元,用于将所述待修改的同步规则中包括的源流表标识对应的源流表与所述待修改的同步规则解除关联;并将所述新同步规则中包括的源流表标识对应的源流表与所述新同步规则建立关联。
结合第二方面的第十一种可能的实现方式,在第二方面的第十二种可能的实现方式中,还包括:
第二校验单元,用于在确定待修改的同步规则之后,在生成新同步规则之前,基于所述待修改的同步规则,对所述同步规则修改消息进行校验,并确定校验通过。
结合第二方面或第二方面的第一至第十种可能的实现方式中的任一种可能的实现方式,在第二方面的第十三种可能的实现方式中,还包括:
第二接收单元,用于接收所述控制器发送的同步规则修改消息,所述同步规则修改消息中包括新同步规则;
第二确定单元,用于根据所述同步规则修改消息,确定待修改的同步规则,其中,所述新同步规则与所述待修改的同步规则中包括的源流表标识和目标流表标识相同,且包括的源流表项的转换规则不同;
第二关联单元,用于将所述待修改的同步规则中包括的源流表标识对应的源流表与所述待修改的同步规则解除关联;并将所述新同步规则中包括的源流表标识对应的源流表与所述新同步规则建立关联。
结合第二方面的第十三种可能的实现方式,在第二方面的第十四种可能的实现方式中,还包括:
第二校验单元,用于在接收所述控制器发送的同步规则修改消息之后,在确定待修改的同步规则之前,对所述新同步规则进行校验,并确定校验通过。
结合第二方面的第十一或第十三种可能的实现方式,在第二方面的第十五种可能的实现方式中,还包括:
第三处理单元,用于在确定待修改的同步规则之后,在所述待修改的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待修改的同步规则生成的目标流表项;
对确定的目标流表项进行无效处理。
结合第二方面的第十五种可能的实现方式,在第二方面的第十六种可能的实现方式中,所述第三处理单元,用于:
当所述待修改的同步规则包含的目标流表标识对应的目标流表中,目标流表项中保存有同步规则标识时,在所述目标流表中,查找包含的同步规则标识为所述待修改的同步规则的同步规则标识的目标流表项,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的;
将查找到的目标流表项作为基于所述待修改的同步规则生成的目标流表项。
结合第二方面的第十五或第十六种可能的实现方式,在第二方面的第十七种可能的实现方式中,所述第三处理单元,还用于:
在对确定的目标流表项进行无效处理之后,根据所述新同步规则包括的源流表项的转换规则,对所述新同步规则包括的源流表标识对应的源流表中的源流表项进行转换,将转换后生成的目标流表项同步至所述新同步规则包括的目标流表标识对应的目标流表中。
结合第二方面的第十七种可能的实现方式,在第二方面的第十八种可能的实现方式中,所述第三处理单元,在将转换后生成的目标流表项同步至所述新同步规则包括的目标流表标识对应的目标流表中时,用于:
将生成的目标流表项安装到所述新同步规则包括的目标流表标识对应的目标流表中。
结合第二方面的第十一至第十八种可能的实现方式中任一种可能的实现方式,在第二方面的第十九种可能的实现方式中,还包括:
第三发送单元,用于在确定待修改的同步规则之后,向所述控制器发送同步规则修改响应消息。
结合第二方面或第二方面的以上任一种可能的实现方式,在第二方面的第二十种可能的实现方式中,还包括:
第三接收单元,用于接收所述控制器发送的同步规则删除消息;
第三确定单元,用于根据所述同步规则删除消息,确定待删除的同步规则;
第三关联单元,用于将所述待删除的同步规则中包括的源流表标识对应的源流表与所述待删除的同步规则解除关联。
结合第二方面的第二十种可能的实现方式,在第二方面的第二十一种可能的实现方式中,还包括:
第四处理单元,用于所述转发设备在确定待删除的同步规则之后,在所述待删除的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待删除的同步规则生成的目标流表项,并对确定的目标流表项进行无效处理。
结合第二方面的第二十一种可能的实现方式,在第二方面的第二十二种可能的实现方式中,所述第四处理单元,用于:
当所述待删除的同步规则包含的目标流表标识对应的目标流表中,目标流表项中保存有同步规则标识时,在所述目标流表中,查找包含的同步规则标识为所述待删除的同步规则的同步规则标识的目标流表项,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的;
将查找到的目标流表项作为基于所述待删除的同步规则生成的目标流表项。
结合第二方面的第二十至第二十二种可能的实现方式中的任一种可能的实现方式,在第二方面的第二十三种可能的实现方式中,还包括:
第四发送单元,用于在将所述待删除的同步规则中包括的源流表标识对应的源流表与所述待删除的同步规则解除关联之后,向所述控制器发送同步规则删除响应消息。
结合第二方面的第一种可能的实现方式,在第二方面的第二十四种可能的实现方式中,对待无效的源流表项进行无效处理,包括:
对所述待无效的源流表项设置设定的老化时间。
结合第二方面的第三、第四、第十五、第二十一种可能的实现方式中的任一种可能的实现方式,在第二方面的第二十五种可能的实现方式中,对目标流表项进行无效处理,包括:
对所述目标流表项设置设定的老化时间。
结合第二方面的第二十五种可能的实现方式,在第二方面的第二十六种可能的实现方式中,对目标流表项进行无效处理,还包括:
当所述目标流表项中保存有同步规则标识时,将所述目标流表项中包含的同步规则标识删除,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的。
本发明实施例中,在转发设备中的源流表修改后,可以直接确定待同步的源流表项,并基于与该源流表关联的同步规则,对该待同步的流表项进行转换,并将转换后生成的目标流表项同步至目标流表中。由于不需要通过控制器进行流表间的同步,而是转发设备独立完成整个同步过程,因此避免了浪费控制器的计算资源,也避免了交换机与控制器之间的信令交互,减小了流表同步的时延。
附图说明
图1为本发明实施例提供的一种流表同步的实现方法的流程图;
图2为本发明实施例提供的一种增加同步规则的方法的流程图;
图3为本发明实施例提供的一种修改同步规则的方法的流程图;
图4为本发明实施例提供的另一种修改同步规则的方法的流程图;
图5为本发明实施例提供的一种删除同步规则的方法的流程图;
图6为本发明实施例提供的一种转发设备的结构示意图;
图7为本发明实施例提供的一种转发设备的结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种流表同步的实现方法及转发设备,用以解决现有技术中存在的流表间同步时耗费控制器计算资源,增加同步时延的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
在现有技术中,流表间实现同步的过程中,转发设备要将待同步的流表项通知控制器,再由控制器将待同步的流表项进行转换生成同步流表项,并将生成的同步流表项发送至转发设备,显然传统的流表间同步时,耗费了控制器的计算资源,增加了同步时延;而采用本发明技术方案,转发设备在对一源流表修改后,确定与所述源流表关联的同步规则,其中,同步规则中包括源流表标识、目标流表标识,以及源流表项的转换规则,源流表项为所述源流表标识对应的源流表中的流表项;转发设备根据所述源流表,确定待同步的源流表项,并根据所述源流表项的转换规则,对所述待同步的源流表项进行转换,并将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中,这样,在转发设备中的源流表修改后,可以直接确定待同步的源流表项,并基于与该源流表关联的同步规则,对该待同步的流表项进行转换,并将转换后生成的目标流表项同步至目标流表中,由于不需要通过控制器进行流表间的同步,而是转发设备独立完成整个同步过程,因此避免了浪费控制器的计算资源,也避免了交换机与控制器之间的信令交互,减小了流表同步的时延。
本发明实施例提供了一种流表同步的实现方法,适用于SDN架构中的转发设备,如交换机等,下面结合附图对本发明优选的实施方式进行详细说明。
参阅图1所示,该方法的具体流程包括:
步骤101:转发设备在对一源流表修改后,确定与所述源流表关联的同步规则,同步规则中包括源流表标识、目标流表标识,以及源流表项的转换规则,其中,所述源流表项为所述源流表标识对应的源流表中的流表项,所述同步规则包括的源流表标识与所述源流表的源流表标识相同。
转发设备对所述源流表修改,包括以下几种方式:
第一种方式:将待增加的源流表项安装至所述源流表中;
第二种方式:对所述源流表中待修改的源流表项进行修改;
第三种方式:将所述源流表中的待无效的源流表项进行无效处理。
在第一种方式中,转发设备增加新的源流表项到源流表的时机,包括:在转发设备可以自学习到一个流表项,将该流表项作为待增加的源流表项;或者在转发设备接收到控制器发送的指示增加流表项的修改流表Flow Modification消息,将该Flow Modification消息中包含的流表项作为待增加的源流表项等,本发明对此不做限定。
在第二种方式中,转发设备对源流表中的源流表项进行修改的时机,包括:在转发设备接收到控制器发送的指示修改流表项的Flow Modification消息,根据FlowModification消息中的源流表项的标识,确定待修改的源流表项,在根据FlowModification消息包含的流表项修改规则,对确定的待修改的源流表项进行修改,其中,源流表项的标识可以为源流表项的序号编码等,或者为匹配域+优先级,本发明对此不做限定。
在第三种方式中,转发设备对待无效的源流表项进行无效处理,即使该待无效的源流表项在指定时刻后失去工作能力,无法进行匹配,其中,进行无效处理包括多种方式,例如,将待无效的源流表项进行删除,或者对待无效的源流表项设置老化时间,或者将待无效的源流表项中的某一项可以指示该源流表项工作能力的信息进行修改等,本发明对此不做限定。转发设备对待无效的源流表项进行无效处理的时机,包括:在源流表存储空间不足时,删除其中某些源流表项;或者接收到控制器发送的指示无效流表项的FlowModification消息,根据Flow Modification消息中的源流表项的标识,确定待无效的源流表项。
在转发设备中源流表与包含该源流表标识的同步规则建立关联,其中,具体的,源流表与同步规则建立关联,包括将该同步规则保存至该源流表中或者,将该同步规则进行一些安装处理等操作,使该规则与该源流表之间存在关联,即将同步规则在源流表侧进行维护,这样,在源流表修改后,可以直接确定与源流表关联的同步规则,进而进行同步操作,且由于同步规则中还包含有目标流表标识,因此,可以快速找到目标流表进行同步,缩小了流表同步的时延,提高了流表同步的效率。
一般流表项中包括多项信息,如包含匹配域、优先级、操作、老化时间、标志位等,可选的,在将源流表转换为目标流表时,对于源流表中的某些简单信息,如标识位等可以直接进行复制,而不需要修改,但是对于源流表中的某些复杂信息,如匹配域、操作等,需要从该源流表中提取并按照指定的算法或规则进行转换,生成新的匹配域、操作。同步规则中的流表项转换规则中规定了源流表项中需要进行转换的信息,以及对应的转换算法或规则。
步骤102:所述转发设备根据所述源流表,确定待同步的源流表项,并根据所述源流表项的转换规则,对所述待同步的源流表项进行转换,将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中。
由于在步骤101 中对所述源流表的修改方式不同,因此,在所述转发设备根据所述源流表,确定的待同步的源流表项也不同。具体的,包括:
当对所述源流表修改为将待增加的源流表项安装至所述源流表中时,所述转发设备根据所述源流表,确定需要同步的源流表项,包括:
所述转发设备将安装到所述源流表中所述待增加的源流表项作为待同步的源流表项;
当对所述源流表修改为对所述源流表中待修改的源流表项进行修改时,所述转发设备根据所述源流表,确定需要同步的源流表项,包括:
所述转发设备将所述源流表中的所述待修改的源流表项、修改后的源流表项作为待同步的源流表项;
当对所述源流表修改为将所述源流表中的待无效的源流表项进行无效处理时,所述转发设备根据所述源流表,确定需要同步的源流表项,包括:
所述转发设备将所述源流表中所述待无效的源流表项作为待同步的源流表项。
由于在步骤101 中对所述源流表的修改方式不同,在所述转发设备根据所述源流表,确定的待同步的源流表项也不同,进而导致在根据所述源流表项的转换规则,对所述待同步的源流表项进行转换后,如何将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中也不相同,具体包括以下几种方式:
第一种方式:当对所述源流表修改为将待增加的源流表项安装至所述源流表中时,所述转发设备将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中,包括:所述转发设备将生成的目标流表项安装到所述目标流表标识对应的目标流表中。
第二种方式:当对所述源流表修改为对所述源流表中待修改的源流表项进行修改时,所述转发设备将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中,包括:
在所述目标流表标识对应的目标流表中,查找到所述待修改的源流表项转换后生成的目标流表项后,对查找到的目标流表项进行无效处理;
将修改后的源流表项转换后生成的目标流表项安装到所述目标流表标识对应的目标流表中。
第三种方式:当对所述源流表修改为将所述源流表中的待无效的源流表项进行无效处理时,所述转发设备将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中,包括:
在所述目标流表标识对应的目标流表中,查找到生成的目标流表项后,对查找到的目标流表项进行无效处理。
其中,对查找到的目标流表项进行无效处理,即使该目标流表项在指定时刻后失去工作能力,无法进行匹配,该指定时刻可以为查找到该目标流表项时,或者在查找到该目标流表项设定时间段后,本发明对此不做限定。对目标流表项进行无效处理包括多种方式,例如,将目标流表项进行删除;或者对目标流表项设置设定的老化时间,其中该老化时间可以为转发设备预设的,或者用户设置的,或者复制该目标流表项对应的源流表项的老化时间等;或者将目标流表项中的某一项可以指示该目标流表项工作能力的信息进行修改等,本发明对此不做限定。
在上述第一种方式以及第二种方式中,所述转发设备将生成的目标流表项安装到所述目标流表标识对应的目标流表中,包括:
直接将生成的目标流表安装到所述目标流表标识对应的目标流表中;或者
将生成的包含有同步规则标识的所述目标流表项,安装到所述目标流表标识对应的目标流表中,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的。
在基于同步规则生成的目标流表项中添加同步规则标识,用于指示该目标流表项是基于该同步规则标识生成的,这样,转发设备在后期对该同步规则进行修改或删除等操作时,可以快速的找到基于该同步规则生成的目标流表项,进而将找到的目标流表项进行无效,提高了在同步规则修改或删除时流表的同步效率。
在步骤102所述转发设备在将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中之后,还包括:
向所述控制器发送目标流表变化通知消息。
转发设备通过该目标流表变化通知消息通知控制器,目标流表已经发生变化。
采用本发明实施例提供的流表同步的实现方法,在转发设备中的源流表修改后,可以直接确定待同步的源流表项,并基于与该源流表关联的同步规则,对该待同步的流表项进行转换,并将转换后生成的目标流表项同步至目标流表中,由于不需要通过控制器进行流表间的同步,而是转发设备独立完成整个同步过程,因此避免了浪费控制器的计算资源,也避免了交换机与控制器之间的信令交互,减小了流表同步的时延,实现了转发设备和控制器的彻底解耦,同时,在转发设备中源流表与包含该源流表标识的同步规则建立关联,即将同步规则在源流表侧进行维护,在源流表修改后,可以直接确定与源流表关联的同步规则,进而进行同步操作,且由于同步规则中还包含有目标流表标识,因此,可以快速找到目标流表进行同步,进一步缩小了流表同步的时延,提高了流表同步的效率。
在本发明实施例中,控制器可以对同步规则进行控制,如增加、修改,以及删除等,转发设备可以根据控制器对同步规则的控制,进一步根据同步规则的增加、修改和删除,对源流表和目标流表进行同步。
参阅图2所示,在转发设备中增加同步规则的流程包括:
步骤201:转发设备接收控制器发送同步规则增加消息,所述同步规则增加消息中包含待增加的同步规则。
控制器根据业务逻辑的需要,生成同步规则,其中,同步规则中包含源流表标识,目标流表标识,以及源流表中的源流表项的转换规则,该源流表项的转换规则中规定了源流表项中需要进行转换的信息,以及对应的转换算法或规则,用以将源流表项转换为对应的目标流表项。
控制器生成同步规则后,将同步规则作为待增加的同步规则通过同步规则增加消息发送至转发设备。
可选的,所述转发设备在接收到控制器发送的同步规则增加消息之后,在执行步骤202之前,还包括:
对所述待增加的同步规则进行校验,并确定校验通过。
转发设备对所述待增加的同步规则进行校验,即确定该待增加的同步规则的合理性,例如,判断本地是否存在该待增加的同步规则中包含的源流表标识对应的源流表,以及该待增加的同步规则中包含的目标流表标识对应的目标流表,以及确定该待增加的同步规则中包含的源流表项的转换规则的合理性等。
步骤202:所述转发设备将所述待增加的同步规则中包括的源流表标识对应的源流表与接收的所述待增加的同步规则建立关联。
在执行步骤202时,将待增加的同步规则与所述待增加的同步规则中包括的源流表标识对应的源流表建立关联,具体的,包括将该同步规则保存至该源流表中,或者将该同步规则进行一些安装处理等操作,使该规则与该源流表之间存在关联,即将同步规则在源流表侧进行维护,这样,在源流表修改后,可以直接确定与源流表关联的同步规则,进而进行同步操作,且由于同步规则中还包含有目标流表标识,因此,可以快速找到目标流表进行同步,缩小了流表同步的时延,提高了流表同步的效率。
可选的,在步骤202之后,所述转发设备向所述控制器发送同步规则增加响应消息,用以通知控制器本地已经增加该待增加的同步规则。
可选的,在步骤201所述转发设备在接收所述控制器发送同步规则增加消息之后,还包括:
根据所述待增加的同步规则包括的源流表项的转换规则,对所述待增加的同步规则中包括的源流表标识对应的源流表中的源流表项进行转换,将转换后生成的目标流表项同步至所述待增加的同步规则包括的目标流表标识对应的目标流表中。将转换后生成的目标流表项同步至所述待增加的同步规则包括的目标流表标识对应的目标流表中,具体的,即将转换后生成的目标流表项安装至所述待增加的同步规则包括的目标流表标识对应的目标流表中。
当然,上述步骤可以不执行,即转发设备接收到待增加的同步规则后,不会基于该待增加的同步规则中的源流表项的转换规则,对源流表和目标流表建立关联,当然,可以执行该步骤,且执行该步骤的时机并不确定,可以在步骤201之后执行,或者在步骤202之后执行,本发明对此不做限定。
通过以上两种方式的描述,转发设备可以根据控制器的同步规则增加消息,对同步规则进行增加,并基于增加的同步规则实现源流表与目标流表之间的同步。
在转发设备中修改同步规则包括两种方式:第一种:在将本地的同步规则进行修改,参阅图3所示;第二种:通过新的同步规则,直接将本地的同步规则进行替换,参阅图4所示。
第一种方式修改同步规则流程包括:
步骤301:转发设备接收控制器发送的同步规则修改消息,所述同步规则修改消息中包括同步规则修改规则。
同步规则修改规则中包含了对同步规则中包含的内容(源流表项的转换规则)中的修改规则,例如将源流表项的转换规则中某一项信息的一种转换算法修改为另一种转换算法等,根据该同步规则修改规则可以将原同步规则进行修改,生成新的同步规则。
步骤302:所述转发设备根据所述同步规则修改消息,确定待修改的同步规则。
可选的,在步骤302,确定待修改的同步规则之后,还包括:
向所述控制器发送同步规则修改响应消息。
执行步骤302时,可以通过多种方式,例如可以通过同步规则修改消息中还包含的同步规则标识或者其它同步规则的指示信息,确定待修改的同步规则,或者同步规则修改消息中还包含同步规则,然后根据该同步规则在本地中的同步规则中进行匹配,匹配到时,将匹配到的同步规则作为待修改的同步规则。
可选的,在步骤302之后,在步骤303之前,还包括,基于所述待修改的同步规则,对所述同步规则修改消息进行校验,并确定校验通过。
由于在同步规则修改规则中包含了对同步规则中包含的内容(如源流表项的转换规则)中的修改规则,因此,可以通过待修改的同步规则中包含的源流表项的转换规则,对同步规则修改消息中包含的同步规则修改规则等信息进行校验。
可选的,在步骤302之后,还包括:
在所述待修改的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待修改的同步规则生成的目标流表项;
对确定的目标流表项进行无效处理。
由于待修改的同步规则需要进行修改生成新的同步规则,因此,基于该待修改的同步规则生成的目标流表项也失去了工作价值,如果不进行处理,可能会导致工作异常。因此,需要对基于该待修改的同步规则生成的目标流表项进行无效处理。
其中,对目标流表项进行无效处理,即令该目标流表项在指定时刻后失去工作能力,无法进行匹配,该指定时刻可以为查找到该目标流表项时,或者在查找到该目标流表项设定时间段后,本发明对此不做限定。对目标流表项进行无效处理包括多种方式,例如,将目标流表项进行删除;或者对目标流表项设置设定的老化时间,其中该老化时间可以为转发设备预设的,或者用户设置的,或者复制该目标流表项对应的源流表项的老化时间等;或者将目标流表项中的某一项可以指示该目标流表项工作能力的信息进行修改等,本发明对此不做限定。其中,对目标流表项进行无效处理时,当所述目标流表项中保存有同步规则标识时,还包括:将所述目标流表项中包含的同步规则标识删除,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的。
其中,所述转发设备在所述待修改的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待修改的同步规则生成的目标流表项,可以包括:
当所述待修改的同步规则包含的目标流表标识对应的目标流表中,目标流表项中保存有同步规则标识时,在所述目标流表中,查找包含的同步规则标识为所述待修改的同步规则的同步规则标识的目标流表项,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的;
将查找到的目标流表项作为基于所述待修改的同步规则生成的目标流表项。
若之前基于该待修改的同步规则生成目标流表项在安装时,该目标流表项添加了同步规则标识,用以指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的,则通过待修改的同步规则的同步规则标识就可以快速找到基于所述待修改的同步规则生成的目标流表项;若之前基于该待修改的同步规则生成目标流表项在安装时,该目标流表项未添加同步规则标识,则可以根据该待修改的同步规则中的源流表项的转换规则,将源流表中的每一项源流表项进行转换,生成目标流表项,并在目标流表中查找是否包含生成的目标流表项,如果包含,则在目标流表中包含的该目标流表项即为基于所述待修改的同步规则生成的目标流表项。
步骤303:所述转发设备根据所述同步规则修改规则、以及所述待修改的同步规则,生成新同步规则,其中,所述新同步规则与所述待修改的同步规则中包括的源流表标识和目标流表标识相同,且包括的源流表项的转换规则不同。
可选的,在生成新同步规则之后且在所述转发设备在对确定的目标流表项进行无效处理之后,还包括:
根据所述新同步规则包括的源流表项的转换规则,对所述新同步规则包括的源流表标识对应的源流表中的源流表项进行转换,将转换后生成的目标流表项同步至所述新同步规则包括的目标流表标识对应的目标流表中。
可选的,所述转发设备将转换后生成的目标流表项同步至所述新同步规则包括的目标流表标识对应的目标流表中,包括:
将生成的目标流表项安装到所述新同步规则包括的目标流表标识对应的目标流表中。
将生成的目标流表项安装到目标流表时,可选的,还可以将该新同步规则的同步规则标识添加到生成的目标流表项中,以便在后期该新同步规则再修改或删除时,可以快速找到基于该新同步规则生成的目标流表项。
步骤304:所述转发设备将所述待修改的同步规则中包括的源流表标识对应的源流表与所述待修改的同步规则解除关联;并将所述新同步规则中包括的源流表标识对应的源流表与所述新同步规则建立关联。
将待修改的同步规则与源流表解除关联,包括删除该待修改的同步规则,或者将该待修改的同步规则进行处理,使在该源流表与目标流表进行同步时,不能通过该待修改的同步规则。
第二种方式修改同步规则流程包括:
步骤401:转发设备接收控制器发送的同步规则修改消息,所述同步规则修改消息中包括新同步规则。
在步骤401之后,在步骤402之前,还包括:对所述新同步规则进行校验,并确定校验通过。
转发设备对所述新同步规则进行校验,即确定该新同步规则的合理性,例如,判断本地是否存在该新同步规则中包含的源流表标识对应的源流表,以及该新同步规则中包含的目标流表标识对应的目标流表,以及确定该新同步规则中包含的源流表项的转换规则的合理性等。
步骤402:所述转发设备根据所述同步规则修改消息,确定待修改的同步规则,其中,所述新同步规则与所述待修改的同步规则中包括的源流表标识和目标流表标识相同,且包括的源流表项的转换规则不同。
可选的,在步骤402,确定待修改的同步规则之后,还包括:
向所述控制器发送同步规则修改响应消息。
执行步骤402时,可以通过多种方式,例如,可以通过同步规则修改消息中还包含的同步规则标识或者其它同步规则的指示信息,确定待修改的同步规则,或者将与新同步规则中源流表标识对应的源流表关联的同步规则作为待修改的同步规则。
可选的,在步骤402之后,还包括:
在所述待修改的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待修改的同步规则生成的目标流表项;
对确定的目标流表项进行无效处理。
由于待修改的同步规则需要进行修改生成新的同步规则,因此,基于该待修改的同步规则生成的目标流表项也失去了工作价值,如果不进行处理,可能会导致工作异常。因此,需要对基于该待修改的同步规则生成的目标流表项进行无效处理。
其中,对目标流表项进行无效处理,即令该目标流表项在指定时刻后失去工作能力,无法进行匹配,该指定时刻可以为查找到该目标流表项时,或者在查找到该目标流表项设定时间段后,本发明对此不做限定。对目标流表项进行无效处理包括多种方式,例如,将目标流表项进行删除;或者对目标流表项设置设定的老化时间,其中该老化时间可以为转发设备预设的,或者用户设置的,或者复制该目标流表项对应的源流表项的老化时间等;或者将目标流表项中的某一项可以指示该目标流表项工作能力的信息进行修改等,本发明对此不做限定。其中,对目标流表项进行无效处理时,当所述目标流表项中保存有同步规则标识时,还包括:将所述目标流表项中包含的同步规则标识删除,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的。
其中,所述转发设备在所述待修改的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待修改的同步规则生成的目标流表项,可以包括:
当所述待修改的同步规则包含的目标流表标识对应的目标流表中,目标流表项中保存有同步规则标识时,在所述目标流表中,查找包含的同步规则标识为所述待修改的同步规则的同步规则标识的目标流表项,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的;
将查找到的目标流表项作为基于所述待修改的同步规则生成的目标流表项。
若之前基于该待修改的同步规则生成目标流表项在安装时,该目标流表项添加了同步规则标识,用以指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的,则通过待修改的同步规则的同步规则标识就可以快速找到基于所述待修改的同步规则生成的目标流表项;若之前基于该待修改的同步规则生成目标流表项在安装时,该目标流表项未添加同步规则标识,则可以根据该待修改的同步规则中的源流表项的转换规则,将源流表中的每一项源流表项进行转换,生成目标流表项,并在目标流表中查找是否包含生成的目标流表项,如果包含,则在目标流表中包含的该目标流表项即为基于所述待修改的同步规则生成的目标流表项。
可选的,在生成新同步规则之后且在所述转发设备在对确定的目标流表项进行无效处理之后,还包括:
根据所述新同步规则包括的源流表项的转换规则,对所述新同步规则包括的源流表标识对应的源流表中的源流表项进行转换,将转换后生成的目标流表项同步至所述新同步规则包括的目标流表标识对应的目标流表中。
可选的,所述转发设备将转换后生成的目标流表项同步至所述新同步规则包括的目标流表标识对应的目标流表中,包括:
将生成的目标流表项安装到所述新同步规则包括的目标流表标识对应的目标流表中。
将生成的目标流表项安装到目标流表时,可选的,还可以将该新同步规则的同步规则标识添加到生成的目标流表项中,以便在后期该新同步规则再修改或删除时,可以快速找到基于该新同步规则生成的目标流表项。
步骤403:所述转发设备将所述待修改的同步规则中包括的源流表标识对应的源流表与所述待修改的同步规则解除关联;并将所述新同步规则中包括的源流表标识对应的源流表与所述新同步规则建立关联。
通过以上两种方式的描述,转发设备可以根据控制器的同步规则修改消息,对同步规则进行修改,并基于修改后的同步规则实现源流表与目标流表之间的同步。
参阅图5所示,在转发设备中删除同步规则的流程包括:
步骤501:转发设备接收所述控制器发送的同步规则删除消息。
步骤502:所述转发设备根据所述同步规则删除消息,确定待删除的同步规则。
在执行步骤502时,可以通过多种方式,例如,可以根据同步规则删除消息中包含的同步规则标识或者其它同步规则的指示信息,确定待删除的同步规则,或者,同步规则删除消息中还包含同步规则,然后根据该同步规则在本地中的同步规则中进行匹配,匹配到时,将匹配到的同步规则作为待删除的同步规则。
所述转发设备在确定待删除的同步规则之后,还包括:
在所述待删除的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待删除的同步规则生成的目标流表项,并对确定的目标流表项进行无效处理。
其中,对目标流表项进行无效处理,即令该目标流表项在指定时刻后失去工作能力,无法进行匹配,该指定时刻可以为查找到该目标流表项时,或者在查找到该目标流表项设定时间段后,本发明对此不做限定。对目标流表项进行无效处理包括多种方式,例如,将目标流表项进行删除;或者对目标流表项设置设定的老化时间,其中该老化时间可以为转发设备预设的,或者用户设置的,或者复制该目标流表项对应的源流表项的老化时间等;或者将目标流表项中的某一项可以指示该目标流表项工作能力的信息进行修改等,本发明对此不做限定。其中,对目标流表项进行无效处理时,当所述目标流表项中保存有同步规则标识时,还包括:将所述目标流表项中包含的同步规则标识删除,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的。
所述转发设备在所述待删除的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待删除的同步规则生成的目标流表项,可以包括:
当所述待删除的同步规则包含的目标流表标识对应的目标流表中,目标流表项中保存有同步规则标识时,在所述目标流表中,查找包含的同步规则标识为所述待删除的同步规则的同步规则标识的目标流表项,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的;
将查找到的目标流表项作为基于所述待删除的同步规则生成的目标流表项。
若之前基于该待删除的同步规则生成目标流表项在安装时,该目标流表项添加了同步规则标识,用以指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的,则通过待删除的同步规则的同步规则标识就可以快速找到基于所述待删除的同步规则生成的目标流表项;若之前基于该待删除的同步规则生成目标流表项在安装时,该目标流表项未添加同步规则标识,则可以根据该待删除的同步规则中的源流表项的转换规则,将源流表中的每一项源流表项进行转换,生成目标流表项,并在目标流表中查找是否包含生成的目标流表项,如果包含,则在目标流表中包含的该目标流表项即为基于所述待删除的同步规则生成的目标流表项。
步骤503:所述转发设备将所述待删除的同步规则中包括的源流表标识对应的源流表与所述待删除的同步规则解除关联。
可选的,所述转发设备在将所述待删除的同步规则中包括的源流表标识对应的源流表与所述待删除的同步规则解除关联之后,还包括:
向所述控制器发送同步规则删除响应消息。
通过以上步骤的描述,转发设备可以根据控制器的同步规则删除消息,对同步规则进行删除,并基于修改后的同步规则实现源流表与目标流表之间的同步。
基于以上实施例,参阅图6所示,本发明实施例还提供了一种转发设备,该转发设备600包括:第一确定单元601,第一处理单元602,其中,
第一确定单元601,用于在对一源流表修改后,确定与所述源流表关联的同步规则,同步规则中包括源流表标识、目标流表标识,以及源流表项的转换规则,其中,所述源流表项为所述源流表标识对应的源流表中的流表项,所述同步规则包括的源流表标识与所述源流表的源流表标识相同;
第一处理单元602,用于根据所述源流表,确定待同步的源流表项,并根据所述源流表项的转换规则,对所述待同步的源流表项进行转换,将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中。
可选的,所述第一处理单元602,用于:
当对所述源流表修改为将待增加的源流表项安装至所述源流表中时,将安装到所述源流表中所述待增加的源流表项作为待同步的源流表项;或者
当对所述源流表修改为对所述源流表中待修改的源流表项进行修改时,将所述源流表中的所述待修改的源流表项、修改后的源流表项作为待同步的源流表项;或者
当对所述源流表修改为将所述源流表中的待无效的源流表项进行无效处理时,将所述源流表中所述待无效的源流表项作为待同步的源流表项。
可选的,当对所述源流表修改为将待增加的源流表项安装至所述源流表中时,所述第一处理单元602,用于:
将生成的目标流表项安装到所述目标流表标识对应的目标流表中。
可选的,当对所述源流表修改为对所述源流表中待修改的源流表项进行修改时,所述第一处理单元602,用于:
在所述目标流表标识对应的目标流表中,查找到所述待修改的源流表项转换后生成的目标流表项后,对查找到的目标流表项进行无效处理;
将修改后的源流表项转换后生成的目标流表项安装到所述目标流表标识对应的目标流表中。
可选的,当对所述源流表修改为将所述源流表中的待无效的源流表项进行无效处理时,所述第一处理单元602,用于:
在所述目标流表标识对应的目标流表中,查找到生成的目标流表项后,对查找到的目标流表项进行无效处理。
可选的,所述第一处理单元602,在将生成的目标流表项安装到所述目标流表标识对应的目标流表中时,用于:
将生成的包含有同步规则标识的所述目标流表项,安装到所述目标流表标识对应的目标流表中,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的。
可选的,所述转发设备600,还包括:
第一发送单元,用于在将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中之后,向所述控制器发送目标流表变化通知消息。
可选的,所述转发设备600,还包括:
第一接收单元,用于接收所述控制器发送同步规则增加消息,所述同步规则增加消息中包含待增加的同步规则;
第一关联单元,用于将所述待增加的同步规则中包括的源流表标识对应的源流表与接收的所述待增加的同步规则建立关联。
可选的,所述转发设备600,还包括:
第一校验单元,用于在接收到控制器发送的同步规则增加消息之后,在将所述待增加的同步规则中包括的源流表标识对应的源流表、接收的所述同步规则建立关联之前,对所述待增加的同步规则进行校验,并确定校验通过。
可选的,第二发送单元,用于:
在将所述待增加的同步规则中包括的源流表标识对应的源流表、接收的所述同步规则建立关联之后,向所述控制器发送同步规则增加响应消息。
可选的,所述转发设备600,还包括:
第二处理单元,用于在接收所述控制器发送同步规则增加消息之后,根据所述待增加的同步规则包括的源流表项的转换规则,对所述待增加的同步规则中包括的源流表标识对应的源流表中的源流表项进行转换,将转换后生成的目标流表项同步至所述待增加的同步规则包括的目标流表标识对应的目标流表中。
可选的,所述转发设备600,还包括:
第二接收单元,用于接收所述控制器发送的同步规则修改消息,所述同步规则修改消息中包括同步规则修改规则;
第二确定单元,用于根据所述同步规则修改消息,确定待修改的同步规则;
生成单元,用于根据所述同步规则修改规则、以及所述待修改的同步规则,生成新同步规则,其中,所述新同步规则与所述待修改的同步规则中包括的源流表标识和目标流表标识相同,且包括的源流表项的转换规则不同;
第二关联单元,用于将所述待修改的同步规则中包括的源流表标识对应的源流表与所述待修改的同步规则解除关联;并将所述新同步规则中包括的源流表标识对应的源流表与所述新同步规则建立关联。
可选的,所述转发设备600,还包括:
第二校验单元,用于在确定待修改的同步规则之后,在生成新同步规则之前,基于所述待修改的同步规则,对所述同步规则修改消息进行校验,并确定校验通过。
可选的,所述转发设备600,还包括:
第二接收单元,用于接收所述控制器发送的同步规则修改消息,所述同步规则修改消息中包括新同步规则;
第二确定单元,用于根据所述同步规则修改消息,确定待修改的同步规则,其中,所述新同步规则与所述待修改的同步规则中包括的源流表标识和目标流表标识相同,且包括的源流表项的转换规则不同;
第二关联单元,用于将所述待修改的同步规则中包括的源流表标识对应的源流表与所述待修改的同步规则解除关联;并将所述新同步规则中包括的源流表标识对应的源流表与所述新同步规则建立关联。
可选的,所述转发设备600,还包括:
第二校验单元,用于在接收所述控制器发送的同步规则修改消息之后,在确定待修改的同步规则之前,对所述新同步规则进行校验,并确定校验通过。
可选的,所述转发设备600,还包括:
第三处理单元,用于在确定待修改的同步规则之后,在所述待修改的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待修改的同步规则生成的目标流表项;
对确定的目标流表项进行无效处理。
可选的,所述第三处理单元,用于:
当所述待修改的同步规则包含的目标流表标识对应的目标流表中,目标流表项中保存有同步规则标识时,在所述目标流表中,查找包含的同步规则标识为所述待修改的同步规则的同步规则标识的目标流表项,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的;
将查找到的目标流表项作为基于所述待修改的同步规则生成的目标流表项。
可选的,所述第三处理单元,还用于:
在对确定的目标流表项进行无效处理之后,根据所述新同步规则包括的源流表项的转换规则,对所述新同步规则包括的源流表标识对应的源流表中的源流表项进行转换,将转换后生成的目标流表项同步至所述新同步规则包括的目标流表标识对应的目标流表中。
可选的,所述第三处理单元,在将转换后生成的目标流表项同步至所述新同步规则包括的目标流表标识对应的目标流表中时,用于:
将生成的目标流表项安装到所述新同步规则包括的目标流表标识对应的目标流表中。
可选的,所述转发设备600,还包括:
第三发送单元,用于在确定待修改的同步规则之后,向所述控制器发送同步规则修改响应消息。
可选的,所述转发设备600,还包括:
第三接收单元,用于接收所述控制器发送的同步规则删除消息;
第三确定单元,用于根据所述同步规则删除消息,确定待删除的同步规则;
第三关联单元,用于将所述待删除的同步规则中包括的源流表标识对应的源流表与所述待删除的同步规则解除关联。
可选的,所述转发设备600,还包括:
第四处理单元,用于所述转发设备在确定待删除的同步规则之后,在所述待删除的同步规则包含的目标流表标识对应的目标流表中,确定基于所述待删除的同步规则生成的目标流表项,并对确定的目标流表项进行无效处理。
可选的,所述第四处理单元,用于:
当所述待删除的同步规则包含的目标流表标识对应的目标流表中,目标流表项中保存有同步规则标识时,在所述目标流表中,查找包含的同步规则标识为所述待删除的同步规则的同步规则标识的目标流表项,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的;
将查找到的目标流表项作为基于所述待删除的同步规则生成的目标流表项。
可选的,所述转发设备600,还包括:
第四发送单元,用于在将所述待删除的同步规则中包括的源流表标识对应的源流表与所述待删除的同步规则解除关联之后,向所述控制器发送同步规则删除响应消息。
可选的,对待无效的源流表项进行无效处理,包括:
对所述待无效的源流表项设置设定的老化时间。
可选的,对目标流表项进行无效处理,包括:
对所述目标流表项设置设定的老化时间。
可选的,对目标流表项进行无效处理,还包括:
当所述目标流表项中保存有同步规则标识时,将所述目标流表项中包含的同步规则标识删除,其中,所述同步规则标识用于指示所述目标流表项是基于所述同步规则标识对应的同步规则生成的。
基于上述实施例,参阅图7所示,本发明实施例还提供了一种转发设备,该转发设备700包括:收发器701、处理器702、总线703以及存储器704,其中:
收发器701、处理器702以及存储器704通过总线703相互连接;总线 703可以是外设部件互连标准(peripheral component interconnect,简称PCI) 总线或扩展工业标准结构(extended industry standard architecture,简称EISA) 总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
收发器701用于与控制器进行通信,如接收控制器发送的同步规则增加消息,或者同步规则修改消息,或者同步规则删除消息等。
处理器702用于实现本发明实施例图1所示的流表同步的实现方法,包括:
在对一源流表修改后,确定与所述源流表关联的同步规则,同步规则中包括源流表标识、目标流表标识,以及源流表项的转换规则,其中,所述源流表项为所述源流表标识对应的源流表中的流表项,所述同步规则包括的源流表标识与所述源流表的源流表标识相同;
根据所述源流表,确定待同步的源流表项,并根据所述源流表项的转换规则,对所述待同步的源流表项进行转换,将转换后生成的目标流表项同步至所述目标流表标识对应的目标流表中。
该转发设备700还包括存储器704,用于存放程序等。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。存储器704可能包含随机存取存储器(random accessmemory,RAM),也可能还包括非易失性存储器 (non-volatile memory),例如至少一个磁盘存储器。处理器702执行存储器 704所存放的应用程序,实现如上流表同步的实现方法。
综上所述,通过本发明实施例中提供的一种流表同步的实现方法及转发设备,该方法通过在转发设备中的源流表修改后,可以直接确定待同步的源流表项,并基于与该源流表关联的同步规则,对该待同步的流表项进行转换,并将转换后生成的目标流表项同步至目标流表中,由于不需要通过控制器进行流表间的同步,而是转发设备独立完成整个同步过程,因此避免了浪费控制器的计算资源,也避免了交换机与控制器之间的信令交互,减小了流表同步的时延,实现了转发设备和控制器的彻底解耦,同时,在转发设备中源流表与包含该源流表标识的同步规则建立关联,即将同步规则在源流表侧进行维护,在源流表修改后,可以直接确定与源流表关联的同步规则,进而进行同步操作,且由于同步规则中还包含有目标流表标识,因此,可以快速找到目标流表进行同步,进一步缩小了流表同步的时延,提高了流表同步的效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。