广域网出口调度方法及单元的制作方法

文档序号:7927091阅读:135来源:国知局
专利名称:广域网出口调度方法及单元的制作方法
技术领域
本发明涉及接口适配技术领域,具体涉及一种广域网(WAN, Wide Area Network)出口调度方法及单元。
背景技术
在数据通信领域中,特别是在以因特网协议(IP, Internet Protocol)路 由或交换为核心的路由器和交换机领域,往往需要实现WAN 口的接入适配。 在传统的中低端路由器,往往采用外围元件扩展接口 (PCI, Peripheral Component Interface )或其它中央处理单元(CPU, Central Processing Unit) 架构完成对WAN的接入处理。而随着处理带宽的不断提高,在高端交换机 和高端路由器设计中,越来越多的采用硬件完成对WAN 口的适配,实现分 布式处理,如采用专用集成电路(ASIC , Application Specific Integrated Circuit)或现场可编程门阵列(FPGA, Field Programmable Gate Array )来 适配各自的处理模块。
WAN 口的一个重要特点是通道化。这样,在一些用FPGA实现WAN 接口适配的过程中,片间需要实现大规格数量的通道化出口调度处理。由于 接口帧适配芯片缺少大规格的通道緩存,需要提供一种WAN接口调度适配 方法。
高端交换机或高端路由器基本模型如图l所示,在WAN出口侧,IP报 文经过下行包处理和包调度之后,送给FPGA, FPGA完成帧适配包括接 口适配、l艮文才各式适配。同时,由于IP流量管理(TM, Traffic Management) 调度策略与WAN TM调度策略的差异、通道化带宽以及接口的流控特性, FPGA需要完成对WAN通道的出口调度,以防止通道间相互影响,实现通
道线速转发。
图2给出了在应用场景一下WAN出接口片间互连实现的架构图,图3 给出了在应用场景二下WANTM如ATM TM的接口适配架构图,如图2、 3所示,WAN出口由两片芯片组成,FPGA 1为IP包处理(PP)和TM的 一部分,其涉及的逻辑部分为WAN 口的出口队列调度处理,该逻辑往往在 高端设备的接口处理板;FPGA 2为帧适配模块或者WAN TM模块的一部 分,其涉及的逻辑部分为接口的适配处理,该逻辑往往在出接口子卡实现, 以适配不同的WAN接口。这样在系统设计中往往就涉及到两芯片互相适配 的问题,特别是在出端口通道化较多的情况下,如何实现芯片间的出口大规 格通道调度是一个问题。
图4为现有方案的WAN 口适配逻辑实现框图,如图4所示,该方案在 FPGA 1和FPGA2均不实现调度和緩存,而通过FPGA 1中的约定访问速率 (CAR, Committed Access Rate )模块实现流量监管,CAR模块根据各WAN 出口通道的带宽定时刷新自身为各通道设置的令牌桶的令牌数,对于每个通 道而言,只有在通道的令牌桶中有令牌时,才允许发往该通道的报文入队列; 否则,拒绝发往该通道的报文入队列。
现有方案的缺点如下
CAR模块是釆用定时刷新机制保证带宽的,若在两次定时刷新时刻之 间,某个通道的带宽由空闲变为拥塞,则CAR模块无法得知,此时,只要 当前该通道的令牌桶中仍然有令牌,CAR模块就会作出继续向该通道发送 流量的决定,这样,不仅会导致流量传输失败,也会浪费系统资源;另外, 各个CAR通道的总带宽会超过出口带宽,由于CAR模块之后的出口队列采 用单一队列,不再有调度,则要求队列的长度要足够深来满足各个通道满带 宽的需要,否则需要考虑出口队列满对CAR模块的影响。即便采用多级CAR 的方案也很难规避通道间的相互影响。

