Openflow交换机系统中流表添加速率的测试方法及系统的制作方法

文档序号:7862619阅读:825来源:国知局
专利名称:Openflow交换机系统中流表添加速率的测试方法及系统的制作方法
技术领域
本发明涉及以太网领域技术,尤其涉及一种Openflow交换机系统中流表添加速率的测试方法及测试系统。
背景技术
目前互联网发展迅速,其应用规模的庞大及其地位的重要性,远远超出了设计者们的想象,而现在的互联网主要有以下弊端特定的范围内没有统一的管理、网络转发机制与策略单一、运营商难以最大限度优化自身网络、以及传统交换机用于转发的功能和协议多且杂,很难配置,系统容易出错等问题。为应对上述弊端,人们提出了 Openflow交换机,其将传统交换机上的报文转发和转发策略分离开来,采用专门的一台控制器(controller) 通过网线和交换机连接。这样原来同在一台交换机设备上的报文转发功能(硬件芯片实现)和报文转发策略(各种软件协议)就被分开到了不同的硬件设备上。而一台控制器还可以控制多台Openflow交换机,从而实现了统一的转发控制端,更有效地控制了网络。Openflow交换机最核心的功能是报文转发,其报文转发机制为先在流表中进行报文的流匹配,然后根据流表中查找到的行为进行转发。流表包括12个包头域、活动计数器(counters)、。个或多个执行行动(actions)。对每一个包进行查找,如果匹配成功则执行相关策略,否则通过安全通道将包转发到控制器,并由控制器来决策相关行为。一般的,Openflow交换机上的流表是用TCAM硬件来实现的。对于Openflow交换机系统而言,流表添加速率是尤为重要的指标,其关系到整个Openflow系统的响应速度、稳定性及安全性。然而,由于添加流表的速率一般都很快,可以达到每秒几百或上千条,以至于很难通过测试获得准确的流表添加速率,现有技术中也并没有提供一种可准确测试Openflow交换机系统中的流表添加速率的方法。

