CN105721331A - 一种内嵌吞吐量性能测试处理引擎中控制发包速率的方法 - Google Patents

一种内嵌吞吐量性能测试处理引擎中控制发包速率的方法 Download PDF

Info

Publication number
CN105721331A
CN105721331A CN201610040400.4A CN201610040400A CN105721331A CN 105721331 A CN105721331 A CN 105721331A CN 201610040400 A CN201610040400 A CN 201610040400A CN 105721331 A CN105721331 A CN 105721331A
Authority
CN
China
Prior art keywords
message
control unit
transmitting
speed
performance test
Prior art date
Application number
CN201610040400.4A
Other languages
English (en)
Inventor
何志川
周杰
Original Assignee
盛科网络(苏州)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 盛科网络(苏州)有限公司 filed Critical 盛科网络(苏州)有限公司
Priority to CN201610040400.4A priority Critical patent/CN105721331A/zh
Publication of CN105721331A publication Critical patent/CN105721331A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing packet switching networks
    • H04L43/08Monitoring based on specific metrics
    • H04L43/0876Network utilization
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/21Flow control or congestion control using leaky bucket
    • H04L47/215Token bucket

Abstract

本发明揭示了一种内嵌吞吐量性能测试处理引擎中控制发包速率的方法,其包括报文带宽控制单元和报文发送控制单元,所述报文带宽控制单元用于控制报文的发送带宽,所述报文带宽控制单元和报文发送控制单元之间设置一令牌桶,所述报文发送控制单元在发送报文时只看令牌桶中的是否满足发送条件,所述报文发送控制单元对报文进行封装,并把封装好的报文交到包转发引擎去处理。本发明可根据需求配置发送速率,实现精确控制报文发送速率,同时还可以控制发送突发流量及发送随机报文长度的报文等内嵌吞吐量性能测试处理引擎报文发送需求。

Description

一种内嵌吞吐量性能测试处理引擎中控制发包速率的方法

技术领域

[0001] 本发明涉及网络通信技术领域,尤其是涉及一种内嵌吞吐量性能测试处理引擎中 控制发包速率的方法。

背景技术

[0002] 现有的以太网交换芯片内嵌吞吐量性能测试处理引擎中报文的发包速率是根据 发送报文长度、发报文发送速率,处理引擎的时钟频率计算多少个时钟周期发送一个报文。 其存在两个问题,1、无法发送随机长度的报文,2、无法支持突发速率的流量。

发明内容

[0003] 本发明的目的在于克服现有技术的缺陷,提供一种内嵌吞吐量性能测试处理引擎 中控制发包速率的方法。

[0004] 为实现上述目的,本发明提出如下技术方案:一种内嵌吞吐量性能测试处理引擎 中控制发包速率的方法,其包括报文带宽控制单元和报文发送控制单元,所述报文带宽控 制单元用于控制报文的发送带宽,所述报文带宽控制单元和报文发送控制单元之间设置一 令牌桶,所述报文发送控制单元在发送报文时只看令牌桶中的是否满足发送条件,所述报 文发送控制单元对报文进行封装,并把封装好的报文交到包转发引擎去处理。

[0005] 优选地,在报文带宽控制单元内,计算出每一个时间单元内注入的令牌数等于每 秒需要发送的字节数。

[0006] 优选地,对于发送正常速率的报文,配置报文的发送时间单元等于500000,配置报 文的发送的空闲时间等于零。

[0007] 优选地,对于突发流量报文,配置发送报文的发送时间单元为(突发流量的速率/ 突发流量的最大带宽)*500 000,配置报文发送的空闲时间单元等于500 000减去报文发送 时间单元。

[0008] 优选地,在报文发送的控制单元,在每一个时间单元内都会去检查令牌桶中总字 节数是否大于检查期望发送的报文长度+帧间隙(即IPG,全称inter-Packet Gap)的长度, 如果条件满足,则对报文进行封装,并把封装好的报文交到包转发引擎去处理,同时从令牌 桶的的总字节数中减去报文长度和IPG的长度之和;如果条件不满足,则继续等待。

[0009] 优选地,计算发送速率时需要包含帧间隙的长度。

