用于在多包處理器聯(lián)網(wǎng)系統(tǒng)中聚合硬件路由資源的技術(shù)的制作方法
【專利說明】
[0001] 相關(guān)申請案的奪叉參考
[0002] 本申請案依據(jù)35U.S.C. 119(e)主張2014年3月27日提出申請的標(biāo)題為"用于 在多包處理器聯(lián)網(wǎng)系統(tǒng)中聚合硬件資源的技術(shù)(TECHNIQUESFORAGGREGATINGHARDWARE RESOURCESINAMULTI-PACKETPROCESSSORNETWORKINGSYSTEM)" 的美國臨時申請案第 61/971,429號的權(quán)益及優(yōu)先權(quán)。此臨時申請案的全部內(nèi)容出于所有目的以引用方式并入本 文中。
技術(shù)領(lǐng)域
[0003] 本發(fā)明涉及用于在多包處理器聯(lián)網(wǎng)系統(tǒng)中聚合硬件路由資源的技術(shù)。
【背景技術(shù)】
[0004] 1.三層路由
[0005] 如此項技術(shù)中已知,路由器為使多個網(wǎng)絡(luò)互連且在所述網(wǎng)絡(luò)之間轉(zhuǎn)發(fā)數(shù)據(jù)包(稱 為三層或L3路由的過程)的網(wǎng)絡(luò)裝置。為確定用于轉(zhuǎn)發(fā)入口包的最號路徑,路由器審查包 的目的地IP地址且將所述目的地IP地址與路由表中的路由條目進(jìn)行比較。每一路由條目 對應(yīng)于子網(wǎng)路由(例如,192. 168.2.0/24)或主路由(例如,192. 168.2. 129/32)。如果目的 地IP地址匹配特定路由條目的子網(wǎng)/主路由,那么路由器將包從出口端口向外轉(zhuǎn)發(fā)到由所 述條目規(guī)定的下一躍點地址,借此將包朝向其目的地發(fā)送。在一些情形中,入口包的目的地 IP地址可匹配對應(yīng)于多個子網(wǎng)/主路由的多個路由條目。舉例來說,IP地址192. 168. 2. 129 匹配子網(wǎng)路由 192. 168. 2. 128/26 及 192. 168. 2. 0/24 以及主路由 192. 168. 2. 129/32。當(dāng)發(fā) 生此情況時,路由器可經(jīng)由最長前綴匹配(LPM)執(zhí)行其選擇,此意味路由器將選擇具有最 高子網(wǎng)掩碼的所匹配路由條目(即,最特定條目)。
[0006] 出于性能原因,許多常規(guī)路由器使用軟件與硬件路由表的組合來執(zhí)行上文所描述 的路由操作。例如,圖1描繪包含管理CPU102、軟件(SW)路由表104及包處理器106的 示范性路由器100,包處理器106包括硬件(HW)路由引擎108、HW路由表110及數(shù)據(jù)端口 112。SW路由表104使用存儲于可由管理CPU102存取的隨機存取存儲器(未展示)中的 數(shù)據(jù)結(jié)構(gòu)來實施。一般來說,SW路由表104含有路由器100已知的所有子網(wǎng)/主路由,例 如靜態(tài)地配置的路由及從路由協(xié)議(例如,RIP、0SPF或BGP)動態(tài)地獲悉的路由。另一方 面,HW路由表110使用基于硬件的存儲器組件(例如三元內(nèi)容可尋址存儲器(TCAM)或其 它類似關(guān)聯(lián)存儲器)來實施。由于其專門硬件設(shè)計,HW路由表110可達(dá)成比SW路由表104 快的表查找,但其大小受限制。因此,HW路由表110通常包含SW路由表104中的路由條目 的子集。
[0007] 當(dāng)在路由器100處接收入口包時,包處理器106的服路由引擎108首先在HW路 由表110中尋找包的目的地IP地址的LPM匹配。如上文所提及,HW路由引擎108可由于 表110的硬件設(shè)計而非常迅速地執(zhí)行此查找(例如,以線速度)。如果找到匹配,那么HW路 由引擎108將包轉(zhuǎn)發(fā)到所匹配條目中規(guī)定的下一躍點,而不涉及管理CPU102。如果未找到 匹配,那么HW路由引擎108采取預(yù)定義行動,例如丟棄所述包或?qū)⑵浒l(fā)送到管理CPU102。 如果發(fā)送到管理CPU102,那么CPU102可執(zhí)行額外檢驗/處理以確定應(yīng)如何轉(zhuǎn)發(fā)所述包 (例如在SW路由表104中執(zhí)行查找)。
[0008] 2.路由字典樹
[0009] 在特定實施方案中,路由器100將SW路由表104維持為二元字典樹(稱為"路由 字典樹"),此使SW路由表104的遍歷及搜索更高效。圖2描繪可用于表示圖1的SW路由 表104的示范性路由字典樹200。如所展示,路由字典樹200包含分支節(jié)點(由無標(biāo)記圓 圈表示)及路由節(jié)點(由標(biāo)記有"R"的圓圈表示)兩者。每一分支節(jié)點對應(yīng)于路由字典樹 200中的"分叉",且因此形成子字典樹的根。每一路由節(jié)點對應(yīng)于SW路由表104中的路由 條目。進(jìn)一步來說,每一節(jié)點(無論是分支還是路由)與IP地址前綴相關(guān)聯(lián)。通常存在關(guān) 于可如何定位路由字典樹的節(jié)點的兩個規(guī)則:
[0010] 1?假定節(jié)點1具有maskl/m位的前綴,節(jié)點2具有mask2/n位的前綴,且m>n。如 果mask2與maskl的前n個位相同,那么節(jié)點1為節(jié)點2的下節(jié)點。
[0011] 2.如果maskl的第(n+1)個位為0,那么節(jié)點1在節(jié)點2的左子字典樹處。否則, 其在節(jié)點2的右子字典樹處。
[0012] 為圖解說明以上規(guī)則,考慮到包含對應(yīng)于以下兩個路由的兩個路由條目的路由 表:01001010/8及01010101/8(以二元形式表示)。在此實例中,所述表的路由字典樹將含 有三個節(jié)點:兩個路由節(jié)點(一個節(jié)點針對兩個路由中的每一者);及一根節(jié)點,其為與前 綴010/3相關(guān)聯(lián)的分支節(jié)點(這是因為其兩個子代節(jié)點從第4個位開始不同)。注意,如果 添加新路由010/3,那么路由字典樹仍將含有三個節(jié)點一與前綴010/3相關(guān)聯(lián)的分支節(jié)點 將變?yōu)槁酚晒?jié)點。
[0013]3.多包處理器聯(lián)網(wǎng)系統(tǒng)
[0014] 雖然圖1的路由器100描繪為具有單個包處理器及單個HW路由表的獨立裝置,但 一些路由器實施為互連裝置/模塊系統(tǒng),其中每一裝置/模塊并入有單獨包處理器(以及 單獨HW路由表)。此些系統(tǒng)在本文中稱為"多包處理器"(MPP)聯(lián)網(wǎng)系統(tǒng)。
[0015] 舉例來說,圖3描繪堆疊系統(tǒng)300 (還稱作"堆疊"),其為一種類型的MPP聯(lián)網(wǎng)系 統(tǒng)。如所展示,堆疊系統(tǒng)300包括經(jīng)由堆疊端口 314(1)到314(3)互連的若干個可堆疊交 換器302(1)到302(3)。每一可堆疊交換器302(1)到302(3)包含類似于圖1的路由器 100的組件,例如管理CPU304(1)到304(3)、SW路由表306(1)到306 (3)、包處理器308(1) 到308(3)、服路由引擎310(1)到310(3)、服路由表312(1)到312(3)及數(shù)據(jù)端口 316(1) 到316 (3)。然而,不是用作個別交換器/路由器,而是系統(tǒng)300的可堆疊交換器302 (1)到 302(3)可作為單個邏輯交換器/路由器一齊起作用。例如,可堆疊交換器302(1)可在入 口數(shù)據(jù)端口 316(1)上接收包,到其本地HW路由表312(1)中執(zhí)行查找(經(jīng)由HW路由引擎 310(1)),且基于所述查找而確定應(yīng)將包從(例如)可堆疊交換器302(3)的出口數(shù)據(jù)端口 316(3)向外轉(zhuǎn)發(fā)以便到達(dá)其下一躍點目的地??啥询B交換器302(1)可接著經(jīng)由堆疊鏈路 318將包發(fā)送到可堆疊交換器302 (3),借此允許交換器302 (3)將包從適當(dāng)出口數(shù)據(jù)端口向 外轉(zhuǎn)發(fā)。
[0016] 圖4描繪底板系統(tǒng)400,其為另一類型的MPP聯(lián)網(wǎng)系統(tǒng)。底板系統(tǒng)400包含管理 模塊402及經(jīng)由內(nèi)部交換器組構(gòu)408互連的若干個I/O模塊410 (1)到410 (3)。管理模塊 402包含類似于圖1的路由器100的管理CPU102及SW路由表104的管理CPU404及SW路由表406。另外,每一I/O模塊410(1)到410(3)包含類似于圖1的路由器100的組件 106到112的包處理器412(1)到412(3)、服路由引擎414(1)到414(3)、服路由表416(1) 到416 (3)及數(shù)據(jù)端口 418 (1)到418 (3)。一般來說,I/O模塊410 (1)到410 (3)可一齊起 作用以實施底板系統(tǒng)400的各種數(shù)據(jù)平面功能,包含L3路由。例如,I/O模塊410 (1)可在 入口數(shù)據(jù)端口 418(1)上接收包,到其本地HW路由表416(1)中執(zhí)行查找(經(jīng)由HW路由引擎 414(1)),且基于所述查找而確定應(yīng)將包從(例如)I/O模塊410 (2)的出口數(shù)據(jù)端口 418(2) 向外轉(zhuǎn)發(fā)以便到達(dá)其下一躍點目的地。I/O模塊410(1)可接著經(jīng)由交換器組構(gòu)408將包發(fā) 送到I/O模塊410 (2),借此允許I/O模塊410 (2)將包從適當(dāng)出口數(shù)據(jù)端口向外轉(zhuǎn)發(fā)。
[0017] 關(guān)于在MPP聯(lián)網(wǎng)系統(tǒng)(例如如上文所描述的堆疊系統(tǒng)300或底板系統(tǒng)400)中執(zhí)行 L3路由的一種低效率與利用系統(tǒng)的多個HW路由表的方式有關(guān)。特定來說,由于入口包可到 達(dá)系統(tǒng)的任一包處理器,因此在每一包處理器的HW路由表中復(fù)制路由條目的同一集合。結(jié) 果,系統(tǒng)的HW路由表容量受最小HW路由表的大小限制。例如,在堆疊系統(tǒng)300中,假定HW 路由表312(1)支持16K條目而HW路由表312(2)及312(3)各自支持32K條目。在此情況 中,每一HW路由表312(1)到312(3)將限于保持最多16K條目(這是因為超過16K的額外 條目無法在表312(1)中復(fù)制)。此意味系統(tǒng)的HW路由資源的顯著百分比(例如,分別在 表312(2)及312(3)中的16K條目)將不被使用。此還意味系統(tǒng)的HW路由表容量無法隨 著添加額外交換器而擴展。
【發(fā)明內(nèi)容】
[0018] 本發(fā)明提供用于聚合裝置系統(tǒng)中的硬件路由資源的技術(shù)。在一個實施例中,所述 裝置系統(tǒng)中的裝置可將所述系統(tǒng)的軟件路由表中的路由條目劃分成多個路由子集。所述裝 置可進(jìn)一步將所述多個路由子集中的每一路由子集指派給所述系統(tǒng)中的一或多個裝置。所 述裝置可接著針對指派給所述裝置的每一路由子集將所述路由子集中的路由條目安裝到 所述裝置的硬件路由表中。
[0019] 以下詳細(xì)說明及附圖提供對特定實施例的性質(zhì)及優(yōu)點的更好理解。
【附圖說明】
[0020] 圖1描繪示范性路由器。
[0021] 圖2描繪示范性路由字典樹。
[0022] 圖3描繪示范性堆疊系統(tǒng)。
[0023]圖4描繪示范性底板系統(tǒng)。
當(dāng)前第1頁
1 
2 
3 
4 
5