发明内容
本发明的目的在于提供一种Openflow交换机系统中流表添加速率的测试方法。相应地,本发明还提供一种应用上述方法的流表添加速率的测试系统。为实现上述发明目的,本发明的技术方案如下一种Openflow交换机系统中流表添加速率的测试方法,其包括如下步骤
51、通过控制器对Openflow交换机下发第一流及第二流,其中,所述第一流的优先级为第一优先级,其动作类型为转发到其他所有端口,其匹配域为所有报文;所述第二流的优先级为第二优先级,其动作类型为转发到第二端口,其匹配域为IP报文,所述第一优先级低于第二优先级,并且是全局最低优先级;
52、向Openflow交换机中的第一端口以固定速率SendRate发送报文;
53、通过控制器对Openflow交换机下发待测流,所述待测流替换所述第二流成为新流,其中,所述待测流与所述第二流的匹配域以及优先级相同,其动作类型为转发到第三端Π ;S4、统计第四端口上所有接收到的报文之和ReceivedBits,并计算获得Openflow的流表添加速率 SingleInsertRate=SendRate+ ReceivedBits。作为本发明的进一步改进,在所述步骤SI之前,该方法还包括通过控制器删除Openflow交换机上所有的流。作为本发明的进一步改进,该方法在测试最好情况下的流表添加速度BestCaseInsertRate时,所述步骤SI还包括如下步骤获取Openflow交换机的流表容量MAX_ENTRIES的大小;通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文,其优先 级低于所述第二优先级、但大于0,且每条新下发的流的优先级低于前一条下发流的优先级,其动作类型为丢弃。作为本发明的进一步改进,该方法在测试最坏情况下的流表添加速度WorstCaseInsertRate时,所述步骤SI还包括如下步骤获取Openflow交换机的流表容量MAX_ENTRIES的大小;通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文,其优先级高于所述第二优先级、但小于65535,且每条新下发的流的优先级高于前一条下发流的优先级,其动作类型为丢弃。作为本发明的进一步改进,该方法还包括如下步骤获取控制器与交换机之间的网络延时;在计算出的流表添加速率SinglelnsertRate、BestCaseInsertRate及WorstCaseInsertRate的基础上减去所述网络延时,以得到最终结果。作为本发明的进一步改进,所述“获取Openflow交换机的流表容量MAX_ENTRIES的大小”的步骤,具体包括获取所需测试的目标逻辑流表所支持的匹配域,并设置该逻辑流表的默认匹配动作;向所述目标逻辑流表添加相应匹配域的流表项,所述流表项的优先级从I开始依次递增;发送所述匹配域的报文,并监听Openflow的协议报文;其中,若监听到所述协议报文按照所述默认匹配动作进行处理,则记录下所述目标逻辑流表中最后添加的流表项的优先级P1,此时,被测逻辑流表的表项容量MAX_ENTRIES=P1 ;在添加流表项时,若上报M0D_FL0W_FAIL错误且其子错误码为TABLE_FULL时,记录当前流的优先级P2,此时,被测逻辑流表的表项容量MAX_ENTRIES=P2-1 ;查看交换机上流表的报文统计情况,若发现某条流的报文统计为0,记录当前流的优先级P3,此时,被测逻辑流表的表项容量C=P3-1。相应地,上述测试系统包括
备用流下发单元、用于通过控制器对Openflow交换机下发第一流及第二流,其中,所述第一流的优先级为第一优先级,其动作类型为转发到其他所有端口,其匹配域为所有报文;所述第二流的优先级为第二优先级,其动作类型为转发到第二端口,其匹配域为IP报文,所述第一优先级低于第二优先级,并且是全局最低优先级;
报文发送单元、用于向Openflow交换机中的第一端口以固定速率SendRate发送报
文;
待测流下发单元、用于通过控制器对Openflow交换机下发待测流,所述待测流替换所述第二流成为新流,其中,所述待测流与所述第二流的匹配域以及优先级相同,其动作类型为转发到第三端口;
流表添加速率获取单元、用于统计第四端口上所有接收到的报文之和ReceivedBits,并计算获得 Openflow 的流表添加速率 SingleInsertRate=SendRate + ReceivedBits。作为本发明的进一步改进,该系统还包括一流删除单元,其用于在测试启动之前,通过控制器删除Openflow交换机上所有的流。作为本发明的进一步改进,在测试最好情况下的流表添加速度BestCaseInsertRate时,所述备用流下发单元还用于获取Openf low交换机的流表容量MAX_ENTRIES的大小;通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文,其优先级低于所述第二优先级、但大于0,且每条新下发的流的优先级低于前一条下发流的优先级,其动作类型为丢弃。作为本发明的进一步改进,在测试最坏情况下的流表添加速度WorstCaseInsertRate时,所述备用流下发单元还用于获取Openflow交换机的流表容量MAX_ENTRIES的大小;通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文,其优先级高于所述第二优先级、但小于65535,且每条新下发的流的优先级高于前一条下发流的优先级,其动作类型为丢弃。本发明的有益效果是本发明可实现自动化测试Openflow交换机中流表添加速 率这一指标,测试速度快,且准确性高。