[0010] 优选地,在报文发送时间单元内,匀速注入令牌,在每次注入令牌时会对进行累 加,小数部分在累加过程中溢出的部分更新到令牌桶中的总的字节数中去。

[0011] 优选地,所述令牌的小数部分是按照16位的值进行存储。

[0012] 本发明的有益效果是:基于令牌桶控制发包速率的机制,可根据需求配置发送速 率,实现精确控制报文发送速率,同时使用本装置还可以控制发送突发流量及发送随机报 文长度的报文等内嵌吞吐量性能测试处理引擎报文发送需求。

附图说明

[0013] 图1是本发明的报文发送模块示意图;

[0014] 图2是本发明的报文带宽控制单元的处理逻辑图;

[0015] 图3是本发明的报文发送控制单元的处理逻辑图。

具体实施方式

[0016] 下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。 [0017]本发明所揭示的一种内嵌吞吐量性能测试处理引擎中控制发包速率的方法,本发 明报文发送模块如图1所示,整个模块分为报文带宽控制单元和报文发送控制单元,其中报 文带宽控制单元用于控制报文的发送带宽,和报文发送的长度无关,而报文发送控制单元 在发送报文时只看令牌桶中的是否满足发送条件。本发明方案报文带宽控制单元的处理逻 辑参见图2,报文发送控制单元处理逻辑参见图3。

[0018]本发明涉及主要数据结构定义下表所示,其中DsPktCfg用于控制发送报文的长 度,DsTokenCfg用于控制发送报文的带宽,DsToken用于保存令牌桶的状态变化。

Figure CN105721331AD00041

[0020]本发明涉及到的技术概念:

[0021] 正常速率的报文:按照报文的带宽匀速发送报文,比如往1G的端口中发送100Mbps 的正常速率的报文,指的是在每秒的时间单元内匀速发完100M报文。

[0022] 突发流量的最大带宽:每秒匀速发送报文的速率,但是最高不能超过端口允许的 最大带宽,比如1G的端口最大的带宽就是lGbps。

[0023]突发速率的报文:按照报文的带宽在短时间内按照突发流量的最大带宽发送完所 有报文,比如往1G的端口中以线速带宽发送100Mbps的突发流量,指的是在每秒的前1 /10时 间内报文是以lGbps的速率发送的,后9/10的时间不发送报文,对比正常速率的报文,发送 突发流量的报文时在报文发送时间内是以接口的最大带宽匀速发送报文,而在空闲时间内 没有发送报文,所以下面的例子中即使是发送突发流量都是与匀速发送报文来计算的。 [0024] 时间单元:在硬件中每一秒由若干个赫兹(即Hz)组成,例如主频为500兆赫兹 (MHz)的时钟包含500000000个赫兹,在本发明中每一个时间单元由N个赫兹组成,每个时间 单元包含多少个赫兹可由上层用户来配置,在本发明中,把一秒定义为500000个时间单元, 即对于主频为500兆赫兹的时钟,每1000赫兹定义为一个时间单元。

[0025]下面介绍本发明的工作原理,

[0026]报文带宽控制单元:在报文带宽控制单元内,计算出每一个时间单元内注入的令 牌数=每秒需要发送的字节数/ 5 0 0 0 0 0,计算出来的整数部分配置到 DsTokenCfg . tokenBytes ;使用小数部分*65536得到的值配置到 DsTokenCfg. tokenBytesFrac ;对于发送正常速率的报文,配置报文的发送时间单元即 DsToken.TokenInTime = 500 000,配置报文的发送的空闲时间即 DsTokenCfg. tokenldleTime = 0;而对于突发流量报文,配置发送报文的发送时间单元= (突发流量的速率/突发流量的最大带宽)*500 000,配置报文发送的空闲时间单元= 500 〇〇〇-报文发送时间单元,进入控制注入令牌处理逻辑的伪代码如下所示:

[0027] tokenln = 1;//注入令牌

