專利名稱:一種基于FPGA隊列實現(xiàn)QoS隊列的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種基于FPGA隊列實現(xiàn)QoS隊列的方法和設(shè)備。
背景技術(shù):
在采用FPGA(Field Programmable Gate Array,現(xiàn)場可編程陣列)作為核心完成高速報文轉(zhuǎn)發(fā)的網(wǎng)絡(luò)設(shè)備(路由器、防火墻等)中,將以前由CPU(Central ProcessingUnit,中央處理器)軟件實現(xiàn)的報文轉(zhuǎn)發(fā)、業(yè)務(wù)等處理下移到FPGA轉(zhuǎn)發(fā)引擎上來實現(xiàn)。FPGA轉(zhuǎn)發(fā)引擎能夠快速處理報文,但難以支撐復(fù)雜業(yè)務(wù),且FPGA資源較為有限。CPU將控制信息下發(fā)到FPGA,F(xiàn)PGA根據(jù)這些控制信息對報文進行轉(zhuǎn)發(fā)和業(yè)務(wù)處理。 如圖I所示,為現(xiàn)有技術(shù)中FPGA轉(zhuǎn)發(fā)引擎數(shù)據(jù)平面控制平面的示意圖。其中,具體的報文處理過程如下FPGA轉(zhuǎn)發(fā)引擎收到報文(即圖I中所示的步驟I),如果該報文是首包,或者本機報文,或者根據(jù)控制平面的信息確定該報文是需要上送CPU的報文,則將該報文上送CPU (即圖I中所示的步驟2),CPU將處理后的報文下發(fā)到FPGA轉(zhuǎn)發(fā)引擎的數(shù)據(jù)平面(即圖I中所示的步驟3),數(shù)據(jù)平面查詢控制平面獲取控制信息,并將統(tǒng)計信息等寫回控制平面(即圖I中所示的步驟7和8),然后,數(shù)據(jù)平面將處理后的報文進行發(fā)送(即圖I中所示的步驟4)。后續(xù)報文都會按照控制平面的控制信息進行處理。為了適應(yīng)復(fù)雜的網(wǎng)絡(luò)環(huán)境,豐富的QoS(Quality of service,服務(wù)質(zhì)量)功能是路由器等網(wǎng)絡(luò)設(shè)備必不可少的特性。常用QoS技術(shù)包括流分類、CAR (Committed AccessRate,約定訪問速率)、GTS (Generic Traffic Shaping,通用流量整形)、LR (Line Rate,接口總速率限制)、擁塞管理等。流分類采用一定的規(guī)則識別符合某類特征的報文,它是對網(wǎng)絡(luò)業(yè)務(wù)進行區(qū)分服務(wù)的如提和基礎(chǔ)。CAR :對進入或流出設(shè)備的特定流量進行監(jiān)管。當(dāng)流量超出設(shè)定值時,可以采取限制或懲罰措施,以保護網(wǎng)絡(luò)資源不受損害。GTS: —種主動調(diào)整流的輸出速率的流量控制措施,用來使流量適配下游設(shè)備可供給的網(wǎng)絡(luò)資源,避免不必要的報文丟棄。LR :可以在一個接口上限制發(fā)送報文(包括緊急報文)的總速率。擁塞管理就是當(dāng)擁塞發(fā)生時如何制定一個資源的調(diào)度策略,以決定報文轉(zhuǎn)發(fā)的處理次序,如 FIFO (First Input First Output,先入先出)、WFQ (Weighted Fair Queuing,加權(quán)公平隊列)和CBQ(Class Based Queuing,基于類的隊列)等。擁塞管理一般采用隊列技術(shù),使用隊列算法對流量進行分類,之后用某種優(yōu)先級別算法將這些流量發(fā)送出去。每種隊列算法都用以解決特定的網(wǎng)絡(luò)流量問題,并對帶寬資源的分配、延遲、抖動等有著十分重要的影響。隊列調(diào)度對不同優(yōu)先級的報文進行分級處理,優(yōu)先級高的會得到優(yōu)先發(fā)送。在上述QoS技術(shù)中,GTS、LR和擁塞管理(FIF0、WFQ和CBQ等)都可以基于隊列實現(xiàn),但又存在一些差異。(I)GTS :對超出指定速率的流量進行入隊緩存,當(dāng)令牌桶有足夠的令牌時,再均勻的向外發(fā)送這些被緩存的報文。其隊列的可用帶寬是固定的。(2)LR :對接口上的所有報文進行流量控制。如果在設(shè)備的某個接口上配置了 LR,所有從該接口發(fā)送的報文首先要經(jīng)過LR的令牌桶進行處理。如果令牌桶中有足夠的令牌,則報文可以發(fā)送;否則,報文將進入QoS隊列進行擁塞管理。(3) FIFO:按照時間到達的先后決定報文的轉(zhuǎn)發(fā)次序,先進的先出,后進的后出,不需要進行流分類和隊列調(diào)度,F(xiàn)IFO關(guān)心的只是隊列的長度,隊列的長度對延遲和丟包率有影響。(4)WFQ :在公平隊列的基礎(chǔ)上增加了優(yōu)先權(quán),使高優(yōu)先權(quán)的報文獲得優(yōu)先調(diào)度的 機會多于低優(yōu)先權(quán)的報文。WFQ能夠按流的“會話”信息(協(xié)議類型、源和目的TCP或UDP端口號、源和目的IP地址、ToS域中的優(yōu)先級等)自動進行流分類,并且盡可能多地提供隊列,以將每個流均勻地放入不同隊列中,從而在總體上均衡各個流的延遲。在出隊的時候,WFQ按流的優(yōu)先級來分配每個流應(yīng)占有出口的帶寬。優(yōu)先級的數(shù)值越小,所得的帶寬越少。優(yōu)先級的數(shù)值越大,所得的帶寬越多。(5)CBQ:是對WFQ功能的擴展,為用戶提供了定義類的支持。在網(wǎng)絡(luò)擁塞時,CBQ根據(jù)用戶定義的類規(guī)則對報文進行匹配,并使其進入相應(yīng)的隊列,在入隊列之前必須進行擁塞避免機制和帶寬限制的檢查。在報文出隊列時,加權(quán)公平調(diào)度每個類對應(yīng)的隊列中的報文。CBQ是基于帶寬保證的隊列技術(shù),在帶寬有剩余時,可以進行帶寬搶占。CBQ可以包括以下隊列緊急隊列采用FIFO調(diào)度,沒有帶寬限制,一般情況下,物理接口中均已預(yù)留緊急隊列的資源,所以,每個物理接口自帶了自身相應(yīng)的緊急隊列。EF (Expedited Forwarding,快速轉(zhuǎn)發(fā))隊列(低延遲隊列)如果沒有擁塞發(fā)生,允許使用超過分配的帶寬;如果發(fā)生擁塞,超過分配帶寬的報文將被丟棄。AF (Assured Forwarding,確保轉(zhuǎn)發(fā))隊列(帶寬隊列)為AF業(yè)務(wù)提供嚴(yán)格、精確的帶寬保證,并且保證各類AF業(yè)務(wù)之間按一定的比例關(guān)系進行隊列調(diào)度。缺省隊列(WFQ隊列)用來支撐BE(Best Effort,盡力服務(wù))業(yè)務(wù),使用接口剩余帶寬進行發(fā)送。需要說明的是,在具體的處理場景中,上述的EF隊列和AF隊列可以根據(jù)實際需要選擇其中的任意一種隊列,或者將兩種隊列同時應(yīng)用,來實現(xiàn)上述的CBQ。在現(xiàn)有技術(shù)中,往往采用不同的隊列技術(shù)分別實現(xiàn)GTS、LR、FIFO、WFQ和CBQ。(I)GTS :用一個FIFO隊列實現(xiàn),并指定帶寬。對超出指定帶寬的流量進行入隊緩存,當(dāng)令牌桶有足夠的令牌時,再均勻的向外發(fā)送這些被緩存的報文。(2) LR:設(shè)置接口帶寬,對接口進行限速。所有從該接口發(fā)送的報文首先要經(jīng)過LR的令牌桶進行處理。如果令牌桶中有足夠的令牌,則報文可以發(fā)送;否則,報文將進入QoS隊列進行擁塞管理。(3)FIFO :用一個FIFO隊列實現(xiàn),不需要隊列調(diào)度。(4) WFQ :用一組WFQ隊列實現(xiàn)。在出隊的時候,WFQ按流的優(yōu)先級來分配每個流應(yīng)占有出口的帶寬。
(5) CBQ :同時支持緊急隊列、EF、AF和BE隊列,根據(jù)用戶定義的類規(guī)則對報文進行匹配,并使其進入相應(yīng)的隊列,在報文出隊列時,加權(quán)公平調(diào)度每個類對應(yīng)的隊列中的報文。在帶寬有剩余時,可以進行帶寬搶占。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題如圖2所示,為現(xiàn)有技術(shù)中的報文進行QoS隊列處理過程的流程示意圖,需要逐一進行GTS、LR、FIFO、WFQ和CBQ的判斷處理,在最復(fù)雜的情況下,需要對一個報文進行所有配置隊列的輪詢后才能確定其真正對應(yīng)的隊列,并進行相應(yīng)的處理。在現(xiàn)有技術(shù)中,采用不同的隊列技術(shù)分別實現(xiàn)GTS、LR、FIFO、WFQ和FPGA實現(xiàn)的復(fù)雜度,缺乏可擴展性
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種基于FPGA隊列實現(xiàn)QoS隊列的方法和設(shè)備,解決現(xiàn)有技術(shù)中采用不同的隊列技術(shù)分別實現(xiàn)GTS、LR、FIFO、WFQ和CBQ所帶來的處理復(fù)雜,擴展性欠缺的問題。為達到上述目的,本發(fā)明實施例一方面提供了一種基于FPGA隊列實現(xiàn)QoS隊列的方法,至少包括以下步驟當(dāng)一個接口上配置QoS策略時,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述QoS策略,為所述接口申請相應(yīng)的隊列;所述FPGA轉(zhuǎn)發(fā)設(shè)備為所申請的隊列分配相應(yīng)的隊列組,并配置所述隊列組的屬性,實現(xiàn)所述QoS策略所對應(yīng)的隊列配置;當(dāng)所述FPGA轉(zhuǎn)發(fā)設(shè)備通過所述接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述隊列組的屬性以及所述接口的屬性,通過所述隊列組中的隊列對所述報文進行轉(zhuǎn)發(fā)處理。另一方面,本發(fā)明實施例還提供了一種FPGA轉(zhuǎn)發(fā)設(shè)備,至少包括隊列申請模塊,用于當(dāng)一個接口上配置QoS策略時,根據(jù)所述QoS策略,為所述接口申請相應(yīng)的隊列;隊列組配置模塊,用于為所述隊列申請模塊所申請的隊列分配相應(yīng)的隊列組,并配置所述隊列組的屬性,實現(xiàn)所述QoS策略所對應(yīng)的隊列配置;報文處理模塊,用于在通過所述接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,根據(jù)所述隊列組配置模塊所配置的所述隊列組的屬性以及所述接口的屬性,通過所述隊列組中的隊列對所述報文進行轉(zhuǎn)發(fā)處理。與現(xiàn)有技術(shù)相比,本發(fā)明實施例所提出的技術(shù)方案具有以下優(yōu)點通過應(yīng)用本發(fā)明實施例的技術(shù)方案,在接口配置QoS策略時,由FPGA轉(zhuǎn)發(fā)設(shè)備為該接口申請相應(yīng)的隊列,為所申請的隊列分配相應(yīng)的隊列組,并配置所述隊列組的屬性,以實現(xiàn)該QoS策略所對應(yīng)的隊列配置,在該接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,根據(jù)所述隊列組的屬性以及所述接口的屬性,通過所述隊列組中的隊列對所述報文進行轉(zhuǎn)發(fā)處理,從而,使FPGA轉(zhuǎn)發(fā)設(shè)備在報文處理過程中,只需基于隊列組進行資源調(diào)度,而不需要區(qū)分用戶的具體配置,便可以同時支持多種QoS策略,基于QoS策略完成對報文的處理,降低了QoS策略實現(xiàn)的復(fù)雜度,簡化了 QoS策略下的報文處理流程,同時,根據(jù)不同的隊列資源調(diào)度選擇方案,可以方便的實現(xiàn)更豐富的QoS策略擴展。
圖I為現(xiàn)有技術(shù)中FPGA轉(zhuǎn)發(fā)引擎數(shù)據(jù)平面控制平面的示意圖;圖2為現(xiàn)有技術(shù)中的報文進行QoS隊列處理過程的流程示意圖;圖3為本發(fā)明實施例所提出的一種基于FPGA隊列實現(xiàn)QoS隊列的方法的流程示意圖;圖4為本發(fā)明實施例所提出的一種FPGA隊列資源的組織方式的示意圖;圖5為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的GTS策略的隊列實現(xiàn)方式的示意圖;
圖6為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的FIFO策略的隊列實現(xiàn)方式的不意圖;圖7為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的WFQ策略的隊列實現(xiàn)方式的示意圖;圖8為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的CBQ策略的隊列實現(xiàn)方式的示意圖;圖9為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的嵌套CBQ策略的隊列實現(xiàn)方式的示意圖;圖10為本發(fā)明實施例所提出的一種存在邏輯接口的應(yīng)用場景下的多種QoS策略的隊列實現(xiàn)方式的示意圖;圖11為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的基于FPGA隊列實現(xiàn)QoS隊列進行報文處理的流程示意12為本發(fā)明實施例所提出的一種FPGA轉(zhuǎn)發(fā)設(shè)備的結(jié)構(gòu)示意圖。
具體實施例方式如背景技術(shù)所述,現(xiàn)有技術(shù)中需要采取不同的隊列技術(shù)才能支持不同的QoS策略,而且,為了匹配不同的隊列技術(shù),在進行報文處理時,需要逐一進行GTS、LR、FIFO、WFQ和CBQ的判斷處理,在最復(fù)雜的情況下,需要對一個報文進行所有配置隊列的輪詢后才能確定其真正對應(yīng)的隊列,并進行相應(yīng)的處理,這樣的處理過程復(fù)雜,而且浪費了大量的系統(tǒng)資源進行判斷處理,也降低了報文處理效率。為了克服這樣的缺陷,本發(fā)明實施例提出一種基于FPGA隊列實現(xiàn)QoS隊列的方法,通過為接口申請基于對列組的隊列,并進行相應(yīng)的隊列組和接口的限速處理,使FPGA轉(zhuǎn)發(fā)設(shè)備只需要基于隊列組進行隊列資源的調(diào)度,便可以同時支持GTS、LR、FIFO、WFQ、CBQ、嵌套CBQ等多種QoS策略,而且,在進行報文處理時,不再需要區(qū)分用戶的具體配置,簡化了報文處理流程,降低了設(shè)備的復(fù)雜度。對應(yīng)于一個接口,需要通過不同類型的隊列資源的申請和調(diào)用來實現(xiàn)各種QoS策略。考慮到現(xiàn)有的幾種主要的QoS策略中,隊列規(guī)則最復(fù)雜的為CBQ策略,因此,在具體的應(yīng)用過程中,相應(yīng)的隊列資源可以采用基于CBQ策略的隊列需要的方式來實現(xiàn),在一種最復(fù)雜的情況下,所應(yīng)用的隊列資源最終可以應(yīng)用為緊急隊列,EF隊列,AF隊列和BE隊列幾種形式。在具體的應(yīng)用場景中,一個接口下可以配置多種QoS策略,相應(yīng)的業(yè)界可以配置多個隊列組,每個隊列組中又可以包含多種隊列資源,如圖3所示,為本發(fā)明實施例所提出的一種FPGA隊列資源的組織方式的示意圖。在應(yīng)用這樣的組織方式的情況下,該接口下的隊列支持以下幾種限速類型物理接口限速、隊列組限速、EF類報文限速和AF類報文限速。這樣的多種限速類型可以通過配置相應(yīng)的限速屬性或規(guī)則來實現(xiàn)。需要說明的是,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備在具體的應(yīng)用過程中,是通過基于隊列組進行資源調(diào)度的方式來實現(xiàn)相應(yīng)的QoS策略的,而在隊列組內(nèi),相應(yīng)的隊列調(diào)度機制具體如下 首先,對輸入流量進行基于類的流分類,對符合一條分類規(guī)則的流指定相應(yīng)的隊列,然后,按照該隊列的指定帶寬進行調(diào)度,此處,可以應(yīng)用EF類報文限速和AF類報文限速。而對不匹配任何規(guī)則的流量,則實施WFQ調(diào)度。在一個隊列組內(nèi),所有隊列的流量均會受隊列組帶寬的限制,即應(yīng)用隊列組限速。在經(jīng)過隊列組內(nèi)的隊列調(diào)度后,報文最終從物理接口發(fā)送出去,這又會受物理接口帶寬限制,即應(yīng)用物理接口限速。由以上隊列資源的配置規(guī)則可以看出,在具體的應(yīng)用過程中,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備可以根據(jù)具體應(yīng)用隊列的靈活選擇,配合相應(yīng)的限速屬性或規(guī)則的配置,來實現(xiàn)不同的QoS策略下的隊列部署,具體的實現(xiàn)方案在后續(xù)步驟中進行說明。如圖4所示,為本發(fā)明所提出的一種基于FPGA隊列實現(xiàn)QoS隊列的方法的流程示意圖,該方法具體包括以下步驟步驟S401、當(dāng)一個接口上配置QoS策略時,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述QoS策略,為該接口申請相應(yīng)的隊列。具體的,根據(jù)該接口上所應(yīng)用的QoS策略的內(nèi)容差異,本步驟中的處理可以分為以下幾種情況情況一、QoS策略具體為GTS策略。FPGA轉(zhuǎn)發(fā)設(shè)備直接為該接口申請一個BE隊列。情況二、QoS策略具體為LR策略。在LR策略的場景下,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備對于隊列的申請并沒有具體的要求,具體申請哪種或者哪幾種的隊列,以及所申請的隊列數(shù)量,只需要滿足LR策略的傳輸需求或當(dāng)前系統(tǒng)場景的要求即可,本發(fā)明實施例對此并不會加以限制。情況三、QoS策略具體為FIFO策略。FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述FIFO策略,為該接口申請一個BE隊列。情況四、QoS策略具體為WFQ策略。FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述WFQ策略,為該接口申請多個BE隊列,即申請了同一種類型的隊列資源來實現(xiàn)該WFQ策略,這樣就避免了申請不同類型的隊列類型所先天帶來的處理優(yōu)先級差異??紤]到WFQ策略的特點,在完成上述的隊列申請后,需要對各隊列進行權(quán)重配置,其所依據(jù)的規(guī)則可以是不同隊列所對應(yīng)的IP優(yōu)先級或DSCP(Differentiated ServicesCode Point,差分服務(wù)代碼點)等。情況五、QoS策略具體為CBQ策略。首先,所述FPGA轉(zhuǎn)發(fā)設(shè)備進行隊列申請,根據(jù)所述CBQ策略,為該接口申請多個BE隊列,以及一個EF隊列和/或多個AF隊列。需要說明的是,在具體的應(yīng)用場景中,對于每個物理接口,系統(tǒng)均會保留一個緊急隊列,因此,對于CBQ策略的實現(xiàn),只需要完成上述幾種隊列的申請即可,緊急隊列則直接利用物理接口的緊急隊列,不需要再另行申請。在完成上述隊列的申請后,出于實現(xiàn)CBQ策略的需求,還需要對所申請的隊列進行如下處理如果申請了 EF隊列,則對EF隊列按照指定速率設(shè)置EF限速,即實現(xiàn)了前述的EF 類報文限速。如果申請了 AF隊列,則對AF隊列按照配置設(shè)置AF限速和每個AF隊列的權(quán)重,即實現(xiàn)了前述的AF類報文限速。對BE隊列根據(jù)IP優(yōu)先級或DSCP為每個隊列設(shè)置權(quán)重。情況六、QoS策略具體為嵌套CBQ策略。在CBQ策略的基礎(chǔ)上,嵌套CBQ包括父策略和子策略。首先,按照情況五中的處理方式,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備首先申請多個BE隊列,以及一個EF隊列和/或多個AF隊列來實現(xiàn)嵌套CBQ策略中的父策略,并對各隊列實現(xiàn)相應(yīng)的權(quán)重和隊列限速的配置。然后,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備再申請多個BE隊列,以及一個EF隊列和/或多個AF隊列(與前述申請的用于實現(xiàn)父策略的隊列不同)來實現(xiàn)嵌套CBQ策略中的子策略。與情況五相類似,在本情況中,同樣無需申請緊急隊列,而是直接利用物理接口的緊急隊列即可。需要說明的是,上述的幾種情況可以獨立的存在,也可以進行組合設(shè)置,具體的設(shè)置方案根據(jù)實際需要進行確定,這樣的變化并不影響本發(fā)明的保護范圍。步驟S402、所述FPGA轉(zhuǎn)發(fā)設(shè)備為所申請的隊列分配相應(yīng)的隊列組,并配置所述隊列組的屬性,實現(xiàn)所述QoS策略所對應(yīng)的隊列配置。具體的,隊列組的配置過程是基于步驟S401中的隊列申請結(jié)果來實現(xiàn)的因此,根據(jù)接口上所應(yīng)用的QoS策略的內(nèi)容差異,本步驟中的處理同樣可以分為以下幾種情況,需要說明的是,此處的情況標(biāo)號與步驟S401中的情況標(biāo)號相一致,是對同一種QoS情況的進
一步處理情況一、QoS策略具體為GTS策略。首先,所述FPGA轉(zhuǎn)發(fā)設(shè)備分別將步驟S401中所申請的BE隊列分配到一個隊列組,即在具體的隊列實現(xiàn)上,是通過只包含BE隊列的一個隊列組來實現(xiàn)GTS策略的。這樣進行隊列申請和隊列組分配的原因在于如前所述,本發(fā)明實施例中的資源組織方案是基于CBQ策略來實現(xiàn)的,而GTS策略與CBQ策略不同,其帶寬是固定的,不能搶占空閑的剩余帶寬。但基于CBQ策略來配置的隊列資源,先天的具有搶占帶寬的性質(zhì)。
因此,在應(yīng)用GTS策略時,需要為GTS策略單獨應(yīng)用單一類型的隊列資源(即隊列資源自身不存在優(yōu)先級差異)。考慮到基于CBQ策略實現(xiàn)的EF隊列,AF隊列和BE隊列之間采用了絕對優(yōu)先級調(diào)度(緊急隊列不會參與隊列組內(nèi)的調(diào)度,因此,不會與上述三種隊列發(fā)生帶寬搶占),BE隊列不會搶占其他兩種隊列的帶寬資源,但其他兩種隊列卻可能搶占BE隊列的帶寬資源,因此,可以優(yōu)先申請BE隊列來實現(xiàn)GTS策略。進一步的,為了避免同一類型的隊列之間的帶寬搶占,優(yōu)選的,可以在一個隊列組中,只分配一個BE隊列,即采用一個只包含一個BE隊列的隊列組來實現(xiàn)上述的GTS策略。在完成了上述的隊列申請后,通過限制為所申請的隊列所分配的隊列組的帶寬,實現(xiàn)對相應(yīng)的隊列組的隊列組限速屬性的配置,即對所申請的BE隊列所處的隊列組配置組限速規(guī)則,使該隊列組內(nèi)的GTS隊列沒有其他可搶占的帶寬資源,從而,保證GTS策略實施的正確性。
再進一步的,根據(jù)相應(yīng)的GTS策略或當(dāng)前系統(tǒng)場景的需要,還需要對所述接口配置接口限速屬性,在實際應(yīng)用中,可以具體為對物理接口進行限速,實現(xiàn)前述的物理接口限速。在具體的應(yīng)用場景中,一個接口上可以同時配置多個GTS策略,例如配置匹配不同ACL規(guī)則的GTS策略。因此,為防止帶寬搶占,接口上的每個GTS策略都需要單獨通過一個隊列組來實現(xiàn),并根據(jù)配置限制組帶寬。如圖5所示,為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的GTS策略的隊列實現(xiàn)方式的示意圖。在該應(yīng)用場景下,物理接口上配置了兩個GTS策略(GTSI和GTS2),F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備為這兩個GTS策略分別分配了相應(yīng)的隊列組,在每個隊列組中,分別只申請了一個BE隊列,這樣,避免了同一個隊列組內(nèi)BE隊列之間,以及BE隊列和其他隊列之間的帶寬搶占,然后,分別根據(jù)兩個GTS策略的具體參數(shù)要求為兩個隊列組設(shè)置相同或不同的隊列組限速規(guī)則,實現(xiàn)隊列組限速,最后,在物理接口上設(shè)置接口限速規(guī)則,實現(xiàn)了物理接口限速。需要說明的是,上述的通過只包含BE隊列的隊列組來實現(xiàn)GTS策略的方式只是本發(fā)明實施例所給出的一種優(yōu)選示例,在保證不會發(fā)生帶寬搶占的情況下,其他的隊列資源配置方案也可以應(yīng)用于本發(fā)明實施例,這樣的變化并不影響本發(fā)明的保護范圍。情況二、QoS策略具體為LR策略。在接口配置LR策略的場景下,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備通過步驟S401為該接口申請了相應(yīng)的隊列資源,但是,考慮到LR策略對于流量的限制需求,可以按照具體的接口的類型進行相應(yīng)的處理當(dāng)配置LR策略的接口為物理接口時,所述FPGA轉(zhuǎn)發(fā)設(shè)備直接根據(jù)LR策略的速率限制需求,對該物理接口配置接口限速屬性,實現(xiàn)所述LR策略所對應(yīng)的隊列配置。這樣,所有報文最終從接口發(fā)送出去的時候,都會受到LR策略的流量限制。情況三、QoS策略具體為FIFO策略。首先,所述FPGA轉(zhuǎn)發(fā)設(shè)備通過步驟S401完成了一個BE隊列的申請,然后,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備為該BE隊列分配隊列組,即在具體的隊列實現(xiàn)上,是通過只包含一個BE隊列的一個隊列組來實現(xiàn)的,也就是說只存在唯一的隊列(緊急隊列除外)來實現(xiàn)FIFO策略。在完成了上述的隊列申請和隊列組分配后,通過限制該隊列組的帶寬,實現(xiàn)對相應(yīng)的隊列組配置隊列組限速屬性,即對為所申請的BE隊列所分配的隊列組配置組限速規(guī)貝U,保證應(yīng)用FIFO策略的隊列自身的流量限制。再進一步的,根據(jù)相應(yīng)的FIFO策略或當(dāng)前系統(tǒng)場景的需要,還可以進一步對所述接口配置接口限速屬性,在實際應(yīng)用中,可以具體為對物理接口進行限速,實現(xiàn)前述的物理接口限速。如圖6所示,為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的FIFO策略的隊列實現(xiàn)方式的示意圖。這樣只申請唯一隊列的隊列申請方式保證了報文只有唯一的處理路徑,從而,確保了 FIFO策略的正確實現(xiàn),而隊列組限速和物理接口限速的設(shè)置,則保證了流量限制策略 的實現(xiàn)。需要說明的是,上述的通過只包含一個BE隊列的一個隊列組來實現(xiàn)FIFO策略的方式只是本發(fā)明實施例所給出的一種優(yōu)選示例,在保證FIFO策略實現(xiàn)的情況下,其他的隊列資源配置方案(如申請只包含一個AF隊列的一個隊列組來實現(xiàn)FIFO策略等)也可以應(yīng)用于本發(fā)明實施例,這樣的變化并不影響本發(fā)明的保護范圍。情況四、QoS策略具體為WFQ策略。首先,所述FPGA轉(zhuǎn)發(fā)設(shè)備通過步驟S401,為所述接口申請多個BE隊列,并完成了
權(quán)重配置。在本步驟中,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述WFQ策略,將步驟S401所申請的多個BE隊列分配到一個隊列組中,即在具體的隊列實現(xiàn)上,是通過只處在同一個隊列組中的多個BE隊列來實現(xiàn)上述的WFQ策略。在完成了上述的隊列申請的隊列組分配后,還需要通過限制該隊列組的帶寬,實現(xiàn)對該隊列組配置隊列組限速屬性,即對上述的包含多個BE隊列的隊列組配置組限速規(guī)貝U,保證應(yīng)用WFQ策略的隊列自身的流量限制。再進一步的,根據(jù)相應(yīng)的WFQ策略或當(dāng)前系統(tǒng)場景的需要,還需要對所述接口配置接口限速屬性,在實際應(yīng)用中,可以具體為對物理接口進行限速,實現(xiàn)前述的物理接口限速。如圖7所示,為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的WFQ策略的隊列實現(xiàn)方式的示意圖。根據(jù)WFQ策略的需求,申請η個BE隊列,并根據(jù)IP優(yōu)先級或DSCP為每個BE隊列分配不同的權(quán)重,然后,將上述的η個隊列分配到同一個隊列組,并對該隊列組和物理接口設(shè)置限速,這樣,該物理接口就工作在WFQ模式了。情況五、QoS策略具體為CBQ策略。在上述的步驟S401中,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備已經(jīng)申請了多個BE隊列,以及一個EF隊列和/或多個AF隊列,并且,分別對相應(yīng)的隊列配置了隊列的限速規(guī)則和權(quán)重。在完成了上述的隊列申請和處理后,還需要將上述的BE隊列,以及EF隊列和/或AF隊列分配到一個隊列組中,并通過限制該隊列組的帶寬,實現(xiàn)對該隊列組配置隊列組限速屬性,即對所申請的隊列組配置組限速規(guī)則,保證應(yīng)用CBQ策略的隊列自身的流量限制。
再進一步的,根據(jù)相應(yīng)的CBQ策略或當(dāng)前系統(tǒng)場景的需要,還需要對所述接口配置接口限速屬性,在實際應(yīng)用中,可以具體為對物理接口進行限速,實現(xiàn)前述的物理接口限速。如圖8所示,為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的CBQ策略的隊列實現(xiàn)方式的示意圖。情況六、QoS策略具體為嵌套CBQ策略。
在CBQ的基礎(chǔ)上,嵌套CBQ包括父策略和子策略。在步驟S401中,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備為父策略申請多個BE隊列,以及一個EF隊列和/或多個AF隊列,并完成相對應(yīng)隊列限速和權(quán)重配置,然后,同樣為子策略申請多個BE隊列,以及一個EF隊列和/或多個AF隊列,其中,為父策略所申請的隊列資源與為子策略所申請的隊列資源彼此不同。在本步驟中,按照前述的情況五中的處理方式,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備將為父策略所申請的多個BE隊列,以及一個EF隊列和/或多個AF隊列分配到一個隊列組,并對該隊列組配置隊列組限速屬性,實現(xiàn)對該隊列組的限速處理。然后,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備將為子策略所申請的多個BE隊列,以及一個EF隊列和/或多個AF隊列分配到一個隊列組,在用于實現(xiàn)子策略的隊列組中,不再需要對各隊列進行限速設(shè)置,而是直接根據(jù)實現(xiàn)父策略的隊列組所配置的隊列組限速屬性,配置實現(xiàn)子策略的隊列組的隊列組限速屬性,即根據(jù)實現(xiàn)父策略的隊列組的限速處理結(jié)果,對所述子策略所對應(yīng)的隊列組進行限速處理。再進一步的,根據(jù)相應(yīng)的嵌套CBQ策略或當(dāng)前系統(tǒng)場景的需要,還需要對所述接口配置接口限速屬性,在實際應(yīng)用中,可以具體為對物理接口進行限速,實現(xiàn)前述的物理接口限速。如圖9所示,為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的嵌套CBQ策略的隊列實現(xiàn)方式的示意圖。需要說明的是,上述的幾種情況可以獨立的存在,也可以進行組合設(shè)置,具體的設(shè)置方案根據(jù)實際需要進行確定,這樣的變化并不影響本發(fā)明的保護范圍。需要進一步說明的是,在路由器等網(wǎng)絡(luò)設(shè)備中,除了物理接口外,通常還包括邏輯接口,如以太網(wǎng)子接口,隧道接口等,報文經(jīng)過邏輯接口進行發(fā)送時,最終通過與其關(guān)聯(lián)的物理接口發(fā)送出去。例如,以太網(wǎng)子接口主要用來實現(xiàn)在三層以太網(wǎng)接口上支持收發(fā)VLAN tagged報文,用戶可以在一個以太網(wǎng)接口上配置多個子接口,這樣,來自不同VLAN的報丈可以從不同的子接口進行轉(zhuǎn)發(fā),為用戶提供了很高的靈活性。在本發(fā)明實施例所提出的FPGA隊列處理機制中,一個物理接口可以對應(yīng)多個隊列組,因此,可以方便地支持邏輯接口的QoS隊列配置。當(dāng)所述邏輯接口上配置QoS策略時,所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述邏輯接口上所配置的QoS策略,為每個邏輯接口分別申請相應(yīng)的隊列。然后,所述FPGA轉(zhuǎn)發(fā)設(shè)備為所申請的隊列分配相應(yīng)的隊列組,配置相應(yīng)的限速屬性,并將為各所述邏輯接口所分配的隊列組指定給所述物理接口。所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述物理接口和各所述邏輯接口上所配置的QoS策略,對所述物理接口配置接口限速規(guī)則,實現(xiàn)所述物理接口和各所述邏輯接口上所配置的QoS策略所對應(yīng)的隊列配置。具體的,對邏輯接口上的GTS、FIFO、WFQ、CBQ以及嵌套CBQ等各種QoS策略,可以分別按照上述的情況一,以及情況三至情況六的處理方案來實現(xiàn)隊列申請,以及隊列和隊列組的限速配置,之后,將分配的隊列組指定給邏輯接口對應(yīng)的物理接口即可。而對于邏輯接口應(yīng)用LR策略的情況,則與物理接口應(yīng)用LR策略的處理方式存在區(qū)別,具體參見前述的情況二,在此不再重復(fù)說明。如圖10所示,為本發(fā)明實施例所提出的一種存在邏輯接口的應(yīng)用場景下的多種QoS策略的隊列實現(xiàn)方式的示意圖。在該應(yīng)用場景下,邏輯接口 I和邏輯接口 2對應(yīng)相同的物理接口。該物理接口配置了 CBQ策略,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備申請了一個緊急隊列和一個EF隊列, 多個AF隊列和多個BE隊列,并將EF隊列,AF隊列和BE隊列分配到一個隊列組中,從而,通過緊急隊列和該隊列組來實現(xiàn)該物理接口所配置的CBQ策略,其中,分別配置了 EF類報文限速和AF類報文限速。邏輯接口 I配置了 CBQ策略,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備申請一個EF隊列,多個AF隊列和多個BE隊列,并將EF隊列,AF隊列和BE隊列分配到一個隊列組中,然后,通過上述物理接口所申請的緊急隊列,以及為該邏輯接口所申請的隊列組來實現(xiàn)該邏輯接口所配置的CBQ策略,在為該邏輯接口所申請的隊列組中,不再設(shè)置EF類報文限速和AF類報文限速,而是直接根據(jù)CBQ策略和邏輯接口 I的限速需求,設(shè)置該隊列組的隊列組限速,最后,將該隊列組指定給邏輯接口 I所對應(yīng)的物理接口。邏輯接口 2配置了 FIFO策略,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備申請了一個BE隊列,并為該BE隊列分配一個隊列組,即通過僅包含唯一的一個BE隊列的隊列組來實現(xiàn)該FIFO策略,并且,根據(jù)FIFO策略和邏輯接口 2的限速需求,設(shè)置該隊列組的隊列組限速,最后,將該隊列組指定給邏輯接口 2所對應(yīng)的物理接口。當(dāng)然,邏輯接口的數(shù)量可以為其他數(shù)量,相應(yīng)的隊列組配置方式也可以以上述說明類推,在此不再一一列舉,邏輯接口的數(shù)量,以及其所采用的QoS策略的類型并不會影響本發(fā)明的保護范圍。步驟S403、當(dāng)所述FPGA轉(zhuǎn)發(fā)設(shè)備通過所述接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述隊列組的屬性以及所述接口的屬性,通過所述隊列組中的隊列對所述報文進行轉(zhuǎn)發(fā)處理。對于本步驟的處理過程,如圖11所示,為本發(fā)明實施例所提出的一種具體應(yīng)用場景下的基于FPGA隊列實現(xiàn)QoS隊列進行報文處理的流程示意圖。步驟S1101、確定通過接口轉(zhuǎn)發(fā)報文。步驟S1102、FPGA轉(zhuǎn)發(fā)設(shè)備判斷該接口當(dāng)前是否配置了 QoS策略。如果判斷結(jié)果為是,執(zhí)彳丁步驟SI 103 ;如果判斷結(jié)果為否,執(zhí)彳了步驟SI 104。步驟S1103、所述FPGA轉(zhuǎn)發(fā)設(shè)備獲取根據(jù)所述QoS策略為所述接口所申請的隊列的標(biāo)識信息,將所述報文發(fā)送給所述標(biāo)識信息所對應(yīng)的隊列,并根據(jù)所述隊列所對應(yīng)的隊列組的屬性以及所述接口的屬性,對所述報文進行處理。
按照本發(fā)明實施例所提出的技術(shù)方案,對GTS、LR、FIFO、WFQ、CBQ以及嵌套CBQ等策略,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備不需要區(qū)分用戶具體配置,只需要根據(jù)報文和和前述的步驟S401中所申請的隊列資源配置,從流表等業(yè)務(wù)信息中獲取到指定的FPGA隊列的標(biāo)識信息(例如,隊列ID信息),將該報文進行入隊操作即可。而在進行報文轉(zhuǎn)發(fā)時,需要應(yīng)用步驟S402中所配置的相應(yīng)的隊列組和接口的限速規(guī)則,從而,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備根據(jù)步驟S402中的隊列組配置方式,實現(xiàn)了基于隊列組的資源調(diào)度和報文轉(zhuǎn)發(fā)處理。步驟S1104、所述FPGA轉(zhuǎn)發(fā)設(shè)備按照非QoS策略的處理規(guī)則進行處理。在具體的處理場景中,這里所述的非QoS策略的處理規(guī)則可以是采用預(yù)設(shè)的非QoS隊列資源進行報文處理,也可以是直接放棄對該報文的處理,或者采用默認的QoS策略對該報文進行處理,具體采用哪種方式并不會影響本發(fā)明的保護范圍。與現(xiàn)有技術(shù)相比,本發(fā)明實施例所提出的技術(shù)方案具有以下優(yōu)點 通過應(yīng)用本發(fā)明實施例的技術(shù)方案,在接口配置QoS策略時,由FPGA轉(zhuǎn)發(fā)設(shè)備為該接口申請相應(yīng)的隊列,為所申請的隊列分配相應(yīng)的隊列組,并配置所述隊列組的屬性,以實現(xiàn)該QoS策略所對應(yīng)的隊列配置,在該接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,根據(jù)所述隊列組的屬性,通過所述隊列組中的隊列對所述報文進行轉(zhuǎn)發(fā)處理,從而,使FPGA轉(zhuǎn)發(fā)設(shè)備在報文處理過程中,只需基于隊列組進行資源調(diào)度,而不需要區(qū)分用戶的具體配置,便可以同時支持多種QoS策略,基于QoS策略完成對報文的處理,降低了 QoS策略實現(xiàn)的復(fù)雜度,簡化了 QoS策略下的報文處理流程,同時,根據(jù)不同的隊列資源調(diào)度選擇方案,可以方便的實現(xiàn)更豐富的QoS策略擴展。為了實現(xiàn)本發(fā)明的技術(shù)方案,本發(fā)明還提出了一種FPGA轉(zhuǎn)發(fā)設(shè)備,其結(jié)構(gòu)示意圖12所示,至少包括隊列申請模塊121,用于當(dāng)一個接口上配置QoS策略時,根據(jù)所述QoS策略,為所述接口申請相應(yīng)的隊列;隊列組配置模塊122,用于為所述隊列申請模塊121所申請的隊列分配相應(yīng)的隊列組,并配置所述隊列組的屬性,實現(xiàn)所述QoS策略所對應(yīng)的隊列配置;報文處理模塊123,用于在通過所述接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,根據(jù)所述隊列組配置模塊122所配置的所述隊列組的屬性以及所述接口的屬性,通過所述隊列組中的隊列對所述報文進行轉(zhuǎn)發(fā)處理。其中,所述隊列申請模塊121,具體用于當(dāng)所述QoS策略具體為GTS策略時,根據(jù)所述GTS策略,為所述接口申請一個BE隊列;和/或,當(dāng)所述QoS策略具體為LR策略時,根據(jù)所述LR策略,為所述接口申請相應(yīng)的隊列資源;和/或,當(dāng)所述QoS策略具體為FIFO策略時,根據(jù)所述FIFO策略,為所述接口申請一個BE隊列;和/或,當(dāng)所述QoS策略具體為WFQ策略時,根據(jù)所述WFQ策略,為所述接口申請多個BE隊列,并分別為所申請的每個BE隊列分配權(quán)重;和/或,當(dāng)所述QoS策略具體為CBQ策略時,根據(jù)所述CBQ策略,為所述接口申請多個BE隊列,并為每個BE隊列分配權(quán)重,同時,還申請一個EF隊列,并配置EF限速規(guī)則,和/或,申請多個AF隊列,并配置AF限速規(guī)則以及為每個AF隊列分配權(quán)重;和/或,當(dāng)所述QoS策略具體為包括父策略和子策略的嵌套CBQ策略時,根據(jù)所述父策略,為所述接口申請多個BE隊列,并為每個BE隊列分配權(quán)重,同時,還申請一個EF隊列,并配置EF限速規(guī)則,和/或,申請多個AF隊列,并配置AF限速規(guī)則以及為每個AF隊列分配權(quán)重,然后,根據(jù)所述子策略,為所述接口申請多個BE隊列,同時,還申請一個EF隊列,和/或多個AF隊列。進一步的,所述隊列組配置模塊122,具體用于當(dāng)所述QoS策略具體為GTS策略時,將所述隊列申請模塊121所申請的BE隊列分配到一個隊列組中,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)所述GTS策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為LR策略時,且所述接口為物理接口時,直接根據(jù)所述LR策 略,對所述物理接口配置接口限速屬性,實現(xiàn)所述LR策略所對應(yīng)的隊列配置;和/或,當(dāng)所述QoS策略具體為LR策略,且所述接口為邏輯接口時,直接根據(jù)所述LR策略,對為所述邏輯接口所分配的隊列組配置隊列組限速屬性,實現(xiàn)所述LR策略所對應(yīng)的隊列配置;和/或,當(dāng)所述QoS策略具體為FIFO策略時,為所述隊列申請模塊121所申請的BE隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)所述FIFO策略所對應(yīng)的隊列配置;和/或,當(dāng)所述QoS策略具體為WFQ策略時,為所述隊列申請模塊121所申請的多個BE隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)WFQ策略所對應(yīng)的隊列配置;和/或,當(dāng)所述QoS策略具體為CBQ策略時,為所述隊列申請模塊121所申請的多個BE隊列,以及一個EF隊列和/或多個AF隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)CBQ策略所對應(yīng)的隊列配置;和/或,當(dāng)所述QoS策略具體為包括父策略和子策略的嵌套CBQ策略時,為所述隊列申請模塊121所申請的所述父策略所對應(yīng)的多個BE隊列,以及一個EF隊列和/或多個AF隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,然后,為所述隊列申請模塊所申請的所述子策略所對應(yīng)的多個BE隊列,以及一個EF隊列和/或多個AF隊列分配一個隊列組,并根據(jù)為所述父策略所對應(yīng)的隊列組的隊列組限速屬性,對所述子策略所對應(yīng)的隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)嵌套CBQ策略所對應(yīng)的隊列配置。進一步的,在實際應(yīng)用中,所述報文處理模塊123,具體用于當(dāng)通過所述接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文報文時,判斷所述接口當(dāng)前是否配置了 QoS策略;如果判斷結(jié)果為是,獲取所述隊列申請模塊121根據(jù)所述QoS策略所申請的隊列的標(biāo)識信息,將所述報文發(fā)送給所述標(biāo)識信息所對應(yīng)的隊列進行處理,并根據(jù)所述隊列所對應(yīng)的隊列組的屬性以及所述接口的屬性,對所述報文進行處理;如果判斷結(jié)果為否,按照非QoS策略的處理規(guī)則進行處理。與現(xiàn)有技術(shù)相比,本發(fā)明實施例所提出的技術(shù)方案具有以下優(yōu)點
通過應(yīng)用本發(fā)明實施例的技術(shù)方案,在接口配置QoS策略時,由FPGA轉(zhuǎn)發(fā)設(shè)備為該接口申請相應(yīng)的隊列,為所申請的隊列分配相應(yīng)的隊列組,并配置所述隊列組的屬性,以實現(xiàn)該QoS策略所對應(yīng)的隊列配置,在該接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,根據(jù)所述隊列組的屬性,通過所述隊列組中的隊列對所述報文進行轉(zhuǎn)發(fā)處理,從而,使FPGA轉(zhuǎn)發(fā)設(shè)備在報文處理過程中,只需基于隊列組進行資源調(diào)度,而不需要區(qū)分用戶的具體配置,便可以同時支持多種QoS策略,基于QoS策略 完成對報文的處理,降低了 QoS策略實現(xiàn)的復(fù)雜度,簡化了 QoS策略下的報文處理流程,同時,根據(jù)不同的隊列資源調(diào)度選擇方案,可以方便的實現(xiàn)更豐富的QoS策略擴展。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)。基于這樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是⑶-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施場景所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施場景的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實施場景中的裝置中的模塊可以按照實施場景描述進行分布于實施場景的裝置中,也可以進行相應(yīng)變化位于不同于本實施場景的一個或多個裝置中。上述實施場景的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。上述本發(fā)明序號僅僅為了描述,不代表實施場景的優(yōu)劣。以上公開的僅為本發(fā)明的幾個具體實施場景,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護范圍。
權(quán)利要求
1.一種基于現(xiàn)場可編程門陣列FPGA隊列實現(xiàn)服務(wù)質(zhì)量QoS隊列的方法,其特征在于,至少包括以下步驟 當(dāng)一個接口上配置QoS策略時,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述QoS策略,為所述接口申請相應(yīng)的隊列; 所述FPGA轉(zhuǎn)發(fā)設(shè)備為所申請的隊列分配相應(yīng)的隊列組,并配置所述隊列組的屬性,實現(xiàn)所述QoS策略所對應(yīng)的隊列配置; 當(dāng)所述FPGA轉(zhuǎn)發(fā)設(shè)備通過所述接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述隊列組的屬性以及所述接口的屬性,通過所述隊列組中的隊列對所述報文進行轉(zhuǎn)發(fā)處理。
2.如權(quán)利要求I所述的方法,其特征在于,當(dāng)一個接口上配置QoS策略時,F(xiàn)PGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述QoS策略,為所述接口申請相應(yīng)的隊列,具體包括 當(dāng)所述QoS策略具體為通用流量整形GTS策略時,所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述GTS策略,為所述接口申請一個盡力服務(wù)BE隊列;和/或, 當(dāng)所述QoS策略具體為接口總速率限制LR策略時,所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述LR策略,為所述接口申請相應(yīng)的隊列資源;和/或, 當(dāng)所述QoS策略具體為先入先出FIFO策略時,所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述FIFO策略,為所述接口申請一個BE隊列;和/或, 當(dāng)所述QoS策略具體為加權(quán)公平隊列WFQ策略時,所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述WFQ策略,為所述接口申請多個BE隊列,并分別為所申請的每個BE隊列分配權(quán)重;和/或, 當(dāng)所述QoS策略具體為基于類的隊列CBQ策略時,所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述CBQ策略,為所述接口申請多個BE隊列,并為每個BE隊列分配權(quán)重,同時,還申請一個加速轉(zhuǎn)發(fā)EF隊列,并配置EF限速規(guī)則,和/或,申請多個確保轉(zhuǎn)發(fā)AF隊列,并配置AF限速規(guī)則以及為每個AF隊列分配權(quán)重;和/或, 當(dāng)所述QoS策略具體為包括父策略和子策略的嵌套CBQ策略時,所述FPGA根據(jù)所述父策略,為所述接口申請多個BE隊列,并為每個BE隊列分配權(quán)重,同時,還申請一個EF隊列,并配置EF限速規(guī)則,和/或,申請多個AF隊列,并配置AF限速規(guī)則以及為每個AF隊列分配權(quán)重,然后,所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述子策略,為所述接口申請多個BE隊列,同時,還申請一個EF隊列,和/或多個AF隊列。
3.如權(quán)利要求2所述的方法,其特征在于,所述FPGA轉(zhuǎn)發(fā)設(shè)備為所申請的隊列分配相應(yīng)的隊列組,并配置所述隊列組的屬性,實現(xiàn)所述QoS策略所對應(yīng)的隊列配置,具體包括 當(dāng)所述QoS策略具體為GTS策略時,所述FPGA轉(zhuǎn)發(fā)設(shè)備將所申請的BE隊列分配到一個隊列組中,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)所述GTS策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為LR策略,且所述接口為物理接口時,所述FPGA轉(zhuǎn)發(fā)設(shè)備直接根據(jù)所述LR策略,對所述物理接口配置接口限速屬性,實現(xiàn)所述LR策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為LR策略,且所述接口為邏輯接口時,所述FPGA轉(zhuǎn)發(fā)設(shè)備直接根據(jù)所述LR策略,對為所述邏輯接口所分配的隊列組配置隊列組限速屬性,實現(xiàn)所述LR策略所對應(yīng)的隊列配置;和/或,當(dāng)所述QoS策略具體為FIFO策略時,所述FPGA轉(zhuǎn)發(fā)設(shè)備為所申請的BE隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)所述FIFO策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為WFQ策略時,所述FPGA轉(zhuǎn)發(fā)設(shè)備為所申請的多個BE隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)WFQ策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為CBQ策略時,所述FPGA轉(zhuǎn)發(fā)設(shè)備為所申請的多個BE隊列,以及一個EF隊列和/或多個AF隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)CBQ策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為包括父策略和子策略的嵌套CBQ策略時,所述FPGA轉(zhuǎn)發(fā)設(shè)備為所述父策略所對應(yīng)的多個BE隊列,以及一個EF隊列和/或多個AF隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,然后,所述FPGA轉(zhuǎn)發(fā)設(shè)備為所述子策略所對應(yīng)的多個BE隊列,以及一個EF隊列和/或多個AF隊列分配一個隊列組,并根據(jù)為所述父策略所對應(yīng)的隊列組的隊列組限速屬性,對所述子策略所對應(yīng)的隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)嵌套CBQ策略所對應(yīng)的隊列配置。
4.如權(quán)利要求I所述的方法,其特征在于,當(dāng)所述FPGA轉(zhuǎn)發(fā)設(shè)備通過所述接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,所述FPGA轉(zhuǎn)發(fā)設(shè)備根據(jù)所述隊列組的屬性以及所述接口的屬性,通過所述隊列組中的隊列對所述報文進行轉(zhuǎn)發(fā)處理,具體包括 當(dāng)所述FPGA轉(zhuǎn)發(fā)設(shè)備通過所述接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,所述FPGA轉(zhuǎn)發(fā)設(shè)備判斷所述接口當(dāng)前是否配置了 QoS策略; 如果判斷結(jié)果為是,所述FPGA轉(zhuǎn)發(fā)設(shè)備獲取根據(jù)所述QoS策略為所述接口所申請的隊列的標(biāo)識信息,將所述報文發(fā)送給所述標(biāo)識信息所對應(yīng)的隊列,并根據(jù)所述隊列所對應(yīng)的隊列組的屬性以及所述接口的屬性,對所述報文進行處理; 如果判斷結(jié)果為否,所述FPGA轉(zhuǎn)發(fā)設(shè)備按照非QoS策略的處理規(guī)則進行處理。
5.—種FPGA轉(zhuǎn)發(fā)設(shè)備,其特征在于,至少包括 隊列申請模塊,用于當(dāng)一個接口上配置QoS策略時,根據(jù)所述QoS策略,為所述接口申請相應(yīng)的隊列; 隊列組配置模塊,用于為所述隊列申請模塊所申請的隊列分配相應(yīng)的隊列組,并配置所述隊列組的屬性,實現(xiàn)所述QoS策略所對應(yīng)的隊列配置; 報文處理模塊,用于在通過所述接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,根據(jù)所述隊列組配置模塊所配置的所述隊列組的屬性以及所述接口的屬性,通過所述隊列組中的隊列對所述報文進行轉(zhuǎn)發(fā)處理。
6.如權(quán)利要求5所述的FPGA轉(zhuǎn)發(fā)設(shè)備,其特征在于,所述隊列申請模塊,具體用于 當(dāng)所述QoS策略具體為GTS策略時,根據(jù)所述GTS策略,為所述接口申請一個BE隊列;和/或, 當(dāng)所述QoS策略具體為LR策略時,根據(jù)所述LR策略,為所述接口申請相應(yīng)的隊列資源;和/或, 當(dāng)所述QoS策略具體為FIFO策略時,根據(jù)所述FIFO策略,為所述接口申請一個BE隊列;和/或,當(dāng)所述QoS策略具體為WFQ策略時,根據(jù)所述WFQ策略,為所述接口申請多個BE隊列,并分別為所申請的每個BE隊列分配權(quán)重;和/或, 當(dāng)所述QoS策略具體為CBQ策略時,根據(jù)所述CBQ策略,為所述接口申請多個BE隊列,并為每個BE隊列分配權(quán)重,同時,還申請一個EF隊列,并配置EF限速規(guī)則,和/或,申請多個AF隊列,并配置AF限速規(guī)則以及為每個AF隊列分配權(quán)重;和/或, 當(dāng)所述QoS策略具體為包括父策略和子策略的嵌套CBQ策略時,根據(jù)所述父策略,為所述接口申請多個BE隊列,并為每個BE隊列分配權(quán)重,同時,還申請一個EF隊列,并配置EF限速規(guī)則,和/或,申請多個AF隊列,并配置AF限速規(guī)則以及為每個AF隊列分配權(quán)重,然后,根據(jù)所述子策略,為所述接口申請多個BE隊列,同時,還申請一個EF隊列,和/或多個AF隊列。
7.如權(quán)利要求6所述的FPGA轉(zhuǎn)發(fā)設(shè)備,其特征在于,所述隊列組配置模塊,具體用于 當(dāng)所述QoS策略具體為GTS策略時,將所述隊列申請模塊所申請的BE隊列分配到一個隊列組中,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)所述GTS策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為LR策略,且所述接口為物理接口時,直接根據(jù)所述LR策略,對所述物理接口配置接口限速屬性,實現(xiàn)所述LR策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為LR策略,且所述接口為邏輯接口時,直接根據(jù)所述LR策略,對為所述邏輯接口所分配的隊列組配置隊列組限速屬性,實現(xiàn)所述LR策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為FIFO策略時,為所述隊列申請模塊所申請的BE隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)所述FIFO策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為WFQ策略時,為所述隊列申請模塊所申請的多個BE隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)WFQ策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為CBQ策略時,為所述隊列申請模塊所申請的多個BE隊列,以及一個EF隊列和/或多個AF隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)CBQ策略所對應(yīng)的隊列配置;和/或, 當(dāng)所述QoS策略具體為包括父策略和子策略的嵌套CBQ策略時,為所述隊列申請模塊所申請的所述父策略所對應(yīng)的多個BE隊列,以及一個EF隊列和/或多個AF隊列分配一個隊列組,并對所述隊列組配置隊列組限速屬性,然后,為所述隊列申請模塊所申請的所述子策略所對應(yīng)的多個BE隊列,以及一個EF隊列和/或多個AF隊列分配一個隊列組,并根據(jù)為所述父策略所對應(yīng)的隊列組的隊列組限速屬性,對所述子策略所對應(yīng)的隊列組配置隊列組限速屬性,對所述接口配置接口限速屬性,實現(xiàn)嵌套CBQ策略所對應(yīng)的隊列配置。
8.如權(quán)利要求5所述的FPGA轉(zhuǎn)發(fā)設(shè)備,其特征在于,所述報文處理模塊,具體用于 當(dāng)通過所述接口轉(zhuǎn)發(fā)所述QoS策略所對應(yīng)的報文時,判斷所述接口當(dāng)前是否配置了QoS策略; 如果判斷結(jié)果為是,獲取所述隊列申請模塊根據(jù)所述QoS策略所申請的隊列的標(biāo)識信息,將所述報文發(fā)送給所述標(biāo)識信息所對應(yīng)的隊列進行處理,并根據(jù)所述隊列所對應(yīng)的隊列組的屬性以及所述接口的屬性,對所述報文進行處理 ;如果判斷結(jié)果為否,按照非QoS策略的處理規(guī)則進行處理。
全文摘要
本發(fā)明實施例公開了一種基于FPGA隊列實現(xiàn)QoS隊列的方法和設(shè)備,通過應(yīng)用本發(fā)明實施例的技術(shù)方案,在接口配置QoS策略時,由FPGA轉(zhuǎn)發(fā)設(shè)備為該接口申請相應(yīng)的隊列,為所申請的隊列分配相應(yīng)的隊列組,并配置所述隊列組的屬性,以實現(xiàn)該QoS策略所對應(yīng)的隊列配置,在該接口轉(zhuǎn)發(fā)QoS策略所對應(yīng)的報文時,根據(jù)隊列組以及接口的屬性,通過隊列組中的隊列對報文進行轉(zhuǎn)發(fā)處理,從而,使FPGA轉(zhuǎn)發(fā)設(shè)備在報文處理過程中,只需基于隊列組進行資源調(diào)度,而不需要區(qū)分用戶的具體配置,便可以同時支持多種QoS策略,基于QoS策略完成對報文的處理,降低了QoS策略實現(xiàn)的復(fù)雜度,簡化了QoS策略下的報文處理流程,同時,根據(jù)不同的隊列資源調(diào)度選擇方案,可以方便的實現(xiàn)更豐富的QoS策略擴展。
文檔編號H04L12/56GK102780630SQ201210272598
公開日2012年11月14日 申請日期2012年8月2日 優(yōu)先權(quán)日2012年8月2日
發(fā)明者李佳, 王厚雪 申請人:杭州華三通信技術(shù)有限公司