一种基于FPGA队列实现QoS队列的方法和设备技术

技术编号:7976391 阅读:280 留言:0更新日期:2012-11-16 01:44
本发明专利技术实施例公开了一种基于FPGA队列实现QoS队列的方法和设备,通过应用本发明专利技术实施例的技术方案,在接口配置QoS策略时,由FPGA转发设备为该接口申请相应的队列,为所申请的队列分配相应的队列组,并配置所述队列组的属性,以实现该QoS策略所对应的队列配置,在该接口转发QoS策略所对应的报文时,根据队列组以及接口的属性,通过队列组中的队列对报文进行转发处理,从而,使FPGA转发设备在报文处理过程中,只需基于队列组进行资源调度,而不需要区分用户的具体配置,便可以同时支持多种QoS策略,基于QoS策略完成对报文的处理,降低了QoS策略实现的复杂度,简化了QoS策略下的报文处理流程,同时,根据不同的队列资源调度选择方案,可以方便的实现更丰富的QoS策略扩展。

【技术实现步骤摘要】

本专利技术涉及通信
,特别涉及一种基于FPGA队列实现QoS队列的方法和设备
技术介绍
在采用FPGA(Field Programmable Gate Array,现场可编程阵列)作为核心完成高速报文转发的网络设备(路由器、防火墙等)中,将以前由CPU(Central ProcessingUnit,中央处理器)软件实现的报文转发、业务等处理下移到FPGA转发引擎上来实现。FPGA转发引擎能够快速处理报文,但难以支撑复杂业务,且FPGA资源较为有限。CPU将控制信息下发到FPGA,FPGA根据这些控制信息对报文进行转发和业务处理。 如图I所示,为现有技术中FPGA转发引擎数据平面控制平面的示意图。其中,具体的报文处理过程如下FPGA转发引擎收到报文(即图I中所示的步骤I),如果该报文是首包,或者本机报文,或者根据控制平面的信息确定该报文是需要上送CPU的报文,则将该报文上送CPU (即图I中所示的步骤2),CPU将处理后的报文下发到FPGA转发引擎的数据平面(即图I中所示的步骤3),数据平面查询控制平面获取控制信息,并将统计信息等写回控制平面(即图I中所示的步骤7和8),然后,数据平面将处理后的报文进行发送(即图I中所示的步骤4)。后续报文都会按照控制平面的控制信息进行处理。为了适应复杂的网络环境,丰富的QoS(Quality of service,服务质量)功能是路由器等网络设备必不可少的特性。常用QoS技术包括流分类、CAR (Committed AccessRate,约定访问速率)、GTS (Generic Traffic Shaping,通用流量整形)、LR (Line Rate,接口总速率限制)、拥塞管理等。流分类采用一定的规则识别符合某类特征的报文,它是对网络业务进行区分服务的如提和基础。CAR :对进入或流出设备的特定流量进行监管。当流量超出设定值时,可以采取限制或惩罚措施,以保护网络资源不受损害。GTS: —种主动调整流的输出速率的流量控制措施,用来使流量适配下游设备可供给的网络资源,避免不必要的报文丢弃。LR :可以在一个接口上限制发送报文(包括紧急报文)的总速率。拥塞管理就是当拥塞发生时如何制定一个资源的调度策略,以决定报文转发的处理次序,如 FIFO (First Input First Output,先入先出)、WFQ (Weighted Fair Queuing,加权公平队列)和CBQ(Class Based Queuing,基于类的队列)等。拥塞管理一般采用队列技术,使用队列算法对流量进行分类,之后用某种优先级别算法将这些流量发送出去。每种队列算法都用以解决特定的网络流量问题,并对带宽资源的分配、延迟、抖动等有着十分重要的影响。队列调度对不同优先级的报文进行分级处理,优先级高的会得到优先发送。在上述QoS技术中,GTS、LR和拥塞管理(FIF0、WFQ和CBQ等)都可以基于队列实现,但又存在一些差异。(I)GTS :对超出指定速率的流量进行入队缓存,当令牌桶有足够的令牌时,再均匀的向外发送这些被缓存的报文。其队列的可用带宽是固定的。(2)LR :对接口上的所有报文进行流量控制。如果在设备的某个接口上配置了 LR,所有从该接口发送的报文首先要经过LR的令牌桶进行处理。如果令牌桶中有足够的令牌,则报文可以发送;否则,报文将进入QoS队列进行拥塞管理。(3) FIFO:按照时间到达的先后决定报文的转发次序,先进的先出,后进的后出,不需要进行流分类和队列调度,FIFO关心的只是队列的长度,队列的长度对延迟和丢包率有影响。(4)WFQ :在公平队列的基础上增加了优先权,使高优先权的报文获得优先调度的 机会多于低优先权的报文。WFQ能够按流的“会话”信息(协议类型、源和目的TCP或UDP端口号、源和目的IP地址、ToS域中的优先级等)自动进行流分类,并且尽可能多地提供队列,以将每个流均匀地放入不同队列中,从而在总体上均衡各个流的延迟。在出队的时候,WFQ按流的优先级来分配每个流应占有出口的带宽。优先级的数值越小,所得的带宽越少。优先级的数值越大,所得的带宽越多。(5)CBQ:是对WFQ功能的扩展,为用户提供了定义类的支持。在网络拥塞时,CBQ根据用户定义的类规则对报文进行匹配,并使其进入相应的队列,在入队列之前必须进行拥塞避免机制和带宽限制的检查。在报文出队列时,加权公平调度每个类对应的队列中的报文。CBQ是基于带宽保证的队列技术,在带宽有剩余时,可以进行带宽抢占。CBQ可以包括以下队列紧急队列采用FIFO调度,没有带宽限制,一般情况下,物理接口中均已预留紧急队列的资源,所以,每个物理接口自带了自身相应的紧急队列。EF (Expedited Forwarding,快速转发)队列(低延迟队列)如果没有拥塞发生,允许使用超过分配的带宽;如果发生拥塞,超过分配带宽的报文将被丢弃。AF (Assured Forwarding,确保转发)队列(带宽队列)为AF业务提供严格、精确的带宽保证,并且保证各类AF业务之间按一定的比例关系进行队列调度。缺省队列(WFQ队列)用来支撑BE(Best Effort,尽力服务)业务,使用接口剩余带宽进行发送。需要说明的是,在具体的处理场景中,上述的EF队列和AF队列可以根据实际需要选择其中的任意一种队列,或者将两种队列同时应用,来实现上述的CBQ。在现有技术中,往往采用不同的队列技术分别实现GTS、LR、FIFO、WFQ和CBQ。(I)GTS :用一个FIFO队列实现,并指定带宽。对超出指定带宽的流量进行入队缓存,当令牌桶有足够的令牌时,再均匀的向外发送这些被缓存的报文。(2) LR:设置接口带宽,对接口进行限速。所有从该接口发送的报文首先要经过LR的令牌桶进行处理。如果令牌桶中有足够的令牌,则报文可以发送;否则,报文将进入QoS队列进行拥塞管理。(3)FIFO :用一个FIFO队列实现,不需要队列调度。(4) WFQ :用一组WFQ队列实现。在出队的时候,WFQ按流的优先级来分配每个流应占有出口的带宽。(5) CBQ :同时支持紧急队列、EF、AF和BE队列,根据用户定义的类规则对报文进行匹配,并使其进入相应的队列,在报文出队列时,加权公平调度每个类对应的队列中的报文。在带宽有剩余时,可以进行带宽抢占。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题如图2所示,为现有技术中的报文进行QoS队列处理过程的流程示意图,需要逐一进行GTS、LR、FIFO、WFQ和CBQ的判断处理,在最复杂的情况下,需要对一个报文进行所有配置队列的轮询后才能确定其真正对应的队列,并进行相应的处理。在现有技术中,采用不同的队列技术分别实现GTS、LR、FIFO、WFQ和FPGA实现的复杂度,缺乏可扩展性
技术实现思路
本专利技术实施例提供了一种基于FPGA队列实现QoS队列的方法和设备,解决现有技术中采用不同的队列技术分别实现GTS、LR、FIFO、WFQ和CBQ所带来的处理复杂,扩展性欠缺的问题。为达到上述目的,本专利技术实施例一方面提供了一种基于FPGA队列实现QoS队列的方法,至少包括以下步骤当一个接口上配置QoS策略时,FPGA转发设备根据所述QoS策略,为所述本文档来自技高网
...