图I是本发明具体实施方式
中流表添加速率测试系统的硬件联接示意 图2是本发明具体实施方式
中流表添加速率测试方法的流程 图3是本发明具体实施方式
中表项容量测试系统的硬件联接示意 图4是本发明具体实施方式
中表项容量测试方法的流程 图5是本发明具体实施方式
中Openflow交换机的多流表与流表项关系示意 图6是本发明具体实施方式
中所添加流表项的配置示意 图7是本发明具体实施方式
中流表添加速率测试系统的单元示意 图8是本发明具体实施方式
中表项容量测试系统的单元示意图。
具体实施例方式以下将结合附图所示的具体实施方式
对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。参图I所示,本发明具体实施例中,用于测试交换机系统中流表添加速率及流表容量的设备包括一收发包测试仪10,一被测Openflow交换机20,以及控制器30。其中,测试仪可为收发包专业测试设备IXIA、或者Smartbit,也可以使用装有多张网卡以及相关的驱动软件和API接口的PC机。在传统Openflow交换机系统的网络架构包括多个控制器,控制器与Openflow交换机(一个或多个)之间通过控制网络相连,Openflow交换机另一端通过多业务端口连接多个终端设备,可包括手机、电脑、PDA (个人数字处理)等。所述终端可通过数据通道与Openflow交换机相互通信,实现报文发送。其中,在本实施方式中,收发包测试仪10上设置有四个端口 P1、P2、P3、P4,而交换机上也相应设置四个端口 端口 21、端口 22、端口 23及端口 24,本方案中,在测试交换机系统中流表添加速率时,只需要将测试仪10的端口 Pl与交换机上的端口 21相连,端口 P2与交换机上的端口 22相连,端口 P3与交换机上的端口 23相连,端口 P4与交换机上的端口24相连,值得一提的是,本发明设置了四对四的端口连接方式,在其他实施例中,还可设置其他任意数目的端口。结合图I及图2所示,本发明具体实施例中,在进行测试之前,首先需要按照上述方式连接好设备,然后启动Openflow交换机及控制器,并配置连接关系,如IP地址和端口号等,与此同时,还需检查Openflow交换机和控制器之间的网络连通性,具体地可以通过发送接收Openflow的Echo Request、Echo Reply消息来实现。作好上述准备工作后,便可开始测试工作,其测试过程主要包括如下步骤
51、通过控制器对Openflow交换机下发第一流及第二流,其中,所述第一流的优先级为第一优先级(Priority=O),其动作类型为转发到其他所有端口(即actions=all),其匹配域为所有报文;所述第二流的优先级为第二优先级(priority=32768),其动作类型为转发到第二端口 22,其匹配域为IP报文,所述第一优先级低于第二优先级,并且是全局最低优先级;
52、向Openflow交换机中的第一端口21以固定速率SendRate发送报文;优选地,所述 报文的帧长为64byte,此时,所有报文应当匹配第二流,报文从第二端口 22转发出来;
53、通过控制器对Openflow交换机下发待测流,所述待测流替换所述第二流成为新流,其中,所述待测流与所述第二流的匹配域以及优先级相同,即priority=32768,其动作类型为转发到第三端口 23 ;此时,因为两者优先级和匹配特征是一样的,第二流会被本步骤里的待测流替换掉,上述步骤S2中从Pl端口发送到第二端口 21的报文应当匹配本步骤中的新流,报文应当从第三端口 23转发出来。S4、统计第四端口上所有接收到的报文之和ReceivedBits,并计算获得Openflow的流表添加速率SingleInsertRate=SendRate+ ReceivedBits。其中,在新流替换旧流的过程中,会有一小部分报文匹配到了步骤SI中的第一流,而转发到了所有端口,其中包括第四端口 24,通过观测第四端口 24,得到该端口上所有接收到的报文之和ReceivedBits,进而得到本发明交换机系统的流表添加速率这一重要指标。值得一提的是,在本发明优选的实施方式中,在所述步骤SI之前,该方法还包括通过控制器删除Openflow交换机上所有的流,以防止测试过程受干扰。于本发明中,由于Openflow协议上规定每条流可以配置相应的优先级,所以交换机开发者在使用TCAM实现流表的时候,不能避免需要对TCAM里的表项进行多次重新排序,而这样的硬件操作通常是很慢的,而且随着已经添加好的流表项数目越大,新添加的表项将会变得越来越慢,添加时间通常是以指数形式增长。这种情况下还有另外2个重要指标最好情况下的流表添加速度BestCaseInsertRate以及最坏情况下的流表添加速度WorstCaselnsertRate。其中,最好情况下插入的流表项有以下特点新添加的表项优先级为当前全部流表中优先级最低的,该流表项需要插在所有已有表项之后;最坏情况下插入的流表项有以下特点新添加的表项优先级为当前全部流表中优先级最高的,该流表项需要插在所有已有表项之前。于本发明中,为了测试上述BestCaseInsertRate 及 WorstCaseInsertRate,提供了下述技术方案。其中,该方法在测试最好情况下的流表添加速度BestCaseInsertRate时,所述步骤SI还包括如下步骤
获取Openflow交换机的流表容量MAX_ENTRIES的大小;通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文(如ARP报文,DL_TYPE=0x0806),其优先级低于所述第二优先级、但大于O(如priority=100),且每条新下发的流的优先级低于前一条下发流的优先级,其动作类型为丢弃。其中,该方法在测试最坏情况下的流表添加速度WorstCaseInsertRate时,所述步骤SI还包括如下步骤
获取Openflow交换机的流表容量MAX_ENTRIES的大小;
通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文(如ARP报文,DL_TYPE=0x0806),其优先级高于所述第二优先级、但小于65535 (如priority=4000),且每条新下发的流的优先级高于前一条下发流的优先级,其动 作类型为丢弃。值得一提的是,本发明的流表添加速度BestCaseInsertRate和流表添加速度WorstCaseInsertRate不能一起测试,需要分别单独测试。由于控制器和Openflow交换机是通过网络连接的,从控制器向Openflow交换机添加流表,会存在网络延时,而造成计算出的流表添加时间不精确。本发明具体实施方式
中,为了提高测试精度,该测试方法还包括如下步骤
获取控制器与交换机之间的网络延时;
在计算出的流表添加速率SinglelnsertRate、BestCaseInsertRate及WorstCaseInsertRate的基础上减去所述网络延时,以得到最终结果。其中,网络延时可以通过发送/接收多个带定长PayLoad的Echo Request, Echo Reply消息计算得出,网络延时=(0penfloW消息头长度+PayLoad长度)+收发包时间差。而本发明方案中的流表添加时间除去上面计算出的网络延时,可以得到更加精确的流表添加速率。此外,由于任何测试都存在一定的误差,所以重复多次步骤SI至步骤S42,得到若干个添加速率SingleInsertRate_N,并通过取其平均数得到添加一条Openflow流表项的平均速率,从而提高准确性。参图3至图6所不,本发明在上述测试BestCaseInsertRate和WorstCaseInsertRate的方法中,需要涉及测试交换机系统的流表容量MAX_ENTRIES,于是本发明还提供了一种测试表项容量的方法及系统,如图3所示,在本实施方式中,在测试表项容量时,只需要将端口之一(比如Pl)与交换机上的任意一个端口(比如端口 21)相连即可。在本发明具体实施方式
中,表项容量的测试方法,包括如下步骤
S51、获取所需测试的目标逻辑流表所支持的匹配域,并设置该逻辑流表的默认匹配动作;具体地,通过发送 / 接收 Openflow 的 Table_Feature_Request/Table_Feature_Reply消息,得到每张流表所能支持的匹配域。其中,默认匹配动作(Table_Miss Action)可设置为“发送给控制器”(To-Controller)。如图5所示,本发明Openflow交换机系统中的流表通常为TCAM表40 (ternarycontent addressable memory),其可被划分为多个逻辑流表41,每一个逻辑流表有可包括多个普通流表项411 (表项I、表项2…表项M),以及一个默认表项412,用于设置默认匹配动作。本发明中,每个逻辑流表41的表项容量和表项匹配域组成都可以是不一样的,而整个交换机的TCAM流表40的容量是所有逻辑流表41的容量之和。为了获取一个TCAM表40所包含的逻辑流表41的数目,本发明通过发送/接收Openflow 的 Feature_Request/Feature_Reply 消息,得到本Openflow交换机支持的流表数目N_TABLE。此外,关于本发明所需测试的目标逻辑流表,在正式测试之前,还包括初始化流表,并对每张逻辑流表进行清空的步骤,以保证测试数据不受干扰。本实施方式中,因为本发明需要对一张TCAM表中的所有逻辑流表的容量进行测试,故在测试之前,还需要对被测逻辑流表进行配置,具体为
假设被测逻辑流表的编号为N,若被测流表为第一张逻辑流表(N=I ),则不作配置;若被测流表为第一张逻辑流表以外的其他逻辑流表(N大于I且小于N_TABLE),则需要对第一张流表添加一条匹配所有流的流表项,其动作为跳转到被测逻辑流表(Goto_Table :N)。S52、向所述目标逻辑流表添加相应匹配域的流表项,所述流表项的优先级从I开 始依次递增;其中,本发明通过控制器对交换机上的被测逻辑流表进行添加流表项的配置,控制器需要不停连续添加一连串的流表项,其特征为匹配域和步骤S51中得到的该逻辑流表支持的匹配域相同,优先级依次递增。请参图6所示,假定目标逻辑流表支持3层匹配域IP,则控制器可以连续添加流表项“ip,priority=l”,“ip, priority=2” ... “ip,priority=100”…。其中,Openflow规定优先级数字越大的流,优先级越高,优先匹配。S53、在上述步骤52发生的同时,本发明还需通过收发包测试议10发送所述匹配域的报文(如IP报文),并通过控制器端监听Openflow的协议报文;
通过重复上述步骤S52及步骤S53,可以在每隔一段时间(30秒),查看交换机上流表的报文统计情况,并查看控制器上监听到Packet-In报文。此时,本发明在出现下述各实施例中的情况时,则停止重复步骤S52及步骤S53,并获得所需测试的目标逻辑流表的容量值MAX_ENTRIES。需要指明的是,在本是发明其他实施方式中,流表容量MAX_ENTRIES也可以直接通过发送接收 Openflow 的 Table Stats Request, Table Stats Reply 消息来得到。在本发明第一实施方式中,该方法包括步骤S54,其称为“监听协议报文方式”,其具体为
若监听到所述协议报文按照所述默认匹配动作进行处理,本发明实施例中,因为默认匹配动作为发送到控制器,故换言之,在发现有Packet_In报文被发送到了控制器的情况后,则记录下所述目标逻辑流表中最后添加的流表项的优先级P1,此时,被测逻辑流表的表项容量 MAX_ENTRIES=P1。在本发明第二实施方式中,该方法包括步骤S54’,其称为“上报错误码方式”,其具体为
在添加流表项时,若上报M0D_FL0W_FAIL错误且其子错误码为TABLE_FULL时,记录当前流的优先级P2,此时,被测逻辑流表的表项容量MAX_ENTRIES=P2-1。在本发明第三实施方式中,该方法包括步骤S54’ ’,其称为“查看报文统计方式”,其具体为
通过查看交换机上流表的报文统计情况,并在发现某条流的报文统计为O时,记录当前流的优先级P3,此时,被测逻辑流表的表项容量MAX_ENTRIES=P3-1。根据上述实施例,可准确测试获得某一逻辑流表的容量值,本发明只需通过重复上述方法,对一张TCAM表中所有逻辑流表一一测试,最后就能得到每张逻辑流表所能支持的最大表项容量MAX_ENTRIES。测试完成后,关闭发包设备,清空交换机,并返回结果。接下来,请参图7所示,在本发明具体实施方式
中,相应于上述方法,一种交换机系统的流表添加速率的测试系统包括如下单元
备用流下发单元101、用于通过控制器对Openflow交换机下发第一流及第二流,其中,所述第一流的优先级为第一优先级,其动作类型为转发到其他所有端口,其匹配域为所有报文;所述第二流的优先级为第二优先级,其动作类型为转发到第二端口,其匹配域为IP报文,所述第一优先级低于第二优先级,并且是全局最低优先级;
报文发送单元102、用于向Openflow交换机中的第一端口以固定速率SendRate发送报
文;
待测流下发单元103、用于通过控制器对Openflow交换机下发待测流,所述待测流替 换所述第二流成为新流,其中,所述待测流与所述第二流的匹配域以及优先级相同,其动作类型为转发到第三端口;
流表添加速率获取单元104、用于统计第四端口上所有接收到的报文之和ReceivedBits,并计算获得 Openflow 的流表添加速率 SingleInsertRate=SendRate + ReceivedBits。进一步地,该系统还包括一流删除单元,其用于在测试启动之前,通过控制器删除Openflow交换机上所有的流。进一步地,在测试最好情况下的流表添加速度BestCaseInsertRate时,所述备用流下发单元还用于
获取Openflow交换机的流表容量MAX_ENTRIES的大小;
通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文,其优先级低于所述第二优先级、但大于0,且每条新下发的流的优先级低于前一条下发流的优先级,其动作类型为丢弃。进一步地,在测试最坏情况下的流表添加速度WorstCaseInsertRate时,所述备用流下发单元还用于
获取Openflow交换机的流表容量MAX_ENTRIES的大小;
通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文,其优先级高于所述第二优先级、但小于65535,且每条新下发的流的优先级高于前一条下发流的优先级,其动作类型为丢弃。参图8所示,本发明具体实施方式
中,一种表项容量的测试系统包括如下单元
匹配域获悉单元201、用于获取所需测试的目标逻辑流表所支持的匹配域,并设置该逻
辑流表的默认匹配动作;具体地,通过发送/接收Openflow的Table_Feature_Request/Table_Feature_Reply消息,得到每张流表所能支持的匹配域。其中,默认匹配动作(Table_Miss Action)可设置为“发送给控制器”(To-Controller)。为了获取一个TCAM表所包含的逻辑流表的数目,本发明通过发送/接收Openflow的Feature_Request/Feature_Reply消息,得到本Openflow交换机支持的流表数目N_TABLE。此外,关于本发明所需测试的目标逻辑流表,在正式测试之前,该系统还包括一初始化单元,其用于初始化流表,并对每张逻辑流表进行清空的步骤,以保证测试数据不受干扰。本实施方式中,因为本发明需要对一张TCAM表中的所有逻辑流表的容量进行测试,故在测试之前,还需要对被测逻辑流表进行配置,具体为
假设被测逻辑流表的编号为NI,若被测流表为第一张逻辑流表(Nl=l),则不作配置;若被测流表为第一张逻辑流表以外的其他逻辑流表(NI大于I且小于N_TABLE),则需要对第一张流表添加一条匹配所有流的流表项,其动作为跳转到被测逻辑流表(Goto_Table NI)。流表项添加单元202、用于向所述目标逻辑流表添加相应匹配域的流表项,所述流表项的优先级从I开始依次递增;其中,本发明通过控制器对交换机上的被测逻辑流表进行添加流表项的配置,控制器需要不停连续添加一连串的流表项,其特征为匹配域和匹配域获悉单元201中得到的该逻辑流表支持的匹配域相同,优先级依次递增。
报文收发单元203、在上述流表项添加单元202发生的同时,本发明系统的报文收发单元203还需通过收发包测试议发送所述匹配域的报文(如IP报文),并通过控制器端监听Openflow的协议报文;
通过重复上述流表项添加单元202及报文收发单元203的功能,可以在每隔一段时间(30秒),查看交换机上流表的报文统计情况,并查看控制器上监听到Packet-In报文。此时,本发明在出现下述各实施例中的情况时,则停止重复上述流表项添加单元202及报文收发单元203的功能,并通过下述的表项容量获取单元204来获得所需测试的目标逻辑流表的容量值。在本发明第一实施方式中,表项容量获取单兀204用于
若监听到所述协议报文按照所述默认匹配动作进行处理,本发明实施例中,因为默认匹配动作为发送到控制器,故换言之,在发现有Packet_In报文被发送到了控制器的情况后,则记录下所述目标逻辑流表中最后添加的流表项的优先级P1,此时,被测逻辑流表的表项容量 MAX_ENTRIES =Pl。在本发明第二实施方式中,表项容量获取单兀204用于
在添加流表项时,若上报M0D_FL0W_FAIL错误且其子错误码为TABLE_FULL时,记录当前流的优先级P2,此时,被测逻辑流表的表项容量MAX_ENTRIES =P2_1。在本发明第三实施方式中,表项容量获取单兀204用于
通过查看交换机上流表的报文统计情况,并在发现某条流的报文统计为O时,记录当前流的优先级P3,此时,被测逻辑流表的表项容量MAX_ENTRIES =P3_1。根据上述实施例,可准确测试获得某一逻辑流表的容量值,本发明只需通过重复上述方法,对一张TCAM表中所有逻辑流表一一测试,最后就能得到每张逻辑流表所能支持的最大表项容量,测试完成后,关闭发包设备,清空交换机,并返回结果。呈上所述,本方案环境搭建简单,自动化实现交换机系统中,表项容量以及流表添加速率的测试,测试过程中不需要人工干预,测试速度比较快,且测试结果比较准确,其测试获得的指标可提供厂商或用户用以评估Openflow交换机系统性能。本发明还可以手工逐条添加流,直至交换机报错,但是速度慢,且不能保证所下成功的流是否一定生效,因有些交换机上存在缺陷或者故意作假,手工能添加的流不一定是真正能够正常工作的流。应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。 上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
权利要求
1.一种Openflow交换机系统中流表添加速率的测试方法,其特征在于,其包括如下步骤 51、通过控制器对Openflow交换机下发第一流及第二流,其中,所述第一流的优先级为第一优先级,其动作类型为转发到其他所有端口,其匹配域为所有报文;所述第二流的优先级为第二优先级,其动作类型为转发到第二端口,其匹配域为IP报文,所述第一优先级低于第二优先级,并且是全局最低优先级; 52、向Openflow交换机中的第一端口以固定速率SendRate发送报文; 53、通过控制器对Openflow交换机下发待测流,所述待测流替换所述第二流成为新流,其中,所述待测流与所述第二流的匹配域以及优先级相同,其动作类型为转发到第三端Π ; 54、统计第四端口上所有接收到的报文之和ReceivedBits,并计算获得Openflow的流表添加速率 SingleInsertRate=SendRate+ ReceivedBits。
2.根据权利要求I所述的方法,其特征在于,在所述步骤SI之前,该方法还包括 通过控制器删除Openflow交换机上所有的流。
3.根据权利要求I所述的方法,其特征在于,该方法在测试最好情况下的流表添加速度BestCaseInsertRate时,所述步骤SI还包括如下步骤 获取Openflow交换机的流表容量MAX_ENTRIES的大小; 通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文,其优先级低于所述第二优先级、但大于0,且每条新下发的流的优先级低于前一条下发流的优先级,其动作类型为丢弃。
4.根据权利要求I所述的方法,其特征在于,该方法在测试最坏情况下的流表添加速度WorstCaseInsertRate时,所述步骤SI还包括如下步骤 获取Openflow交换机的流表容量MAX_ENTRIES的大小; 通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文,其优先级高于所述第二优先级、但小于65535,且每条新下发的流的优先级高于前一条下发流的优先级,其动作类型为丢弃。
5.根据权利要求I或3或4所述的方法,其特征在于,该方法还包括如下步骤 获取控制器与交换机之间的网络延时; 在计算出的流表添加速率SinglelnsertRate、BestCaseInsertRate及WorstCaseInsertRate的基础上减去所述网络延时,以得到最终结果。
6.根据权利要求3或4所述的方法,其特征在于,所述“获取Openflow交换机的流表容量MAX_ENTRIES的大小”的步骤,具体包括 获取所需测试的目标逻辑流表所支持的匹配域,并设置该逻辑流表的默认匹配动作; 向所述目标逻辑流表添加相应匹配域的流表项,所述流表项的优先级从I开始依次递增; 发送所述匹配域的报文,并监听Openflow的协议报文; 其中,若监听到所述协议报文按照所述默认匹配动作进行处理,则记录下所述目标逻辑流表中最后添加的流表项的优先级P1,此时,被测逻辑流表的表项容量MAX_ENTRIEs=PI ;在添加流表项时,若上报MOD_FLOW_FAIL错误且其子错误码为TABLE_FULL时,记录当前流的优先级P2,此时,被测逻辑流表的表项容量MAX_ENTRIES=P2-1 ; 查看交换机上流表的报文统计情况,若发现某条流的报文统计为O,记录当前流的优先级P3,此时,被测逻辑流表的表项容量C=P3-1。
7.一种Openflow交换机系统中流表添加速率的测试系统,其特征在于,其包括 备用流下发单元、用于通过控制器对Openflow交换机下发第一流及第二流,其中,所述第一流的优先级为第一优先级,其动作类型为转发到其他所有端口,其匹配域为所有报文;所述第二流的优先级为第二优先级,其动作类型为转发到第二端口,其匹配域为IP报文,所述第一优先级低于第二优先级,并且是全局最低优先级; 报文发送单元、用于向Openflow交换机中的第一端口以固定速率SendRate发送报文; 待测流下发单元、用于通过控制器对Openflow交换机下发待测流,所述待测流替换所述第二流成为新流,其中,所述待测流与所述第二流的匹配域以及优先级相同,其动作类型为转发到第三端口; 流表添加速率获取单元、用于统计第四端口上所有接收到的报文之和ReceivedBits,并计算获得 Openflow 的流表添加速率 SingleInsertRate=SendRate + ReceivedBits。
8.根据权利要求7所述的系统,其特征在于,该系统还包括一流删除单元,其用于 在测试启动之前,通过控制器删除Openflow交换机上所有的流。
9.根据权利要求7所述的系统,其特征在于,在测试最好情况下的流表添加速度BestCaseInsertRate时,所述备用流下发单元还用于 获取Openflow交换机的流表容量MAX_ENTRIES的大小; 通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文,其优先级低于所述第二优先级、但大于0,且每条新下发的流的优先级低于前一条下发流的优先级,其动作类型为丢弃。
10.根据权利要求7所述的系统,其特征在于,在测试最坏情况下的流表添加速度WorstCaseInsertRate时,所述备用流下发单元还用于 获取Openflow交换机的流表容量MAX_ENTRIES的大小; 通过控制器对Openflow交换机下发N条流,其中,N=MAX_ENTRIES-2,上述N条流的匹配域为非IP报文,其优先级高于所述第二优先级、但小于65535,且每条新下发的流的优先级高于前一条下发流的优先级,其动作类型为丢弃。
全文摘要
本发明提供一种Openflow交换机系统中流表添加速率的测试方法及测试系统,其方法包括通过控制器对Openflow交换机下发第一流及第二流,其中,所述第一流的优先级为第一优先级;所述第二流的优先级为第二优先级,所述第一优先级低于第二优先级,并且是全局最低优先级;向Openflow交换机中的第一端口以固定速率SendRate发送报文;通过控制器对Openflow交换机下发待测流,所述待测流替换所述第二流成为新流,其中,所述待测流与所述第二流的匹配域以及优先级相同,其动作类型为转发到第三端口;统计第四端口上所有接收到的报文之和ReceivedBits,并计算获得Openflow的流表添加速率SingleInsertRate=SendRate÷ReceivedBits。本发明可实现自动化测试Openflow交换机中流表添加速率这一指标,测试速度快,且准确性高。
文档编号H04L12/931GK102882746SQ20121038303
公开日2013年1月16日 申请日期2012年10月11日 优先权日2012年10月11日
发明者赵 怡, 倪春霞 申请人:盛科网络(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1