一种交换机控制面的测试方法、系统、设备及存储介质与流程

文档序号:17158092发布日期:2019-03-20 00:16阅读:166来源:国知局
本发明实施例涉及通信
技术领域
:,具体涉及一种交换机控制面的测试方法、系统、设备及存储介质。
背景技术
::随着数字通信领域的不断发展,传统交换机的功能也越来越不能满足人们的日常应用需求,在追求产品创新的同时,必须要对其质量进行严格的把控,因此交换机新品发布前如何有效的对各功能模块进行快速部署,并完成测试成为亟待解决的重要课题。图1为现有技术中交换机控制面测试系统示意图,如图1所示,目前,为了测试交换机某个模块升级后的功能正确与否,需要对交换机控制面逻辑进行测试:首先,搭建硬件设备环境,通过计算机(pc)设置交换机(switch)接收报文端口和输出报文端口,之后,通过报文发生分析器(packetgenerator&analyzer)通过构造报文打流的方式产生数据包,并发送至交换机对应的接收端口,然后交换机对数据包进行相应的转发处理之后,通过输出端口输出报文,报文发生分析器根据报文的转发流程判断交换机的控制面逻辑是否正确。然而,现有控制面测试方法在项目启动准备阶段会消耗大量时间在设备的协调与搭建上,尤其是箱式设备,报文发生器等资源非常紧缺,从开始着手到测试环境的准备完成往往需要花一上午或者一整天时间。此外,设备齐全后的开发阶段中修改代码、重新编译、重启进程等这些繁琐的方式也需要消耗大量时间。技术实现要素:针对现有技术中的缺陷,本发明实施例提供了一种交换机控制面的测试方法、系统、设备及存储介质。第一方面,本发明实施例提供一种交换机控制面的测试方法,包括:获取交换机测试输入参数,所述输入参数包括报文信息和报文转发行为模型;将所述输入参数转换为交换机控制面对应的硬件表项;对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表;将所述ovs流表添加至开放虚拟交换标准ovs系统中;调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,并根据所述ovs流表对所述测试报文进行模拟转发处理;获取所述ovs系统输出的所述测试报文对应的处理流程;根据所述处理流程和所述测试报文对应的报文转发行为模型,判断交换机控制面的数据处理逻辑是否正确。如上述方法,可选地,所述报文信息包括:报文的作用域信息;相应地,所述将所述输入参数转换为交换机控制面对应的硬件表项,包括:分别对每组输入参数进行转换,确定交换机对应的访问控制列表acl、访问控制列表应用apply和每组输入参数对应的访问控制条目ace;根据所述访问控制列表acl、访问控制列表应用apply和访问控制条目ace,确定至少一条三态内容寻址存储器tcam表项;根据交换机芯片对应的端口位图信息和所述输入参数对应的作用域信息,将每条tcam表项与至少一个交换机端口进行绑定,确定交换机控制面对应的硬件表项。如上述方法,可选地,所述硬件表项包括:访问控制列表acl对应的acl优先级和访问控制条目ace对应的ace优先级;相应地,所述对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表,包括:根据所述硬件表项对应的acl优先级和ace优先级,确定所述硬件表项中每个表项对应的ovs优先级;对所述硬件表项进行适配处理,根据适配结果和所述ovs优先级确定开放虚拟交换标准ovs流表。如上述方法,可选地,所述对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表,还包括:对所述报文信息进行适配处理,确定ovs报文参数信息;相应地,所述调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,包括:调用所述ovs系统的系统工具构造与所述ovs报文参数信息相对应的测试报文。如上述方法,可选地,所述将所述ovs流表添加至开放虚拟交换标准ovs系统中,包括:将所述ovs流表添加至所述ovs系统中的转发平面中;相应地,所述调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,并根据所述ovs流表对所述测试报文进行模拟转发处理,包括:调用所述ovs系统中的虚拟报文发生器构造与所述报文信息相对应的测试报文;若所述测试报文命中所述转发平面中的ovs流表,则根据所述ovs流表中的报文转发行为对所述测试报文进行模拟转发处理。第二方面,本发明实施例提供一种交换机控制面的测试系统,包括:输入模块,用于获取交换机测试输入参数,所述输入参数包括报文信息和报文转发行为模型;控制面模拟器,用于将所述输入参数转换为交换机控制面对应的硬件表项;适配器,用于对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表;安装模块,用于将所述ovs流表添加至开放虚拟交换标准ovs系统中;转发面模拟器,用于调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,并根据所述ovs流表对所述测试报文进行模拟转发处理;输出模块,用于获取所述ovs系统输出的所述测试报文对应的处理流程;分析模块,用于根据所述处理流程与所述测试报文对应的报文转发行为模型,判断交换机控制面的数据处理逻辑是否正确。如上述系统,可选地,所述报文信息包括:报文的作用域信息;相应地,所述控制面模拟器包括:转换单元,用于分别对每组输入参数进行转换,确定交换机对应的访问控制列表acl、访问控制列表应用apply和每组输入参数对应的访问控制条目ace;模拟安装单元,用于根据所述访问控制列表acl、访问控制列表应用apply和访问控制条目ace,确定至少一条三态内容寻址存储器tcam表项;绑定单元,用于根据交换机芯片对应的端口位图信息和所述输入参数对应的作用域信息,将每条tcam表项与至少一个交换机端口进行绑定,确定交换机控制面对应的硬件表项。如上述系统,可选地,所述硬件表项包括:访问控制列表acl对应的acl优先级和访问控制条目ace对应的ace优先级;相应地,所述适配器包括:优先级确定单元,用于根据所述硬件表项对应的acl优先级和ace优先级,确定所述硬件表项中每个表项对应的ovs优先级;适配单元,用于对所述硬件表项进行适配处理,根据适配结果和所述ovs优先级确定开放虚拟交换标准ovs流表。第三方面,本发明实施例提供一种电子设备,包括:存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:获取交换机测试输入参数,所述输入参数包括报文信息和报文转发行为模型;将所述输入参数转换为交换机控制面对应的硬件表项;对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表;将所述ovs流表添加至开放虚拟交换标准ovs系统中;调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,并根据所述ovs流表对所述测试报文进行模拟转发处理;获取所述ovs系统输出的所述测试报文对应的处理流程;根据所述处理流程和所述测试报文对应的报文转发行为模型,判断交换机控制面的数据处理逻辑是否正确。第四方面,本发明实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:获取交换机测试输入参数,所述输入参数包括报文信息和报文转发行为模型;将所述输入参数转换为交换机控制面对应的硬件表项;对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表;将所述ovs流表添加至开放虚拟交换标准ovs系统中;调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,并根据所述ovs流表对所述测试报文进行模拟转发处理;获取所述ovs系统输出的所述测试报文对应的处理流程;根据所述处理流程和所述测试报文对应的报文转发行为模型,判断交换机控制面的数据处理逻辑是否正确。本发明实施例提供的交换机控制面的测试方法,通过将交换机测试输入参数转换为控制面硬件表项,对硬件表项进行适配,转换为ovs流表,并借助第三方成熟的开源软件ovs,对测试报文进行模拟转发,使得对交换机强依赖的控制面模块能够在桌面端复现,使开发人员摆脱对设备环境的依赖,提升测试用例的生命周期与可扩展性,实现了一种简单、高效的自动化测试方式,解决了交换机真机测试存在的繁琐、耗时长的问题。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中交换机控制面测试系统示意图;图2为本发明实施例提供的交换机控制面的测试方法流程示意图;图3为开放虚拟交换标准系统架构图;图4为本发明实施例提供的交换机控制面的测试系统的结构示意图;图5为本发明实施例提供的电子设备的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图2为本发明实施例提供的交换机控制面的测试方法流程示意图,如图2所示,该方法包括:步骤s21、获取交换机测试输入参数,所述输入参数包括报文信息和报文转发行为模型;具体地,为了实现自动化测试交换机控制面逻辑是否正确,需要构造输入参数,例如,利用测试系统提供的统一函数接口实现将数据注入到测试系统中。首先用户在测试系统的界面中输入交换机测试输入参数,输入参数包括报文信息和报文转发模型,报文信息可以包括报文的源ip地址sip、源mac地址smac、目的ip地址dip、目的mac地址dmac等报文信息。报文转发行为模型是针对匹配某个字段的报文执行相关的动作,可以包括报文丢弃drop、报文重定向redirect、复制至中央处理器copy_to_cpu等报文处理动作。例如:输入参数为:sip=192.168.193.185,actions=drop,那么如果有报文携带相同的sip字段,按照报文转发行为模型就会执行丢弃操作。步骤s22、将所述输入参数转换为交换机控制面对应的硬件表项;具体地,当确定交换机测试输入参数之后,需要对交换机进行硬件配置,确定交换机控制面对应的硬件表项,其中硬件表项为整个测试系统的测试对象,如果硬件表项转换正确,则测试系统中测试报文的转发流程与报文转发行为模型一致,若硬件表项转换错误,则会影响整个自动化测试系统输出。将输入参数转换为交换机控制面对应的硬件表项实际上是模拟交换机控制面系统,如果输入参数转换为硬件表项正确,则交换机控制面模拟系统逻辑正确,否则,交换机控制面模拟系统逻辑错误。步骤s23、对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表;具体地,现有交换机控制面测试方法将硬件表项直接安装到交换机上,采用交换机实体进行测试,与现有技术不同,本发明实施例中,不需要将硬件表项安装至交换机产品上,而是通过开放虚拟交换标准(openvswitch,ovs),借助虚拟化技术将原有的真机测试转移到桌面端进行测试,将大大改善现有方式的弊端。openvswitch是一个由纯软件实现的交换机,由可移植的c代码实现,其目的是让大规模网络自动化可以通过编程进行扩展,同时ovs支持标准的管理接口和协议,例如网络流netflow,标准流sflow,端口镜像技术span,远程rspan,命令行界面cli,链路汇聚控制协议lacp,802.1ag协议等。此外它也可以实现跨越多个物理服务器的分布式环境。图3为开放虚拟交换标准系统架构图,如图3所示,可以看出其中内核(kernel)态的转发平面datapath负责报文的转发与处理,但是必须依赖流表flowtable,通过其它相关ovs工具包的使用,完成转发功能。常用的ovs工具包包括:ovs-dpctl、ovs-ofctl、ovsdb-tool和ovs-vsctl,其中,ovs-dpctl用于配置内核模块;ovs-ofctl用于查询和控制openflow交换机和控制器;ovsdb-tool用于创建和管理ovsdb,ovs-vsctl用于查询和更新ovs-vswitchd的配置。与真实的交换机相比:真实的交换机的计算能力受到硬件限制,如物理内存、处理器、网线通信带宽等。而ovs作为一款软件,运行时候的约束条件仅仅受操作系统控制,更加简单,更易于开发者进行搭建与开发。当需要使用ovs系统时,仅需要在测试系统中安装ovs工具即可。当确定交换机硬件表项之后,测试系统对硬件表项进行适配,转换为ovs流表,例如,硬件表项中的某些字段在ovs流表中对应的字段名称不同,则需要进行对应的转换,转换之后ovs流表中每个表中的项目entry对应一个硬件表项中的一条表项。通过适配处理,使得硬件表项转换为ovs流表,从而保证控制面测试可以转移到ovs虚拟化系统中。步骤s24、将所述ovs流表添加至开放虚拟交换标准ovs系统中;具体地,确定ovs流表之后,测试系统将ovs流表添加至开放虚拟交换标准ovs系统中,之后ovs系统就可以根据ovs流表进行报文的转发处理。例如,利用ovs-ofctl工具将ovs流表添加到ovs系统中。步骤s25、调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,并根据所述ovs流表对所述测试报文进行模拟转发处理;具体地,测试系统调用ovs系统的系统工具构造与用户输入的输入参数中报文信息相对应的测试报文,利用ovs的相关工具实现在桌面端上模拟交换机,并打流验证报文转发行为。ovs系统会产生与报文信息相符合的测试报文,然后根据ovs流表,对测试报文进行模拟转发,并输出测试报文的处理流程。步骤s26、获取所述ovs系统输出的所述测试报文对应的处理流程;具体地,ovs系统对测试报文进行模拟转发之后,会在控制台输出测试ovs系统中依据流表的处理逻辑,例如测试报文命中哪一条流表,执行什么操作等。ovs系统工具对测试报文进行模拟打流后,将其输出内容重定向打印到文本当中,通过ovs系统提供的统一shell脚本接口,可以对文本进行解析处理,获得ovs系统对测试报文的处理流程。步骤s27、根据所述处理流程和所述测试报文对应的报文转发行为模型,判断交换机控制面的数据处理逻辑是否正确。具体地,获取到测试报文的处理流程之后,判断测试报文的处理流程与用户输入参数中该报文对应的报文转发行为模型是否相匹配,若匹配,则表明交换机控制面的数据处理逻辑正确,若不匹配,则表明交换机控制面的数据处理逻辑错误。在实际应用中,可以将上述步骤用脚本形式进行封装调用,最终实现自动化测试的目的。如果测试成功,说明控制面模拟系统处理逻辑准确无误,反之则说明控制面模拟系统存在漏洞bug。本发明实施例提供的交换机控制面的测试方法,通过将交换机测试输入参数转换为控制面硬件表项,对硬件表项进行适配,转换为ovs流表,并借助第三方成熟的开源软件ovs,对测试报文进行模拟转发,使得对交换机强依赖的控制面模块能够在桌面端复现,使开发人员摆脱对设备环境的依赖,提升测试用例的生命周期与可扩展性,实现了一种简单、高效的自动化测试方式,解决了交换机真机测试存在的繁琐、耗时长的问题。在上述实施例的基础上,进一步地,所述报文信息包括:报文的作用域信息;相应地,所述将所述输入参数转换为交换机控制面对应的硬件表项,包括:分别对每组输入参数进行转换,确定交换机对应的访问控制列表acl、访问控制列表应用apply和每组输入参数对应的访问控制条目ace;根据所述访问控制列表acl、访问控制列表应用apply和访问控制条目ace,确定至少一条三态内容寻址存储器tcam表项;根据交换机芯片对应的端口位图信息和所述输入参数对应的作用域信息,将每条tcam表项与至少一个交换机端口进行绑定,确定交换机控制面对应的硬件表项。具体地,在交换机控制面测试时,还可以设置报文信息的作用域,即该报文作用于哪些端口。在实际应用中,可以为交换机设置域分类处理器(fieldprocessor,fp),fp用于根据报文特征对报文进行分类,设置报文作用的范围,其中分类规则和作用域根据测试业务需求设置。例如,当需要测试交换机某个应用时,根据该应用对应的报文信息和报文相关动作,确定分类规则和报文作用域,构造的输入参数是依据fp相关的字段例如sip、dip、smac、dmac、虚拟局域网标识vid、服务类型tos、输入端口in_port等与动作drop、redirect、copy_to_cpu等确定的。例如:设置输入参数sip=192.168.193.185,vid=4,actions=drop,那么如果有报文携带相同的sip,vid字段,就会按照报文转发行为模型执行丢弃操作。获取到输入参数之后,由于输入参数会有多组,测试系统首先根据这些输入参数确定每组输入参数对应的访问控制条目(acesscontrolentries,ace),对ace进行分组,每个组记为交换机的访问控制列表(accesscontrollist,acl),acl中包括了组内ace的共同的输入参数信息,并针对每条acl,测试系统设置其对应的访问控制列表应用apply,apply用于根据报文的作用域信息指定该条acl如何应用,例如该条acl作用范围、在交换机芯片的安装位置、该条acl中所有ace的统一行为信息等。根据apply就可确定acl在交换机芯片上的安装的寻址存储器tcam位置,其中,每条ace在硬件上分别安装在不同的寻址存储器tcam资源上,即将acl和ace转换为多条tcam表项。之后,将输入参数进行整合处理,实现一条表项能够对多个端口进行复用,具体地,采用端口位图的形式,根据作用域将一条tcam表项与多个交换机端口进行绑定,实现节约硬件资源的目的,最终得到硬件表项,该硬件表项同样包含了报文相关字段与转发行为,其输入参数类似,不同的是经过整合后,作用域字段可能不同。本发明实施例提供的交换机控制面的测试方法,通过将交换机测试输入参数转换为控制面硬件表项,对硬件表项进行适配,转换为ovs流表,并借助第三方成熟的开源软件ovs,对测试报文进行模拟转发,使得对交换机强依赖的控制面模块能够在桌面端复现,使开发人员摆脱对设备环境的依赖,解决了交换机真机测试存在的繁琐、耗时长的问题,提高了测试结果的准确性。在上述各实施例的基础上,进一步地,所述硬件表项包括:访问控制列表acl对应的acl优先级和访问控制条目ace对应的ace优先级;相应地,所述对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表,包括:根据所述硬件表项对应的acl优先级和ace优先级,确定所述硬件表项中每个表项对应的ovs优先级;对所述硬件表项进行适配处理,根据适配结果和所述ovs优先级确定开放虚拟交换标准ovs流表。具体地,在硬件产品中,以一条acl为例,其可能包含有多条的ace条目,在硬件上分别安装在不同的tcam资源,安装位置不同,各tcam的优先级不同,这是因为ace之间存在优先级,同时不同的acl之间也存在优先级之分。在实际应用中,apply参数指示了acl中每个ace的优先级。此外,ovs系统的流表资源模型是:每个表中的项目entry存在不同的优先级,因此一个报文在一个表中只能匹配命中并执行其中一个表项,因此可以将原有硬件模型中的acl,ace映射到ovs中的entry对象中,利用两者的优先级完成与entry中的优先级priority属性的映射,实现不同表项的优先级功能。具体地,根据acl和ace在硬件中的安装位置信息,确定acl优先级和ace优先级,然后根据ace优先级和其所在的acl优先级确定该ace对应的ovs优先级,例如直接将acl优先级与ace优先级相加,得到ovs优先级,之后,在ovs流表中,与该ace对应的表项中增加其对应的ovs优先级,这样,对于一条报文命中流表中多个表项时,就可根据优先级对报文进行转发。同样还有其他芯片模型需要转换,包括fp引擎位置stage,vag等,此处不再赘述。本发明实施例提供的交换机控制面的测试方法,通过将交换机测试输入参数转换为控制面硬件表项,对硬件表项进行适配,转换为ovs流表,并借助第三方成熟的开源软件ovs,对测试报文进行模拟转发,使得对交换机强依赖的控制面模块能够在桌面端复现,使开发人员摆脱对设备环境的依赖,解决了交换机真机测试存在的繁琐、耗时长的问题,通过对优先级的映射保证控制面数据处理模块逻辑的正确性,进一步提高测试结果的准确性。在上述各实施例的基础上,进一步地,所述对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表,还包括:对所述报文信息进行适配处理,确定ovs报文参数信息;相应地,所述调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,包括:调用所述ovs系统的系统工具构造与所述ovs报文参数信息相对应的测试报文。具体地,除了对硬件表项进行适配以外,还可以对输入参数信息中的报文信息进行适配,确定ovs报文参数信息,例如将输入参数中的相关字段如ip,mac等报文字段整理为ovs系统能够识别的标准字段。例如在输入参数中对源ip的描述为sip,在ovs系统中则需要转换为nw_src,对目的mac的描述在输入参数中为dmac,在ovs系统中则需要将其转换为dl_dst等。之后,调用ovs系统的系统工具,构造与ovs报文参数信息相对应的测试报文。本发明实施例提供的交换机控制面的测试方法,通过将交换机测试输入参数转换为控制面硬件表项,对硬件表项和输入参数进行适配,转换为ovs流表,并借助第三方成熟的开源软件ovs,对测试报文进行模拟转发,使得对交换机强依赖的控制面模块能够在桌面端复现,使开发人员摆脱对设备环境的依赖,解决了交换机真机测试存在的繁琐、耗时长的问题,通过对优先级的映射保证控制面数据处理模块逻辑的正确性,进一步提高测试结果的准确性。在上述各实施例的基础上,进一步地,所述将所述ovs流表添加至开放虚拟交换标准ovs系统中,包括:将所述ovs流表添加至所述ovs系统中的转发平面中;相应地,所述调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,并根据所述ovs流表对所述测试报文进行模拟转发处理,包括:调用所述ovs系统中的虚拟报文发生器构造与所述报文信息相对应的测试报文;若所述测试报文命中所述转发平面中的ovs流表,则根据所述ovs流表中的报文转发行为对所述测试报文进行模拟转发处理。具体地,对硬件表项进行转换,确定ovs流表之后,将ovs流表添加至ovs系统的转发平面中,具体地,利用ovs-ofctl工具实现流表添加,例如添加指令:ovs-ofctladd-flowbr0"table=0,in_port=1,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,actions=drop",实现添加一条流表在table=0中,匹配从端口1进入,且目的mac是01:00:00:00:00:00/01:00:00:00:00:00的报文,执行丢弃操作。之后,调用ovs系统中虚拟报文发生器对应的工具ovs-appctl工具构造报文相关字段信息。例如添加指令:ovs-appctlofproto/tracebr0in_port=1,dl_dst=01:00:00:00:00:00,将会构造一条从端口1进入,目的mac是01:00:00:00:00:00的报文。之后,该条报文命中转发平面中的某一条流表,则ovs系统根据流表中的动作信息对该测试报文进行转发,执行完毕后,将会在ovs控制台上输出报文在ovs中依据流表的处理逻辑,包括测试报文命中哪一条流表,执行什么操作等信息。根据这些信息,就可以确定报文是否命中,具体命中哪一条流表等信息,以及报文的转发行为与输入参数中的报文转发行为模型是否一致,从而判断硬件表项生成逻辑是否存在错误以及ovs流表是否成功安装。本发明实施例提供的交换机控制面的测试方法,通过将交换机测试输入参数转换为控制面硬件表项,对硬件表项和输入参数进行适配,转换为ovs流表,并借助第三方成熟的开源软件ovs,对测试报文进行模拟转发,使得对交换机强依赖的控制面模块能够在桌面端复现,使开发人员摆脱对设备环境的依赖,能够大大提升用例的执行效率,缩短模块开发周期,解决了交换机真机测试存在的繁琐、耗时长的问题,通过对优先级的映射保证控制面数据处理模块逻辑的正确性,进一步提高测试结果的准确性。图4为本发明实施例提供的交换机控制面的测试系统的结构示意图,如图4所示,该测试系统包括:输入模块41、控制面模拟器42、适配器43、安装模块44、转发面模拟器45、输出模块46和分析模块47,其中:输入模块41用于获取交换机测试输入参数,所述输入参数包括报文信息和报文转发行为模型;控制面模拟器42用于将所述输入参数转换为交换机控制面对应的硬件表项;适配器43用于对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表;安装模块44用于将所述ovs流表添加至开放虚拟交换标准ovs系统中;转发面模拟器45用于调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,并根据所述ovs流表对所述测试报文进行模拟转发处理;输出模块46用于获取所述ovs系统输出的所述测试报文对应的处理流程;分析模块47用于根据所述处理流程与所述测试报文对应的报文转发行为模型,判断交换机控制面的数据处理逻辑是否正确。具体地,用户在测试系统的界面中输入交换机测试输入参数,输入模块41获取输入参数,包括报文信息和报文转发模型,报文信息可以包括报文的源ip地址sip、源mac地址smac、目的ip地址dip、目的mac地址dmac等报文信息。报文转发行为模型包括报文丢弃drop、报文重定向redirect、复制至中央处理器copy_to_cpu等报文处理动作。之后控制面模拟器42对交换机进行硬件配置,确定交换机控制面对应的硬件表项,其中控制面模拟器42为整个测试系统的测试对象。如果输入参数转换为硬件表项正确,则控制面模拟器42逻辑正确,否则,控制面模拟器42逻辑错误。适配器43对硬件表项进行适配,转换为ovs流表,安装模块44将ovs流表添加至开放虚拟交换标准ovs系统中,之后转发面模拟器45调用ovs系统的系统工具构造与用户输入的输入参数中报文信息相对应的测试报文,利用ovs的相关工具实现在桌面端上模拟交换机,并打流验证报文转发行为。输出模块46通过ovs系统提供的统一shell脚本接口,可以对文本进行解析处理,获得ovs系统对测试报文的处理流程。分析模块47判断测试报文的处理流程与用户输入参数中该报文对应的报文转发行为模型是否相匹配,若匹配,则表明交换机控制面的数据处理逻辑正确,若不匹配,则表明交换机控制面的数据处理逻辑错误。本发明实施例提供的系统,用于实现上述方法,其功能具体参照上述方法实施例,此处不再赘述。本发明实施例提供的交换机控制面的测试系统,通过将交换机测试输入参数转换为控制面硬件表项,对硬件表项进行适配,转换为ovs流表,并借助第三方成熟的开源软件ovs,对测试报文进行模拟转发,使得对交换机强依赖的控制面模块能够在桌面端复现,使开发人员摆脱对设备环境的依赖,提升测试用例的生命周期与可扩展性,实现了一种简单、高效自动化测试方式,解决了交换机真机测试存在的繁琐、耗时长的问题。在上述实施例的基础上,进一步地,所述报文信息包括:报文的作用域信息;相应地,所述控制面模拟器包括:转换单元,用于分别对每组输入参数进行转换,确定交换机对应的访问控制列表acl、访问控制列表应用apply和每组输入参数对应的访问控制条目ace;模拟安装单元,用于根据所述访问控制列表acl、访问控制列表应用apply和访问控制条目ace,确定至少一条三态内容寻址存储器tcam表项;绑定单元,用于根据交换机芯片对应的端口位图信息和所述输入参数对应的作用域信息,将每条tcam表项与至少一个交换机端口进行绑定,确定交换机控制面对应的硬件表项。具体地,在交换机控制面测试时,还可以设置报文信息的作用域,即该报文作用于哪些端口。获取到输入参数之后,由于输入参数会有多组,控制面模拟器中的转换单元首先根据这些输入参数确定每组输入参数对应的访问控制条目(acesscontrolentries,ace)、交换机对应的访问控制列表(accesscontrollist,acl)以及访问控制列表apply,模拟安装单元根据apply将每条ace和acl在硬件上分别安装在不同的寻址存储器tcam资源上,即将acl和ace转换为多条tcam表项。之后,绑定单元将输入参数进行整合处理,实现一条表项能够对多个端口进行复用,具体地,绑定单元采用端口位图的形式,根据作用域将一条tcam表项与多个交换机端口进行绑定,实现节约硬件资源的目的,最终得到硬件表项。本发明实施例提供的系统,用于实现上述方法,其功能具体参照上述方法实施例,此处不再赘述。本发明实施例提供的交换机控制面的测试系统,通过将交换机测试输入参数转换为控制面硬件表项,对硬件表项进行适配,转换为ovs流表,并借助第三方成熟的开源软件ovs,对测试报文进行模拟转发,使得对交换机强依赖的控制面模块能够在桌面端复现,使开发人员摆脱对设备环境的依赖,解决了交换机真机测试存在的繁琐、耗时长的问题,提高了测试结果的准确性。在上述各实施例的基础上,进一步地,所述硬件表项包括:访问控制列表acl对应的acl优先级和访问控制条目ace对应的ace优先级;相应地,所述适配器包括:优先级确定单元,用于根据所述硬件表项对应的acl优先级和ace优先级,确定所述硬件表项中每个表项对应的ovs优先级;适配单元,用于对所述硬件表项进行适配处理,根据适配结果和所述ovs优先级确定开放虚拟交换标准ovs流表。具体地,优先级确定单元根据acl和ace在硬件中的安装位置信息,确定acl优先级和ace优先级,然后根据ace优先级和其所在的acl优先级确定该ace对应的ovs优先级,例如直接将acl优先级与ace优先级相加,得到ovs优先级,之后,适配单元确定每条ace对应的ovs流表,并在该ovs流表中增加与该ace对应的ovs优先级,这样,对于一条报文命中流表中多个表项时,就可根据优先级对报文进行转发。本发明实施例提供的系统,用于实现上述方法,其功能具体参照上述方法实施例,此处不再赘述。本发明实施例提供的交换机控制面的测试系统,通过将交换机测试输入参数转换为控制面硬件表项,对硬件表项进行适配,转换为ovs流表,并借助第三方成熟的开源软件ovs,对测试报文进行模拟转发,使得对交换机强依赖的控制面模块能够在桌面端复现,使开发人员摆脱对设备环境的依赖,解决了交换机真机测试存在的繁琐、耗时长的问题,通过对优先级的映射保证控制面数据处理模块逻辑的正确性,进一步提高测试结果的准确性。图5为本发明实施例提供的电子设备的结构示意图,如图5所示,所述设备包括:处理器(processor)51、存储器(memory)52和总线53;其中,处理器51和存储器52通过所述总线53完成相互间的通信;处理器51用于调用存储器52中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取交换机测试输入参数,所述输入参数包括报文信息和报文转发行为模型;将所述输入参数转换为交换机控制面对应的硬件表项;对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表;将所述ovs流表添加至开放虚拟交换标准ovs系统中;调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,并根据所述ovs流表对所述测试报文进行模拟转发处理;获取所述ovs系统输出的所述测试报文对应的处理流程;根据所述处理流程和所述测试报文对应的报文转发行为模型,判断交换机控制面的数据处理逻辑是否正确。本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取交换机测试输入参数,所述输入参数包括报文信息和报文转发行为模型;将所述输入参数转换为交换机控制面对应的硬件表项;对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表;将所述ovs流表添加至开放虚拟交换标准ovs系统中;调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,并根据所述ovs流表对所述测试报文进行模拟转发处理;获取所述ovs系统输出的所述测试报文对应的处理流程;根据所述处理流程和所述测试报文对应的报文转发行为模型,判断交换机控制面的数据处理逻辑是否正确。本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取交换机测试输入参数,所述输入参数包括报文信息和报文转发行为模型;将所述输入参数转换为交换机控制面对应的硬件表项;对所述硬件表项进行适配处理,确定开放虚拟交换标准ovs流表;将所述ovs流表添加至开放虚拟交换标准ovs系统中;调用所述ovs系统的系统工具构造与所述报文信息相对应的测试报文,并根据所述ovs流表对所述测试报文进行模拟转发处理;获取所述ovs系统输出的所述测试报文对应的处理流程;根据所述处理流程和所述测试报文对应的报文转发行为模型,判断交换机控制面的数据处理逻辑是否正确。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。以上所描述的系统等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的各实施例技术方案的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1