[0028] if(DsToken.TokenInTimeCnt[31:0] - 0) { //发送突发流量时在空闲时间内不注入令牌 if(DsToken.t0kenIdleTimeCHt[31:O] !-0) { DsToken.tokenIdleTimeCnt[31:0J = Dsr0ken.tokenIdleTimeCnt[31:0J -1;. tokenln = 0; //不注入令牌 else { DsToken.tokenlnTimeCnt = DsTokenCfg.tokenInTimeIntervral; } eLse { //报文发送过程中匀速注入令牌 DsToken.tokenlnTimeCnt [31:0] = DsToken.tokenInTimeCnt[31:0]-1; DsToken.tokenld!eTimeCnt[31:0] = DsTokenCfg.iokenIdleInterval[31:0]; }

[0029] 根据上述的逻辑可以看出,在报文发送时间单元内,匀速注入令牌,相关处理逻辑 的伪代码如下所示,在每次注入令牌时会对令牌的小数部分进行累加,由于小数部分是按 照16位的值进行存储的,所以小数部分在累加过程中就会溢出,溢出的部分更新到令牌桶 中的总的字节数中去。

[0030] tokenBytesFracCnt[ 16 : 0] = DsToken . tokenBytesFracCnt[ 15 : 0] + DsTokenCfg.tokenBytesFrac[15:0];

[0031] //注入令牌:配置令牌桶中的字节数和小数部分累加溢出值

[0032] DsToken.tokenBytesCnt[31:0]=DsToken.tokenBytesCnt[31:0] + DsTokenCfg.tokenBytes[15:0]+DsToken.tokenBytesCnt[16];

[0033] DsToken.tokenBytesFracCnt[15:0]=tokenBytesFracCnt[15:0];

[0034]下面是发送指定速率的报文为例,计算相关参数的配置:

[0035] 1)匀速发送 10Mbps:

[0036] 每个时间单元发送的匀速注入的令牌字节数:((10*1000*1000)/8/500 000 = 2.5

[0037] DsTokenCfg. tokenBytes[ 15:0] = 2 ;

[0038] DsTokenCfg.tokenBytesFrac[15:0]=(0.5*65536)=32768;

[0039] DsTokenCfg tokenlnTimelnterval = 500000;

[0040] DsTokenCfg tokenldleTimelnterval = 0;

[0041] 2)匀速发送 64Mbps:

[0042] 每个时间单元发送的匀速注入的令牌字节数:((64*1000*1000)/8/500 000 = 16

[0043] DsTokenCfg.tokenBytes[15:0]=16;

[0044] DsTokenCfg. tokenBytesFrac[ 15:0] = 0 ;

[0045] DsTokenCfg tokenlnTimelnterval = 500000;

[0046] DsTokenCfg tokenldleTimelnterval = 0;

[0047] 3)匀速发送500Mbps:

[0048] 每个时间单元发送的匀速注入的令牌字节数:((500*1000*1000)/8/500 000 = 125

[0049] DsTokenCfg.tokenBytes[15:0]=16;

[0050] DsTokenCfg. tokenBytesFrac[ 15:0] = 0 ;

[0051 ] DsTokenCfg tokenlnTimelnterval = 500 000;

[0052] DsTokenCfg tokenldleTimelnterval = 0;

[0053] 4)往1G端口不断以突发速率最大为100M带宽发送10Mbps的报文:

[0054] 每个时间单元发送的匀速注入的令牌字节数:((100*1000*1000)/8/500 000 = 25

[0055] DsTokenCfg. tokenBytes[ 15:0] =25 ;

[0056] DsTokenCfg. tokenBytesFrac[ 15:0] = 0 ;

[0057] DsTokenCfg tokenlnTimelnterval = ( 10/100)^500 000 = 50 000;

[0058] DsTokenCfg tokenldleTimelnterval = 500 000-50 000 = 450 000;

[0059] 4)往1G端口不断以突发速率最大为线速带宽发送10Mbps的报文:

