发明内容
本发明实施例提供一种流表配置、查询、表项删除方法及装置,用以解决当存在设备复位时需要对整个流表进行重新配置所带来的工作量大、操作耗时较长的问题。
第一方面,提供一种流表配置方法,包括:
接收配置指令;
在用于存储流表表项的流表中查找所述配置指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、用于表征流表表项版本信息的第一标识符、数据信息之间的对应关系;
当查找到的流表表项中的设备ID和所述配置指令中携带的设备ID相同时,在存储有第二标识符的设备识别表中,查找所述查找到的流表表项中的设备ID对应的第二标识符;其中第二标识符用于表征其对应的设备ID在所述流表中对应的有效流表表项的版本信息;
当所述查找到的流表表项中的第一标识符和查找到的第二标识符不相同时,采用所述配置指令中携带的数据信息更新所述查找到的流表表项中的数据信息。
结合第一方面,在第一种可能的实现方式中,还包括:
当在所述流表中,未查找到所述配置指令中携带的索引对应的流表表项时,在所述设备识别表中,查找所述配置指令中携带的设备ID对应的第二标识符,作为第一标识符;
根据所述配置指令中携带的索引、设备ID、数据信息和所述第一标识符,在所述流表中新建对应的流表表项。
结合第一方面,或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述设备识别表具体存储有设备ID与第二标识符之间的对应关系;或者
存储有第二标识符,并采用设备ID作为第二标识符的存储地址信息。
第二方面,提供一种流表查询方法,包括:
接收查询指令;
在用于存储流表表项的流表中,查找所述查询指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、用于表征流表表项版本信息的第一标识符、数据信息之间的对应关系;
在存储有第二标识符的设备识别表中,查找查找到的流表表项中的设备ID对应的第二标识符;其中第二标识符用于表征其对应的设备ID在所述流表中对应的有效流表表项的版本信息;
当所述查找到的流表表项中的第一标识符和所述查找到的第二标识符相同时,确定查询结果为所述查找到的流表表项中的数据信息。
结合第二方面,在第一种可能的实现方式中,还包括:
当所述查找到的流表表项中的第一标识符和所述查找到的第二标识符不相同时,删除所述查找到的流表表项。
结合第二方面,或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述设备识别表具体存储有设备ID与第二标识符之间的对应关系;或者
存储有第二标识符,并采用设备ID作为第二标识符的存储地址信息。
第三方面,提供一种流表表项删除方法,包括:
接收删除指令;
在用于存储流表表项的流表中,查找所述删除指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、数据信息之间的对应关系;
当查找到的流表表项中的设备ID和所述删除指令中携带的设备ID相同时,删除所述查找到的流表表项。
第四方面,提供一种流表配置装置,包括:
第一接收单元,用于接收配置指令;
第一查找单元,用于在用于存储流表表项的流表中,查找所述配置指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、用于表征流表表项版本信息的第一标识符、数据信息之间的对应关系;
第二查找单元,用于当查找到的流表表项中的设备ID和所述配置指令中携带的设备ID相同时,在存储有第二标识符的设备识别表中,查找所述查找到的流表表项中的设备ID对应的第二标识符;其中第二标识符用于表征其对应的设备ID在所述流表中对应的有效流表表项的版本信息;
配置单元,用于当所述查找到的流表表项中的第一标识符和查找到的第二标识符不相同时,采用所述配置指令中携带的数据信息更新所述查找到的流表表项中的数据信息。
结合第四方面,在第一种可能的实现方式中,所述第二查找单元还用于当在所述流表中,未查找到所述配置指令中携带的索引对应的流表表项时,在所述设备识别表中,查找所述配置指令中携带的设备ID对应的第二标识符,作为第一标识符;
所述配置单元,还用于根据所述配置指令中携带的索引、设备ID、数据信息和所述第一标识符,在所述流表中新建对应的流表表项。
结合第四方面,或者第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述设备识别表具体存储有设备ID与第二标识符之间的对应关系;或者
存储有第二标识符,并采用设备ID作为第二标识符的存储地址信息。
第五方面,提供一种流表查询装置,包括:
第二接收单元,用于接收查询指令;
第三查找单元,用于在用于存储流表表项的流表中,查找所述查询指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、用于表征流表表项版本信息的第一标识符、数据信息之间的对应关系;
第四查找单元,用于在存储有第二标识符的设备识别表中,查找查找到的流表表项中的设备ID对应的第二标识符;其中第二标识符用于表征其对应的设备ID在所述流表中对应的有效流表表项的版本信息;
确定单元,用于当所述查找到的流表表项中的第一标识符和所述查找到的第二标识符相同时,确定查询结果为所述查找到的流表表项中的数据信息。
结合第五方面,在第一种可能的实现方式中,还包括第一删除单元,用于当所述查找到的流表表项中的第一标识符和所述查找到的第二标识符不相同时,删除所述查找到的流表表项。
结合第一方面,或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述设备识别表具体存储有设备ID与第二标识符之间的对应关系;或者
存储有第二标识符,并采用设备ID作为第二标识符的存储地址信息。
第六方面,提供一种流表表项删除装置,包括:
第三接收单元,用于接收删除指令;
第五查找单元,用于在用于存储流表表项的流表中,查找所述删除指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、数据信息之间的对应关系;
第二删除单元,用于当查找到的流表表项中的设备ID和所述删除指令中携带的设备ID相同时,删除所述查找到的流表表项。
根据第一方面提供的流表配置方法,第二方面提供的流表查询方法,第三方面提供的流表表项删除方法,第四方面提供的流表配置装置,第五方面提供的流表查询装置,第六方面提供的流表表项删除装置,在目前的流表表项中增加设备ID和第一标识符,并建立设备识别表用于存储设备ID与第二标识符的对应关系,其中第一标识符表征了对应流表表项的版本信息,第二标识符表征了对应的设备ID在流表中对应的有效流表表项的版本信息,当发生设备复位后,需要进行流表配置时,配置指令中可以携带索引和该复位设备ID,通过判断索引对应的流表表项中的设备ID和配置指令中携带的复位设备ID是否相同,可以确定该流表表项是否为复位设备对应的流表表项,当确定该流表表项不是复位设备对应的流表表项时,不对该流表表项进行重新配置;而对于复位设备对应的流表表项,通过判断该流表表项中的第一标识符和复位设备ID对应的第二标识符是否相同,可以确定该流表表项是否有效,当确定该流表表项有效时,不对该流表表项进行重新配置。可见,采用本发明提供的方案,在存在设备复位时不会影响其他设备,不需要对整个流表进行重新配置。
具体实施方式
为了给出当存在设备复位时不需要对整个流表进行重新配置的实现方案,本发明实施例提供了一种流表配置方法、查询方法、表项删除及装置,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本发明实施例中,流表结构如图2a)或图2b)所示,用于存储索引与设备ID、第一标识符、数据信息之间的对应关系;第一标识符表征了流表表项的版本信息。每个设备可对应于多条流表表项。
并且,建立设备识别表,该设备识别表结构可以如图2a)所示,仅存储第二标识符,并采用设备ID作为第二标识符的存储地址信息;也可以如图2b)所示,存储设备ID与第二标识符之间的对应关系。第二标识符表征了其对应的设备ID在流表中对应的有效流表表项的版本信息。
在初始时刻,可以设定同一设备ID对应的第一标识符和第二标识符相同。当存在设备复位时,在设备识别表中与该复位设备ID对应的第二标识符更新,而该复位设备ID对应的第一标识符不更新。
进一步的,第二标识符的更新方式具体可以为自加或自减等方式。
例如,假设在初始时刻,图2a)或图2b)中,设备0在流表中对应的第一标识符和在设备识别表中对应的第二标识符相同,均为“0”。当设备0复位时,对应的第二标识符自加,更新为“1”;而设备0对应的第一标识符不变,仍为“0”。因此可以通过判断设备对应的第一标识符和第二标识符是否相同,来判断流表表项是否有效。
图2a)或图2b)所示的流表和设备识别表可应用于多种应用场景中,在虚拟化应用场景中,上述设备具体指Vcpu。
基于图2a)或图2b)所示的流表和设备识别表,本发明实施例提供一种流表配置方法,如图3所示,包括如下步骤:
步骤301、接收配置指令。
步骤302、在用于存储流表表项的流表中,查找该配置指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、用于表征流表表项版本信息的第一标识符、数据信息之间的对应关系。
步骤303、当查找到的流表表项中的设备ID和该配置指令中携带的设备ID相同时,在存储有第二标识符的设备识别表中,查找该查找到的流表表项中的设备ID对应的第二标识符;其中第二标识符用于表征其对应的设备ID在该流表中对应的有效流表表项的版本信息。
当查找到的流表表项中的设备ID和配置指令中携带的设备ID相同时,表明查找到的流表表项是欲配置的流表表项;而当查找到的流表表项中的设备ID和配置指令中携带的设备ID不相同时,表明查找到的流表表项不是欲配置的流表表项。
步骤304、当该查找到的流表表项中的第一标识符和查找到的第二标识符不相同时,采用该配置指令中携带的数据信息更新该查找到的流表表项中的数据信息。
当查找到的流表表项中的第一标识符和查找到的第二标识符相同时,表明查找到的流表表项无效,需要进行更新;而当查找到的流表表项中的第一标识符和查找到的第二标识符相同时,表明查找到的流表表项有效,无需进行更新。
进一步的,当在该流表中,未查找到该配置指令中携带的索引对应的流表表项时,还可以在该流表中新建对应的流表表项。
下面结合附图,用具体实施例对本发明实施例提供的上述流表配置方法进行详细描述。
图4所示,为本发明实施例提供的流表配置方法的详细流程图,具体包括如下步骤:
步骤401、接收配置指令。
在本发明实施例中,可以由设备发出携带索引、设备ID和数据信息的配置指令。
步骤402、在流表中查找配置指令中携带的索引对应的流表表项。
当在流表中未查找到配置指令中携带的索引对应的流表表项时,进入步骤403;当在流表中查找到配置指令中携带的索引对应的流表表项时,进入步骤405。
步骤403、在设备识别表中查找配置指令中携带的设备ID对应的第二标识符,作为第一标识符。
步骤404、根据配置指令中携带的索引、设备ID、数据信息和上述步骤403确定的第一标识符,在流表中新建对应的流表表项。
该流表配置流程结束。
步骤405、判断查找到的流表表项中的设备ID和配置指令中携带的设备ID是否相同。
当确定查找到的流表表项中的设备ID和配置指令中携带的设备ID相同时,表明查找到的流表表项是欲配置的流表表项,进入步骤406;当确定查找到的流表表项中的设备ID和配置指令中携带的设备ID不相同时,表明查找到的流表表项不是欲配置的流表表项,进入步骤409。
步骤406、在设备识别表中,查找该设备ID对应的第二标识符。
步骤407、判断查找到的流表表项中的第一标识符和查找到的第二标识符是否相同。
当确定查找到的流表表项中的第一标识符和查找到的第二标识符不相同时,表明索引对应的流表表项无效,进入步骤408;当确定查找到的流表表项中的第一标识符和查找到的第二标识符相同时,表明索引对应的流表表项有效,进入步骤409。
步骤408、采用配置指令中携带的数据信息更新查找到的的流表表项中的数据信息。
步骤409、该流表配置流程结束。
此时还可以进行其它处理,例如向发出提示等,具体可以根据实际情况而定。
可见,采用本发明实施例提供的流表配置方法,仅会对无效的欲配置流表表项进行重新配置。将该方案应用于设备重启后的流表配置,相比于现有技术中对整个流表进行重新配置的方案,能够减少了配置工作量,耗时较短。
现有技术中,存在设备复位后,若不进行流表重新配置,后续流表查询时确定出的查询结果很有可能是不准确的。而采用本发明下述实施例提供的流表查询方法,存在设备复位后,即使不进行流表重新配置,仍然能保证流表查询结果的准确性。
基于图2a)或图2b)所示的流表和设备识别表,本发明实施例提供一种流表查询方法,如图5所示,包括如下步骤:
步骤501、接收查询指令。
步骤502、在用于存储流表表项的流表中,查找该查询指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、用于表征流表表项版本信息的第一标识符、数据信息之间的对应关系。
步骤503、在存储有第二标识符的设备识别表中,查找查找到的流表表项中的设备ID对应的第二标识符;其中第二标识符用于表征其对应的设备ID在该流表中对应的有效流表表项的版本信息。
步骤504、当该查找到的流表表项中的第一标识符和该查找到的第二标识符相同时,确定查询结果为该查找到的流表表项中的数据信息。
当查找到的流表表项中的第一标识符和查找到的第二标识符相同时,表明查找到的流表表项有效;而当查找到的流表表项中的第一标识符和查找到的第二标识符不相同时,表明查找到的流表表项无效。
进一步的,该流表查询方法还可以包括:
当查找到的流表表项中的第一标识符和查找到的第二标识符不相同时,删除查找到的流表表项。
下面结合附图,用具体实施例对本发明实施例提供的上述流表查询方法进行详细描述。
图6所示,为本发明实施例提供的流表查询方法的详细流程图,具体包括如下步骤:
步骤601、接收查询指令。
在本发明实施例中,查询指令仅携带索引即可。
步骤602、在流表中查找查询指令中携带的索引对应的流表表项。
当在流表中未查找到查询指令中携带的索引对应的流表表项时,进入步骤603;当在流表中查找到查询指令中携带的索引对应的流表表项时,进入步骤604。
步骤603、该流表查询流程结束。
此时,无查询结果。
步骤604、在设备识别表中,查找查找到的流表表项中的设备ID对应的第二标识符。
步骤605、判断查找到的流表表项中的第一标识符和查找到的第二标识符是否相同。
当确定查找到的流表表项中的第一标识符和查找到的第二标识符不相同时,表明查找到的流表表项无效,进入步骤606;当确定查找到的流表表项中的第一标识符和查找到的第二标识符相同时,表明查找到的流表表项有效,进入步骤607。
步骤606、删除查找到的流表表项。
该流表查询流程结束。
步骤607、确定本次查询结果为查找到的流表表项中的数据信息。
可见,采用本发明实施例提供的流表查询方法,仅能通过有效的流表表项确定出查询结果,不会通过无效的流表表项确定出查询结果。因此,在任一设备复位后,该复位设备对应的流表表项失效,通过该复位设备对应的流表表项无法确定出查询结果。所以,本发明实施例提供的流表查询方法能够保证确定出的查询结果的准确性,复位设备不会影响其它设备对应的流表表项的正常使用。
在本发明上述实施例提供的流表配置方法、流表查询方法过程中,均可以删除无效流表表项,在本发明的其它实施例中,也可以通过专门的删除指令对任意流表表项进行删除。
图7所示,为本发明实施例提供的流表表项删除方法的流程图,具体包括如下步骤:
步骤701、接收删除指令。
在本发明实施例中,可以由设备发出携带索引和设备ID的删除指令。
步骤702、在用于存储流表表项的流表中,查找该删除指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、数据信息之间的对应关系。
步骤703、当查找到的流表表项中的设备ID和该删除指令中携带的设备ID相同时,删除该查找到的流表表项。
当查找到的流表表项中的设备ID和该删除指令中携带的设备ID不相同时,表明查找到的流表表项不是欲删除的流表表项,此时可以向用户发出提示。
可见,采用本发明实施例提供的流表表项删除方法,能够防止流表表项的误删除。
基于同一发明构思,根据本发明上述实施例提供流表配置方法,相应地,本发明实施例还提供一种流表配置装置,其结构示意图如图8所示,具体包括:
第一接收单元801,用于接收配置指令;
第一查找单元802,用于在用于存储流表表项的流表中,查找该配置指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、用于表征流表表项版本信息的第一标识符、数据信息之间的对应关系;
第二查找单元803,用于当查找到的流表表项中的设备ID和该配置指令中携带的设备ID相同时,在存储有第二标识符的设备识别表中,查找该查找到的流表表项中的设备ID对应的第二标识符;其中第二标识符用于表征其对应的设备ID在该流表中对应的有效流表表项的版本信息;
配置单元804,用于当该查找到的流表表项中的第一标识符和查找到的第二标识符不相同时,采用该配置指令中携带的数据信息更新该查找到的流表表项中的数据信息。
进一步的,第二查找单元803还用于当在该流表中,未查找到该配置指令中携带的索引对应的流表表项时,在该设备识别表中,查找该配置指令中携带的设备ID对应的第二标识符,作为第一标识符;
配置单元804,还用于根据该配置指令中携带的索引、设备ID、数据信息和该第一标识符,在该流表中新建对应的流表表项。
进一步的,设备识别表具体存储有设备ID与第二标识符之间的对应关系;或者存储有第二标识符,并采用设备ID作为第二标识符的存储地址信息。
上述各单元的功能可对应于图3或图4所示流程中的相应处理步骤,在此不再赘述。
基于同一发明构思,根据本发明上述实施例提供流表查询方法,相应地,本发明实施例还提供一种流表查询装置,其结构示意图如图9所示,具体包括:
第二接收单元901,用于接收查询指令;
第三查找单元902,用于在用于存储流表表项的流表中,查找该查询指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、用于表征流表表项版本信息的第一标识符、数据信息之间的对应关系;
第四查找单元903,用于在存储有第二标识符的设备识别表中,查找查找到的流表表项中的设备ID对应的第二标识符;其中第二标识符用于表征其对应的设备ID在该流表中对应的有效流表表项的版本信息;
确定单元904,用于当该查找到的流表表项中的第一标识符和该查找到的第二标识符相同时,确定查询结果为该查找到的流表表项中的数据信息。
进一步的,该流表查询装置,还包括第一删除单元905,用于当该查找到的流表表项中的第一标识符和该查找到的第二标识符不相同时,删除该查找到的流表表项。
进一步的,设备识别表具体存储有设备ID与第二标识符之间的对应关系;或者存储有第二标识符,并采用设备ID作为第二标识符的存储地址信息。
上述各单元的功能可对应于图5或图6所示流程中的相应处理步骤,在此不再赘述。
基于同一发明构思,根据本发明上述实施例提供流表表项删除方法,相应地,本发明实施例还提供一种流表表项删除装置,其结构示意图如图10所示,具体包括:
第三接收单元1001,用于接收删除指令;
第五查找单元1002,用于在用于存储流表表项的流表中,查找该删除指令中携带的索引对应的流表表项;其中每一流表表项包含索引与设备ID、数据信息之间的对应关系;
第二删除单元1003,用于当查找到的流表表项中的设备ID和该删除指令中携带的设备ID相同时,删除该查找到的流表表项。
上述各单元的功能可对应于图7所示流程中的相应处理步骤,在此不再赘述。
综上所述,采用本发明实施例提供的方案,能够在流表管理时区分支持多设备,任一设备对对应的流表表项的操作均不会影响其它设备对应的流表表项。
本申请的实施例所提供的流表配置装置、流表查询装置及流表表项删除装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的单元划分方式仅是众多单元划分方式中的一种,如果划分为其他单元或不划分单元,只要流表配置装置、流表查询装置及流表表项删除装置具有上述功能,都应该在本申请的保护范围之内。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。