網(wǎng)絡(luò)交換機中的靈活隊列的制作方法
【專利摘要】本發(fā)明涉及一種網(wǎng)絡(luò)交換機中的靈活隊列。在用于接收并轉(zhuǎn)發(fā)網(wǎng)絡(luò)上的數(shù)據(jù)分組的裝置中,一種網(wǎng)絡(luò)設(shè)備包括用于耦合到所述網(wǎng)絡(luò)并且用于將分組發(fā)送到布置在網(wǎng)絡(luò)中或耦合到網(wǎng)絡(luò)的設(shè)備的多個端口。被配置為處理經(jīng)由網(wǎng)絡(luò)接收的分組的至少一個處理器通過將所處理的分組選擇性地轉(zhuǎn)發(fā)到所述端口中的一個或多個來處理分組。多個隊列被限定在存儲器中,每個隊列被配置為存儲將要由所述多個端口中的端口發(fā)送的分組。隊列管理器被配置為將多個隊列的子集選擇性地分配到多個端口的子集。
【專利說明】網(wǎng)絡(luò)交換機中的靈活隊列
[0001]相關(guān)申請的交叉引用
[0002]本申請要求2012年5月24日提交的名稱為“Flexible Queues”的美國臨時申請第61/651,227號和2013年5月20日提交的名稱同樣為“Flexible Queues”的美國臨時申請第61/825,182號的優(yōu)先權(quán),其全部公開內(nèi)容在此以整體和為了全部目的通過引用結(jié)合于此。
【背景技術(shù)】
[0003]這里提供的背景描述是為了一般地呈現(xiàn)本說明書的內(nèi)容的目的。當前名義的發(fā)明人的工作在本背景部分中所描述到的程度,以及在提交時可能不是現(xiàn)有技術(shù)的本說明書的各方面,都未明確地或隱含地認為是相對于本說明書的現(xiàn)有技術(shù)。
[0004]網(wǎng)絡(luò)設(shè)備諸如網(wǎng)絡(luò)交換機、路由器、邊緣設(shè)備等常常采用存儲和轉(zhuǎn)發(fā)架構(gòu),其中,所接收的分組在該網(wǎng)絡(luò)設(shè)備中的存儲器中進行排隊——例如但不限于,用于調(diào)度——用于從該網(wǎng)絡(luò)設(shè)備隨后傳輸。這種網(wǎng)絡(luò)設(shè)備典型地通過將對應(yīng)于不同用戶的分組或具有不同優(yōu)先級的分組存儲于分離的隊列中并獨立地控制存儲于這些隊列中的每個隊列的分組的傳輸來執(zhí)行業(yè)務(wù)“整形”。隨著增長的用戶數(shù)目和增長的提供給用戶的服務(wù)數(shù)目,這種網(wǎng)絡(luò)設(shè)備需要例如支持隊列到交換端口的靈活供應(yīng)和分配。
【發(fā)明內(nèi)容】
[0005]在一個實施方式中,一種網(wǎng)絡(luò)設(shè)備包括多個端口,用于耦合到網(wǎng)絡(luò)并且用于將分組發(fā)送到布置在網(wǎng)絡(luò)中或耦合到所述網(wǎng)絡(luò)的設(shè)備。所述網(wǎng)絡(luò)設(shè)備還包括被配置為處理經(jīng)由所述網(wǎng)絡(luò)接收的分組的至少一個處理器,所述處理包括將所處理的分組選擇性地轉(zhuǎn)發(fā)到所述端口中的一個或多個端口。所述網(wǎng)絡(luò)設(shè)備進一步包括在存儲器中限定的多個隊列。所述多個隊列被配置為存儲要由所述多個端口中的端口發(fā)送的分組。所述網(wǎng)絡(luò)設(shè)備中的隊列管理器被配置為將所述多個隊列的子集選擇性地分配到所述多個端口的子集。
[0006]在另一實施方式中,一種網(wǎng)絡(luò)設(shè)備包括被配置為(i)將所述網(wǎng)絡(luò)設(shè)備耦合到網(wǎng)絡(luò)以及(ii)將分組發(fā)送到布置在網(wǎng)絡(luò)中或耦合到所述網(wǎng)絡(luò)的設(shè)備的多個端口。所述設(shè)備還包括多個端口配置簡檔。每個端口配置簡檔對應(yīng)于所述多個端口中的一個端口并且指示去往所述端口的分組業(yè)務(wù)的特征或耦合到所述端口的設(shè)備的特征。而且,所述網(wǎng)絡(luò)設(shè)備包括被配置為處理從所述網(wǎng)絡(luò)接收的分組的至少一個處理器。所述處理包括將所處理的分組選擇性地轉(zhuǎn)發(fā)到所述端口中的一個或多個端口。多個隊列在所述網(wǎng)絡(luò)設(shè)備的存儲器中限定。所述多個隊列被配置為存儲要由所述多個端口中的端口發(fā)送的分組。所述網(wǎng)絡(luò)設(shè)備還包括對所述端口配置簡檔進行響應(yīng)并且被布置為根據(jù)對應(yīng)于所述端口的所述端口配置簡檔將所述多個隊列中的一個或多個可配置地分配到所述多個端口中的每一個的隊列管理器。
[0007]在又一實施方式中,一種網(wǎng)絡(luò)設(shè)備包括多個端口,其被配置為(i)耦合到網(wǎng)絡(luò),
(ii)經(jīng)由所述網(wǎng)絡(luò)接收分組,以及(iii)經(jīng)由所述網(wǎng)絡(luò)發(fā)送分組。所述網(wǎng)絡(luò)設(shè)備包括被配置為處理經(jīng)由所述網(wǎng)絡(luò)接收的分組的至少一個處理器。所述處理包括將所接收的分組選擇性地轉(zhuǎn)發(fā)到所述端口中的一個或多個,以用于經(jīng)由所述網(wǎng)絡(luò)傳輸。多個隊列限定在所述網(wǎng)絡(luò)設(shè)備的存儲器中。所述多個隊列被配置為存儲要經(jīng)由所述網(wǎng)絡(luò)發(fā)送的分組。所述網(wǎng)絡(luò)設(shè)備進一步包括被配置為(i)攔截從位于網(wǎng)絡(luò)中的或耦合到所述網(wǎng)絡(luò)的下游設(shè)備發(fā)送到位于網(wǎng)絡(luò)中的或耦合到所述網(wǎng)絡(luò)的上游設(shè)備的擁塞通知,以及(ii)通過(a)將一個或多個附加的隊列分配到端口或(b)修改隊列的隊列長度,根據(jù)所攔截的擁塞通知緩解擁塞的隊列管理器。
[0008]在再一實施方式中,一種配置網(wǎng)絡(luò)設(shè)備的方法包括:配置多個端口以將網(wǎng)絡(luò)分組發(fā)送到布置在網(wǎng)絡(luò)中的或耦合到所述網(wǎng)絡(luò)的設(shè)備,所述端口連接到或?qū)⒁B接到的所述網(wǎng)絡(luò),以及配置至少一個處理器以處理經(jīng)由所述網(wǎng)絡(luò)接收的分組,所述處理包括將所處理的分組選擇性地轉(zhuǎn)發(fā)到所述端口中的一個或多個。所述方法還包括:在存儲器中限定多個隊列,配置所述多個隊列以存儲要發(fā)送的分組,以及配置隊列管理器以將所述多個隊列的子集選擇性地分配到所述多個端口的子集。
[0009]在另一實施方式中,一種操作網(wǎng)絡(luò)設(shè)備的方法包括:在所述網(wǎng)絡(luò)交換機的端口處接收分組,以及在轉(zhuǎn)發(fā)引擎中確定所接收的分組中的每個應(yīng)當被轉(zhuǎn)發(fā)到的一個或多個端口。所述方法還包括至少部分地根據(jù)所述分組應(yīng)當被轉(zhuǎn)發(fā)到的所述一個或多個端口的對應(yīng)確定在隊列中對每個分組進行排隊。而且,所述方法包括:從可用隊列的池中選擇隊列子集以與端口關(guān)聯(lián),以及將所選擇的隊列子集與所述端口關(guān)聯(lián)。
[0010]在又一實施方式中,一種操作具有耦合到網(wǎng)絡(luò)的多個端口的網(wǎng)絡(luò)設(shè)備的方法包括:處理從所述網(wǎng)絡(luò)接收的分組以將所接收的分組選擇性地轉(zhuǎn)發(fā)到所述端口中的一個或多個以用于傳輸,以及將所接收的分組存儲在多個隊列中,所述隊列限定在存儲器中并且被配置為存儲要經(jīng)由所述網(wǎng)絡(luò)發(fā)送的分組。所述方法包括:攔截從布置在網(wǎng)絡(luò)中或耦合到所述網(wǎng)絡(luò)的下游設(shè)備發(fā)送到布置在網(wǎng)絡(luò)中或耦合到所述網(wǎng)絡(luò)的上游設(shè)備的擁塞通知,以及在隊列管理器中,根據(jù)所攔截的擁塞通知,執(zhí)行隊列修改動作,其包括(a)將一個或多個另外的隊列分配到端口或(b)修改隊列的隊列長度。
[0011]附圖簡要說明
[0012]圖1是網(wǎng)絡(luò)交換機的實施方式的框圖,該網(wǎng)絡(luò)交換機被配置為通過實施隊列管理器而有效地管理通過網(wǎng)絡(luò)設(shè)備的業(yè)務(wù);
[0013]圖2是諸如圖1中描述的網(wǎng)絡(luò)交換機的網(wǎng)絡(luò)交換機中的隊列管理器的實施方式的框圖;
[0014]圖3是示出在隊列管理器中實施的調(diào)度器的操作的各方面的示意圖;
[0015]圖4A示出根據(jù)本說明書配置的網(wǎng)絡(luò)交換機中的隊列和端口的第一配置;
[0016]圖4B示出根據(jù)本說明書配置的網(wǎng)絡(luò)交換機中的隊列和端口的第二配置;
[0017]圖4C示出根據(jù)本說明書配置的網(wǎng)絡(luò)交換機中的隊列和端口的第三配置;
[0018]圖4D示出根據(jù)本說明書配置的網(wǎng)絡(luò)交換機中的隊列和端口的第四配置;
[0019]圖5是示出在一個實施方式中由隊列管理器實施的動態(tài)業(yè)務(wù)整形的各方面的框圖;
[0020]圖6是根據(jù)一個實施方式的用于在網(wǎng)絡(luò)交換機中對分組進行排隊的方法的流程圖;
[0021]圖7是根據(jù)一個實施方式的操作網(wǎng)絡(luò)交換機的方法的流程圖;[0022]圖8是根據(jù)一個實施方式的操作網(wǎng)絡(luò)交換機的第二種方法的流程圖。
【具體實施方式】
[0023]在以上所描述的實施方式中,網(wǎng)絡(luò)交換機從上游設(shè)備接收分組并且向下游設(shè)備轉(zhuǎn)發(fā)分組。根據(jù)分組中所包括的信息類型和/或根據(jù)分組所實施的協(xié)議轉(zhuǎn)發(fā)分組。根據(jù)分組的類型和/或協(xié)議、和/或根據(jù)分組的優(yōu)先級將分組排隊以用于向下游設(shè)備傳輸,使得在發(fā)送與對時間高度敏感的數(shù)據(jù)不相關(guān)的分組之前發(fā)送與實時或近實時的通信相關(guān)的分組。將分組排隊和/或確定分組的優(yōu)先級,以便對特定端口、下游設(shè)備、網(wǎng)絡(luò)等等上的網(wǎng)絡(luò)擁塞進行限制。網(wǎng)絡(luò)交換機包括除其他部件以外的隊列管理器,該隊列管理器可配置地將可用隊列分配給和/或耦合到網(wǎng)絡(luò)交換機的端口。
[0024]本文所描述的方法和裝置促進與網(wǎng)絡(luò)交換機的每個端口(或端口組)相關(guān)聯(lián)并且耦合的隊列的數(shù)目的增加和/或減少。附加的靈活性繼而促進諸如題為“ExtendedPriority for Ethernet Packets”的第13/894,952號美國專利申請中所描述的擴展優(yōu)先級方案、以及差分服務(wù)代碼點(DSCP)架構(gòu)和其他排隊策略的實現(xiàn)。例如,在現(xiàn)有網(wǎng)絡(luò)交換機一般每一端口支持最多八個隊列的情況下,現(xiàn)在所描述的方法和裝置每一端口能夠提供多于八個隊列。在實施方式中,例如網(wǎng)絡(luò)交換機能夠被配置為經(jīng)由隊列管理器為每一端口分配64個(或任何其他可用隊列的數(shù)目)隊列。在此類實施方式中,對于每個端口,網(wǎng)絡(luò)上的64個服務(wù)質(zhì)量(QoS)配置簡檔中的每個配置簡檔能夠被直接映射到特定隊列。作為另一示例,本文所描述的隊列管理器的實現(xiàn)允許網(wǎng)絡(luò)交換機支持(或更好地支持)例如具有八個租戶配置簡檔且每個租戶配置簡檔擁有八個隊列的多租戶環(huán)境。
[0025]在實施方式中,隊列管理器在對設(shè)備進行初始配置之后例如根據(jù)可用隊列的數(shù)目和交換機中的已激活端口的數(shù)目,可配置地將可用隊列耦合到若干端口,并且之后被分配給每個端口的隊列在該設(shè)備的使用期內(nèi)保持固定。在另外的實施方式中,隊列管理器根據(jù)網(wǎng)絡(luò)交換機操作期間的一種或多種狀況,可配置地將可用隊列分配給和/或耦合到網(wǎng)絡(luò)交換機的端口,并且例如根據(jù)業(yè)務(wù)網(wǎng)絡(luò)的業(yè)務(wù)擁塞狀況可配置地將可用隊列分配并且耦合到網(wǎng)絡(luò)交換機。在另外的實施方式中,隊列管理器根據(jù)配置例程將可用隊列分配并且耦合到網(wǎng)絡(luò)交換機,該配置例程例如通過網(wǎng)絡(luò)管理員促進網(wǎng)絡(luò)交換器的配置,該網(wǎng)絡(luò)管理員配置網(wǎng)絡(luò)交換機以例如根據(jù)與每個端口相關(guān)聯(lián)的業(yè)務(wù)類型將可用隊列分配給端口。以下將描述這些或其他實施方式的細節(jié)。
[0026]圖1是網(wǎng)絡(luò)交換器100的一個實施方式的框圖,該網(wǎng)絡(luò)交換器100被配置為通過實現(xiàn)隊列管理器來有效管理經(jīng)過網(wǎng)絡(luò)設(shè)備的業(yè)務(wù)。雖然本文將其稱為網(wǎng)絡(luò)交換機,但在各種實施方式中網(wǎng)絡(luò)交換機100是交換機、服務(wù)器或其他被配置用于對分組進行轉(zhuǎn)發(fā)、交換或者路由的其他網(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)交換機100通常連接到網(wǎng)絡(luò)并且對分組進行處理以用于轉(zhuǎn)發(fā)、交換或者路由到其他網(wǎng)絡(luò)設(shè)備。根據(jù)一個實施方式,網(wǎng)絡(luò)交換機100被配置為支持多個用戶并且管理從網(wǎng)絡(luò)交換機100出去的業(yè)務(wù),使得多個用戶有效地共享總帶寬,同時有效利用網(wǎng)絡(luò)設(shè)備100的資源。為了這些目的,在各種實施方式中,網(wǎng)絡(luò)交換機100被配置為維護多個用戶外出隊列,用于在網(wǎng)絡(luò)交換機100的出口(例如視頻點播業(yè)務(wù)、互聯(lián)網(wǎng)協(xié)議電話(VoIP)業(yè)務(wù)、控制業(yè)務(wù)、游戲業(yè)務(wù)等)處使分組流(在此也被稱為“業(yè)務(wù)流”)成形(例如有意地減慢或延遲)。[0027]網(wǎng)絡(luò)交換機100包括耦合到諸如進入端口(在此也稱為接收(RX)端口)和外出端口 106 (在此也稱為發(fā)送(TX)端口 )之類的多個端口的分組處理器102。通常分組處理器102被配置為對經(jīng)由進入端口 104接收的分組進行處理,確定應(yīng)當經(jīng)由哪些相應(yīng)外出端口來發(fā)送該分組,以及經(jīng)由所確定的外出端口 106發(fā)送該分組。在至少某些實施方式中,分組處理器102被配置為在進入端口 104處接收分組,將分組存儲在存儲器中,在分組被存儲在存儲器的同時執(zhí)行對分組的處理,確定應(yīng)當經(jīng)由其來發(fā)送該分組的一個或多個外出端口106,以及在做出轉(zhuǎn)發(fā)決定后從存儲器取回該分組并且經(jīng)由一個或多個外出端口 106發(fā)送該分組。分組處理器102包括進入處理單元108,該進入處理單元108 —般對經(jīng)由端口 104進入的分組執(zhí)行初始處理。在實施方式中,進入處理單元108針對分組生成分組描述符,并且該分組描述符而不是分組本身隨后由分組處理器102處理。在一個實施方式中,分組描述符包括來自分組的一些信息,諸如分組的某些或所有報頭信息。在某些實施方式中,分組描述符還包括諸如關(guān)于分組在存儲器中所存儲的位置的指示符之類的其他信息。出于易于解釋的目的,術(shù)語“分組”在下文中被用于指代分組本身或者與分組相關(guān)聯(lián)的分組描述符。
[0028]在一個實施方式中,進入處理單元108(以及外出處理單元(未示出))均包括被配置為對由網(wǎng)絡(luò)交換機100接收的分組進行處理的一個或多個處理單元(在圖1中不可見)。在各種實施方式中,進入處理單元108內(nèi)的處理單元包括一個或多個隧道終止接口(TTI)分類單元、進入策略單元、電橋引擎、進入策略器單元等等,并且外出處理器單元內(nèi)的處理單元包括一個或多個外出過濾單元、層2(和/或?qū)?)復(fù)制單元、業(yè)務(wù)成形單元、調(diào)度單元、外出策略單元、外出策略器單元等等。在一個實施方式中,進入處理器108的處理單元是在進入管線內(nèi)以串聯(lián)配置布置的處理引擎,并且外出處理單元的處理單元是在外出管線內(nèi)以串聯(lián)配置布置的處理引擎(未示出)??商鎿Q地,相應(yīng)處理單元對應(yīng)于可編程處理單元的管線(例如限定網(wǎng)絡(luò)(或分組處理器)的數(shù)據(jù)流管線)中所執(zhí)行的代碼部分,或者是一個或多個軟件驅(qū)動分組和/或網(wǎng)絡(luò)處理器的功能性程序模塊。因此,要注意的是在此所描述的原理同樣適用于除所描述的交換機處理器之外的適當?shù)慕粨Q機處理器架構(gòu),并且該交換機架構(gòu)不應(yīng)解釋為限于任何特定架構(gòu)設(shè)計。
[0029]在實施方式中,進入處理器108包括分組分類器(未示出),該分類器將每個接收到的分組基于與該分組相關(guān)聯(lián)或為該分組確定的一個或多個參數(shù)而分類,并且將該分組分配到特定業(yè)務(wù)類別和/或特定數(shù)據(jù)流。在一個實施方式中,不同的數(shù)據(jù)流或不同的業(yè)務(wù)類別與例如不同的分組類型相關(guān)聯(lián)。在某些實施方式中,例如為不同用戶和/或用戶所使用的不同服務(wù)(例如不同應(yīng)用)限定不同的數(shù)據(jù)流。在一個實施方式中,然后網(wǎng)絡(luò)交換機100獨立地管理數(shù)據(jù)流,例如用于確保向用戶提供的服務(wù)(例如實時服務(wù)、寬帶供應(yīng)服務(wù)、QoS服務(wù)等等)符合服務(wù)供應(yīng)商與其客戶之間的服務(wù)水平協(xié)議(SLA),并且用于總體上有效地利用網(wǎng)絡(luò)設(shè)備100的總帶寬。例如,在一個實施方式中,網(wǎng)絡(luò)交換機100例如基于數(shù)據(jù)流所對應(yīng)的服務(wù)而將不同的優(yōu)先程度分配給不同的數(shù)據(jù)流,并且獨立管理數(shù)據(jù)流以利用比低優(yōu)先級業(yè)務(wù)短的延遲發(fā)送高優(yōu)先級業(yè)務(wù)。
[0030]在某些實施方式中,優(yōu)先級信息被用于實現(xiàn)在網(wǎng)絡(luò)交換機100中的外出處理(例如外出業(yè)務(wù)管理)期間的服務(wù)質(zhì)量(QoS)。在一個實施方式中,向分組或該分組為其一部分的流分配不同的優(yōu)先級,以例如在應(yīng)用、延遲敏感度和/或QoS產(chǎn)品之間進行區(qū)分。例如,在一個實施方式中,網(wǎng)絡(luò)操作員保證針對客戶的應(yīng)用為客戶提供特定量的帶寬,并且進一步同意基于業(yè)務(wù)類型供應(yīng)某種服務(wù)質(zhì)量。為了支持差異化的服務(wù),分組處理器102為每個數(shù)據(jù)分組維護諸如優(yōu)先級、業(yè)務(wù)類別等等的一個或多個屬性。在一個實施方式中,這些值在接收到分組時進行設(shè)置并且有時隨分組經(jīng)過各種處理階段而被更改。在某些實施方式中,業(yè)務(wù)類別、優(yōu)先級和/或各種其他分組屬性被包括作為由進入處理單元108的各種硬件或軟件模塊(未示出)分配給分組的QoS配置簡檔的一部分。分組處理器102維護在進入
(RX)端口 104(例如10、11、12.....1千)處接收的每個分組的屬性并且使用此信息用于
在對分組進行外出處理期間管理業(yè)務(wù)從網(wǎng)絡(luò)交換機100的外出,從而例如在外出(TX)端口
106(例如E0、EU E2.....Em)處對分組的傳輸進行調(diào)度。雖然圖1描繪了六個進入端口
104和六個外出端口 106,但是在其他實施方式中網(wǎng)絡(luò)交換機100包括不同數(shù)目的進入端口104 (例如1,2、3、5、6個等)、不同數(shù)目的外出端口 106 (例如1,2、3、5、6個等),并且進入端口 104的數(shù)目不同于外出端口 106的數(shù)目。另外在某些實施方式中,一個或多個端口中的每個既充當進入端口也充當外出端口。要注意的是,鑒于本文的教導(dǎo)和公開,所示的配置僅出于說明目的,并且在本發(fā)明范圍內(nèi)許多可替換配置是可能的。
[0031]分組處理器102還包括將進入端口 104和外出端口 106耦合在一起的轉(zhuǎn)發(fā)引擎110。通常,轉(zhuǎn)發(fā)引擎110從進入處理單元108接收分組,確定與每個分組目的地對應(yīng)的外出端口 106,并且向適當外出端口 106轉(zhuǎn)發(fā)每個分組。在某些實施方式中,轉(zhuǎn)發(fā)引擎110對該分組的報頭中的數(shù)據(jù)進行分析以確定應(yīng)當經(jīng)由哪個或哪些端口 106發(fā)送該分組。例如,轉(zhuǎn)發(fā)引擎110對該分組中的一個或多個目的地址(單播、組播或廣播)、虛擬局域網(wǎng)(VLAN)標簽等進行分析。轉(zhuǎn)發(fā)引擎110包括存儲不同目的地址(例如媒體訪問控制(MAC)地址、互聯(lián)網(wǎng)協(xié)議(IP)地址、VLAN、組播地址等等)的轉(zhuǎn)發(fā)信息的轉(zhuǎn)發(fā)數(shù)據(jù)庫(未示出)。在一個實施方式中,轉(zhuǎn)發(fā)引擎110包括三態(tài)內(nèi)容可尋址存儲器(TCAM)引擎(未示出)。
[0032]轉(zhuǎn)發(fā)引擎110對分組進行處理,基于來源和目的地信息、分組的類型和/或與分組相關(guān)聯(lián)的協(xié)議和/或分組中所包括的數(shù)據(jù)來確定例如應(yīng)當經(jīng)由網(wǎng)絡(luò)交換機100的哪個端口106發(fā)送該分組。在某些實施方式中,轉(zhuǎn)發(fā)引擎110還設(shè)置分組的優(yōu)先級,允許根據(jù)優(yōu)先級將分組在與將經(jīng)由其發(fā)送該分組的端口 106相關(guān)聯(lián)的多個隊列中的相應(yīng)一個隊列中列隊(即存儲在隊列中)。在一個實施方式中,轉(zhuǎn)發(fā)引擎110(例如TCAM策略控制邏輯(PCL)為分組指定特定隊列,而不是指定端口和/或優(yōu)先級。例如,TCAM PCL指定將與特定業(yè)務(wù)流相關(guān)聯(lián)的所有分組在相應(yīng)隊列中列隊。無論如何,雖然圖1描述了轉(zhuǎn)發(fā)引擎110的一個實施方式,但是圖1不旨在是限定性的。在各種實施方式中,轉(zhuǎn)發(fā)引擎110是進入處理管線的一部分、如圖1所描繪的單獨的單元、或者在處理單元中用于處理網(wǎng)絡(luò)分組而執(zhí)行的軟件模塊。
[0033]在實施方式中,隊列管理器112控制網(wǎng)絡(luò)交換機100的排隊操作,包括將從轉(zhuǎn)發(fā)引擎110接收的分組列隊。在實施方式中,隊列管理器112設(shè)置每一端口的隊列數(shù)、設(shè)置單獨隊列的優(yōu)先級和/或?qū)㈥犃信c(例如用于組播分組的)端口組相關(guān)聯(lián)。在實施方式中,隊列管理器112是可配置的硬件元件,其可操作以將任意數(shù)目的隊列(上至可用的隊列的數(shù)目)與任意一個或多個特定端口相關(guān)聯(lián)。在實施方式中,隊列管理器112可在設(shè)備制造的時候配置。在另外的實施方式中,隊列管理器112可在操作期間動態(tài)配置,以根據(jù)目前的操作狀況(例如諸如網(wǎng)絡(luò)擁塞之類的網(wǎng)絡(luò)狀況)將隊列與端口相關(guān)聯(lián)。在另外的實施方式中,隊列管理器112可配置為根據(jù)與每個端口對應(yīng)的可配置端口配置簡檔將隊列與端口相關(guān)聯(lián)。無論如何,雖然圖1描繪了隊列管理器112的一個實施方式,但是圖1不旨在為限定性的。在各種實施方式中,隊列管理器112是外出處理管線的一部分、如圖1所示的單獨單元、或軟件驅(qū)動的分組處理器或網(wǎng)絡(luò)處理器中的代碼的一部分,所述軟件驅(qū)動的分組處理器或網(wǎng)絡(luò)處理器例如具有數(shù)據(jù)流管線架構(gòu)或者包括多個被配置為對網(wǎng)絡(luò)分組執(zhí)行分組處理操作的軟件驅(qū)動的分組可編程處理單元。
[0034]圖2是描繪諸如圖1所描繪的示例性隊列管理器112的框圖。隊列管理器112包括隊列處理器114和隊列118的公共池116 (也在此被稱為“隊列池”)。在一個實施方式中,隊列池116是專用存儲器設(shè)備,其被分段成預(yù)先設(shè)定的數(shù)目的隊列118。通常,隊列池116包括數(shù)目為N的隊列118,N等于、大于或小于外出端口 106的數(shù)目M。在一個實施方式中,隊列池1116包括數(shù)目八倍于端口 106數(shù)目(即N = 8M)的隊列118。無論如何,雖然隊列池116包括數(shù)目為N的隊列118,但是在實施方式中不是所有的隊列118都被分配(或甚至是可分配的)給端口 106。即,在實施方式中,隊列池116中的隊列118是已分配的或未分配的隊列118,并且任意特定隊列118的狀態(tài)在網(wǎng)絡(luò)交換機110操作期間隨其已分配或未分配而改變。
[0035]同時,隊列處理器114將從轉(zhuǎn)發(fā)引擎110接收的分組列隊。在實施方式中,隊列處理器114至少部分地根據(jù)與分組目的地相關(guān)聯(lián)的端口而將分組列隊。隊列處理器114例如通過讀取分組或分組描述符中的目的端口字段而確定與該分組的目的地相關(guān)聯(lián)的端口。在確定將最終經(jīng)由其從網(wǎng)絡(luò)交換器100發(fā)送該分組的外出端口 106之后,隊列處理器114將該分組列隊(即將該分組放置到隊列池116中的一個隊列118中)。在實施方式中,隊列處理器114根據(jù)端口 -隊列表120將分組列隊。端口-隊列表120是確切限定哪些隊列118與特定端口相對應(yīng)的可配置的表。例如在一個實施方式中,外出端口 106已分配給它不同優(yōu)先級的八個(8個)隊列。在某些實施方式中,端口 -隊列表120限定被分配到特定外出端口 106或與特定外出端口 106相關(guān)聯(lián)的隊列118的子集。
[0036]在實施方式中,隊列處理器114還根據(jù)隊列的優(yōu)先級將分組列隊。即,對于將具有不同優(yōu)先級的多個隊列118與其(在端口-隊列表120中)相關(guān)聯(lián)的端口 106,隊列處理器114根據(jù)每個分組的優(yōu)先級將分組列隊,從而將每個分組列隊于具有相應(yīng)優(yōu)先級的隊列118 中。
[0037]在某些實施方式中,隊列處理器114根據(jù)可配置的隊列優(yōu)先級表122確定哪些隊列118與特定的優(yōu)先級對應(yīng)。在某些實施方式中,在網(wǎng)絡(luò)交換機操作之前配置隊列優(yōu)先級表122,而在其他實施方式中在網(wǎng)絡(luò)交換機100操作期間配置隊列優(yōu)先級表122。例如,在于網(wǎng)絡(luò)交換機操作之前配置隊列優(yōu)先級表122的實施方式中,對與特定端口 106相關(guān)聯(lián)的隊列118中的每個隊列被分配有相應(yīng)的優(yōu)先級(在隊列優(yōu)先級表122中有所反映),并且隊列處理器114通過參照端口 -隊列表120和隊列優(yōu)先級表122將分組根據(jù)與每個分組相關(guān)聯(lián)的端口和優(yōu)先級列隊在隊列118中。在實施方式中,網(wǎng)絡(luò)交換機100被配置作為例如具有較少數(shù)目的有效端口(和不同的價格點)簡化功能的設(shè)備,而無需設(shè)計和/或制造另外的設(shè)備。在實施方式中,網(wǎng)絡(luò)交換機100配置有較少數(shù)目的有效端口,以通過允許銷售具有一個或多個異常端口或與有缺陷的串行器-解串器塊耦合的一個或多個端口的設(shè)備而增加收益。作為另一示例,在于網(wǎng)絡(luò)交換機100操作期間配置隊列優(yōu)先級表122的實施方式中,隊列處理器114(或另一處理器)在另外的隊列118變得與特定端口 106相關(guān)聯(lián)時修改隊列優(yōu)先級表122,從而將優(yōu)先級分配給隊列118并且相應(yīng)地修改隊列優(yōu)先級表122。因此,隊列處理器114通過參照端口 -隊列表120和隊列優(yōu)先級表122而將分組根據(jù)與每個分組相關(guān)聯(lián)的端口和優(yōu)先級來列隊。
[0038]在實施方式中,轉(zhuǎn)發(fā)引擎110為向隊列處理器114轉(zhuǎn)發(fā)的某些分組指定隊列池116中的特定的一個或多個隊列118,隊列處理器114應(yīng)當將分組列隊在該一個或多個隊列118中(“直接排隊”)。在對由轉(zhuǎn)發(fā)引擎110為其指定一個特定隊列18或一組隊列118的分組進行處理時,隊列處理器114將分組相應(yīng)地列隊,而不進行任何進一步的分析或處理。
[0039]調(diào)度模塊124,其從隊列118取回分組并且向端口 106轉(zhuǎn)發(fā)該分組。調(diào)度器124在某些實施方式中按嚴格優(yōu)先級為隊列118服務(wù),和/或者在其他實施方式中按加權(quán)循環(huán)(WRR)優(yōu)先級為隊列118服務(wù)。調(diào)度器124被設(shè)計或被配置為支持以下情況,其中與特定端口 106相關(guān)聯(lián)的隊列118并非是順序的。例如,考慮將八個隊列118分配給四個端口 106中的每一個的情況。即,將隊列0-7分配給端口 O、將隊列8-15分配給端口 1、將隊列16-23分配給端口 2,并且將隊列24-31分配給端口 3。調(diào)度器124被設(shè)計或被配置為使得如果在網(wǎng)絡(luò)交換機100操作期間隊列處理器114向端口 O分配一額外隊列(隊列32),則調(diào)度器124仍將正常運作。作為另一示例,考慮如下情況:網(wǎng)絡(luò)交換機100預(yù)先配置有被分配給四個端口 106中的每一個的八個隊列118,但是例如由于一個或多個隊列118是有缺陷的(例如由于設(shè)備是有缺陷的)并且不能夠使用,因此被分配給每個端口 106的隊列118并非是順序的。在此情況中,盡管例如端口 O被分配有隊列0-4和6-8,調(diào)度器124也必須能夠正常運作。在一個實施方式中,使用隊列鏈表實現(xiàn)來設(shè)計調(diào)度器124,使得最高優(yōu)先級的隊列118鏈接到或者指向具有次最高優(yōu)先級的隊列118等。
[0040]調(diào)度器124根據(jù)隊列優(yōu)先級表122為每個隊列118服務(wù),并且根據(jù)隊列-端口表126和/或隊列-端口組表128向端口 106轉(zhuǎn)發(fā)來自隊列118的分組。簡言之,隊列-端口表126是可配置的表,其限定哪個端口與每個隊列相關(guān)聯(lián)。即,對于每個隊列118,隊列-端口表126指定列隊的分組要經(jīng)由其發(fā)送的端口 118。
[0041]在實施方式中,隊列管理器112被配置為除了處理單播和廣播分組之外,還對組播分組進行處理。在隊列管理器112對組播分組進行處理的實施方式中,隊列處理器114識別被標記作為組播的傳入分組,并且將每個組播分組列隊在隊列118中的多個隊列中,使得針對該組播分組將經(jīng)由其進行組播的端口 106中的每個端口,將該組播分組列隊在一個隊列118中。然而在其他實施方式中,隊列處理器114將組播分組列隊到不與一個特定端口 106相關(guān)聯(lián)的隊列118中。不與特定端口 106相關(guān)聯(lián)的隊列118在此被稱為“虛擬隊列”。在實施方式中,代替與端口 106中的特定一個相關(guān)聯(lián),虛擬隊列與一組隊列(例如組播組)相關(guān)聯(lián)。隊列-端口組表128是可配置的表,其限定端口 106的哪個組播組與特定虛擬隊列相關(guān)聯(lián)。在這樣的實施方式中,隊列處理器114(或另一處理器)配置端口-端口組表128以將一組端口 106與特定隊列118相關(guān)聯(lián)。在某些實施方式中,隊列處理器114(或其他處理器)還動態(tài)地對隊列118中的一個隊列進行分配和配置以作為虛擬隊列。
[0042]無論如何,調(diào)度器124根據(jù)表122、126和/或128將分組從隊列118引導(dǎo)到端口106。圖3是示出由調(diào)度器124提供的連接的示意圖。圖3并非旨在表示調(diào)度器的全部功能,并且不旨在作為該連接的限制性表示。相反,圖3僅僅旨在示出該調(diào)度器根據(jù)表122、126和128在任一隊列118與任一端口 106之間提供連接。
[0043]如上所述,在一些實施方式中,在制造和/或出售的時候,網(wǎng)絡(luò)交換機100和特別是隊列管理器112被配置為提供靜態(tài)配置,其促進具有相同設(shè)計但是不同數(shù)目的啟用的端口 104和106和/或不同數(shù)目的隊列118和/或分配給每個端口 106不同數(shù)目的隊列118的設(shè)備的出售。圖4A-4D示出單個網(wǎng)絡(luò)交換機設(shè)備130的示例性靜態(tài)配置的部分框圖。所示出的網(wǎng)絡(luò)交換機設(shè)備130被制造有128個端口和1024個隊列。在第一示例性配置中,如圖4A所示,全部的128個端口被啟用并且每個端口被分配有八個隊列。在第二示例性配置中,如圖4B所示,只有一半的端口一64個端口一被啟用。因為全部的隊列仍然可用,在該示例中每個端口被分配有16個隊列。圖4C示出其中只有32個端口被啟用并且每個端口被分配有32個序列的另一個示例性配置,而圖4D示出其中只有16個端口被啟用并且每個端口被分配有64個隊列的配置。當然,應(yīng)注意的是,不要求每個啟用的端口具有相同數(shù)目的隊列(例如,一個端口可被8個隊列而另一個端口被分配32個隊列),不要求這些隊列必須全部被啟用(例如,16個啟用的端口中的每個端口可被分配共計1024個隊列中的16個隊列),并且不要求啟用和/或分配的端口和/或隊列的數(shù)目是可用的端口或隊列的總數(shù)的因數(shù)(例如,128個端口中的20個可被啟用并且分配給每個端口 20個隊列)。
[0044]在實施方式中,隊列管理器112被(例如,配置網(wǎng)絡(luò)交換機100的網(wǎng)絡(luò)管理員)配置為根據(jù)與每個端口 106關(guān)聯(lián)的端口配置簡檔從隊列池116中動態(tài)分配隊列118。例如,第一端口可被配置為與“終端站”端口配置簡檔關(guān)聯(lián),第二端口可被配置為與“VoIP”端口配置簡檔關(guān)聯(lián),第三端口可被配置為與“存儲”端口配置簡檔關(guān)聯(lián),并且第四端口可被配置為與“交換單元”端口配置簡檔關(guān)聯(lián)。例如,出于關(guān)于與應(yīng)用關(guān)聯(lián)的附加設(shè)備的數(shù)目和/或特定應(yīng)用的帶寬的原因,不同應(yīng)用要求不同數(shù)目的端口。當然,這些端口配置簡檔的具體示例僅僅意圖作為非限制性示例。應(yīng)當理解的是,可配置任何數(shù)目的不同端口配置簡檔并且多個端口可與這些配置簡檔中的任一個關(guān)聯(lián)。但是在一個示例中,網(wǎng)絡(luò)交換機100的多個端口被耦合到終端站,并且因此耦合到終端站的每個端口與“終端站”端口配置簡檔關(guān)聯(lián)。在這種實施方式中,每個端口配置簡檔限定要分配到與該端口配置簡檔關(guān)聯(lián)的端口 106的隊列118的數(shù)目。例如,返回上面的示例,隊列管理器112將8個隊列分配到與“終端站”端口配置簡檔關(guān)聯(lián)的端口或與“存儲”配置簡檔關(guān)聯(lián)的端口,而該隊列管理器僅僅將單個隊列分配到與“VoIP”配置簡檔管理的端口并且將最大數(shù)目的隊列分配到與“交換單元”端口配置簡檔關(guān)聯(lián)的端口。
[0045]在實施方式中,隊列管理器112被另外地或可替代地配置為支持多租戶。在一個這種實施方式中,隊列管理器112支持多租戶,因為與網(wǎng)絡(luò)交換機100的端口 106關(guān)聯(lián)的端口配置簡檔指示該端口與下游設(shè)備上的多個租戶關(guān)聯(lián)。在一個實施方式中,該端口配置簡檔還指示每個租戶相同數(shù)目的隊列(即,全部的租戶每個應(yīng)當接收十二個隊列),并且在另一實施方式中為每個租戶單獨地指示隊列的數(shù)目(即,第一租戶四個隊列,第二租戶八個隊列,第三租戶八個隊列等)。隊列管理器112在這種實施方式中操作來針對每個租戶將隊列118與端口 106關(guān)聯(lián)。例如,在實施方式中,其中端口 106與8個租戶關(guān)聯(lián),隊列管理器112將八個隊列分配到每個租戶(或所期望和/或可用的任何其他數(shù)目的隊列)。
[0046]在實施方式中,包括隊列管理器112的網(wǎng)絡(luò)交換機100(圖1)可操作以用作根據(jù)IEEE802.1Qau協(xié)議的擁塞反應(yīng)點。圖5是描述用作根據(jù)IEEE802.1Q的擁塞反應(yīng)點的網(wǎng)絡(luò)交換機150的框圖。網(wǎng)絡(luò)交換機150耦合到用作分組數(shù)據(jù)的源的上游設(shè)備152和從網(wǎng)絡(luò)交換機150接收數(shù)據(jù)的下游設(shè)備154。在實施方式中,下游設(shè)備154耦合到目的設(shè)備156。注意,有時下游設(shè)備154會經(jīng)歷擁塞并且向上游發(fā)送擁塞通知以通知上游(源)設(shè)備152擁塞。在各實施方式中,如果上游設(shè)備152不能支持根據(jù)IEEE802.1Qau協(xié)議的量化擁塞通知(QCN)的使用,則網(wǎng)絡(luò)交換機150用作反應(yīng)點來執(zhí)行業(yè)務(wù)整形。
[0047]仍然參照圖5,上游設(shè)備152經(jīng)由網(wǎng)絡(luò)交換機150和下游設(shè)備154將數(shù)據(jù)分組流158 (例如,與存儲區(qū)域網(wǎng)絡(luò)關(guān)聯(lián))發(fā)送到目的設(shè)備156 (例如,存儲設(shè)備)。在實施方式中,一旦檢測到通塞,下游設(shè)備154便將擁塞通知160 (例如,CNtag或QCN通知)發(fā)送到上游設(shè)備152。在可替代的實施方式中,目的設(shè)備156檢測擁塞并且將擁塞通知160發(fā)送到上游設(shè)備。如果上游設(shè)備152并不支持根據(jù)IEEE802.1Qau的業(yè)務(wù)整形,那么在網(wǎng)絡(luò)交換機150中流邏輯162處攔截(檢測)到擁塞通知160之后,網(wǎng)絡(luò)交換機150還在流邏輯162中檢測到上游設(shè)備152并不執(zhí)行業(yè)務(wù)整形(例如,因為流158以相同速率持續(xù))。流邏輯162發(fā)送消息至隊列處理器114(參見圖3)以針對與該通塞通知關(guān)聯(lián)的業(yè)務(wù)流從隊列池116分配隊列164,并且來自上游設(shè)備152的業(yè)務(wù)被路由為業(yè)務(wù)流166通過隊列164并被業(yè)務(wù)整形器168整形,以限制速率和緩解下游設(shè)備154處的擁塞。以這種方式,網(wǎng)絡(luò)交換機150的其他隊列保持不受影響,因為網(wǎng)絡(luò)交換機150為來自上游設(shè)備152的流將另外的隊列(隊列164)添加到下游設(shè)備154。
[0048]在另一示例中,流邏輯162確定去往目的設(shè)備156但是具有不同于數(shù)據(jù)分組流158的優(yōu)先級的新數(shù)據(jù)分組正被網(wǎng)絡(luò)交換機150接收。流邏輯162發(fā)送消息到隊列處理器114 (圖3)以針對具有該新優(yōu)先級的數(shù)據(jù)分組從隊列池116分配隊列,并且具有該新優(yōu)先級的數(shù)據(jù)分組被路由為業(yè)務(wù)流通過該新隊列。
[0049]現(xiàn)在返回圖6,流程圖描述了各實施方式中由隊列處理器114執(zhí)行以對分組進行排隊的示例性方法200。根據(jù)該方法200,隊列處理器114從轉(zhuǎn)發(fā)引擎110接收分組(塊205)。隊列處理器114確定該分組是否與正操作經(jīng)歷流控制和/或業(yè)務(wù)整形要求的數(shù)據(jù)流關(guān)聯(lián)(塊210)。例如,在實施方式中,隊列處理器114確定該分組是否正經(jīng)歷根據(jù)IEEE802.1Qbb的基于優(yōu)先級的流控制(PFC)、根據(jù)IEEE802.1Qaz的增強傳輸選擇(ETS)或根據(jù)IEEE802.1Qau的量化擁塞通知(QCN)。如果答案為是,則隊列處理器114為該分組選擇與該業(yè)務(wù)流關(guān)聯(lián)的隊列(塊215)。如果還沒有針對該業(yè)務(wù)流指定這種隊列,則隊列處理器114如上所述那樣從隊列池116分配隊列118。如果塊210處回答為否,那么隊列處理器114接著確定該分組是否是組播分組(塊220)。如果該分組是組播分組,則隊列處理器114選擇與對應(yīng)組播端口組關(guān)聯(lián)的虛擬隊列(塊225)。如果還沒有虛擬隊列與該組播端口組關(guān)聯(lián),則隊列處理器114如上所述從隊列池116分配隊列118中的一個作為虛擬隊列。如果該分組不是組播分組,則隊列處理器114確定該分組是否去往與多租戶配置簡檔關(guān)聯(lián)的端口(塊230)。如果塊230處回答為是,則隊列處理器114根據(jù)該多租戶配置簡檔確定正確的隊列。否則,隊列處理器114確定該分組是否已與它的直接隊列信息關(guān)聯(lián)(即,該分組是否包括由轉(zhuǎn)發(fā)引擎110添加的隊列信息)(塊240),并且如果是這樣,則根據(jù)該直接隊列信息為該分組選擇隊列118(塊245)。如果該分組不是直接隊列分組,那么隊列處理器114根據(jù)由轉(zhuǎn)發(fā)引擎110指示的該分組和該端口的QoS數(shù)據(jù)選擇隊列118。在選擇隊列(塊215、225、235、245或250)之后,隊列處理器114根據(jù)該選擇對該分組進行排隊(塊255)。
[0050]圖7是描述操作諸如網(wǎng)絡(luò)交換機100的網(wǎng)絡(luò)交換機的示例性方法260的流程圖。根據(jù)該方法260,網(wǎng)絡(luò)交換機100在網(wǎng)絡(luò)交換機100的端口 104處接收分組(塊265)。轉(zhuǎn)發(fā)引擎110確定每個所接收的分組應(yīng)當被轉(zhuǎn)發(fā)到的一個或多個端口 106(塊270)。隊列處理器114從轉(zhuǎn)發(fā)引擎110接收這些分組并且至少部分根據(jù)該分組應(yīng)當被轉(zhuǎn)發(fā)到的該一個或多個端口的對應(yīng)確定對隊列118中的每個分組進行排隊。
[0051]隊列處理器114從隊列118的池116選擇隊列118的子集以根據(jù)與端口 106關(guān)聯(lián)
的端口配置簡檔與端口 116關(guān)聯(lián)(塊280)。在一實施方式中,該端口配置簡檔與規(guī)定的流或協(xié)議(例如,VoIP協(xié)議)有關(guān)。在另一實施方式中,該端口配置簡檔與規(guī)定的業(yè)務(wù)類型(例如,存儲網(wǎng)絡(luò)業(yè)務(wù))有關(guān)。在又一實施方式中,該端口配置簡檔與多租戶配置有關(guān)。在再一實施方式中,該端口配置簡檔與規(guī)定的服務(wù)質(zhì)量(例如,為某個用戶/實體配置的端口)有關(guān)。
[0052]在選擇可用隊列118的子集之后,隊列處理器114將所選擇的隊列118的子集與端口 106關(guān)聯(lián)(塊285)。在各實施方式中,將所選擇的隊列118的子集與端口 106關(guān)聯(lián)包括在可配置地定義哪些隊列118被分配到每個端口 106的端口到隊列表120中設(shè)置值和/或在針對每個隊列118可配置地定義哪個端口 106是目的地的隊列到端口表126中設(shè)置值和/或在針對每個隊列118可配置地定義作為目的地的一組端口 106的隊列到端口組表128中設(shè)置值和/或在可配置地定義與每個隊列118關(guān)聯(lián)的優(yōu)先級的隊列優(yōu)先級表122中設(shè)置值。
[0053]圖8是描述操作諸如網(wǎng)絡(luò)交換機100的網(wǎng)絡(luò)交換機的示例性方法300的流程圖。根據(jù)該方法300,網(wǎng)絡(luò)交換機100處理從該網(wǎng)絡(luò)接收的分組以選擇性地將所接收的分組轉(zhuǎn)發(fā)到一個或多個端口 106以用于傳輸(塊305)。隊列處理器114從轉(zhuǎn)發(fā)引擎110接收所處理的分組并且將所接收的分組存儲在多個隊列118中(塊310)。交換機100攔截從下游設(shè)備154發(fā)送到布置在網(wǎng)絡(luò)中或耦合到該網(wǎng)絡(luò)的上游設(shè)備152的擁塞通知160 (塊315)。例如,交換機100在一實施方式中攔截層2擁塞通知(例如,QCN通知)。
[0054]響應(yīng)于該擁塞通知,隊列管理器112執(zhí)行用于緩解擁塞的隊列修改動作(塊320)。在各實施方式中,隊列管理器112通過將多個隊列118中可用的(即,未被分配的)一個分配到與下游設(shè)備154關(guān)聯(lián)的端口 106并對從上游設(shè)備152接收和去往下游設(shè)備154的分組執(zhí)行整形操作來執(zhí)行隊列修改動作。在其他實施方式中,隊列管理器112通過從與下游設(shè)備154關(guān)聯(lián)的端口 106對多個隊列118中被分配的一個隊列進行解除分配來執(zhí)行隊列修改動作。在又一些實施方式中,隊列管理器112通過響應(yīng)于所攔截的擁塞通知修改隊列的隊列長度來執(zhí)行隊列修改動作。在各實施方式中,執(zhí)行隊列修改動作可包括在可配置地定義哪些隊列118被分配到每個端口 106的端口到隊列表120中設(shè)置值和/或在針對每個隊列118可配置地定義哪個端口 106是目的地的隊列到端口表126中設(shè)置值和/或在針對每個隊列118可配置地定義作為目的地的一組端口 106的隊列到端口組表128中設(shè)置值和/或在可配置地定義與每個隊列118關(guān)聯(lián)的優(yōu)先級的隊列優(yōu)先級表122中設(shè)置值。
[0055]雖然本說明書的原理已經(jīng)關(guān)于具體的裝置和方法在上面描述,要清楚地理解的是,本說明書僅僅通過例子說明并且不是作為對本發(fā)明的范圍的限制。另外,至少一些上述各種塊、操作和技術(shù)可以硬件、處理器或計算機執(zhí)行固件和/或軟件指令,或其中的任何組合來實施。軟件或固件指令可包括存儲于另一或多個計算機可讀或機器可讀存儲媒體的存儲器上的計算機可讀或機器可讀指令,當被處理器執(zhí)行時,其使得處理器執(zhí)行各種動作。當以硬件實施時,固件可包括分立元件、集成電路、專用集成電路等中的一個或多個。[0056]雖然本發(fā)明已經(jīng)參照具體的例子描述,其意圖僅僅是說明性的并且對本發(fā)明的限制,可以對所公開的實施方式進行改變、添加和/或刪除而不脫離本發(fā)明的范圍。
【權(quán)利要求】
1.一種網(wǎng)絡(luò)設(shè)備,包括: 多個端口,用于耦合到網(wǎng)絡(luò)并且用于將分組發(fā)送到布置在所述網(wǎng)絡(luò)中或耦合到所述網(wǎng)絡(luò)的設(shè)備; 至少一個處理器,被配置為處理經(jīng)由所述網(wǎng)絡(luò)接收的分組,所述處理包括將所處理的分組選擇性地轉(zhuǎn)發(fā)到所述端口中的一個或多個端口; 在存儲器中限定的多個隊列,所述多個隊列被配置為存儲將要由所述多個端口中的端口發(fā)送的分組;以及 隊列管理器,被配置為將所述多個隊列的子集選擇性地分配到所述多個端口的子集。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,其中所述隊列管理器包括由所述隊列管理器用來將數(shù)據(jù)分組引導(dǎo)到所述網(wǎng)絡(luò)設(shè)備的隊列和/或端口的下列結(jié)構(gòu)中的至少一個: (i)端口到隊列表,用于可配置地限定哪些隊列被分配到每個端口 ; (?)隊列到端口表,用于針對每個隊列可配置地限定哪個端口是目的地; (iii)隊列到端口組表,用于針對每個隊列可配置地限定哪個端口組是目的地;以及 (iv)隊列優(yōu)先級表,用于可配置地限定與每個隊列關(guān)聯(lián)的優(yōu)先級。
3.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,其中所述隊列管理器被配置為選擇端口的所述子集,以排除所述多個端口中的一個或多個有缺陷的端口。
4.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,其中所述隊列管理器被配置為選擇隊列的所述子集,以排除所述多個隊列中的至少一`個有缺陷的隊列。
5.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,其中所述隊列管理器被配置為選擇端口的所述子集,以排除耦合到有缺陷的串行器-解串器功能塊的端口。
6.一種網(wǎng)絡(luò)設(shè)備,包括: 多個端口,被配置為⑴將所述網(wǎng)絡(luò)設(shè)備耦合到網(wǎng)絡(luò),以及(ii)將分組發(fā)送到布置在所述網(wǎng)絡(luò)中或耦合到所述網(wǎng)絡(luò)的設(shè)備; 多個端口簡檔,每個端口簡檔對應(yīng)于所述多個端口之一,并且指示去往所述端口的分組業(yè)務(wù)的特征或耦合到所述端口的設(shè)備的特征; 至少一個處理器,被配置為處理從所述網(wǎng)絡(luò)接收的分組,所述處理包括將所處理的分組選擇性地轉(zhuǎn)發(fā)到所述端口中的一個或多個端口; 在存儲器中限定的多個隊列,所述多個隊列被配置為存儲將要由所述多個端口中的端口發(fā)送的分組;以及 隊列管理器,對所述端口簡檔進行響應(yīng),并且被布置為根據(jù)對應(yīng)于所述端口的所述端口簡檔而將所述多個隊列中的一個或多個隊列可配置地分配到所述多個端口中的每個端□。
7.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)設(shè)備,其中所述隊列管理器包括由所述隊列管理器用來將數(shù)據(jù)分組引導(dǎo)到所述網(wǎng)絡(luò)設(shè)備的隊列和/或端口的下列結(jié)構(gòu)中的至少一個: (i)端口到隊列表,用于可配置地限定哪些隊列被分配到每個端口 ; (?)隊列到端口表,用于針對每個隊列可配置地限定哪個端口是目的地; (iii)隊列到端口組表,用于針對每個隊列可配置地限定哪個端口組是目的地;以及 (iv)隊列優(yōu)先級表,用于可配置地限定與每個隊列關(guān)聯(lián)的優(yōu)先級。
8.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)設(shè)備,其中所述隊列管理器包括隊列處理器,所述隊列處理器被配置為根據(jù)端口簡檔的下列方面中的任意一個或多個將隊列分配到端口: (i)規(guī)定的流或協(xié)議; (?)規(guī)定的業(yè)務(wù)類型; (iii)規(guī)定的多租戶配置簡檔;以及 (iv)規(guī)定的服務(wù)質(zhì)量(QoS)。
9.一種網(wǎng)絡(luò)設(shè)備,包括: 多個端口,被配置為⑴耦合到網(wǎng)絡(luò),(ii)經(jīng)由所述網(wǎng)絡(luò)接收分組以及(iii)經(jīng)由所述網(wǎng)絡(luò)發(fā)送分組; 至少一個處理器,被配置為處理經(jīng)由所述網(wǎng)絡(luò)接收的分組,所述處理包括將所接收的分組選擇性地轉(zhuǎn)發(fā)到所述端口中的一個或多個端口,以用于經(jīng)由所述網(wǎng)絡(luò)傳輸; 在存儲器中限定的多個隊列,所述多個隊列被配置為存儲將要由所述網(wǎng)絡(luò)發(fā)送的分組;以及 隊列管理器,被配置為(i)攔截從所述網(wǎng)絡(luò)中的或耦合到所述網(wǎng)絡(luò)的下游設(shè)備發(fā)送到所述網(wǎng)絡(luò)中的或耦合到所述網(wǎng)絡(luò)的上游設(shè)備的擁塞通知,以及(ii)通過(a)將一個或多個附加的隊列分配到端口或(b)修改隊列的隊列長度,而根據(jù)所攔截的擁塞通知而緩解擁塞。
10.根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其中所述隊列管理器被配置為響應(yīng)于所攔截的擁塞通知,(i)將所述多個`隊列中的一個隊列分配到與所述下游設(shè)備關(guān)聯(lián)的端口,以及(?)對從所述上游設(shè)備接收并去往所述下游設(shè)備的分組流執(zhí)行整形操作。
11.根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其中所述隊列管理器包括由所述隊列管理器用來將數(shù)據(jù)分組引導(dǎo)到所述網(wǎng)絡(luò)設(shè)備的隊列和/或端口的下列結(jié)構(gòu)中的至少一個: (i)端口到隊列表,用于可配置地限定哪些隊列被分配到每個端口 ; (?)隊列到端口表,用于針對每個隊列可配置地限定哪個端口是目的地; (iii)隊列到端口組表,用于針對每個隊列可配置地限定哪個端口組是目的地;以及 (iv)隊列優(yōu)先級表,用于可配置地限定與每個隊列關(guān)聯(lián)的優(yōu)先級。
12.根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其中所述隊列管理器被配置為(i)攔截從下游設(shè)備發(fā)送到上游設(shè)備的層2擁塞通知,以及(ii)執(zhí)行用于根據(jù)所攔截的層2擁塞通知緩解擁塞的隊列修改動作。
13.—種配置網(wǎng)絡(luò)設(shè)備的方法,所述方法包括: 配置多個端口,以將網(wǎng)絡(luò)分組發(fā)送到布置在網(wǎng)絡(luò)中的或耦合到所述網(wǎng)絡(luò)的設(shè)備,所述端口連接到或?qū)⒁B接到所述網(wǎng)絡(luò); 配置至少一個處理器,以處理經(jīng)由所述網(wǎng)絡(luò)接收的分組,所述處理包括將所處理的分組選擇性地轉(zhuǎn)發(fā)到所述端口中的一個或多個端口; 在存儲器中限定多個隊列; 配置所述多個隊列,以存儲將要發(fā)送的分組;以及 配置隊列管理器,以將所述多個隊列的子集選擇性地分配到所述多個端口的子集。
14.根據(jù)權(quán)利要求13所述的方法,進一步包括:選擇端口的所述子集以排除所述多個端口中的至少一個有缺陷的端口。
15.根據(jù)權(quán)利要求13所述的方法,進一步包括:選擇隊列的所述子集以排除所述多個隊列中的至少一個有缺陷的隊列。
16.根據(jù)權(quán)利要求13所述的方法,進一步包括:選擇端口的所述子集以排除耦合到有缺陷的串行器-解串器功能塊的端口。
17.根據(jù)權(quán)利要求13所述的方法,其中配置所述隊列管理器包括:在規(guī)定所述網(wǎng)絡(luò)設(shè)備的隊列與端口之間的關(guān)系的下列數(shù)據(jù)結(jié)構(gòu)中的一個或多個數(shù)據(jù)結(jié)構(gòu)中設(shè)置值: (i)端口到隊列表,用于可配置地限定哪些隊列被分配到每個端口 ; (?)隊列到端口表,用于針對每個隊列可配置地限定哪個端口是目的地; (iii)隊列到端口組表,用于針對每個隊列可配置地限定哪個端口組是目的地;以及 (iv)隊列優(yōu)先級表,用于可配置地限定與每個隊列關(guān)聯(lián)的優(yōu)先級。
18.一種操作網(wǎng)絡(luò)設(shè)備的方法,所述方法包括: 在網(wǎng)絡(luò)交換機的端口處接收分組; 在轉(zhuǎn)發(fā)引擎中確定所接收的分組中的每個分組應(yīng)當被轉(zhuǎn)發(fā)到的一個或多個端口; 至少部分地根據(jù)所述分組應(yīng)當被轉(zhuǎn)發(fā)到的所述一個或多個端口的對應(yīng)目的地確定,在隊列中對每個分組進行排隊; 從可用隊列的池中選擇隊列子集以與端口關(guān)聯(lián);以及 將所選擇的隊列子集與所述端口關(guān)聯(lián)。
19.根據(jù)權(quán)利要求18所述的方`法,其中將所述隊列子集與所述端口關(guān)聯(lián)包括:在規(guī)定所述網(wǎng)絡(luò)設(shè)備的隊列與端口之間的關(guān)系的下列數(shù)據(jù)結(jié)構(gòu)中的一個或多個數(shù)據(jù)結(jié)構(gòu)中設(shè)置值: (i)端口到隊列表,用于可配置地限定哪些隊列被分配到每個端口 ; (?)隊列到端口表,用于針對每個隊列可配置地限定哪個端口是目的地; (iii)隊列到端口組表,用于針對每個隊列可配置地限定哪個端口組是目的地;以及 (iv)隊列優(yōu)先級表,用于可配置地限定與每個隊列關(guān)聯(lián)的優(yōu)先級。
20.根據(jù)權(quán)利要求18所述的方法,其中從可用隊列的池中選擇隊列子集以與端口關(guān)聯(lián)包括:根據(jù)下列方面中的任一個或多個方面來做決定: (i)規(guī)定的流或協(xié)議; (?)規(guī)定的業(yè)務(wù)類型; (iii)規(guī)定的多租戶配置簡檔;以及 (iv)規(guī)定的服務(wù)質(zhì)量(QoS)。
21.一種操作網(wǎng)絡(luò)設(shè)備的方法,所述網(wǎng)絡(luò)設(shè)備具有耦合到網(wǎng)絡(luò)的多個端口,所述方法包括: 處理從所述網(wǎng)絡(luò)接收的分組,以將所接收的分組選擇性地轉(zhuǎn)發(fā)到所述端口中的一個或多個端口以用于傳輸; 將所接收的分組存儲在多個隊列中,所述隊列被限定在存儲器中并被配置為存儲將要經(jīng)由所述網(wǎng)絡(luò)發(fā)送的分組; 攔截從布置在所述網(wǎng)絡(luò)中的或耦合到所述網(wǎng)絡(luò)的下游設(shè)備發(fā)送到布置在所述網(wǎng)絡(luò)中的或耦合到所述網(wǎng)絡(luò)的上游設(shè)備的擁塞通知;以及 根據(jù)所攔截的擁塞通知,在隊列管理器中執(zhí)行隊列修改動作,所述隊列修改動作包括:(a)將一個或多個附加的隊列分配到端口或(b)修改隊列的隊列長度。
22.根據(jù)權(quán)利要求21所述的方法,其中執(zhí)行隊列修改動作包括:(i)將所述多個隊列中的一個隊列分配到與所述下游設(shè)備關(guān)聯(lián)的端口,以及(ii)對從所述上游設(shè)備接收并去往所述下游設(shè)備的分組流執(zhí)行整形操作。
23.根據(jù)權(quán)利要求21所述的方法,其中執(zhí)行隊列修改動作包括:在規(guī)定所述網(wǎng)絡(luò)設(shè)備的隊列與端口之間的關(guān)系的下列數(shù)據(jù)結(jié)構(gòu)中的任一個或多個數(shù)據(jù)結(jié)構(gòu)中設(shè)置值: (i)端口到隊列表,用于可配置地限定哪些隊列被分配到每個端口 ; (?)隊列到端口表,用于針對每個隊列可配置地限定哪個端口是目的地; (iii)隊列到端口組表,用于針對每個隊列可配置地限定哪個端口組是目的地;以及 (iv)隊列優(yōu)先級表,用于可配置地限定與每個隊列關(guān)聯(lián)的優(yōu)先級。
24.根據(jù)權(quán)利要求21所述的方法,其中攔截擁塞通知包括:攔截從所述下游設(shè)備發(fā)送到所述上游設(shè)備的層2擁塞通`知。
【文檔編號】H04L12/865GK103516622SQ201310204516
【公開日】2014年1月15日 申請日期:2013年5月24日 優(yōu)先權(quán)日:2012年5月24日
【發(fā)明者】M·沙米斯, Y·納丘 申請人:馬維爾國際貿(mào)易有限公司