[0060] 每个时间单元发送的匀速注入的令牌字节数:((1000*1000*1000)/8/500 000 = 250

[0061 ] DsTokenCfg. tokenBytes[ 15:0] =25 ;

[0062] DsTokenCfg. tokenBytesFrac[ 15:0] = 0 ;

[0063] DsTokenCfg tokenlnTimelnterval = ( 10/1000)^500 000 = 5 000;

[0064] DsTokenCfg tokenldleTimelnterval = 495 000〇

[0065] 报文发送控制单元:在报文发送的控制单元,在每一个时间单元内都会去检查令 牌桶中总字节数是否大于检查期望发送的报文长度+IPG的长度(由于计算发送速率时需要 包含IPG的长度),如果条件满足,则对报文进行封装,并把封装好的报文交到包转发引擎去 处理,同时从令牌桶的的总字节数中减去报文长度和IPG的长度之和;如果条件不满足,则 继续等待;相关处理逻辑的伪代码如下:

[0066] txPktSize[13:0] = 0; case(DsPktCfg.rxPktSizeType[ 1:0]) { case 1: //发送随机长度的报文 txPktSize[13:0]= Random (DsPktCfg.txPktSize[ 13:0], DsPktCfg.txPkr.MaxSize| 13:0]); case 2: //按照递增长度的报文 txPktSize[13:0] = E)sPktCfg.curTxPktSize[13:0]; if(curTxPktSize > DsPktCfg.txPktMaxSize) DsPktCfg.curTxPktSize[ 13:0] = DsPktCfg.txPktSize[ 13:0]; else { txPktSize = DsPktCfg.curTxPktSize[13:0]; } default //发送固定长度的报文 txPktSize[13:0] = DsPktCfg.txPktSize[13:0]; }

[0067] //判断令牌桶中是否有足够的令牌 txPktEn = DsToken.tokenBytesCnt[31:0] >= (txPktSize[l 3:0] + DsPktCfg.ipg[5:0]) J; if (txPktEn && DsPktCfg.txPktSizeType[ 1:0] == 2) { DsPktCfg.curTxPktSize[ 13:0] = DsPktCfg.curTxPkiSize[13 0l + 1; }

[0068] 本发明提出一种基于令牌桶控制发包速率的机制,可根据需求配置发送速率,实 现精确控制报文发送速率,同时使用本装置还可以控制发送突发流量及发送随机报文长度 的报文等内嵌吞吐量性能测试处理引擎报文发送需求。

[0069] 本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基 于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围 应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申 请权利要求所涵盖。

Claims (8)

1. 一种内嵌吞吐量性能测试处理引擎中控制发包速率的方法,其包括报文带宽控制单 元和报文发送控制单元,其特征在于:所述报文带宽控制单元用于控制报文的发送带宽,所 述报文带宽控制单元和报文发送控制单元之间设置一令牌桶,所述报文发送控制单元在发 送报文时只看令牌桶中的是否满足发送条件,所述报文发送控制单元对报文进行封装,并 把封装好的报文交到包转发引擎去处理。
2. 根据权利要求1所述的内嵌吞吐量性能测试处理引擎中控制发包速率的方法,其特 征在于,在报文带宽控制单元内,计算出每一个时间单元内注入的令牌数等于每秒需要发 送的字节数。
3. 根据权利要求1所述的内嵌吞吐量性能测试处理引擎中控制发包速率的方法,其特 征在于,对于发送正常速率的报文,配置报文的发送时间单元等于500000,配置报文的发送 的空闲时间等于零。
4. 根据权利要求1所述的内嵌吞吐量性能测试处理引擎中控制发包速率的方法,其特 征在于,对于突发流量报文,配置发送报文的发送时间单元为:(突发流量的速率/突发流量 的最大带宽)*500000,配置报文发送的空闲时间单元等于500000减去报文发送时间单元。
5. 根据权利要求1所述的内嵌吞吐量性能测试处理引擎中控制发包速率的方法,其特 征在于,在报文发送的控制单元,在每一个时间单元内都会去检查令牌桶中总字节数是否 大于检查期望发送的报文长度+帧间隙的长度,如果条件满足,则对报文进行封装,并把封 装好的报文交到包转发引擎去处理,同时从令牌桶的的总字节数中减去报文长度和帧间隙 的长度之和;如果条件不满足,则继续等待。
6. 根据权利要求5所述的内嵌吞吐量性能测试处理引擎中控制发包速率的方法,其特 征在于,计算发送速率时需要包含帧间隙的长度。
7. 根据权利要求1所述的内嵌吞吐量性能测试处理引擎中控制发包速率的方法,其特 征在于,在报文发送时间单元内,匀速注入令牌,在每次注入令牌时会对进行累加,小数部 分在累加过程中溢出的部分更新到令牌桶中的总的字节数中去。
8. 根据权利要求7所述的内嵌吞吐量性能测试处理引擎中控制发包速率的方法,其特 征在于,所述令牌的小数部分是按照16位的值进行存储。
CN201610040400.4A 2016-01-21 2016-01-21 一种内嵌吞吐量性能测试处理引擎中控制发包速率的方法 CN105721331A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610040400.4A CN105721331A (zh) 2016-01-21 2016-01-21 一种内嵌吞吐量性能测试处理引擎中控制发包速率的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610040400.4A CN105721331A (zh) 2016-01-21 2016-01-21 一种内嵌吞吐量性能测试处理引擎中控制发包速率的方法

Publications (1)

Publication Number Publication Date
CN105721331A true CN105721331A (zh) 2016-06-29

Family

ID=56153653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610040400.4A CN105721331A (zh) 2016-01-21 2016-01-21 一种内嵌吞吐量性能测试处理引擎中控制发包速率的方法

Country Status (1)

Country Link
CN (1) CN105721331A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1536815A (zh) * 2003-04-03 2004-10-13 华为技术有限公司 采用令牌漏桶进行报文限流的方法
US6829649B1 (en) * 2000-11-10 2004-12-07 International Business Machines Corporation Method an congestion control system to allocate bandwidth of a link to dataflows
CN1787483A (zh) * 2004-12-10 2006-06-14 华为技术有限公司 一种流量控制方法
CN1925455A (zh) * 2005-08-29 2007-03-07 中兴通讯股份有限公司 一种基于令牌桶的报文限速方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829649B1 (en) * 2000-11-10 2004-12-07 International Business Machines Corporation Method an congestion control system to allocate bandwidth of a link to dataflows
CN1536815A (zh) * 2003-04-03 2004-10-13 华为技术有限公司 采用令牌漏桶进行报文限流的方法
CN1787483A (zh) * 2004-12-10 2006-06-14 华为技术有限公司 一种流量控制方法
CN1925455A (zh) * 2005-08-29 2007-03-07 中兴通讯股份有限公司 一种基于令牌桶的报文限速方法

Similar Documents

Publication Publication Date Title
Cheng et al. Catch the whole lot in an action: Rapid precise packet loss notification in data center
US9699079B2 (en) Streaming bridge design with host interfaces and network on chip (NoC) layers
CN105531968B (zh) 基于网络的自适应速率限制方法及装置
US20140347997A1 (en) Backward congestion notification
CA2505844C (en) Apparatus and method for distributing buffer status information in a switching fabric
TWI477109B (zh) 訊務管理器及用於訊務管理器之方法
US7352694B1 (en) System and method for tolerating data link faults in a packet communications switch fabric
US7684326B2 (en) Methods and structures for improved buffer management and dynamic adaptation of flow control status in high-speed communication networks
US7230917B1 (en) Apparatus and technique for conveying per-channel flow control information to a forwarding engine of an intermediate network node
US7221652B1 (en) System and method for tolerating data link faults in communications with a switch fabric
US7719982B2 (en) Switching device utilizing flow-control management
US8693489B2 (en) Hierarchical profiled scheduling and shaping
US7742412B1 (en) Method and apparatus for preventing head of line blocking in an ethernet system
JP4421625B2 (ja) フロー制御方法および受信装置
CN102739496B (zh) 利用虚拟级联映射通信的方法和装置
AU2002359740B2 (en) Methods and apparatus for network congestion control
US6801545B2 (en) Container transport for packets in connection oriented protocols
US9276870B2 (en) Switching node with load balancing of bursts of packets
US7286557B2 (en) Interface and related methods for rate pacing in an ethernet architecture
EP1006751B1 (en) Flow control of frame based data over a synchronous digital network
US20070201380A1 (en) Method and system for power-efficient adaptive link aggregation
US8542588B2 (en) Invoking different wireless link rate selection operations for different traffic classes
US10038643B1 (en) Method and system for network micro flow control
US7342883B2 (en) Method and apparatus for managing network traffic
US6928055B2 (en) Network interface unit

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20160629

WW01 Invention patent application withdrawn after publication