Openflow交换机表项容量的测试方法及测试系统的制作方法

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

发明内容
本发明的目的在于提供ー种Openflow交换机表项容量的测试方法。相应地,本发明还提供一种应用上述方法的表项容量的测试系统。为实现上述发明目的,本发明的技术方案如下ー种Openflow交換机表项容量的测试方法,其包括如下步骤
51、获取所需测试的目标逻辑流表所支持的匹配域,并设置该逻辑流表的默认匹配动
作;
52、向所述目标逻辑流表添加相应匹配域的流表项,所述流表项的优先级从I开始依次递增;
53、发送所述匹配域的报文,并监听Openflow的协议报文;
54、若监听到所述协议报文按照所述默认匹配动作进行处理,则记录下所述目标逻辑流表中最后添加的流表项的优先级P1,此时,被测逻辑流表的表项容量C=P1。作为本发明的进ー步改进,该方法还包括在添加流表项时,若上报M0D_FL0W_FAIL错误且其子错误码为TABLE_FULL吋,记录当前流的优先级P2,此时,被测逻辑流表的表项容量C=P2-1。作为本发明的进ー步改进,该方法还包括查看交換机上流表的报文统计情况;若发现某条流的报文统计为0,记录当前流的优先级P3,此时,被测逻辑流表的表项容量C=P3-1。作为本发明的进ー步改进,该方法还包括“配置被测逻辑流表”的步骤,其包括若被测流表为第一张逻辑流表,则不作配置;若被测流表为第一张逻辑流表以外的其他逻辑流表,则对第一张流表添加一条匹配所有流的流表项,其动作为跳转到被测逻辑流表。作为本发明的进ー步改进,该方法在步骤SI之前,还包括如下步骤初始化流表,并对每张逻辑流表进行清空。相应地,ー种Openflow交换机表项容量的测试系统,其包括 匹配域获悉单元、用于获取所需测试的目标逻辑流表所支持的匹配域,并设置该逻辑流表的默认匹配动作;
流表项添加単元、用于向所述目标逻辑流表添加相应匹配域的流表项,所述流表项的优先级从I开始依次递增;
报文收发单元、用于发送所述匹配域的报文,并监听Openflow的协议报文;
表项容量获取单元、其至少用于若监听到所述协议报文按照所述默认匹配动作进行处理,则记录下所述目标逻辑流表中最后添加的流表项的优先级P1,此时,被测逻辑流表的表项容量C=PI。作为本发明的进ー步改进,所述表项容量获取单元还用于在添加流表项时,若上报M0D_FL0W_FAIL错误且其子错误码为TABLE_FULL吋,记录当前流的优先级P2,此时,被测逻辑流表的表项容量C=P2-1。作为本发明的进ー步改进,所述表项容量获取单元还用于查看交換机上流表的报文统计情况;若发现某条流的报文统计为0,记录当前流的优先级P3,此时,被测逻辑流表的表项容量C=P3-1。作为本发明的进ー步改进,该系统还用于若被测流表为第一张逻辑流表,则不作配置;若被测流表为第一张逻辑流表以外的其他逻辑流表,则对第一张流表添加一条匹配所有流的流表项,其动作为跳转到被测逻辑流表。作为本发明的进ー步改进,该系统还用于初始化流表,并对每张逻辑流表进行清空。本发明的有益效果是本发明可自动化实现对交換机表项容量的测试,满足各大厂商对交換机系统性能的评估需求,其测试过程不需人工干预,测试速度快,测试结果准确。