发明内容
本发明提供WAN出口调度方法及单元,以提高WAN出口调度的精确性。 本发明的技术方案是这样实现的
一种WAN出口调度方法,应用在包含第一调度单元和第二调度单元的 WAN出口中,在第一调度单元内设置出队列;该方法包括
针对每个WAN出口内的每个通道,第一调度单元统计发往该通道的、已 入所述出队列的报文长度;
第一调度单元接收报文,确定该报文的WAN出口和出通道,判断该WAN 出口和出通道对应的已入所述出队列的报文长度统计值是否小于该出通道的带 宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列。
所述出队列长度等于所有WAN出口的带宽阈值之和。
所述在第一调度单元内设置出队列之前进一步包括
计算所有WAN出口的最大带宽/粒度、所有WAN出口的最小带宽粒度、 所有WAN出口内所有通道的最大带宽/粒度、所有WAN出口内所有通道的 最小带宽/粒度的最大公约数;
对于每个WAN出口 ,计算该WAN出口的带宽/粒度与所述最大公约数 的商值,计算该商值与预设大于1系数的乘积,得到该WAN出口的带宽阈
值;
对于每个WAN出口内的每个可保证带宽的通道,计算该通道的带宽/
粒度与所述最大公约数的商值,计算该商值与预设大于1系数的乘积,得到
该可保证带宽通道的带宽阈值。
所述WAN出口内包含不可保证带宽通道;
所述得到该可保证带宽通道的带宽阔值之后进一步包括
计算该WAN出口的带宽阈值与该WAN出口内所有可保证带宽通道的
带宽阈值和的差值,得到该WAN出口内所有不可保证带宽通道的共用带宽阈值。
当所述WAN出口为非固定时隙端口时,
所述方法进一步包括每当WAN出口内有通道使能,则返回执行计算该 通道的带宽/粒度与所述最大公约数的商值的动作。
所述在第 一调度单元内设置出队列为在第 一调度单元内设置一个出队
列;
或者,当所述通道具有优先级时,
所述在第一调度单元内设置出队列为在第一调度单元内设置数目与通 道的优先级数相同的出队列,且每个出队列分别与优先级与该出队列优先级 相同的所有通道对应。
当所述通道具有优先级时,所述在第一调度单元内设置数目与优先级数 相同的出队列进一步包括在第二调度单元内设置数目与通道的优先级数相 同的入队列;
所述方法进一步包括确定要发送报文,从第一调度单元的出队列取出 报文,将报文发送给第二调度单元的入队列,该入队列和出队列的优先级相同。
一种WAN出口调度单元,包括 出队列设置模块,设置出队列;
通道报文长度统计模块,针对每个WAN出口内的每个通道,计算发往该 通道的、已入所述出队列的报文长度统计值;
队列调度模块,接收报文,确定该报文的WAN出口和出通道,从通道 报文长度统计模块获取该WAN出口和出通道对应的已入所述出队列的报文 长度统计值,若该统计值小于该出通道的带宽阈值,允许报文入所述出队列; 否则,拒绝报文入所述出队列。
所述通道报文长度统计模块包括
第一统计模块,针对每个WAN出口内的每个可保证带宽通道,计算发 往该通道的、已入所述出队列的第一报文长度统计值;
第二统计模块,针对每个WAN出口内的所有不可保证带宽通道,计算 发往该WAN出口内所有不可保证带宽通道的、已入所述出队列的第二报文 长度统计值;
所述队列调度模块包括
通道类型判断模块,接收报文,确定该报文的WAN出口和出通道,判 断该出通道是否为可保证带宽通道,若是,从第一统计模块获取第一报文长 度统计值发送给调度模块;否则,从第二统计模块获取第二报文长度统计值 发送给调度模块;
调度模块,判断第 一报文长度统计值是否小于报文对应的出通道的带宽 阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列;和/ 或,
判断第二报文长度统计值是否小于报文对应的WAN出口内所有不可保 证带宽通道的共用带宽阈值,若是,允许报文入所述出队列;否则,拒绝报 文入所述出队列。
所述调度单元进一步包括
带宽基准确定模块,计算所有WAN出口的最大带宽/粒度、所有WAN 出口的最小带宽粒度、所有WAN出口内所有通道的最大带宽/粒度、所有 WAN出口内所有通道的最小带宽/粒度的最大公约数,将该最大公约数输出 到端口带宽阈值计算模块;
端口带宽阈值计算模块,对于每个WAN出口,计算该端口的带宽/粒度 与该接收到的最大公约数的商值,计算该商值与预设大于1系数的乘积,得 到该WAN出口的带宽阈值,将各WAN出口的带宽阈值输出到出队列设置 模块;
且,所述出队列设置模块将出队列长度设置为所有WAN出口的带宽阈 值之和。
所述调度单元进一步包括
第一通道带宽阈值计算模块,接收带宽基准确定模块发来的最大公约
数,计算每个可保证带宽通道的带宽/粒度与该最大公约数的商值,计算该
商值与预设大于1系数的乘积,得到该通道的带宽阈值,将各可保证带宽通 道的带宽阈值输出到队列调度模块,
且,当所述队列调度模块收到的报文对应的出通道为可保证带宽通道 时,若从通道报文长度统计模块获取的统计值小于该可保证带宽通道的带宽 阈值,则允许报文入所述出队列。
所述调度单元进一步包括
第二通道带宽阈值计算模块,接收端口带宽阈值计算模块发来的各包含 不可保证带宽通道的WAN出口的带宽阈值,接收第一通道带宽阔值计算模 块发来的各包含不可保证带宽通道的WAN出口内各可保证带宽通道的带宽 阈值,对于每个包含不可保证带宽通道的WAN出口 ,计算该WAN出口的 带宽阈值与所有可保证带宽通道的带宽阈值和的差值,将该差值作为该 WAN出口的所有不可保证带宽通道的共用带宽阈值发送给队列调度模块,
且,当所述队列调度模块收到的报文的出通道为不可保证带宽通道时, 从通道报文长度统计模块获取的统计值为发往该报文的WAN出口内所有不 可保证带宽通道的已入所述出队列的报文长度统计值,且若该统计值小于该 WAN出口的所有不可保证带宽通道的共用带宽阈值,则允许报文入所述出 队列。
所述出队列设置模块包括
优先级数接收模块,接收所有WAN出口的所有通道的优先级数,将该 优先级数输入到设置模块,
设置模块,设置数目与优先级数相同的出队列,且每个出队列分别与优 先级与该出队列优先级相同的所有通道对应。
所述调度单元为FPGA或ASIC。
与现有技术相比,本发明根据每个通道的带宽阔值来控制每个通道的流 量,只有在发往通道的已入队列的报文长度小于该通道的带宽阈值时,才允 许新报文入队列,避免了流量传输失败,从而提高了 WAN出口调度的精确 性,且保证了每个通道的带宽都不会出现拥塞现象,从而减少了系统资源的
浪费;
另外,本发明实施例中,根据所有WAN出口的带宽阈值之和来设置出
队列长度,从而无需设置过深的出队列,节省了资源。


