專利名稱:一種交換設(shè)備中基于聚合鏈路分配緩存的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及交換機等網(wǎng)絡(luò)設(shè)備分配資源的方法,尤其涉及交換芯片中基 于聚合鏈路分配緩存的方法及裝置。
背景技術(shù):
交換芯片內(nèi)部存在一定數(shù)量的緩存(buffer),當報文從交換機的源 端口進入交換機后,如果有可用的buffer,那么報文會被緩存在交換機的 buffer里面,直到交換機將報文從所有的目的端口發(fā)出后,該buffer才會被 釋放。
交換芯片中分配buffer的方法大致有三種第一種是交換芯片的buffer 被其所有端口全局共享,只要有空閑buffer,所有端口都可以去搶占;第二 種是靜態(tài)buffer分配,即通過端口設(shè)置靜態(tài)值來設(shè)置平均可以占用的buffer 數(shù)目;第三種是動態(tài)buffer分配,即端口可以占用的buffer和交換芯片剩余 buffer成線性關(guān)系,也就是說端口可以占用的buffer隨著交換芯片剩余buffer 減少而減少。
以上第二種、第三種方法雖然比起第 一種方法具有更好效果和更優(yōu)的性 能,但二者都沒有考慮到一種情況兩臺交換機通過鏈路聚合控制協(xié)議 (LACP, Link Aggregation Control Protocol),可以把多個端口聚合成為一 個聚合組(trunk)。在這種情況下,如果實現(xiàn)buffer在端口聚合組內(nèi)的共享, 則能夠進一步提高鏈路聚合組的報文轉(zhuǎn)發(fā)性能,而如果仍然依上述方法基于 端口分配而不基于聚合組分配,則會不利于鏈路聚合組的轉(zhuǎn)發(fā)性能的進一步 提高。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種交換設(shè)備中基于聚合鏈路分配緩存的方法及裝置,能夠進一步提高鏈路聚合組端口的轉(zhuǎn)發(fā)性能。
為了解決上述技術(shù)問題,本發(fā)明提供了 一種交換設(shè)備中基于聚合鏈路分
配緩存的方法,包括當報文從鏈路聚合組內(nèi)的一端口進入,交換設(shè)備將該 聚合組內(nèi)所有端口可占用的緩存總和作為聚合組可占用的緩存共享給該聚合 組內(nèi)的各個端口 ,如判斷該聚合組內(nèi)已占用的緩存數(shù)目尚未達到該聚合組可 占用的緩存的總數(shù)目,則分配相應(yīng)容量的緩存存儲報文,否則丟棄報文。
進一步地,根據(jù)聚合組內(nèi)的端口數(shù)目和交換設(shè)備內(nèi)端口平均占用的緩存 數(shù)目,計算該聚合組可占用的緩存的總數(shù)目=交換設(shè)備內(nèi)端口平均占用的緩
存數(shù)目x該聚合組內(nèi)的端口數(shù)目;交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目=交 換設(shè)備內(nèi)緩存的總數(shù)目/交換設(shè)備內(nèi)的端口數(shù)目。
進一步地,根據(jù)對聚合組內(nèi)各個端口當前可占用的緩存的數(shù)目求和,計
算該聚合組可占用的緩存的總數(shù)目;該聚合組內(nèi)各個端口當前可占用的緩存 的數(shù)目=交換設(shè)備當前剩余的緩存數(shù)目x該聚合組內(nèi)端口當前的活躍程度。
進一步地,當報文從除聚合組內(nèi)的端口以外的普通端口i^,則
計算確定交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目,或者根據(jù)交換設(shè)備當前 剩余的緩存數(shù)目和該普通端口當前的活躍程度,計算該普通端口當前可占用 的緩存數(shù)目;并且,當該普通端口已占用的緩存數(shù)目尚未達到交換設(shè)備內(nèi)端 口平均占用的緩存數(shù)目,或者當該普通端口已占用的緩存數(shù)目尚未達到該普 通端口當前可占用的緩存數(shù)目,則分配相應(yīng)容量的緩存存儲報文,否則丟棄 報文。
進一步地,在分配相應(yīng)容量的緩存之前還包括查詢交換設(shè)備內(nèi)是否尚 存在空閑緩存,如存在則分配緩存,否則丟棄才艮文。
為了解決上述技術(shù)問題,本發(fā)明提供了一種交換設(shè)備中基于聚合鏈路分 配緩存的裝置,包括依次連接的端口管理單元、緩存分配單元以及緩存單元; 其中
端口管理單元,用于管理交換設(shè)備內(nèi)的所有端口,并當對進入才艮文的端 口區(qū)分為是鏈路聚合組端口 ,則將聚合組內(nèi)所有端口可占用的緩存總和作為聚合組可占用的緩存共享給聚合組內(nèi)的各個端口 ;當通過緩存分配單元查詢 到,該聚合組內(nèi)已占用的緩存數(shù)目尚未達到該聚合組可占用的緩存的總數(shù)目, 則向緩存分配單元申請分配相應(yīng)容量的緩存存儲才艮文,否則丟棄凈艮文;
緩存分配單元,用于根據(jù)端口管理單元的申請,將分配的緩存提供給端 口管理單元;
緩存單元,用于提供存儲報文的緩存。
進一步地,本發(fā)明的裝置還包括分別與端口管理單元和緩存分配單元連 接的計算單元,用于根據(jù)從端口管理單元獲取的交換設(shè)備內(nèi)的端口數(shù)目,以
及從緩存分配單元獲取的交換設(shè)備內(nèi)的緩存的總數(shù)目,計算交換設(shè)備內(nèi)端口 平均占用的緩存數(shù)目-交換設(shè)備內(nèi)的緩存的總數(shù)目/交換設(shè)備內(nèi)的端口數(shù)目; 然后根據(jù)從端口管理單元獲取的聚合組內(nèi)的端口數(shù)目和計算的交換設(shè)備內(nèi)端 口平均占用的緩存數(shù)目,計算該聚合組可占用的緩存的總數(shù)目=交換設(shè)備內(nèi) 端口平均占用的緩存數(shù)目x該聚合組內(nèi)的端口數(shù)目,并將計算結(jié)果輸出給端 口管理單元。
進一步地,
計算單元,或用于根據(jù)從緩存分配單元獲取的交換設(shè)備當前剩余的緩存 數(shù)目,以及從端口管理單元獲取的聚合組內(nèi)端口當前的活躍程度,計算該聚 合組內(nèi)各端口當前可占用的緩存的數(shù)目=交換設(shè)備當前剩余的緩存數(shù)目x該 聚合組內(nèi)端口當前的活躍程度,然后對該聚合組內(nèi)各端口當前可占用的緩存 的數(shù)目求和,計算該聚合組可占用的援存的總數(shù)目,并將計算結(jié)果輸出給端 口管理單元。
進一步地,
端口管理單元,當對進入才艮文的端口區(qū)分為是除所述聚合組內(nèi)的端口以 外的普通端口 ,則根據(jù)從計算單元輸入的交換設(shè)備內(nèi)端口平均占用的緩存數(shù) 目,或指示計算單元輸出計算的普通端口當前可占用的緩存數(shù)目,當通過緩 存分配單元查詢到,該普通端口已占用的緩存數(shù)目尚未達到交換設(shè)備內(nèi)端口 平均占用的緩存數(shù)目,或者該普通端口已占用的緩存數(shù)目尚未達到該普通端 口當前可占用的緩存數(shù)目,則向緩存分配單元申請分配相應(yīng)容量的緩存存儲文;
計算單元,還用于根據(jù)端口管理單元的指示,通過從緩存分配單元獲取 的交換設(shè)備當前剩余的緩存數(shù)目,以及從端口管理單元獲取的該普通端口當 前的活躍程度,計算獲得該普通端口當前可占用的緩存數(shù)目,并將計算結(jié)果 輸出給端口管理單元。
進一步地,
緩存分配單元,還用于在分配緩存之前,查詢交換設(shè)備是否尚存在空閑 緩存,存在則分配緩存,否則向端口管理單元返回分配失敗的信息;
端口管理單元,在收到該分配失敗的信息后,丟棄^Jl。
本發(fā)明對傳統(tǒng)的靜態(tài)、動態(tài)緩存分配方法進行了改進,通過將鏈路聚合 組內(nèi)所有端口的緩存總和共享給聚合組內(nèi)的各端口 ,實現(xiàn)基于聚合鏈路的緩 存分配,由此進一步提高了交換機鏈路聚合組的轉(zhuǎn)發(fā)性能,同時還不會對其 它普通端口或者其它聚合組造成任何影響。
圖1是本發(fā)明交換設(shè)備中基于聚合鏈路分配緩存的方法實施例流程圖; 圖2是本發(fā)明基于聚合鏈路分配緩存的裝置實施例結(jié)構(gòu)框圖。
具體實施例方式
本發(fā)明引入了一種交換設(shè)備中基于聚合鏈路分配緩存的方法及裝置,其 發(fā)明構(gòu)思是,交換設(shè)備將鏈路聚合組里所有端口可占用的緩存共享給聚合組
內(nèi)的每一端口;當報文從交換設(shè)備聚合組內(nèi)的端口進入,且交換設(shè)備判斷聚 合組里已占用的緩存數(shù)目尚未達到聚合組共享緩存的總數(shù)目,則分配緩存存 儲報文,否則丟棄報文。
以下結(jié)合附圖和優(yōu)選實施例,對本發(fā)明的上述構(gòu)思展開進行詳細闡述, 以解釋清楚本發(fā)明的技術(shù)方案。為了闡述方便,以下實施例僅在現(xiàn)有的第二
8種方法的基礎(chǔ)上面進行闡述。實際上,本發(fā)明的才支術(shù)方案對于現(xiàn)有的第二種、
第三種buffer分配方法均適用。
請參見圖1,本發(fā)明交換設(shè)備中基于聚合鏈路分配緩存的方法包括以下 步驟
步驟101:根據(jù)交換芯片內(nèi)buffer總數(shù)目和端口數(shù)目,計算出端口平均 占用的buffer數(shù)目=交換芯片內(nèi)buffer總數(shù)目/端口數(shù)目;
實際上,如果是動態(tài)分配buffer,則步驟101是根據(jù)交換芯片當前剩余 的buffer數(shù)目和端口當前的活躍程度(接收^^文的頻度),計算端口當前可 占用的buffer數(shù)目=交換芯片當前剩余的buffer數(shù)目x端口當前的活躍程度, 即如果端口當前的活躍程度高,則在當前剩余的buffer中可占用的buffer數(shù) 目#尤大,反之亦然。
步驟102、 103:報文從端口進入,如果判斷為鏈路聚合組里的端口 ,執(zhí) 行步驟104,如果判斷是除鏈路聚合組里的端口外的普通端口 ,執(zhí)行步驟109;
步驟104~108:根據(jù)聚合組里的端口數(shù)目和端口平均占用的buffer數(shù)目, 確定聚合組可占用的buffer總數(shù)目=端口平均占用的buffer數(shù)目x聚合組里 的端口數(shù)目;判斷聚合組內(nèi)(所有端口)已占用的buffer數(shù)目是否達到聚合 組可占用的buffer總數(shù)目,達到則丟棄報文,沒有達到則繼續(xù)查詢交換芯片 內(nèi)是否尚存在空閑緩存,存在則分配buffer并緩存報文,否則丟棄報文;結(jié) 束流程。
如果是動態(tài)分配buffer,則步驟104是根據(jù)步驟101計算的聚合組內(nèi)各 端口當前可占用的buffer數(shù)目,確定的聚合組可占用的buffer總數(shù)目,等于 聚合組內(nèi)各端口當前可占用的buffer數(shù)目之和。
步驟109:判斷該端口已占用buffer數(shù)目是否達到端口平均占用的buffer 數(shù)目,達到則執(zhí)行步驟108,即丟棄報文;沒有達到則執(zhí)行步驟106,即繼續(xù) 判斷交換芯片內(nèi)是否尚存在空閑緩存,存在則獲取buffer并緩存報文,否則 丟棄報文。
上述步驟106作為可選步驟,用于保證聚合組里的端口或普通端口在分配的buffer中緩存報文時,不會與其它端口產(chǎn)生buffer資源沖突,亦即保證 不會對其它端口產(chǎn)生影響。
下面就上述方法實施例給出一個應(yīng)用示例來幫助進一步理解本發(fā)明的技 術(shù)方案。
假設(shè)交換機共有2000個buffer,每個buffer 256字節(jié);交換機共有20 個物理端口,端口 1、端口2、端口 3及端口 4都在鏈路聚合組1里面。
假設(shè)報文從聚合組1進入,則基于聚合鏈路分配緩存的方法就按如下步 驟執(zhí)行
步驟l:計算端口平均占用的buffer數(shù)目=2000/20 = 100,即每個端口平 均可以占用100個buffer;
步驟2:如果才艮文從端口 1~端口 4的任意一個端口進入,則交換機判斷 該端口屬于鏈路聚合組里的端口 ,先計算鏈路聚合組可占用的buffer總數(shù)目 =端口平均占用的buffer數(shù)目x聚合組里的端口數(shù)目=100x4 = 400,即鏈路 聚合組可占用400個buffer;
步驟3:判斷端口 1~端口 4當前已占用的buffer總數(shù)目是否達到400, 如果未達到則交換機分配緩存并存儲報文,否則丟棄從聚合組1進來的報文。
如圖2所示,本發(fā)明根據(jù)圖1所示的方法相應(yīng)地為交換機提供的一種基 于聚合鏈路分配緩存的裝置的實施例,該裝置200包括依次連接的計算單元 210、端口管理單元220、緩存分配單元230以及緩存單元240;其中
計算單元210,還與緩存分配單元230連接,用于通過緩存分配單元230 獲取交換芯片內(nèi)buffer總數(shù)目,再根據(jù)從端口管理單元220獲取的交換芯片 內(nèi)端口數(shù)目,計算出端口平均占用的buffer數(shù)目;根據(jù)從端口管理單元220 獲取的聚合組里的端口數(shù)目和計算出的端口平均占用的buffer數(shù)目N,計算 聚合組可占用的buffer總數(shù)目M;將計算結(jié)果輸出給端口管理單元220。
N-交換芯片內(nèi)buffer總數(shù)目/端口數(shù)目;
M-端口平均占用的buffer數(shù)目x聚合組里的端口數(shù)目。當然,如果是釆用動態(tài)分配buffer的方法,計算單元210則可分別計算 端口當前可占用的buffer數(shù)目和聚合組可占用的buffer總數(shù)目,具體方法如 前所述,故此不再贅述。
端口管理單元220,用于管理交換芯片內(nèi)的所有端口,確定端口數(shù)目, 并區(qū)分進入報文的端口是鏈路聚合組端口還是非鏈路聚合組端口 ;若區(qū)分為 鏈路聚合組端口,則根據(jù)記錄的該聚合組已占用的buffer數(shù)目m和輸入M, 判斷m是否小于M,小于則向緩存分配單元230申請分配buffer,并將報文 緩存如緩存分配單元230分配的buffer中,否則丟棄該l艮文;若區(qū)分為非鏈 路聚合組端口 ,則根據(jù)記錄的該端口已占用的buffer數(shù)目n和輸入N,判斷 n是否小于N,小于則根據(jù)報文容量向緩存分配單元230申請分配buffer,并 將報文緩存如緩存分配單元230分配的buffer中,否則丟棄該報文;在目的 端口提出發(fā)送報文的請求時,從緩存分配單元230取出相應(yīng)的報文輸出給該 目的端口 ,并向緩存分配單元230請求釋放buffer。
圖2所示的計算單元210,可合并在端口管理單元220中。
緩存分配單元230,用于根據(jù)端口管理單元220的申請分配相應(yīng)容量的 buffer,并根據(jù)端口管理單元220的請求釋放相應(yīng)的buffer.
緩存單元240,用于提供存儲報文的buffer。
本發(fā)明與現(xiàn)有技術(shù)相比較,引入了一種基于聚合鏈路的緩存分配方法, 能夠?qū)崿F(xiàn)對鏈路聚合組里的端口 bufferr在聚合組內(nèi)的共享,從而提高鏈路聚 合組的報文轉(zhuǎn)發(fā)性能。
當然,本發(fā)明還可以有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì) 的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形, 但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。
權(quán)利要求
1、一種交換設(shè)備中基于聚合鏈路分配緩存的方法,包括當報文從鏈路聚合組內(nèi)的一端口進入,交換設(shè)備將所述聚合組內(nèi)所有端口可占用的緩存總和作為聚合組可占用的緩存共享給所述聚合組內(nèi)的各個端口,如判斷所述聚合組內(nèi)已占用的緩存數(shù)目尚未達到所述聚合組可占用的緩存的總數(shù)目,則分配相應(yīng)容量的緩存存儲所述報文,否則丟棄所述報文。
2、 按照權(quán)利要求1所述的方法,其特征在于,根據(jù)所述聚合組內(nèi)的端 口數(shù)目和所述交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目,計算所述聚合組可占用 的緩存的總數(shù)目=所述交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目x所述聚合組內(nèi) 的端口數(shù)目;所述交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目=所述交換設(shè)備內(nèi)緩 存的總數(shù)目/所述交換設(shè)備內(nèi)的端口數(shù)目。
3、 按照權(quán)利要求1所述的方法,其特征在于,根據(jù)對聚合組內(nèi)各個端 口當前可占用的緩存的數(shù)目求和,計算所述聚合組可占用的緩存的總數(shù)目; 所述聚合組內(nèi)各個端口當前可占用的緩存的數(shù)目=所述交換設(shè)備當前剩余 的緩存數(shù)目x所迷聚合組內(nèi)端口當前的活躍程度。
4、 按照權(quán)利要求2所述的方法,其特征在于,當報文從除所述聚合組 內(nèi)的端口以外的普通端口進入,則計算確定所述交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目,或者根據(jù)交換設(shè)備 當前剩余的緩存數(shù)目和所述普通端口當前的活躍程度,計算所述普通端口當 前可占用的緩存數(shù)目;并且,當所述普通端口已占用的緩存數(shù)目尚未達到所 述交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目,或者當所述普通端口已占用的緩存 數(shù)目尚未達到所述普通端口當前可占用的緩存數(shù)目,則分配相應(yīng)容量的緩存 存儲所述報文,否則丟棄所述報文。
5、 按照權(quán)利要求1至4任一項所述的方法,其特征在于,在分配相應(yīng) 容量的緩存之前還包括查詢所述交換設(shè)備內(nèi)是否尚存在空閑緩存,如存在 則分配所述緩存,否則丟棄所述才艮文。
6、 一種交換設(shè)備中基于聚合鏈路分配緩存的裝置,其特征在于,所迷 裝置包括依次連接的端口管理單元、緩存分配單元以及緩存單元;其中所述端口管理單元,用于管理交換設(shè)備內(nèi)的所有端口,并當對進入^1文 的端口區(qū)分為是鏈路聚合組端口 ,則將所述聚合組內(nèi)所有端口可占用的緩存總和作為聚合組可占用的緩存共享給所述聚合組內(nèi)的各個端口 ;當通過所述 緩存分配單元查詢到,所述聚合組內(nèi)已占用的緩存數(shù)目尚未達到所述聚合組 可占用的緩存的總數(shù)目,則向所述緩存分配單元申請分配相應(yīng)容量的緩存存 儲所述報文,否則丟棄所述報文;所述緩存分配單元,用于根據(jù)所述端口管理單元的申請,將分配的所述 緩存提供給所述端口管理單元;所述緩存單元,用于提供存儲報文的所述緩存。
7、 按照權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括分別與 所述端口管理單元和所述緩存分配單元連接的計算單元,用于根據(jù)從所述端口管理單元獲取的所述交換設(shè)備內(nèi)的端口 數(shù)目,以及從所述緩存分配單元獲取的所述交換設(shè)備內(nèi)的緩存的總數(shù)目,計 算所述交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目=所述交換設(shè)備內(nèi)的緩存的總數(shù) 目/所述交換設(shè)備內(nèi)的端口數(shù)目;然后根據(jù)從所述端口管理單元獲取的聚合組 內(nèi)的端口數(shù)目和計算的所述交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目,計算所述 聚合組可占用的緩存的總數(shù)目=所迷交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目x 所述聚合組內(nèi)的端口數(shù)目,并將計算結(jié)果輸出給所述端口管理單元。
8、 按照權(quán)利要求7所述的裝置,其特征在于,所述計算單元,或用于根據(jù)從所述緩存分配單元獲取的所述交換設(shè)備當 前剩余的緩存數(shù)目,以及從所迷端口管理單元獲取的所述聚合組內(nèi)端口當前 的活躍程度,計算所述聚合組內(nèi)各端口當前可占用的緩存的數(shù)目=所述交換 設(shè)備當前剩余的緩存數(shù)目x所述聚合組內(nèi)端口當前的活i^程度,然后對所述聚合組內(nèi)各端口當前可占用的緩存的數(shù)目求和,計算所述聚合組可占用的緩 存的總數(shù)目,并將計算結(jié)果輸出給所述端口管理單元。
9、 按照權(quán)利要求7所述的裝置,其特征在于,所迷端口管理單元,當對進入才艮文的端口區(qū)分為是除所述聚合組內(nèi)的端 口以外的普通端口 ,則根據(jù)從所述計算單元輸入的所述交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目,或指示所述計算單元輸出計算的普通端口當前可占用的緩 存數(shù)目,當通過所述緩存分配單元查詢到,所述普通端口已占用的緩存數(shù)目 尚未達到所述交換設(shè)備內(nèi)端口平均占用的緩存數(shù)目,或者所述普通端口已占 用的緩存數(shù)目尚未達到所述普通端口當前可占用的緩存數(shù)目,則向所述緩存分配單元申請分配相應(yīng)容量的緩存存儲所述報文,否則丟棄所述才艮文;所述計算單元,還用于根據(jù)所述端口管理單元的指示,通過從所述緩存 分配單元獲取的所述交換設(shè)備當前剩余的緩存數(shù)目,以及從所述端口管理單 元獲取的所述普通端口當前的活躍程度,計算獲得所述普通端口當前可占用 的緩存數(shù)目,并將計算結(jié)果輸出給所述端口管理單元。
10、 按照權(quán)利要求6至9任一項所述的裝置,其特征在于,所述緩存分配單元,還用于在分配緩存之前,查詢所述交換設(shè)備是否尚 存在空閑緩存,存在則分配所述緩存,否則向所述端口管理單元返回分配失 敗的信息;所述端口管理單元,在收到所述分配失敗的信息后,丟棄所述報文。
全文摘要
一種交換設(shè)備中基于聚合鏈路分配緩存的方法及裝置,該方法包括當報文從鏈路聚合組內(nèi)的一端口進入,交換設(shè)備將該聚合組內(nèi)所有端口可占用的緩存總和作為聚合組可占用的緩存共享給該聚合組內(nèi)的各個端口,如判斷該聚合組內(nèi)已占用的緩存數(shù)目尚未達到該聚合組可占用的緩存的總數(shù)目,則分配相應(yīng)容量的緩存存儲報文,否則丟棄報文。本發(fā)明對傳統(tǒng)的靜態(tài)、動態(tài)緩存分配方法進行了改進,通過將聚合鏈路內(nèi)所有端口的緩存總和共享給各端口,進一步提高了交換機鏈路聚合組的轉(zhuǎn)發(fā)性能,同時還不會對其它普通端口或者其它聚合組造成任何影響。
文檔編號H04L12/56GK101483593SQ200910006948
公開日2009年7月15日 申請日期2009年2月13日 優(yōu)先權(quán)日2009年2月13日
發(fā)明者潘庭山 申請人:中興通訊股份有限公司