【技术保护点】
一种基于现场可编程门阵列FPGA队列实现服务质量QoS队列的方法,其特征在于,至少包括以下步骤:当一个接口上配置QoS策略时,FPGA转发设备根据所述QoS策略,为所述接口申请相应的队列;所述FPGA转发设备为所申请的队列分配相应的队列组,并配置所述队列组的属性,实现所述QoS策略所对应的队列配置;当所述FPGA转发设备通过所述接口转发所述QoS策略所对应的报文时,所述FPGA转发设备根据所述队列组的属性以及所述接口的属性,通过所述队列组中的队列对所述报文进行转发处理。

【技术特征摘要】
1.一种基于现场可编程门阵列FPGA队列实现服务质量QoS队列的方法,其特征在于,至少包括以下步骤 当一个接口上配置QoS策略时,FPGA转发设备根据所述QoS策略,为所述接口申请相应的队列; 所述FPGA转发设备为所申请的队列分配相应的队列组,并配置所述队列组的属性,实现所述QoS策略所对应的队列配置; 当所述FPGA转发设备通过所述接口转发所述QoS策略所对应的报文时,所述FPGA转发设备根据所述队列组的属性以及所述接口的属性,通过所述队列组中的队列对所述报文进行转发处理。2.如权利要求I所述的方法,其特征在于,当一个接口上配置QoS策略时,FPGA转发设备根据所述QoS策略,为所述接口申请相应的队列,具体包括 当所述QoS策略具体为通用流量整形GTS策略时,所述FPGA转发设备根据所述GTS策略,为所述接口申请一个尽力服务BE队列;和/或, 当所述QoS策略具体为接口总速率限制LR策略时,所述FPGA转发设备根据所述LR策略,为所述接口申请相应的队列资源;和/或, 当所述QoS策略具体为先入先出FIFO策略时,所述FPGA转发设备根据所述FIFO策略,为所述接口申请一个BE队列;和/或, 当所述QoS策略具体为加权公平队列WFQ策略时,所述FPGA转发设备根据所述WFQ策略,为所述接口申请多个BE队列,并分别为所申请的每个BE队列分配权重;和/或, 当所述QoS策略具体为基于类的队列CBQ策略时,所述FPGA转发设备根据所述CBQ策略,为所述接口申请多个BE队列,并为每个BE队列分配权重,同时,还申请一个加速转发EF队列,并配置EF限速规则,和/或,申请多个确保转发AF队列,并配置AF限速规则以及为每个AF队列分配权重;和/或, 当所述QoS策略具体为包括父策略和子策略的嵌套CBQ策略时,所述FPGA根据所述父策略,为所述接口申请多个BE队列,并为每个BE队列分配权重,同时,还申请一个EF队列,并配置EF限速规则,和/或,申请多个AF队列,并配置AF限速规则以及为每个AF队列分配权重,然后,所述FPGA转发设备根据所述子策略,为所述接口申请多个BE队列,同时,还申请一个EF队列,和/或多个AF队列。3.如权利要求2所述的方法,其特征在于,所述FPGA转发设备为所申请的队列分配相应的队列组,并配置所述队列组的属性,实现所述QoS策略所对应的队列配置,具体包括 当所述QoS策略具体为GTS策略时,所述FPGA转发设备将所申请的BE队列分配到一个队列组中,并对所述队列组配置队列组限速属性,对所述接口配置接口限速属性,实现所述GTS策略所对应的队列配置;和/或, 当所述QoS策略具体为LR策略,且所述接口为物理接口时,所述FPGA转发设备直接根据所述LR策略,对所述物理接口配置接口限速属性,实现所述LR策略所对应的队列配置;和/或, 当所述QoS策略具体为LR策略,且所述接口为逻辑接口时,所述FPGA转发设备直接根据所述LR策略,对为所述逻辑接口所分配的队列组配置队列组限速属性,实现所述LR策略所对应的队列配置;和/或,当所述QoS策略具体为FIFO策略时,所述FPGA转发设备为所申请的BE队列分配一个队列组,并对所述队列组配置队列组限速属性,对所述接口配置接口限速属性,实现所述FIFO策略所对应的队列配置;和/或, 当所述QoS策略具体为WFQ策略时,所述FPGA转发设备为所申请的多个BE队列分配一个队列组,并对所述队列组配置队列组限速属性,对所述接口配置接口限速属性,实现WFQ策略所对应的队列配置;和/或, 当所述QoS策略具体为CBQ策略时,所述FPGA转发设备为所申请的多个BE队列,以及一个EF队列和/或多个AF队列分配一个队列组,并对所述队列组配置队列组限速属性,对所述接口配置接口限速属性,实现CBQ策略所对应的队列配置;和/或, 当所述QoS策略具体为包括父策略和子策略的嵌套CBQ策略时,所述FPGA转发设备为所述父策略所对应的多个BE队列,以及一个EF队列和/或多个AF队列分配一个队列组,并对所述队列组配置队列组限速属性,然后,所述FPGA转发设备为所述子策略所对应的多个BE队列,以及一个EF队列和/或多个AF队列分配一个队列组,并根据为所述父策略所对应的队列组的队列组限速属性,对所述子策略所对应的队列组配置队列组限速属性,对所述接口配置接口限速属性,实现嵌套CBQ策略所对应的队列配置。4.如权利要求I所述的方法,其特征在于,当所述FPGA转发设备通过所述接口转发所述QoS策略所对应的报文时,所述FPGA转发设备根据所述队列组的属性以及所述接口的属性,通过所述队列组中的队列对所述报文进行转发处理,具体包括 当所述FPGA转发设备通过所述接口转发所述QoS策略所对应的报文时,所述FPGA转发设备判断所述...

【专利技术属性】
技术研发人员:李佳王厚雪
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1