图1为高端交换机或高端路由器基本模型图2为在应用场景一下WAN出接口片间互连实现的架构图3为在应用场景二下WANTM的接口适配架构图4为现有方案的WAN 口适配逻辑实现框图5为本发明实施例提供的计算WAN出口及通道的带宽阈值的流程
图6为本发明实施例一提供的进行WAN出口调度的流程图; 图7为本发明实施例二提供的进行WAN出口调度的流程图; 图8为本发明实施例提供的WAN出口调度单元的组成图一; 图9为本发明实施例提供的通道报文长度统计模块和队列调度模块的 结构示意图10为本发明实施例提供的WAN出口调度单元的组成图二 ; 图11为本发明实施例提供的出队列设置模块的结构示意图。
具体实施例方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。 本发明的核心思想是FPGA 1设置出队列,FPGA 1分别对发往每个通 道的已入该出队列的报文长度进行统计,若发往某个通道的已入该出队列的 报文长度小于该通道的带宽阈值,则允许报文入该出队列;否则,拒绝报文 入该出队列。
在本发明实施例中,出队列的长度是由所有WAN出口的带宽阈值之和 决定的,因此,首先要计算每个WAN出口的带宽阈值,同时要计算WAN
出口下各通道的带宽阈值,以便设置每个通道可允许的最大报文长度。
以下对计算WAN出口及通道的带宽阈值的过程,以及根据WAN出口 的带宽阈值设置出队列并根据通道带宽阈值进行WAN出口调度的过程分别 进行说明。
图5为本发明实施例提供的计算WAN出口及通道的带宽阈值的流程 图,如图5所示,其具体步骤如下
步骤501:计算各个WAN出口的带宽/粒度,在所有WAN出口的带宽 /粒度中,选择最大带宽/粒度和最小带宽/粒度。
粒度为最小带宽单位,如64Kbps等,带宽/粒度为每秒最多转发的粒度 单位的数量。
步骤502:对于每个WAN出口,计算该WAN出口内各通道的带宽/粒度。
若WAN出口为固定时隙端口如CE1端口,则时隙即等同于通道,计 算每个通道的带宽/粒度时所使用的带宽即为每个时隙的带宽。
若WAN出口为ATM PVC端口 ,由于端口内可包括恒定比特率(CBR, Constant Bit Rate )、可变比特率(VBR, Variable Bit Rate )、未定比特率 (UBR, Unspecified Bit Rate)等通道,其中,CBR、 VBR通道为可保证带 宽通道,UBR通道为不可保证带宽通道,本步骤中只需计算CBR、 VBR通 道的带宽/粒度,其中,CBR、 VBR通道在计算带宽/粒度时所使用的带宽不 同,分别如下
1、 对于CBR通道,可采用该通道的突发带宽;
2、 对于VBR通道,可采用该通道的平均带宽。
步骤503:在所有WAN出口内的所有通道的带宽/粒度中,选择最大带 宽/粒度和最小带宽/粒度。
步骤504:计算所有WAN出口的最大带宽/粒度、所有WAN出口的最 小带宽粒度、所有WAN出口内的所有通道的最大带宽/粒度、所有WAN出 口内的所有通道的最小带宽/粒度的最大公约数BWo。
步骤505:对于每个WAN出口,通过以下公式计算各WAN出口的带 宽阈值
<formula>formula see original document page 15</formula>( 1 )
其中,BW,为第j个WAN出口的带宽阈值,BWpj为第j个WAN出 口的带宽/粒度,j为正整数,a为预设正整数,且a〉1,通常取a-2或3。
步骤506:对于每个WAN出口内每个可保证带宽的通道,通过以下公 式计算各通道的带宽阈值
<formula>formula see original document page 15</formula> ( 2 )
其中,BWIjkth为第j个WAN出口内第k个可保证带宽的通道的带宽阈 值,BW^为第j个WAN出口内第k个可保证带宽的通道的带宽/粒度,k =
1、 2..... Kj, Kj为第j个WAN出口内可保证带宽的通道的数目,a为预
设正整数,且a〉1,通常取a-2或3。
步骤507:对于每个WAN出口内的不可保证带宽的通道,通过以下公 式计算各WAN出口内所有不可保证带宽通道的共用带宽阈值
<formula>formula see original document page 15</formula> (3)
k=l
其中,BWIjxth为第j个WAN出口内所有不可保证带宽通道的共用带宽 阈值,堂,,一也称为第j个WAN出口的保证带宽。
k-1
对于固定时隙的WAN出口如CE1端口,该端口内的通道都是可保证 带宽的;而对于非固定时隙的WAN出口如ATM PVC端口 ,该端口内不 仅包括可保证带宽的通道如CBR、 VBR通道,还包括不可保证带宽的通 道如UBR通道。所有不可保证带宽的通道共享共用带宽,因此本步骤中 需要计算WAN出口内所有不可保证带宽通道的共用带宽阈值。
步骤508:将各个WAN出口的带宽阈值BWPjth,每个WAN出口内各 个可保证带宽通道的带宽阈值BW!jkth、每个WAN出口内所有不可保证带宽 通道的共用带宽阈值BWyxth配置在FPGA 1上。
若WAN出口为固定时隙端口 ,则不存在不可保证带宽通道的共用带宽 阈值,只需在FPGA1上配置各个WAN出口的带宽阈值,每个WAN出口 内各个可保证带宽通道的带宽阈值。
需要说明的是,对于非固定时隙的WAN出口例如ATMPVC端口, 由于其通道数是变化的,每当有通道使能且该通道为可保证带宽通道时,就 需要执行步骤506来得到该通道的带宽阈值,然后执行步骤507来更新该 WAN出口内所有不可保证带宽通道的共用带宽阈值,并将该使能的通道的 带宽阈值配置到FPGA 1上,同时以更新的该WAN出口内所有不可保证带 宽通道的共用带宽阈值更新FPGA 1上该WAN出口内所有不可保证带宽通 道的共用带宽阈值。
图6为本发明实施例 一提供的根据WAN出口的带宽阈值设置出队列并 根据通道带宽阈值进行WAN出口调度的流程图,如图6所示,其具体步骤 如下
步骤601: FPGA 1在自身设置一个出队列,该出队列长度等于所有WAN 出口的带宽阈值之和。
可见,WAN出口的带宽阈值之和是设置出队列长度的基准,在实际应 用中,也可在该基准之前、之后一定范围内选择一个值作为出队列的长度。
步骤602: FPGA 1为每个WAN出口内的每个可保证带宽的通道设置 一个入队列报文长度统计值Cljk,为每个WAN出口内所有不可保证带宽的 通道设置一个入队列报文长度统计值Cyx,并初始化Qjk-O, CIjX = 0,其中, k=l、 2..... Kj, Kj为第j个WAN出口内可保证带宽的通道数目。
步骤603: FPGA 1收到一个报文,从报文中获取该报文的WAN出口 号j和出通道号。
步骤604: FPGA 1判断出通道是否为可保证带宽通道,若是,执行步 骤605;否则,执行步骤607。
步骤605: FPGA 1判断出通道对应的djk是否满足CIjk< BWIjkth,若 是,执行步骤606;否则,执行步骤609。
步骤606: FPGA 1将报文入该出队列,且将Cyk加上该报文的长度,转 至步骤610。
步骤607: FPGA 1判断WAN出口对应的djx是否满足CIjX< BWIjXth, 若是,执行步骤608;否则,执行步骤609。
步骤608: FPGA l将报文入该出队列,且将C!jx加上该报文的长度, 转至步骤610。
步骤609: FPGA 1拒绝报文入该出队列。
FPGA 1可将报文丢弃或者反压至前级芯片。
步骤610: FPGA 1要发送才艮文,确定才艮文的WAN出口号j和出通道号。
步骤611: FPGA 1判断报文的出通道是否为可保证带宽通道,若是, 执行步骤612;否则,执行步骤613。
步骤612: FPGA 1将报文发送给FPGA2,同时,将WAN出口和出通 道对应的Cp减去该报文长度,本流程结束。
步骤613: FPGA 1将报文发送给FPGA2,同时,将WAN出口对应的
Cux减去该4艮文长度。
若WAN出口为固定时隙端口,则可不执行步骤604、 607、 608以及步
骤611、 613。
由于在FPGA 1处已经实现了流量的可靠调度,因此,本发明中,对 FPGA 2的緩存不作要求,FPGA2提供入队列即可。
图6所示实施例中未考虑到各通道的优先级要求,即默认所有通道的优 先级相同,而在实际应用中,WAN出口中的通道可能具有多个优先级,以 下给出考虑通道的优先级要求的实施例
图7为本发明实施例二提供的根据WAN出口的带宽阈值设置出队列并 根据通道带宽阈值进行WAN出口调度的流程图,如图7所示,其具体步骤 如下
步骤701: FPGA 1根据通道的优先级要求,在自身为每个优先级设置 一个出队列,每个出队列的长度等于所有WAN出口的带宽阈值之和;同时, FPGA 2根据通道的优先级要求,在自身为每个优先级设置一个入队列。 入队列的长度不限。
若所有WAN出口的通道共分M个优先级,则FPGA 1设置M个出队 列。FPGA2设置M个入队列,M为正整数。
步骤702:对于每个出队列,FPGA 1为与该出队列的优先级对应的每
个可保证带宽的通道设置一个入队列报文长度统计值dmjk,为与该出队列的
优先级对应的每个WAN出口内所有不可保证带宽的通道设置一个入队列报 文长度统计值C!mjx,并初始化Cmjk-0, CImjx = 0,其中,m为出队列号, 出队列号等于出队列的优先级号,j为WAN出口号,k为通道号。
一般地,同一 WAN出口内的所有不可保证带宽的通道的优先级是相同 的,此时,只需为该WAN出口内的所有不可保证带宽的通道共同设置一个 CImjx即可。
步骤703: FPGA 1收到一个报文,从报文中获取该报文的WAN出口 号j和出通道号。
步骤704: FPGA1确定该出通道的优先级号m, /人而确定该优先级对应 的出队列号为m。
步骤705: FPGA 1判断该出通道是否为可保证带宽通道,若是,执行 步骤706;否则,执行步骤708。
步骤706: FPGA1判断该出通道对应的Ctajk是否满足CImjk< BWIjkth, 若是,执行步骤707;否则,执行步骤710。
步骤707: FPGA 1将报文入该出队列,且将dmjk加上该报文的长度, 转至步骤711。
步骤708: FPGA 1判断该WAN出口对应的CImjX是否满足CImjX< BWIjxth,若是,执行步骤709;否则,执行步骤710。
步骤709: FPGA 1将报文入该出队列,且将dmjx加上该报文的长度, 转至步骤711。
步骤710: FPGA 1拒绝报文入该出队列。步骤711: FPGA 1要发送报文,确定报文的WAN出口号j和出通道号。 FPGA1在发送报文前,会按照各出队列的优先级的从高到低,轮询各
出队列,优先选择高优先级出队列中的报文发送。
步骤712: FPGA 1确定该出通道的优先级号m,从而确定该报文对应
的出队列号为m。
步骤713: FPGA 1判断报文的出通道是否为可保证带宽通道,若是, 执行步骤714;否则,执行步骤715。
步骤714: FPGA 1将净艮文发送给FPGA 2的入队列m,同时,将出队列 m中与WAN出口 j和出通道k对应的dmjk减去该报文长度,本流程结束。
步骤715: FPGA 1将才艮文发送给FPGA 2的入队列m,同时,将出队列 m中与WAN出口 j对应的dmjx减去该报文长度。
图8为本发明实施例提供的WAN出口调度单元的组成图一,如图8所 示,其主要包括出队列设置模块81、通道报文长度统计模块82和队列调 度模块83,其中
出队列设置模块81:设置出队列。
通道报文长度统计模块82:针对每个WAN出口内的每个通道,计算发往 该通道的、已入所述出队列的报文长度统计值。
队列调度模块83:接收报文,确定该报文的WAN出口和出通道,从通 道报文长度统计模块82获取该WAN出口和出通道对应的已入所述出队列 的报文长度统计值,若该统计值小于该出通道的带宽阈值,允许报文入出队 列设置模块81设置的出队列;否则,拒绝报文入所述出队列。
如图9所示,通道报文长度统计模块82可包括第一统计模块821和 第二统计模块822,其中
第一统计模块821:针对每个WAN出口内的每个可保证带宽通道,计 算发往该通道的、已入所述出队列的第一报文长度统计值。
第二统计模块822:针对每个WAN出口内的所有不可保证带宽通道, 计算发往该WAN出口内所有不可保证带宽通道的、已入所述出队列的第二
报文长度统计值。
同时,队列调度模块83可包括通道类型判断模块831和调度模块832, 其中
通道类型判断模块831:接收报文,确定该报文的WAN出口和出通道, 判断该出通道是否为可保证带宽通道,若是,从第一统计模块821获取第一 报文长度统计值发送给调度模块;否则,从第二统计模块822获取第二报文 长度统计值发送给调度模块832。
调度模块832:判断第一报文长度统计值是否小于报文对应的出通道的 带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列; 和/或,
判断第二报文长度统计值是否小于报文对应的WAN出口内所有不可保 证带宽通道的共用带宽阈值,若是,允许报文入所述出队列;否则,拒绝报 文入所述出队列。
如图IO所示,在实际应用中,WAN出口调度单元还可包括
带宽基准确定模块84:计算所有WAN出口的最大带宽/粒度、所有WAN 出口的最小带宽粒度、所有WAN出口内所有通道的最大带宽/粒度、所有 WAN出口内所有通道的最小带宽/粒度的最大公约数,将该最大公约数输出 到端口带宽阔值计算模块85。
端口带宽阈值计算模块85:对于每个WAN出口,计算该端口的带宽/ 粒度与该接收到的最大公约数的商值,计算该商值与预设大于1系数的乘 积,得到该WAN出口的带宽阈值,将各WAN出口的带宽阈值输出到出队 列设置模块81。
且,所述出队列设置模块81将出队列长度设置为所有WAN出口的带 宽阈值之和。
第一通道带宽阈值计算模块86:接收带宽基准确定模块84发来的最大 公约数,计算每个可保证带宽通道的带宽/粒度与该最大公约数的商值,计 算该商值与预设大于1系数的乘积,得到该通道的带宽阈值,将各可保证带
宽通道的带宽阈值输出到队列调度模块83。
且,当所述队列调度模块83收到的报文对应的出通道为可保证带宽通 道时,若从通道报文长度统计模块82获取的统计值小于该可保证带宽通道 的带宽阈值,则允许报文入所述出队列。
第二通道带宽阈值计算模块87:接收端口带宽阈值计算模块85发来的 各包含不可保证带宽通道的WAN出口的带宽阈值,接收第一通道带宽阈值 计算模块86发来的各包含不可保证带宽通道的WAN出口内各可保证带宽 通道的带宽阈值,对于每个包含不可保证带宽通道的WAN出口,计算该 WAN出口的带宽阈值与所有可保证带宽通道的带宽阈值和的差值,将该差 值作为该WAN出口的所有不可保证带宽通道的共用带宽阈值发送给队列调 度模块83。
且,当所述队列调度模块83收到的报文的出通道为不可保证带宽通道 时,从通道报文长度统计模块82获取的统计值为发往该报文的WAN出口 内所有不可保证带宽通道的已入所述出队列的报文长度统计值,且若该统计
值小于该WAN出口的所有不可保证带宽通道的共用带宽阈值,则允许报文 入所述出队列。
如图ll所示,出队列设置模块81可包括优先级数接收模块811和设 置模块812,其中
优先级数接收模块811:接收外部输入的所有WAN出口的所有通道的 优先级数,将该优先级数输入到设置模块。
设置模块812:设置数目与优先级数相同的出队列,每个出队列长度等 于所有WAN出口的带宽之和,且每个出队列分别与优先级与该出队列优先 级相同的所有通道对应。
需要指出的是,本发明实施例中的FPGA也可以由其它芯片代替,例如 可由专用集成电路(ASIC, Application Specific Integrated Circuit)代替。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在 本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在
本发明的保护范围之内。
权利要求
1、一种广域网WAN出口调度方法,应用在包含第一调度单元和第二调度单元的WAN出口中,其特征在于,在第一调度单元内设置出队列;该方法包括:针对每个WAN出口内的每个通道,第一调度单元统计发往该通道的、已入所述出队列的报文长度;第一调度单元接收报文,确定该报文的WAN出口和出通道,判断该WAN出口和出通道对应的已入所述出队列的报文长度统计值是否小于该出通道的带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列。
2、 如权利要求1所述的方法,其特征在于,所述出队列长度等于所有WAN 出口的带宽阈值之和。
3、 如权利要求1或2所述的方法,其特征在于,所述在第一调度单元内设 置出队列之前进一步包括计算所有WAN出口的最大带宽/粒度、所有WAN出口的最小带宽粒度、 所有WAN出口内所有通道的最大带宽/粒度、所有WAN出口内所有通道的 最小带宽/粒度的最大公约数;对于每个WAN出口 ,计算该WAN出口的带宽/粒度与所述最大公约数 的商值,计算该商值与预设大于1系数的乘积,得到该WAN出口的带宽阈值;对于每个WAN出口内的每个可保证带宽的通道,计算该通道的带宽/ 粒度与所述最大公约数的商值,计算该商值与预设大于1系数的乘积,得到 该可保证带宽通道的带宽阈值。
4、 如权利要求3所述的方法,其特征在于,所述WAN出口内包含不 可保证带宽通道;所述得到该可保证带宽通道的带宽阈值之后进一步包括计算该WAN出口的带宽阈值与该WAN出口内所有可保证带宽通道的 带宽阚值和的差值,得到该WAN出口内所有不可保证带宽通道的共用带宽 阈值。
5、 如权利要求3所述的方法,其特征在于,当所述WAN出口为非固定时 隙端口时,所述方法进一步包括每当WAN出口内有通道使能,则返回执行计算该 通道的带宽/粒度与所述最大公约数的商值的动作。
6、 如权利要求1或2所述的方法,其特征在于,所述在第一调度单元 内设置出队列为在第一调度单元内设置一个出队列;或者,当所述通道具有优先级时,所述在第一调度单元内设置出队列为在第一调度单元内设置数目与通 道的优先级数相同的出队列,且每个出队列分别与优先级与该出队列优先级 相同的所有通道对应。
7、 如权利要求6所述的方法,其特征在于,当所述通道具有优先级时, 所述在第一调度单元内设置数目与优先级数相同的出队列进一步包括在第 二调度单元内设置数目与通道的优先级数相同的入队列;所述方法进一步包括确定要发送报文,从第一调度单元的出队列取出 报文,将报文发送给第二调度单元的入队列,该入队列和出队列的优先级相 同。
8、 一种广域网WAN出口调度单元,其特征在于,包括 出队列设置模块,设置出队列;通道报文长度统计模块,针对每个WAN出口内的每个通道,计算发往该 通道的、已入所述出队列的报文长度统计值;队列调度模块,接收报文,确定该才艮文的WAN出口和出通道,从通道 报文长度统计模块获取该WAN出口和出通道对应的已入所述出队列的报文 长度统计值,若该统计值小于该出通道的带宽阈值,允许报文入所述出队列; 否则,拒绝报文入所述出队列。
9、 如权利要求8所述的调度单元,其特征在于,所述通道报文长度统 计模块包括第一统计模块,针对每个WAN出口内的每个可保证带宽通道,计算发 往该通道的、已入所述出队列的第一报文长度统计值;第二统计模块,针对每个WAN出口内的所有不可保证带宽通道,计算 发往该WAN出口内所有不可保证带宽通道的、已入所述出队列的第二报文 长度统计值;所述队列调度模块包括通道类型判断模块,接收报文,确定该报文的WAN出口和出通道,判 断该出通道是否为可保证带宽通道,若是,从第一统计模块获取第一报文长 度统计值发送给调度模块;否则,从第二统计模块获取第二报文长度统计值 发送给调度模块;调度模块,判断第 一报文长度统计值是否小于报文对应的出通道的带宽 阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列;和/ 或,判断第二报文长度统计值是否小于报文对应的WAN出口内所有不可保 证带宽通道的共用带宽阈值,若是,允许报文入所述出队列;否则,拒绝报 文入所述出队列。
10、如权利要求8所述的调度单元,其特征在于,所述调度单元进一步 包括带宽基准确定模块,计算所有WAN出口的最大带宽/粒度、所有WAN 出口的最小带宽粒度、所有WAN出口内所有通道的最大带宽/粒度、所有 WAN出口内所有通道的最小带宽/粒度的最大公约数,将该最大公约数输出 到端口带宽阈值计算模块;端口带宽阈值计算模块,对于每个WAN出口,计算该端口的带宽/粒度 与该接收到的最大公约数的商值,计算该商值与预设大于1系数的乘积,得 到该WAN出口的带宽阈值,将各WAN出口的带宽阈值输出到出队列设置 模块; 且,所述出队列设置模块将出队列长度设置为所有WAN出口的带宽阈 值之和。
11、 如权利要求10所述的调度单元,其特征在于,所述调度单元进一 步包括第一通道带宽阈值计算模块,接收带宽基准确定模块发来的最大公约 数,计算每个可保证带宽通道的带宽/粒度与该最大公约数的商值,计算该 商值与预设大于1系数的乘积,得到该通道的带宽阈值,将各可保证带宽通 道的带宽阈值输出到队列调度模块,且,当所述队列调度模块收到的报文对应的出通道为可保证带宽通道 时,若从通道报文长度统计模块获取的统计值小于该可保证带宽通道的带宽 阈值,则允许报文入所述出队列。
12、 如权利要求10所述的调度单元,其特征在于,所述调度单元进一 步包括第二通道带宽阈值计算模块,接收端口带宽阈值计算模块发来的各包含 不可保证带宽通道的WAN出口的带宽阈值,接收第一通道带宽阈值计算模 块发来的各包含不可保证带宽通道的WAN出口内各可保证带宽通道的带宽 阈值,对于每个包含不可保证带宽通道的WAN出口 ,计算该WAN出口的 带宽阈值与所有可保证带宽通道的带宽阈值和的差值,将该差值作为该 WAN出口的所有不可保证带宽通道的共用带宽阈值发送给队列调度模块,且,当所述队列调度模块收到的报文的出通道为不可保证带宽通道时, 从通道报文长度统计模块获取的统计值为发往该报文的WAN出口内所有不 可保证带宽通道的已入所述出队列的报文长度统计值,且若该统计值小于该 WAN出口的所有不可保证带宽通道的共用带宽阈值,则允许报文入所述出 队列。
13、 如权利要求8所述的调度单元,其特征在于,所述出队列设置模块 包括优先级数接收模块,接收所有WAN出口的所有通道的优先级数,将该 优先级数输入到设置模块,设置模块,设置数目与优先级数相同的出队列,且每个出队列分别与优 先级与该出队列优先级相同的所有通道对应。
14、如权利要求8至13任一所述的调度单元,其特征在于,所述调度 单元为现场可编程门阵列FPGA或专用集成电路ASIC。
全文摘要
本发明公开了广域网出口调度方法及单元。方法包括在第一调度单元内设置出队列,并针对每个WAN出口内的每个通道,统计发往该通道的、已入所述出队列的报文长度,当第一调度单元接收报文时,判断该报文的WAN出口和出通道对应的已入所述出队列的报文长度统计值是否小于该出通道的带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列。本发明提高了WAN出口调度的精确性。
文档编号H04L12/56GK101378364SQ20081022330
公开日2009年3月4日 申请日期2008年9月25日 优先权日2008年9月25日
发明者晖 林 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1