專(zhuān)利名稱(chēng):Tcam共享存儲(chǔ)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種三態(tài)內(nèi)容可尋址存儲(chǔ)器(Ternary Content AddressableMemory, 簡(jiǎn)稱(chēng)TCAM)共享存儲(chǔ)方法及裝置,屬于以太網(wǎng)技術(shù)領(lǐng)域。
背景技術(shù):
以太網(wǎng)三層交換機(jī)需要通過(guò)路由表來(lái)實(shí)現(xiàn)路由功能。其中的路由表中存放了若干條路由信息,每一條路由信息包括路由前綴和路由下一跳地址,每一個(gè)路由前綴又包括IP 地址和掩碼。現(xiàn)有技術(shù)中通常采用TCAM來(lái)存儲(chǔ)路由前綴。圖1為現(xiàn)有技術(shù)中IPv4路由前綴在TCAM中的存儲(chǔ)位置示意圖,如圖所示,一個(gè) IPv4路由前綴存儲(chǔ)在TCAM中的一個(gè)表項(xiàng)中,TCAM是一種順序查找的存儲(chǔ)器,一般遵行先列后行的查找順序。現(xiàn)有技術(shù)中在進(jìn)行路由匹配時(shí)遵循最長(zhǎng)前綴匹配原則,即選擇掩碼長(zhǎng)度最長(zhǎng)的那條路由前綴,因此,在TCAM中需要按照一定的順序約束關(guān)系來(lái)存儲(chǔ)IPv4路由前綴,使得掩碼的長(zhǎng)度越長(zhǎng),相應(yīng)的IPv4路由前綴的存儲(chǔ)位置越靠前,具體方法在本發(fā)明中不做詳細(xì)介紹。在現(xiàn)有的TCAM中并非只用于存儲(chǔ)IPv4路由前綴,還用于存儲(chǔ)其他數(shù)據(jù),例如 用于支持多協(xié)議標(biāo)簽交換(Multi-Protocol Label Switching,簡(jiǎn)稱(chēng)MPLS)技術(shù)的標(biāo)簽 (Label)前綴和支持IPv6技術(shù)的IPv6路由前綴等。其中,IPv6路由前綴與IPv4路由前綴類(lèi)似,仍然有存儲(chǔ)順序的要求,而標(biāo)簽前綴則沒(méi)有。但是,IPv6路由前綴和標(biāo)簽前綴與IPv4 路由前綴的共同區(qū)別在于,他們?cè)赥CAM中所占用的表項(xiàng)數(shù)量不同。圖2為現(xiàn)有技術(shù)中IPv4 路由前綴與標(biāo)簽前綴在TCAM中的共享存儲(chǔ)位置示意圖,如圖所示,現(xiàn)有技術(shù)對(duì)TCAM的存儲(chǔ)空間進(jìn)行了靜態(tài)劃分,即將一個(gè)TCAM劃分為路由前綴表和標(biāo)簽前綴表這兩部分,分別用于存儲(chǔ)IPv4路由前綴和標(biāo)簽前綴,從圖中可以看出IPv4路由前綴占用一個(gè)TCAM表項(xiàng),而標(biāo)簽前綴占用一行TCAM表項(xiàng)?,F(xiàn)有技術(shù)的缺陷在于對(duì)TCAM的存儲(chǔ)空間進(jìn)行靜態(tài)劃分后,不同的前綴數(shù)據(jù)只能使用自己獨(dú)立的TCAM存儲(chǔ)空間,而不能使用其他前綴數(shù)據(jù)的TCAM存儲(chǔ)空間。例如在圖2所示舉例中,當(dāng)添加標(biāo)簽前綴時(shí),如果標(biāo)簽前綴表已滿(mǎn),即使路由前綴表中仍有空閑表項(xiàng)也不能用于存儲(chǔ)標(biāo)簽前綴,因此造成了空閑資源不能得到有效使用的情況,從而導(dǎo)致資源浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明提供一種TCAM共享存儲(chǔ)方法及裝置,用以有效利用TCAM的存儲(chǔ)資源。本發(fā)明一方面提供一種TCAM共享存儲(chǔ)方法,其中包括接收到待存儲(chǔ)的前綴數(shù)據(jù)后,將該前綴數(shù)據(jù)在TCAM中的占用表項(xiàng)數(shù)N與所述TCAM 中的空閑表項(xiàng)數(shù)M進(jìn)行比較;當(dāng)M彡N且N> 1時(shí),判斷所述TCAM中是否具有包含連續(xù)N個(gè)空閑表項(xiàng)的第一可用行;若判斷出所述TCAM中具有所述第一可用行,則將N > 1的所述前綴數(shù)據(jù)存儲(chǔ)于所
3述第一可用行中的連續(xù)N個(gè)空閑表項(xiàng)中。本發(fā)明另一方面提供一種TCAM共享存儲(chǔ)裝置,其中包括接收模塊,用于接收待存儲(chǔ)的前綴數(shù)據(jù);比較模塊,用于將接收模塊接收到的所述前綴數(shù)據(jù)在TCAM中的占用表項(xiàng)數(shù)N與所述TCAM中的空閑表項(xiàng)數(shù)M進(jìn)行比較;判斷模塊,用于當(dāng)比較模塊比較出M彡N且N > 1時(shí),判斷所述TCAM中是否具有包含連續(xù)N個(gè)空閑表項(xiàng)的第一可用行;存儲(chǔ)模塊,用于當(dāng)判斷模塊判斷出所述TCAM中具有所述第一可用行時(shí),將N > 1 的所述前綴數(shù)據(jù)存儲(chǔ)于所述第一可用行中的連續(xù)N個(gè)空閑表項(xiàng)中。本發(fā)明通過(guò)判斷TCAM中是否具有包含連續(xù)N個(gè)空閑表項(xiàng)的第一可用行,若判斷出所述TCAM中具有所述第一可用行,則將N > 1的所述前綴數(shù)據(jù)存儲(chǔ)于所述第一可用行中的連續(xù)N個(gè)空閑表項(xiàng)中,從而實(shí)現(xiàn)了不同長(zhǎng)度前綴數(shù)據(jù)在TCAM中的動(dòng)態(tài)共享存儲(chǔ),避免了 TCAM存儲(chǔ)資源的浪費(fèi),提高了 TCAM的有效利用率。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)中IPv4路由前綴在TCAM中的存儲(chǔ)位置示意圖;圖2為現(xiàn)有技術(shù)中IPv4路由前綴與標(biāo)簽前綴在TCAM中的共享存儲(chǔ)位置示意圖;圖3為本發(fā)明所述TCAM共享存儲(chǔ)方法實(shí)施例的流程圖;圖4為使用圖3后IPv4路由前綴與標(biāo)簽前綴在TCAM中共享存儲(chǔ)位置的舉例示意圖;圖5為圖3所示方法中步驟220的可選流程圖;圖6為本發(fā)明所述TCAM共享存儲(chǔ)裝置實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖3為本發(fā)明所述TCAM共享存儲(chǔ)方法實(shí)施例的流程圖,如圖所示,該方法包括如下步驟步驟100,接收到待存儲(chǔ)的前綴數(shù)據(jù)后,將該前綴數(shù)據(jù)在TCAM中的占用表項(xiàng)數(shù)N與所述TCAM中的空閑表項(xiàng)數(shù)M進(jìn)行比較,當(dāng)M彡N且N > 1時(shí)執(zhí)行步驟200,當(dāng)M彡N且N = 1時(shí)執(zhí)行步驟300,當(dāng)M < N時(shí),存儲(chǔ)失敗。其中,所述占用表項(xiàng)數(shù)N是指如果所述前綴數(shù)據(jù)能夠成功存儲(chǔ)在TCAM中,則其在 TCAM中所占用的表項(xiàng)數(shù)量。例如,如果接收到的前綴數(shù)據(jù)為IPv4路由前綴,則N= 1,表
4明占用一個(gè)表項(xiàng);如果接收到的前綴數(shù)據(jù)為標(biāo)簽前綴,則N = 4表明占用四個(gè)表項(xiàng);另外, IPv6路由前綴也屬于N > 1的前綴數(shù)據(jù)。當(dāng)M < N時(shí),表明TCAM當(dāng)前沒(méi)有足夠的空閑表項(xiàng)用于存儲(chǔ)接收到的前綴數(shù)據(jù),因此存儲(chǔ)失敗。步驟200,判斷所述TCAM中是否具有包含連續(xù)N個(gè)空閑表項(xiàng)的第一可用行,若判斷出所述TCAM中具有所述第一可用行,則執(zhí)行步驟210,否則若判斷出所述TCAM中不具有所述第一可用行,則執(zhí)行步驟220。步驟210,將N> 1的所述前綴數(shù)據(jù)存儲(chǔ)于所述第一可用行中的連續(xù)N個(gè)空閑表項(xiàng)中。例如,如圖4所示,假設(shè)在前述步驟100中接收到的待存儲(chǔ)的前綴數(shù)據(jù)為N = 4的標(biāo)簽前綴2,在此之前,TCAM中已經(jīng)存儲(chǔ)有N = 1的路由前綴1 4及標(biāo)簽前綴1。假如在步驟200中判斷出所述TCAM中具有第一可用行(在圖4中為箭頭所指的行),則將該標(biāo)簽前綴2存儲(chǔ)在該行中。通過(guò)判斷TCAM中是否具有包含連續(xù)N個(gè)空閑表項(xiàng)的第一可用行,若判斷出所述 TCAM中具有所述第一可用行,則將N > 1的所述前綴數(shù)據(jù)存儲(chǔ)于所述第一可用行中的連續(xù) N個(gè)空閑表項(xiàng)中,從而實(shí)現(xiàn)了不同長(zhǎng)度前綴數(shù)據(jù)在TCAM中的動(dòng)態(tài)共享存儲(chǔ),避免了 TCAM存儲(chǔ)資源的浪費(fèi),提高了 TCAM的有效利用率。另外,若判斷出所述TCAM中不具有所述第一可用行,則可以進(jìn)一步采取如下措施步驟220,將包含至少一個(gè)空閑表項(xiàng)的行中已存儲(chǔ)的前綴數(shù)據(jù)刪除,以形成第二可用行。其中,所述第二可用行是指在進(jìn)行調(diào)整前包含空閑表項(xiàng),但所包含的連續(xù)空閑表項(xiàng)的數(shù)量不足N個(gè),而在進(jìn)行調(diào)整后才達(dá)到連續(xù)N個(gè)空閑表項(xiàng)的行。例如可以先從包含至少一個(gè)空閑表項(xiàng)的行中選出空閑表項(xiàng)數(shù)最多的行作為備選行,然后再將所述備選行中已存儲(chǔ)的前綴數(shù)據(jù)刪除,以形成第二可用行。包含的空閑表項(xiàng)數(shù)越多,需要?jiǎng)h除的前綴數(shù)據(jù)的個(gè)數(shù)越少,從而在下述步驟MO 中存儲(chǔ)回所述TCAM中剩余空閑表項(xiàng)中的前綴數(shù)據(jù)也就越少,因此,優(yōu)先選擇空閑表項(xiàng)數(shù)最多的行作為備選行以形成第二可用行更有利于減少整個(gè)存儲(chǔ)過(guò)程的工作量,以減輕操作負(fù)擔(dān)。步驟230,將N> 1的所述前綴數(shù)據(jù)存儲(chǔ)于所述第二可用行中的連續(xù)N個(gè)空閑表項(xiàng)中。經(jīng)過(guò)上述步驟220的調(diào)整后形成的第二可用行中也包含連續(xù)N個(gè)空閑表項(xiàng),從而可以用于存儲(chǔ)所述前綴數(shù)據(jù)。步驟M0,將被刪除的所述前綴數(shù)據(jù)重新添加到所述TCAM中剩余的空閑表項(xiàng)中。具體地,如果被刪除的所述前綴數(shù)據(jù)沒(méi)有順序約束關(guān)系,則可以在所述TCAM中剩余的空閑表項(xiàng)中任選一個(gè)空閑表項(xiàng)進(jìn)行存儲(chǔ);如果被刪除的所述前綴數(shù)據(jù)為IPv4路由前綴,則可以根據(jù)所述IPv4路由前綴的掩碼長(zhǎng)度,將該IPv4路由前綴重新添加到所述TCAM 中剩余的一個(gè)空閑表項(xiàng)中,使得該IPv4路由前綴與所述TCAM中已存儲(chǔ)的IPv4路由前綴滿(mǎn)足預(yù)設(shè)的順序約束關(guān)系。具體的添加方法為現(xiàn)有技術(shù),此處不再贅述。步驟300,將所述前綴數(shù)據(jù)存儲(chǔ)在所述TCAM中的一個(gè)空閑表項(xiàng)中。
5
具體地,如果接收的所述前綴數(shù)據(jù)沒(méi)有順序約束關(guān)系,則可以在所述TCAM中任選一個(gè)空閑表項(xiàng)進(jìn)行存儲(chǔ);如果接收的所述前綴數(shù)據(jù)為IPv4路由前綴,則可以根據(jù)所述IPv4 路由前綴的掩碼長(zhǎng)度,將該IPv4路由前綴存儲(chǔ)在所述TCAM中的一個(gè)空閑表項(xiàng)中,使得該 IPv4路由前綴與所述TCAM中已存儲(chǔ)的IPv4路由前綴滿(mǎn)足預(yù)設(shè)的順序約束關(guān)系。本實(shí)施例所述方法通過(guò)對(duì)前綴數(shù)據(jù)進(jìn)行刪除和重新添加,使TCAM可以空出連續(xù)N 個(gè)空閑表項(xiàng)以存儲(chǔ)N> 1的前綴數(shù)據(jù),從而實(shí)現(xiàn)了不同長(zhǎng)度前綴數(shù)據(jù)在TCAM中的動(dòng)態(tài)共享存儲(chǔ),避免了 TCAM存儲(chǔ)資源的浪費(fèi),提高了 TCAM的有效利用率。以下詳細(xì)說(shuō)明上述步驟220的可選實(shí)施例方式,如圖5所示,該步驟220可以包括步驟221,判斷所述TCAM中是否具有包含N-n個(gè)空閑表項(xiàng)的第η備選行,其中,η 為整數(shù),η從1開(kāi)始,且1 < η < N,若所述TCAM中具有所述第η備選行,則執(zhí)行步驟222, 否則若所述TCAM中不具有所述第η備選行,則執(zhí)行步驟223。步驟222,將所述第η備選行中已存儲(chǔ)的η個(gè)N= 1的前綴數(shù)據(jù)刪除,以形成所述
第二可用行。步驟223,令η = η+1,并返回執(zhí)行步驟221,繼續(xù)判斷所述TCAM中是否具有包含 N-n個(gè)空閑表項(xiàng)的第η備選行,直至形成所述第二可用行。例如,假設(shè)在前述步驟100中接收到的待存儲(chǔ)的前綴數(shù)據(jù)為N = 4的標(biāo)簽前綴,則在上述步驟221中先判斷所述TCAM中是否具有包含連續(xù)N-I個(gè)空閑表項(xiàng)的第一備選行,如果具有第一備選行,則在步驟222中將所述第一備選行中已存儲(chǔ)的一個(gè)N= 1的前綴數(shù)據(jù)刪除,以形成所述第二可用行。否則若所述TCAM中不具有所述第一備選行,則執(zhí)行步驟223,令η = 2,并返回執(zhí)行步驟221繼續(xù)判斷所述TCAM中是否具有包含連續(xù)Ν-2個(gè)空閑表項(xiàng)的第二備選行,如果具有第二備選行,則在步驟222中將所述第二備選行中已存儲(chǔ)的兩個(gè)N = 1的前綴數(shù)據(jù)刪除, 以形成所述第二可用行。否則若所述TCAM中不具有所述第二備選行,則執(zhí)行步驟223,令η = 3,并返回執(zhí)行步驟221繼續(xù)判斷所述TCAM中是否具有包含連續(xù)Ν-3個(gè)空閑表項(xiàng)的第三備選行,如果具有第三備選行,則在步驟222中將所述第三備選行中已存儲(chǔ)的三個(gè)N = 1的前綴數(shù)據(jù)刪除, 以形成所述第二可用行。由于在前述步驟100中已經(jīng)判斷出M > N,即表明TCAM當(dāng)前有足夠的空閑表項(xiàng)用于存儲(chǔ)接收到的前綴數(shù)據(jù),因此,至少存在第一備選行、第二備選行或第三備選行,因此也就一定能夠形成包含連續(xù)N個(gè)空閑表項(xiàng)的第二可用行。從上述過(guò)程中可以看出,η越小,需要?jiǎng)h除的N= 1的前綴數(shù)據(jù)的個(gè)數(shù)越少,從而在步驟MO中存儲(chǔ)回所述TCAM中剩余空閑表項(xiàng)中的前綴數(shù)據(jù)也就越少,因此,按照η從小到大的順序逐一嘗試形成所述第二可用行更有利于減少整個(gè)存儲(chǔ)過(guò)程的工作量,以減輕操作負(fù)擔(dān)。圖6為本發(fā)明所述TCAM共享存儲(chǔ)裝置實(shí)施例的結(jié)構(gòu)示意圖,能夠?qū)崿F(xiàn)上述各方法實(shí)施例,如圖所示,該TCAM共享存儲(chǔ)裝置10至少包括接收模塊11、比較模塊12、判斷模塊 13及存儲(chǔ)模塊14,其工作原理如下接收模塊11接收到待存儲(chǔ)的前綴數(shù)據(jù)后,由將比較模塊12將該接收模塊11接收到的所述前綴數(shù)據(jù)在TCAM中的占用表項(xiàng)數(shù)N與所述TCAM中的空閑表項(xiàng)數(shù)M進(jìn)行比較;當(dāng)比較模塊12比較出M < N時(shí),存儲(chǔ)失??;當(dāng)比較模塊12比較出M彡N且N = 1時(shí),由存儲(chǔ)模塊14將所述前綴數(shù)據(jù)存儲(chǔ)在所述TCAM中的一個(gè)空閑表項(xiàng)中;當(dāng)比較模塊12比較出M > N 且N > 1時(shí),繼續(xù)由判斷模塊13判斷所述TCAM中是否具有包含連續(xù)N個(gè)空閑表項(xiàng)的第一可用行。通過(guò)判斷TCAM中是否具有包含連續(xù)N個(gè)空閑表項(xiàng)的第一可用行,若判斷出所述 TCAM中具有所述第一可用行,則將N > 1的所述前綴數(shù)據(jù)存儲(chǔ)于所述第一可用行中的連續(xù) N個(gè)空閑表項(xiàng)中,從而實(shí)現(xiàn)了不同長(zhǎng)度前綴數(shù)據(jù)在TCAM中的動(dòng)態(tài)共享存儲(chǔ),避免了 TCAM存儲(chǔ)資源的浪費(fèi),提高了 TCAM的有效利用率。另外,若判斷模塊13判斷出所述TCAM中具有所述第一可用行時(shí),則可以進(jìn)一步由存儲(chǔ)模塊14將N> 1的所述前綴數(shù)據(jù)存儲(chǔ)于所述第一可用行中的連續(xù)N個(gè)空閑表項(xiàng)中,具體的舉例可參見(jiàn)圖4及其相關(guān)內(nèi)容。另外,如圖6所示,該TCAM共享存儲(chǔ)裝置10中還可以進(jìn)一步包括調(diào)整模塊15和添加模塊16。當(dāng)判斷模塊13判斷出所述TCAM中不具有所述第一可用行時(shí),由調(diào)整模塊15 將包含至少一個(gè)空閑表項(xiàng)的行中已存儲(chǔ)的前綴數(shù)據(jù)刪除,以形成第二可用行。其中,所述第二可用行是指在進(jìn)行調(diào)整前包含空閑表項(xiàng),但所包含的連續(xù)空閑表項(xiàng)的數(shù)量不足N個(gè),而在進(jìn)行調(diào)整后才達(dá)到連續(xù)N個(gè)空閑表項(xiàng)的行。例如可以先從包含至少一個(gè)空閑表項(xiàng)的行中選出空閑表項(xiàng)數(shù)最多的行作為備選行,然后再將所述備選行中已存儲(chǔ)的前綴數(shù)據(jù)刪除,以形成第二可用行。包含的空閑表項(xiàng)數(shù)越多,需要?jiǎng)h除的前綴數(shù)據(jù)的個(gè)數(shù)越少,從而在下述步驟MO 中存儲(chǔ)回所述TCAM中剩余空閑表項(xiàng)中的前綴數(shù)據(jù)也就越少,因此,優(yōu)先選擇空閑表項(xiàng)數(shù)最多的行作為備選行以形成第二可用行更有利于減少整個(gè)存儲(chǔ)過(guò)程的工作量,以減輕操作負(fù)擔(dān)。此后,由所述存儲(chǔ)模塊14將N > 1的所述前綴數(shù)據(jù)存儲(chǔ)于由調(diào)整模塊15形成的所述第二可用行中的連續(xù)N個(gè)空閑表項(xiàng)中;并由添加模塊16將被調(diào)整模塊15刪除的所述前綴數(shù)據(jù)重新添加到所述TCAM中剩余的空閑表項(xiàng)中。具體的添加方法為現(xiàn)有技術(shù),此處不再贅述。本實(shí)施例所述裝置通過(guò)對(duì)占用表項(xiàng)數(shù)前綴數(shù)據(jù)進(jìn)行刪除和重新添加,使TCAM可以空出連續(xù)N個(gè)空閑表項(xiàng)以存儲(chǔ)N > 1的前綴數(shù)據(jù),從而實(shí)現(xiàn)了不同長(zhǎng)度前綴數(shù)據(jù)在TCAM 中的動(dòng)態(tài)共享存儲(chǔ),避免了 TCAM存儲(chǔ)資源的浪費(fèi),提高了 TCAM的有效利用率。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種TCAM共享存儲(chǔ)方法,其特征在于包括接收到待存儲(chǔ)的前綴數(shù)據(jù)后,將該前綴數(shù)據(jù)在TCAM中的占用表項(xiàng)數(shù)N與所述TCAM中的空閑表項(xiàng)數(shù)M進(jìn)行比較;當(dāng)M≥N且N > 1時(shí),判斷所述TCAM中是否具有包含連續(xù)N個(gè)空閑表項(xiàng)的第一可用行;若判斷出所述TCAM中具有所述第一可用行,則將N > 1的所述前綴數(shù)據(jù)存儲(chǔ)于所述第一可用行中的連續(xù)N個(gè)空閑表項(xiàng)中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于還包括若判斷出所述TCAM中不具有所述第一可用行,則將包含至少一個(gè)空閑表項(xiàng)的行中已存儲(chǔ)的前綴數(shù)據(jù)刪除,以形成第二可用行;將N>1的所述前綴數(shù)據(jù)存儲(chǔ)于所述第二可用行中的連續(xù)N個(gè)空閑表項(xiàng)中; 將被刪除的所述前綴數(shù)據(jù)重新添加到所述TCAM中剩余的空閑表項(xiàng)中。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于所述形成第二可用行包括 從包含至少一個(gè)空閑表項(xiàng)的行中選出空閑表項(xiàng)數(shù)最多的行作為備選行; 將所述備選行中已存儲(chǔ)的前綴數(shù)據(jù)刪除,以形成所述第二可用行。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于當(dāng)M> N且N= 1時(shí),將所述前綴數(shù)據(jù)存儲(chǔ)在所述TCAM中的一個(gè)空閑表項(xiàng)中。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于當(dāng)接收的所述前綴數(shù)據(jù)為IPv4路由前綴時(shí),將所述前綴數(shù)據(jù)存儲(chǔ)在所述TCAM中的一個(gè)空閑表項(xiàng)中包括根據(jù)所述IPv4路由前綴的掩碼長(zhǎng)度,將該IPv4路由前綴存儲(chǔ)到所述TCAM中的一個(gè)空閑表項(xiàng)中,使得該IPv4路由前綴與所述TCAM中已存儲(chǔ)的IPv4路由前綴滿(mǎn)足預(yù)設(shè)的順序約束關(guān)系。
6.一種TCAM共享存儲(chǔ)裝置,其特征在于,包括 接收模塊,用于接收待存儲(chǔ)的前綴數(shù)據(jù);比較模塊,用于將接收模塊接收到的所述前綴數(shù)據(jù)在TCAM中的占用表項(xiàng)數(shù)N與所述 TCAM中的空閑表項(xiàng)數(shù)M進(jìn)行比較;判斷模塊,用于當(dāng)比較模塊比較出M彡N且N > 1時(shí),判斷所述TCAM中是否具有包含連續(xù)N個(gè)空閑表項(xiàng)的第一可用行;存儲(chǔ)模塊,用于當(dāng)判斷模塊判斷出所述TCAM中具有所述第一可用行時(shí),將N > 1的所述前綴數(shù)據(jù)存儲(chǔ)于所述第一可用行中的連續(xù)N個(gè)空閑表項(xiàng)中。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于還包括調(diào)整模塊,用于當(dāng)判斷模塊判斷出所述TCAM中不具有所述第一可用行時(shí),將包含至少一個(gè)空閑表項(xiàng)的行中已存儲(chǔ)的前綴數(shù)據(jù)刪除,以形成第二可用行;添加模塊,用于將被調(diào)整模塊刪除的所述前綴數(shù)據(jù)重新添加到所述TCAM中剩余的空閑表項(xiàng)中;所述存儲(chǔ)模塊還用于將N > 1的所述前綴數(shù)據(jù)存儲(chǔ)于由調(diào)整模塊形成的所述第二可用行中的連續(xù)N個(gè)空閑表項(xiàng)中。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于所述存儲(chǔ)模塊還用于當(dāng)比較模塊比較出 M ≥ N且N = 1時(shí),將所述前綴數(shù)據(jù)存儲(chǔ)在所述TCAM中的一個(gè)空閑表項(xiàng)中。
全文摘要
本發(fā)明提供一種TCAM共享存儲(chǔ)方法及裝置。其中方法包括接收到待存儲(chǔ)的前綴數(shù)據(jù)后,將該前綴數(shù)據(jù)在TCAM中的占用表項(xiàng)數(shù)N與所述TCAM中的空閑表項(xiàng)數(shù)M進(jìn)行比較;當(dāng)M≥N且N>1時(shí),判斷所述TCAM中是否具有包含連續(xù)N個(gè)空閑表項(xiàng)的第一可用行;若判斷出所述TCAM中具有所述第一可用行,則將N>1的所述前綴數(shù)據(jù)存儲(chǔ)于所述第一可用行中的連續(xù)N個(gè)空閑表項(xiàng)中。本發(fā)明實(shí)現(xiàn)了不同長(zhǎng)度前綴數(shù)據(jù)在TCAM中的動(dòng)態(tài)共享存儲(chǔ),避免了TCAM存儲(chǔ)資源的浪費(fèi),提高了TCAM的有效利用率。
文檔編號(hào)H04L29/12GK102185756SQ20111006206
公開(kāi)日2011年9月14日 申請(qǐng)日期2011年3月15日 優(yōu)先權(quán)日2011年3月15日
發(fā)明者陳濤 申請(qǐng)人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司