图I是本发明具体实施方式
中表项容量测试系统的硬件联接示意 图2是本发明具体实施方式
中表项容量测试方法的流程 图3是本发明具体实施方式
中Openflow交换机的多流表与流表项关系示意 图4是本发明具体实施方式
中所添加流表项的配置示意 图5是本发明具体实施方式
中表项容量测试系统的单元示意图。
具体实施例方式以下将结合附图所示的具体实施方式
对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。參图I所示,本发明具体实施例中,用于测试交換机系统中表项容量的设备包括一收发包测试仪10,ー被测Openflow交换机20,以及控制器30。其中,测试仪可为收发包专业测试设备IXIA、或者Smartbit,也可以使用装有多张网卡以及相关的驱动软件和API接ロ的PC机。在传统Openflow交换机系统的网络架构包括多个控制器,控制器与Openflow交换机(ー个或多个)之间通过控制网络相连,Openflow交换机另一端通过多业务端ロ连接多个终端设备,可包括手机、电脑、PDA (个人数字处理)等。所述终端可通过数据通道与Openflow交换机相互通信,实现报文发送。在本实施方式中,收发包测试仪10上设置有四个端ロ P1、P2、P3、P4,而交换机上也相应设置四个端ロ 端ロ 21、端ロ 22、端ロ 23及端ロ 24,本方案中,在测试表项容量时, 只需要将端ロ之一(比如Pl)与交換机上的任意一个端ロ(比如端ロ 21)相连即可。參图2所示,其为本发明具体实施方式
中表项容量的测试方法的流程图。该方法包括如下步骤
SI、获取所需测试的目标逻辑流表所支持的匹配域,并设置该逻辑流表的默认匹配动作;具体地,通过发送 / 接收 Openflow 的 Table_Feature_Request/Table_Feature_Reply消息,得到每张流表所能支持的匹配域。其中,默认匹配动作(Table_Miss Action)可设置为“发送给控制器”(To-Controller)。请參图3所示,本发明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=l),则不作配置;若被测流表为第一张逻辑流表以外的其他逻辑流表(N大于I且小于N_TABLE),则需要对第一张流表添加一条匹配所有流的流表项,其动作为跳转到被测逻辑流表(Goto_Table :N)。S2、向所述目标逻辑流表添加相应匹配域的流表项,所述流表项的优先级从I开始依次递增;其中,本发明通过控制器对交换机上的被测逻辑流表进行添加流表项的配置,控制器需要不停连续添加一连串的流表项,其特征为匹配域和步骤SI中得到的该逻辑流表支持的匹配域相同,优先级依次递增。请參图4所示,假定目标逻辑流表支持3层匹配域IP,则控制器可以连续添加流表项“ip,priority=]/,,“ip, priority=2” ... “ip,priority=100”…。其中,Openflow规定优先级数字越大的流,优先级越高,优先匹配。S3、在上述步骤S2发生的同时,本发明还需通过收发包测试议10发送所述匹配域的报文(如IP报文),并通过控制器端监听Openflow的协议报文;
通过重复上述步骤S2及步骤S3,可以在每隔一段时间(30秒),查看交換机上流表的报文统计情况,并查看控制器上监听到Packet-In报文。此时,本发明在出现下述各实施例中的情况时,则停止重复步骤S2及步骤S3,并获得所需测试的目标逻辑流表的容量值C。在本发明第一实施方式中,该方法包括步骤S4,其称为“监听协议报文方式”,其具体为
若监听到所述协议报文按照所述默认匹配动作进行处理,本发明实施例中,因为默认匹配动作为发送到控制器,故換言之,在发现有Packet_In报文被发送到了控制器的情况 后,则记录下所述目标逻辑流表中最后添加的流表项的优先级P1,此时,被测逻辑流表的表项容量C=PI。在本发明第二实施方式中,该方法包括步骤S4’,其称为“上报错误码方式”,其具体为
在添加流表项时,若上报M0D_FL0W_FAIL错误且其子错误码为TABLE_FULL时,记录当前流的优先级P2,此时,被测逻辑流表的表项容量C=P2-1。在本发明第三实施方式中,该方法包括步骤S4’’,其称为“查看报文统计方式”,其具体为
通过查看交換机上流表的报文统计情况,并在发现某条流的报文统计为0时,记录当前流的优先级P3,此时,被测逻辑流表的表项容量C=P3-1。根据上述实施例,可准确测试获得某一逻辑流表的容量值,本发明只需通过重复上述方法,对ー张TCAM表中所有逻辑流表一一测试,最后就能得到每张逻辑流表所能支持的最大表项容量。测试完成后,关闭发包设备,清空交換机,并返回結果。參图5所示,其为本发明具体实施方式
中表项容量的测试系统的单元示意图。该系统包括如下単元
匹配域获悉单元101、用于获取所需测试的目标逻辑流表所支持的匹配域,并设置该逻辑流表的默认匹配动作;具体地,通过发送/接收Openflow的Table_Feature_Request/Tab I e_Featur e_Rep I y消息,得到姆张流表所能支持的匹配域。其中,默认匹配动作(Table_Miss Action)可设置为“发送给控制器”(To-Controller)。为了获取ー个TCAM表所包含的逻辑流表的数目,本发明通过发送/接收Openflow的Feature_Request/Feature_Reply消息,得到本Openflow交换机支持的流表数目N_TABLE。此外,关于本发明所需测试的目标逻辑流表,在正式测试之前,该系统还包括ー初始化単元,其用于初始化流表,并对每张逻辑流表进行清空的步骤,以保证测试数据不受干扰。本实施方式中,因为本发明需要对ー张TCAM表中的所有逻辑流表的容量进行测试,故在测试之前,还需要对被测逻辑流表进行配置,具体为
假设被测逻辑流表的编号为N,若被测流表为第一张逻辑流表(N=I ),则不作配置;若被测流表为第一张逻辑流表以外的其他逻辑流表(N大于I且小于N_TABLE),则需要对第一张流表添加一条匹配所有流的流表项,其动作为跳转到被测逻辑流表(Goto_Table:N)。流表项添加単元102、用于向所述目标逻辑流表添加相应匹配域的流表项,所述流表项的优先级从I开始依次递增;其中,本发明通过控制器对交换机上的被测逻辑流表进行添加流表项的配置,控制器需要不停连续添加一连串的流表项,其特征为匹配域和匹配域获悉单元101中得到的该逻辑流表支持的匹配域相同,优先级依次递增。请參图4所示,假定目标逻辑流表支持3层匹配域IP,则控制器可以连续添加流表项“ip,Priority=I",“ip,priority=2”…“ip,priority=100”…。其中,Openflow规定优先级数字越大的流,优先级越高,优先匹配。报文收发单元103、在上述流表项添加单元102发生的同时,本发明系统的报文收 发单元103还需通过收发包测试议发送所述匹配域的报文(如IP报文),并通过控制器端监听Openflow的协议报文;
通过重复上述流表项添加単元102及报文收发单元103的功能,可以在每隔一段时间(30秒),查看交换机上流表的报文统计情况,并查看控制器上监听到Packet-In报文。此时,本发明在出现下述各实施例中的情况时,则停止重复上述流表项添加単元102及报文收发单元103的功能,并通过下述的表项容量获取单元104来获得所需测试的目标逻辑流表的容量值C。在本发明第一实施方式中,表项容量获取单兀104用于
若监听到所述协议报文按照所述默认匹配动作进行处理,本发明实施例中,因为默认匹配动作为发送到控制器,故換言之,在发现有Packet_In报文被发送到了控制器的情况后,则记录下所述目标逻辑流表中最后添加的流表项的优先级P1,此时,被测逻辑流表的表项容量C=PI。在本发明第二实施方式中,表项容量获取单兀104用于
在添加流表项时,若上报M0D_FL0W_FAIL错误且其子错误码为TABLE_FULL时,记录当前流的优先级P2,此时,被测逻辑流表的表项容量C=P2-1。在本发明第三实施方式中,表项容量获取单兀104用于
通过查看交換机上流表的报文统计情况,并在发现某条流的报文统计为0时,记录当前流的优先级P3,此时,被测逻辑流表的表项容量C=P3_1。根据上述实施例,可准确测试获得某一逻辑流表的容量值,本发明只需通过重复上述方法,对ー张TCAM表中所有逻辑流表一一测试,最后就能得到每张逻辑流表所能支持的最大表项容量,测试完成后,关闭发包设备,清空交換机,并返回結果。呈上所述,本方案环境搭建简单,自动化实现比较容易,测试过程中不需要人工干预,测试速度比较快,且测试结果比较准确,其提供厂商或用户用以评估Openf low交換机系统性能指标。本发明还可以手工逐条添加流,直至交換机报错,但是速度慢,且不能保证所下成功的流是否一定生效,因有些交换机上存在缺陷或者故意作假,手工能添加的流不一定是真正能够正常工作的流。应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为ー个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
权利要求
1.ー种Openflow交换机表项容量的测试方法,其特征在于,其包括如下步骤 51、获取所需测试的目标逻辑流表所支持的匹配域,并设置该逻辑流表的默认匹配动作; 52、向所述目标逻辑流表添加相应匹配域的流表项,所述流表项的优先级从I开始依次递增; 53、发送所述匹配域的报文,并监听Openflow的协议报文; 54、若监听到所述协议报文按照所述默认匹配动作进行处理,则记录下所述目标逻辑流表中最后添加的流表项的优先级P1,此时,被测逻辑流表的表项容量C=P1。
2.根据权利要求I所述的方法,其特征在于,该方法还包括 在添加流表项时,若上报M0D_FL0W_FAIL错误且其子错误码为TABLE_FULL时,记录当前流的优先级P2,此时,被测逻辑流表的表项容量C=P2-1。
3.根据权利要求I所述的方法,其特征在于,该方法还包括 查看交換机上流表的报文统计情况; 若发现某条流的报文统计为0,记录当前流的优先级P3,此时,被测逻辑流表的表项容量 C=P3-1。
4.根据权利要求I所述的方法,其特征在于,该方法还包括“配置被测逻辑流表”的步骤,其包括 若被测流表为第一张逻辑流表,则不作配置; 若被测流表为第一张逻辑流表以外的其他逻辑流表,则对第一张流表添加一条匹配所有流的流表项,其动作为跳转到被测逻辑流表。
5.根据权利要求I所述的方法,其特征在于,该方法在步骤SI之前,还包括如下步骤初始化流表,并对每张逻辑流表进行清空。
6.ー种Openflow交换机表项容量的测试系统,其特征在于,其包括 匹配域获悉单元、用于获取所需测试的目标逻辑流表所支持的匹配域,并设置该逻辑流表的默认匹配动作; 流表项添加単元、用于向所述目标逻辑流表添加相应匹配域的流表项,所述流表项的优先级从I开始依次递增; 报文收发单元、用于发送所述匹配域的报文,并监听Openflow的协议报文; 表项容量获取单元、其至少用于若监听到所述协议报文按照所述默认匹配动作进行处理,则记录下所述目标逻辑流表中最后添加的流表项的优先级P1,此时,被测逻辑流表的表项容量C=PI。
7.根据权利要求6所述的系统,其特征在于,所述表项容量获取单元还用于 在添加流表项时,若上报M0D_FL0W_FAIL错误且其子错误码为TABLE_FULL时,记录当前流的优先级P2,此时,被测逻辑流表的表项容量C=P2-1。
8.根据权利要求6所述的系统,其特征在于,所述表项容量获取单元还用于 查看交換机上流表的报文统计情况; 若发现某条流的报文统计为0,记录当前流的优先级P3,此时,被测逻辑流表的表项容量 C=P3-1。
9.根据权利要求6所述的系统,其特征在干,该系统还用于若被测流表为第一张逻辑流表,则不作配置; 若被测流表为第一张逻辑流表以外的其他逻辑流表,则对第一张流表添加一条匹配所有流的流表项,其动作为跳转到被测逻辑流表。
10.根据权利要求6所述的系统,其特征在干,该系统还用于初始化流表,并对每张逻辑流表进行清空。
全文摘要
本发明提供一种Openflow交换机表项容量的测试方法及测试系统,其测试方法包括获取所需测试的目标逻辑流表所支持的匹配域,并设置该逻辑流表的默认匹配动作;向所述目标逻辑流表添加相应匹配域的流表项,所述流表项的优先级从1开始依次递增;发送所述匹配域的报文,并监听Openflow的协议报文;若监听到所述协议报文按照所述默认匹配动作进行处理,则记录下所述目标逻辑流表中最后添加的流表项的优先级P1,此时,被测逻辑流表的表项容量C=P1。本发明可自动化实现对交换机表项容量的测试,满足各大厂商对交换机系统性能的评估需求,其测试过程不需人工干预,测试速度快,测试结果准确。
文档编号H04L12/26GK102868578SQ20121038319
公开日2013年1月9日 申请日期2012年10月11日 优先权日2012年10月11日
发明者赵 怡, 倪春霞 申请人:盛科网络(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1