亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

靜態(tài)多接口范圍匹配表的管理維護方法

文檔序號:6650812閱讀:128來源:國知局
專利名稱:靜態(tài)多接口范圍匹配表的管理維護方法
技術(shù)領(lǐng)域
本發(fā)明涉及存儲器管理技術(shù)領(lǐng)域,尤其涉及一種靜態(tài)多接口范圍匹配表的管理維護方法。
背景技術(shù)
靜態(tài)多接口范圍匹配表是具有對范圍匹配接口分組的需求的靜態(tài)多接口范圍匹配表。GroupID(群組標(biāo)識)組指的是可供復(fù)用的接口組,每個接口組中包含多個范圍匹配規(guī)則。各個GroupID組之間是相互獨立的,且共同存在于同一個范圍匹配表中。GroupID組間不存在任何邏輯關(guān)系,所以沒有優(yōu)先級先后順序之分。
目前,推出了一種TCAM(Ternary Content Addressable Memory,三態(tài)內(nèi)容可尋址存儲器),其與普通存儲器不同的是普通存儲器的尋址方式為輸入地址,輸出內(nèi)容;而所述的內(nèi)容可尋址存儲器可以根據(jù)輸入的內(nèi)容得到地址,也就是說,當(dāng)輸入一個內(nèi)容(通常叫做比較數(shù))時,TCAM會將比較數(shù)和TCAM中的數(shù)據(jù)進行比較,如果有命中,則輸出命中表項的地址,TCAM的每個存儲單元除了“0”、“1”外,還有一種“don’t care”狀態(tài),即既可以為“0”又可以為“1”。
由于TCAM具有三態(tài)存儲的功能,因此,在輸入一個比較數(shù)時,可以有多個TCAM地址中的內(nèi)容和比較數(shù)命中,TCAM中存放的表項具有優(yōu)先級特征,較低物理地址的表項具有較高的優(yōu)先級,在出現(xiàn)多命中的情況下,輸出優(yōu)先級最高的表項對應(yīng)的查找結(jié)果。
使用TCAM進行范圍表示的方法如下TCAM的三態(tài)存儲方式為帶掩碼的數(shù)據(jù)提供了非常方便的存儲方式,帶掩碼的數(shù)據(jù)實際上是一種特殊的范圍,比如說從2n~2n+1-1的范圍;對于一般的范圍,可以拆分成若干個這樣的特殊范圍的并集,可以證明數(shù)據(jù)位寬為n的數(shù)據(jù)段的任意范圍最多可以拆分成2(n-1)個可以直接存放在TCAM中的特殊的數(shù)據(jù)/掩碼形式的范圍。一條范圍匹配表按照TCAM表的范圍表示規(guī)則拆分為一個或多個范圍區(qū)間后,可以作為一條或多條TCAM表項存入TCAM。
TCAM具有優(yōu)先級存儲的特點,其低地址位置表項總是具有高優(yōu)先級。因此,表項的添加和刪除維護操作必須依照下發(fā)表項的優(yōu)先級進行排序添加和刪除,以保證TCAM表項存儲順序符合下發(fā)的查找優(yōu)先級要求。由于各接口組對應(yīng)的靜態(tài)多接口范圍匹配表之間不存在優(yōu)先級的邏輯關(guān)系,并且需要共享同一范圍內(nèi)的TCAM空間,因此,進行表項維護操作的困難大大增加。
目前,還沒有一種很好的靜態(tài)多接口范圍匹配表的管理維護方法可以使得多接口的靜態(tài)多接口范圍匹配表的存儲能夠有效利用TCAM存儲器的優(yōu)點。

發(fā)明內(nèi)容
鑒于上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明的目的是提供一種靜態(tài)多接口范圍匹配表的管理維護方法,從而可以使得靜態(tài)多接口范圍匹配表可以利用TCAM的優(yōu)點進行存儲管理。
本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的本發(fā)明提供了一種靜態(tài)多接口范圍匹配表的管理維護方法,包括A、為靜態(tài)多接口范圍匹配表中各接口組分別建立相互獨立的一組關(guān)聯(lián)的管理維護結(jié)構(gòu),所述各接口組對應(yīng)的若干組管理維護結(jié)構(gòu)間相互獨立并交織存儲于共用存儲空間中,所述的一組管理維護結(jié)構(gòu)中包含各管理維護結(jié)構(gòu)之間按優(yōu)先級關(guān)聯(lián),且每個管理維護結(jié)構(gòu)對應(yīng)一個接口組下的一條規(guī)則;B、利用所述的若干組管理維護結(jié)構(gòu)對保存的所述靜態(tài)多接口范圍匹配表中各接口組下的規(guī)則進行分優(yōu)先級的管理維護。
所述的步驟A包括采用數(shù)據(jù)結(jié)構(gòu)對各接口組對應(yīng)的若干組管理維護結(jié)構(gòu)進行管理,在數(shù)據(jù)結(jié)構(gòu)中需要為一個接口組下的一組管理維護結(jié)構(gòu)提供對應(yīng)接口組索引。
所述的步驟A包括所述的一組管理維護結(jié)構(gòu)中的每個管理維護結(jié)構(gòu)對應(yīng)一個規(guī)則節(jié)點,所述規(guī)則節(jié)點對應(yīng)范圍匹配表中的范圍匹配規(guī)則,將靜態(tài)范圍匹配列表包含的各規(guī)則節(jié)點采用二叉樹結(jié)構(gòu)、數(shù)組結(jié)構(gòu)或鏈表結(jié)構(gòu)進行管理。
所述的步驟A包括采用平衡二叉樹結(jié)構(gòu)對所述靜態(tài)多接口范圍匹配表中各接口組對應(yīng)一組管理維護結(jié)構(gòu)中包含的各個管理維護結(jié)構(gòu)之間進行按優(yōu)先級關(guān)聯(lián)。
所述的管理維護結(jié)構(gòu)管理的信息包括規(guī)則節(jié)點平衡因子、規(guī)則所屬的接口組信息,規(guī)則在所屬接口組中的優(yōu)先級、規(guī)則分解表項數(shù)目、前面優(yōu)先級節(jié)點、后面優(yōu)先級節(jié)點、規(guī)則分解首表項和/或規(guī)則分解尾表項,且當(dāng)采用平衡二叉樹結(jié)構(gòu)關(guān)聯(lián)所述管理維護結(jié)構(gòu)時,所述的管理維護結(jié)構(gòu)管理的信息還可選地包括左孩子規(guī)則節(jié)點指針和右孩子規(guī)則節(jié)點指針。
所述的靜態(tài)多接口范圍匹配表保存于三態(tài)內(nèi)容可尋址存儲器TCAM中,或者與TCAM的保存和查找特征相同的存儲器中。
本發(fā)明中,當(dāng)向靜態(tài)多接口范圍匹配表中增加靜態(tài)多接口范圍匹配規(guī)則時,所述的步驟B包括B1、根據(jù)所述規(guī)則所屬的接口組信息確定相應(yīng)的一組管理維護結(jié)構(gòu);B2、查找一組管理維護結(jié)構(gòu)確定所述靜態(tài)多接口范圍匹配規(guī)則增加于TCAM中的位置,并將所述的靜態(tài)多接口范圍匹配規(guī)則添加到TCAM中的相應(yīng)位置。
所述的步驟B2包括B21、將所述的靜態(tài)多接口范圍匹配規(guī)則拆分為相應(yīng)的TCAM表項,判斷相應(yīng)的插入位置的空閑表項是否足夠,如果是,則執(zhí)行步驟B22,否則,執(zhí)行步驟B23;B22、將拆分后的TCAM表項按照表項所屬優(yōu)先級按相應(yīng)優(yōu)先級對應(yīng)空間比例添加到TCAM中;B23、在確定的插入位置處向低地址和向高地址搜索空閑表項,在搜索獲得足夠的空閑表項后,對這些搜索到的空閑表項進行挪移,將空閑表項挪移到插入位置后,執(zhí)行步驟B22。
所述的步驟B23包括B231、在確定的插入位置沿向低地址和向高地址兩個方向按照優(yōu)先級塊搜索空閑位置,在搜索過程中記錄空閑數(shù)量,并記錄搜索到的空閑位置包含距離要添加表項位置最遠(yuǎn)的優(yōu)先級塊;B232、當(dāng)找到的空閑位置的數(shù)量足夠時,從找到的距離要添加表項最遠(yuǎn)的優(yōu)先級塊開始將優(yōu)先級塊在TCAM中的位置向與新添加表項位置相反的方向移動。
所述的步驟B232包括從本優(yōu)先級塊中距離新添加表項的位置最近的表項開始,將表項移動到與本優(yōu)先級塊相鄰的空閑塊中距離新添加表項最遠(yuǎn)的位置。
本發(fā)明中,當(dāng)刪除靜態(tài)多接口范圍匹配規(guī)則時,所述的步驟B包括B3、查找各規(guī)則對應(yīng)管理維護結(jié)構(gòu)確定所述靜態(tài)多接口范圍匹配規(guī)則對應(yīng)的管理維護結(jié)構(gòu);B4、根據(jù)所述的管理維護結(jié)構(gòu)信息刪除TCAM中保存的該匹配規(guī)則對應(yīng)的所有表項,并修改相應(yīng)的管理維護結(jié)構(gòu)。
所述的方法還包括當(dāng)需要在兩個連續(xù)優(yōu)先級的規(guī)則之間插入一條新的規(guī)則時,則需要調(diào)整各個規(guī)則對應(yīng)的優(yōu)先級絕對數(shù)值,各規(guī)則之間的相對優(yōu)先級關(guān)系不變。
由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明的實現(xiàn)可以使得靜態(tài)多接口范圍匹配表可以有效利用TCAM或類似TCAM的存儲器的優(yōu)點進行存儲管理。利用本發(fā)明可以使得表項的搜索由硬件完成,而范圍匹配表項的插入、刪除、老化、更新等維護操作則由軟件完成,從而可以提高查找及維護靜態(tài)接口范圍匹配表的效率。


圖1為本發(fā)明提供的規(guī)則節(jié)點結(jié)構(gòu)示意圖;圖2為本發(fā)明中TCAM入口維護結(jié)構(gòu)示意圖;圖3為本發(fā)明中增加表項的處理過程示意圖;圖4為本發(fā)明提供的表項挪移過程示意圖;圖5為本發(fā)明提供的刪除表項處理過程示意圖;圖6為本發(fā)明提供的刪除接口組的處理過程示意圖。
具體實施例方式
本發(fā)明的核心是在實際的范圍匹配表中,將不同GroupID(接口組標(biāo)識)的各接口組下的規(guī)則在TCAM中的存儲在物理位置上相互交織,即對于各個接口組來說,各接口組間不存在優(yōu)先級先后順序,因而表內(nèi)所有的接口組的規(guī)則共用同一塊存儲空間。在同一塊存儲空間中通過算法保證同一GroupID組中的不同范圍匹配規(guī)則對應(yīng)的表項在存儲器(如TCAM芯片)中的優(yōu)先級順序。本發(fā)明還適用于與TCAM的保存和查找特征相同的其他任何存儲器中。
因此,本發(fā)明提出了一種有效的靜態(tài)多接口范圍匹配表維護方法,有效改善了當(dāng)前的靜態(tài)多接口范圍匹配表維護困難的現(xiàn)狀。同時,本發(fā)明還解決了在維護存儲于通用TCAM中范圍匹配表項時,表項內(nèi)容本身不具備優(yōu)先級標(biāo)識的情況下,對靜態(tài)多接口范圍匹配表的維護管理困難的問題。
在后續(xù)的描述中,將以采用TCAM存儲靜態(tài)ACL表為例進行對本發(fā)明提供的技術(shù)方案進行闡述說明,后續(xù)描述部分的ACL表凡未經(jīng)特殊說明均指靜態(tài)ACL表。
為對本發(fā)明有進一步了解,下面將對本發(fā)明所述方法進行詳細(xì)地說明。
由于不同的ACL規(guī)則對應(yīng)不同的優(yōu)先級,TCAM中數(shù)據(jù)的組織按照優(yōu)先級塊劃分,優(yōu)先級高的規(guī)則對應(yīng)的存儲塊放在較低物理地址(即上方),優(yōu)先級低的規(guī)則對應(yīng)的存儲塊放在較高物理地址(即下方)。
因此,本發(fā)明提供的范圍匹配算法的特點為1、每條ACL規(guī)則可以對應(yīng)TCAM中的多個表項;2、最大可以支持的優(yōu)先級數(shù)目較多,對ACL來講,有多少ACL規(guī)則,范圍匹配算法就需要有多少個優(yōu)先級;3、由于需要用戶指定新添加的一條表項的優(yōu)先級,當(dāng)用戶需要在具有連續(xù)優(yōu)先級的兩個規(guī)則之間插入一條新的規(guī)則時,需要調(diào)整一些規(guī)則的優(yōu)先級的絕對數(shù)值,而優(yōu)先級相對關(guān)系不變。
本發(fā)明所述的方法可以由淺入深從GroupID接口組級,范圍匹配規(guī)則級和規(guī)則對應(yīng)TCAM表項級三個層次來看。其中(1)最頂層是對所有GroupID的維護結(jié)構(gòu),具體采用數(shù)組或鏈表等數(shù)據(jù)結(jié)構(gòu)可以實現(xiàn)該維護結(jié)構(gòu),用來對接口組的若干組管理維護結(jié)構(gòu)進行管理和索引,例如,當(dāng)采用數(shù)組作為接口組的維護結(jié)構(gòu),則相應(yīng)的數(shù)組元素對應(yīng)一個接口組的一組管理維護結(jié)構(gòu),具體可以采用數(shù)組元素偏移地址作為對應(yīng)接口組的接口組索引;(2)第二層是對每一個接口組的所有規(guī)則的維護結(jié)構(gòu),即一個接口組對應(yīng)的一組管理維護結(jié)構(gòu),所述的一組管理維護結(jié)構(gòu)包含的各管理維護結(jié)構(gòu)之間可以采用數(shù)組、鏈表或二叉樹的管理維護結(jié)構(gòu),同一接口組內(nèi)包含的各個管理維護結(jié)構(gòu)對應(yīng)的多條規(guī)則可以連續(xù)或離散存儲于相應(yīng)的存儲空間中,即不要求同一接口組內(nèi)的各規(guī)則連續(xù)存儲于存儲空間中;(3)最底層是對每一個范圍匹配規(guī)則的所有對應(yīng)TCAM表項的維護和管理結(jié)構(gòu),同一條規(guī)則將被拆分存儲于多個TCAM表項中,這一層便實現(xiàn)對一個管理維護結(jié)構(gòu)對應(yīng)的一條規(guī)則包含的各TCAM表項的管理。
基于上述三層結(jié)構(gòu),下面將對本發(fā)明的具體實現(xiàn)方式進行說明。
本發(fā)明中,對于每一個新添加的范圍匹配規(guī)則,首先根據(jù)規(guī)則隸屬的接口組,將其分到對應(yīng)GroupID維護結(jié)構(gòu)中。然后,將規(guī)則拆分為TCAM表項添加后進行維護管理。
本發(fā)明中是通過建立相應(yīng)的靜態(tài)多接口范圍匹配規(guī)則的管理維護結(jié)構(gòu)對相應(yīng)的靜態(tài)多接口范圍匹配表中的各個規(guī)則進行管理維護的,所述的管理維護結(jié)構(gòu)包括,但不局限于如下內(nèi)容和形式(1)規(guī)則節(jié)點平衡因子,用于記錄規(guī)則對應(yīng)的管理維護結(jié)構(gòu)位于平衡二叉樹中的位置平衡因子信息;(2)規(guī)則所屬接口組信息,用于標(biāo)識該規(guī)則所屬的接口組標(biāo)識信息;(3)規(guī)則在所屬接口組中的優(yōu)先級,用于記錄該規(guī)則在該接口組中的優(yōu)先級信息;
(4)規(guī)則分解表項數(shù)目,用于記錄所述的規(guī)則被分解后的TCAM表項數(shù)目;(5)左孩子規(guī)則節(jié)點指針,用于記錄該規(guī)則在二叉樹中的節(jié)點對應(yīng)的左孩子節(jié)點指針;(6)右孩子規(guī)則節(jié)點指針,用于記錄該規(guī)則在二叉樹中的節(jié)點對應(yīng)的右孩子節(jié)點指針;(7)前向優(yōu)先級節(jié)點指針,用于記錄該規(guī)則在TCAM中的高優(yōu)先級方向的前一個節(jié)點指針;(8)后向優(yōu)先級節(jié)點指針,用于記錄該規(guī)則在TCAM中的低優(yōu)先級方向的后一個節(jié)點指針;(9)規(guī)則分解首表項指針,用于記錄節(jié)點規(guī)則被分解后存儲于TCAM中的規(guī)則表項子集的頭節(jié)點,對應(yīng)第一條分解規(guī)則;(10)規(guī)則分解尾表項指針,用于記錄節(jié)點規(guī)則被分解后存儲于TCAM中的規(guī)則表項子集的尾節(jié)點,對應(yīng)最后一條分解規(guī)則。
本發(fā)明中,優(yōu)選平衡二叉樹對所述的靜態(tài)多接口范圍匹配表進行管理維護,當(dāng)然,也可以采用其他二叉樹或數(shù)組、鏈表等方式對所述靜態(tài)多接口范圍匹配表進行管理。
以采用平衡二叉樹對靜態(tài)多接口范圍匹配表進行管理為例,所述的靜態(tài)多接口范圍匹配表中各接口組分別對應(yīng)一個平衡二叉樹,用于對該接口組包含的各個規(guī)則進行管理,如圖1所示,所述的平衡二叉樹中各個節(jié)點分別對應(yīng)一條具體的規(guī)則,通過對應(yīng)的管理維護結(jié)構(gòu)可以對該規(guī)則進行管理維護。
在所有規(guī)則對應(yīng)的平衡二叉樹維護結(jié)構(gòu)中,被維護的范圍匹配表中同一個接口組的每一條范圍匹配規(guī)則均對應(yīng)隸屬于同一個平衡二叉樹結(jié)構(gòu)中,每個節(jié)點的優(yōu)先級低于其左子樹上的所有節(jié)點的優(yōu)先級,且高于其右子樹上的所有節(jié)點的優(yōu)先級。而且,在進行TCAM表項維護時,由樹的根節(jié)點位置開始通過比較優(yōu)先級確定節(jié)點插入位置,或被刪除節(jié)點位置,以及被更新節(jié)點位置。
在TCAM表中,也可以反向維護各節(jié)點的優(yōu)先級,同時,相應(yīng)的管理過程也需要進行相應(yīng)的調(diào)整,具體的實現(xiàn)方式顯而易見,故不再詳述。
下面以ACL規(guī)則為例對TCAM表項維護操作實現(xiàn)方法作以概述,具體以ACL規(guī)則為例對TCAM表項維護操作實現(xiàn)方法作以概述。
對于多個GroupID的情況,需要針對每一個GroupID分別建一個維護結(jié)構(gòu)—規(guī)則節(jié)點平衡二叉樹。每個GroupID對應(yīng)的維護結(jié)構(gòu)(即相應(yīng)的一組管理維護結(jié)構(gòu))之間是相互獨立的,且交織存儲于同一個ACL表中。也就是說,所述的GroupID對應(yīng)的維護結(jié)構(gòu)間不存在任何邏輯關(guān)系,所以沒有優(yōu)先級先后順序之分。且不同GroupID的規(guī)則在TCAM中的存儲在物理位置上是相互交織的。
為保證同一GroupID中的不同ACL規(guī)則對應(yīng)的表項在TCAM芯片中的優(yōu)先級順序。則需要建立相應(yīng)的GroupID維護數(shù)組(或其他形式的維護結(jié)構(gòu)),數(shù)組元素的屬性包括GroupID索引、GroupID有效狀態(tài)、GroupID組所有規(guī)則維護結(jié)構(gòu)的指針等。當(dāng)該GroupID未被使用時,其有效位被置為無效狀態(tài)。
本發(fā)明的一種具體實現(xiàn)方式是通過對每個G roupID均使用一個平衡二叉樹結(jié)構(gòu)的方式維護所屬的上層下發(fā)的范圍匹配規(guī)則,每個規(guī)則對應(yīng)平衡二叉樹上面的一個節(jié)點,一個節(jié)點又對應(yīng)由該規(guī)則分解而來的所有TCAM表項。樹中節(jié)點按照一定規(guī)則組織在一起,在添加/刪除/更新表項時通過該結(jié)構(gòu)快速定位節(jié)點在該GroupID中的邏輯位置范圍。對應(yīng)節(jié)點結(jié)構(gòu)中的兩個指針結(jié)構(gòu)為左孩子節(jié)點(Pointer of Left Child Node of this Node)及右孩子節(jié)點(Pointer of Right Child Node of this Node)。
同時,在內(nèi)存中維護一個對所有ACL的TCAM entry(TCAM入口)的索引結(jié)構(gòu),如圖2所示,該結(jié)構(gòu)以每一個entry(入口)的當(dāng)前狀態(tài)屬性為元素。通過對該索引表的查詢可以獲得每個entry當(dāng)前使用狀況的信息(即是否空閑狀態(tài))。且對于每一個已使用的entry其對應(yīng)索引中的每個狀態(tài)屬性節(jié)點均通過雙向鏈表穿起來。該數(shù)組結(jié)構(gòu)用于在插入時精確定位新規(guī)則的TCAM表項插入位置使用。
對每個GroupID使用一個平衡二叉樹中的節(jié)點采用雙向鏈表的結(jié)構(gòu)形成對應(yīng)于實際TCAM芯片中該GroupID中所有規(guī)則的以優(yōu)先級順序為唯一邏輯關(guān)系的維護鏈表(對應(yīng)節(jié)點結(jié)構(gòu)中的兩個指針結(jié)構(gòu)為Preceding Node ofthis Node in this GroupID及Behind Node of this Node in thisGroupID),在進行具體表項的插入/刪除/更新時及時找到節(jié)點在樹中的邏輯位置,以便于對范圍匹配規(guī)則的維護。
此外,在所有GroupID的每一個下發(fā)規(guī)則節(jié)點均對本節(jié)點所使用的entry信息,供插入和挪移時使用。
如圖1和圖2所示,圖1所示的節(jié)點結(jié)構(gòu)圖中的鏈表上面的每一個entry對應(yīng)圖2所示的TCAM entry維護結(jié)構(gòu)中的每一Entry屬性節(jié)點。
設(shè)置了上述各層維護結(jié)構(gòu)后,本發(fā)明便可以利用相應(yīng)的維護結(jié)構(gòu)對保存于TCAM表中的靜態(tài)多接口范圍匹配表的維護管理,具體包括表項的增加、刪除等管理。
下面首選,將結(jié)合附圖對本發(fā)明中進行表項添加操作的處理過程進行說明。需要說明的是,本發(fā)明中提及的所有節(jié)點和優(yōu)先級均指與新添加規(guī)則處于同一接口組GroupID組中的節(jié)點和優(yōu)先級。
如圖3所示,本發(fā)明中當(dāng)需要向TCAM中增加表項,即在靜態(tài)多接口范圍匹配表中增加ACL規(guī)則時,相應(yīng)的處理過程包括步驟31將ACL規(guī)則轉(zhuǎn)換為能夠存放在TCAM中的若干TCAM表項。
步驟32判斷TCAM空閑容量是否足夠插入分解后獲得的表項數(shù)目;若分解所得的表項數(shù)目大于范圍匹配表中的空閑表項數(shù)目,即TCAM中所剩余的空表不夠新規(guī)則的插入時,則過程結(jié)束,并返回插入新規(guī)則失?。蝗羲S啾眄棓?shù)目足夠新規(guī)則表項的插入時,繼續(xù)執(zhí)行步驟33。
步驟33判斷合法插入位置內(nèi)的空閑表項是否足夠新表項插入使用,如果是,則執(zhí)行步驟34,否則,執(zhí)行步驟36;該步驟具體為在本接口組對應(yīng)優(yōu)先級平衡二叉樹中根據(jù)下發(fā)規(guī)則的優(yōu)先級索引將新規(guī)則節(jié)點,并由二叉樹根節(jié)點開始比較其與樹中節(jié)點優(yōu)先級,確定節(jié)點插入位置,根據(jù)新節(jié)點在同一GroupID組中前后相鄰優(yōu)先級節(jié)點信息確定新插入規(guī)則在TCAM中的位置范圍假設(shè)新插入表項的優(yōu)先級為X,在表中已有的與X前后相鄰的塊的優(yōu)先級索引分別為M和N,則有M<X<N,其對應(yīng)表項的優(yōu)先級順序由高至低為M、X、N。
再假設(shè)M與N優(yōu)先級塊間的空閑表項數(shù)目為InterSpaceMtoN,插入優(yōu)先級為X的新ACL規(guī)則所需要的表項空間為XneedSpace,則判斷是否滿足InterSpaceMtoN>=XneedSpace,如果滿足這一條件,則執(zhí)行步驟34,否則,執(zhí)行步驟36,即采用相應(yīng)的挪移算法進行空間調(diào)整,以獲得足夠的插入新表項的空間;步驟34在合法插入位置內(nèi)搜索空閑表項;步驟35判斷搜索到的空閑表項是否足夠,如果是,則執(zhí)行步驟39,否則,繼續(xù)執(zhí)行步驟34。
步驟36當(dāng)新規(guī)則在同一GroupID相鄰兩優(yōu)先級塊之間的空閑表項不夠新規(guī)則對應(yīng)表項的插入時,則在TCAM entry屬性索引數(shù)組中,新規(guī)則兩相鄰優(yōu)先級塊之間的范圍之外的位置從上下兩個方向輪番搜索空閑表項空間;步驟37判斷搜索到的空閑表項是否足夠,當(dāng)搜索到的表項空間數(shù)目達(dá)到可以容納新添加規(guī)則所要存入的表項數(shù)目的時候則停止搜索,并執(zhí)行步驟38,否則,繼續(xù)執(zhí)行步驟36;步驟38開始進行表項挪移,具體為將搜索到的空閑表項挪移到合法優(yōu)先級位置上,即TCAM表項挪移完畢后,在合法的優(yōu)先級位置上調(diào)整得到插入TCAM表項所需要的表項空間,并執(zhí)行步驟39;步驟39進行新表項的添加操作,具體為將需要增加的ACL規(guī)則對應(yīng)的表項插入到確定的TCAM中相應(yīng)的位置處,并將相應(yīng)的信息插入到平衡二叉樹中,同時還需要對樹進行調(diào)整維護,使之保持平衡狀態(tài);另外,還需要將該節(jié)點插入規(guī)則節(jié)點雙向鏈表;至此,便實現(xiàn)了將相應(yīng)的規(guī)則增加到TCAM中。
需要說明的是,對于每一次挪移,若保證空表項與其下一個靠近新規(guī)則插入位置的相鄰優(yōu)先級塊的最靠近插入位置的那條表項進行交換,這樣可以將挪移次數(shù)抑制到最少。
下面再對根據(jù)本發(fā)明在TCAM中刪除ACL規(guī)則(即刪除相應(yīng)表項)的操作處理過程進行說明,如圖5所示,具體如下根據(jù)需要刪除規(guī)則的GroupID和在該GroupID下的優(yōu)先級(索引),查找到平衡二叉樹規(guī)則節(jié)點對應(yīng)的TCAM表項位置,并刪除表項。根據(jù)平衡二叉樹節(jié)點刪除算法表項將該節(jié)點規(guī)則和平衡二叉樹,調(diào)整二叉樹至新的平衡狀態(tài),并將被刪除規(guī)則節(jié)點剪除出二叉樹規(guī)則節(jié)點的雙向位置鏈表。然后,修改該規(guī)則在TCAM entry屬性索引數(shù)組中對應(yīng)各entry狀態(tài)節(jié)點的值,將狀態(tài)標(biāo)志置為無效。
本發(fā)明中,還可以根據(jù)需要刪除TCAM中保存的GroupDID組的ACL規(guī)則,如圖6所示,具體的實現(xiàn)方法如下將需要刪除所有規(guī)則的GroupID傳遞下來,即獲得需要刪除的規(guī)則的接口組的接口組ID,并根據(jù)該接口組ID遍歷該接口組平衡二叉樹中的每一個規(guī)則節(jié)點,刪除其對應(yīng)的所有TCAM表項值。最后,根據(jù)平衡二叉樹節(jié)點的雙向位置鏈表逐一刪除釋放節(jié)點空間。同時,修改該規(guī)則在TCAM entry屬性索引數(shù)組中對應(yīng)各entry狀態(tài)節(jié)點的值,將entry狀態(tài)標(biāo)志置為無效。最后,置GroupID維護數(shù)組中的相應(yīng)GroupID有效位置為無效。
綜上所述,本發(fā)明的實現(xiàn)可以使得靜態(tài)多接口范圍匹配表可以有效利用TCAM或類似TCAM的存儲器的優(yōu)點進行存儲管理。在實現(xiàn)本發(fā)明過程中,可以使得針對表項的搜索由硬件完成,而針對范圍匹配表項的插入、刪除、老化、更新等維護操作則由軟件完成,從而可以提高查找及維護靜態(tài)接口范圍匹配表的效率。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準(zhǔn)。
權(quán)利要求
1.一種靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,包括A、為靜態(tài)多接口范圍匹配表中各接口組分別建立相互獨立的一組關(guān)聯(lián)的管理維護結(jié)構(gòu),所述各接口組對應(yīng)的若干組管理維護結(jié)構(gòu)間相互獨立并交織存儲于共用存儲空間中,所述的一組管理維護結(jié)構(gòu)中包含各管理維護結(jié)構(gòu)之間按優(yōu)先級關(guān)聯(lián),且每個管理維護結(jié)構(gòu)對應(yīng)一個接口組下的一條規(guī)則;B、利用所述的若干組管理維護結(jié)構(gòu)對保存的所述靜態(tài)多接口范圍匹配表中各接口組下的規(guī)則進行分優(yōu)先級的管理維護。
2.根據(jù)權(quán)利要求1所述的靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,所述的步驟A包括采用數(shù)據(jù)結(jié)構(gòu)對各接口組對應(yīng)的若干組管理維護結(jié)構(gòu)進行管理,在數(shù)據(jù)結(jié)構(gòu)中需要為一個接口組下的一組管理維護結(jié)構(gòu)提供對應(yīng)接口組索引。
3.根據(jù)權(quán)利要求1所述的靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,所述的步驟A包括所述的一組管理維護結(jié)構(gòu)中的每個管理維護結(jié)構(gòu)對應(yīng)一個規(guī)則節(jié)點,所述規(guī)則節(jié)點對應(yīng)范圍匹配表中的范圍匹配規(guī)則,將靜態(tài)范圍匹配列表包含的各規(guī)則節(jié)點采用二叉樹結(jié)構(gòu)、數(shù)組結(jié)構(gòu)或鏈表結(jié)構(gòu)進行管理。
4.根據(jù)權(quán)利要求3所述的靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,所述的步驟A包括采用平衡二叉樹結(jié)構(gòu)對所述靜態(tài)多接口范圍匹配表中各接口組對應(yīng)一組管理維護結(jié)構(gòu)中包含的各個管理維護結(jié)構(gòu)之間進行按優(yōu)先級關(guān)聯(lián)。
5.根據(jù)權(quán)利要求1、2、3或4所述的靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,所述的管理維護結(jié)構(gòu)管理的信息包括規(guī)則節(jié)點平衡因子、規(guī)則所屬的接口組信息,規(guī)則在所屬接口組中的優(yōu)先級、規(guī)則分解表項數(shù)目、前面優(yōu)先級節(jié)點、后面優(yōu)先級節(jié)點、規(guī)則分解首表項和/或規(guī)則分解尾表項,且當(dāng)采用平衡二叉樹結(jié)構(gòu)關(guān)聯(lián)所述管理維護結(jié)構(gòu)時,所述的管理維護結(jié)構(gòu)管理的信息還可選地包括左孩子規(guī)則節(jié)點指針和右孩子規(guī)則節(jié)點指針。
6.根據(jù)權(quán)利要求1所述的靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,所述的靜態(tài)多接口范圍匹配表保存于三態(tài)內(nèi)容可尋址存儲器TCAM中,或者與TCAM的保存和查找特征相同的存儲器中。
7.根據(jù)權(quán)利要求1、2、3、4或6所述的靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,當(dāng)向靜態(tài)多接口范圍匹配表中增加靜態(tài)多接口范圍匹配規(guī)則時,所述的步驟B包括B1、根據(jù)所述規(guī)則所屬的接口組信息確定相應(yīng)的一組管理維護結(jié)構(gòu);B2、查找一組管理維護結(jié)構(gòu)確定所述靜態(tài)多接口范圍匹配規(guī)則增加于TCAM中的位置,并將所述的靜態(tài)多接口范圍匹配規(guī)則添加到TCAM中的相應(yīng)位置。
8.根據(jù)權(quán)利要求7所述的靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,所述的步驟B2包括B21、將所述的靜態(tài)多接口范圍匹配規(guī)則拆分為相應(yīng)的TCAM表項,判斷相應(yīng)的插入位置的空閑表項是否足夠,如果是,則執(zhí)行步驟B22,否則,執(zhí)行步驟B23;B22、將拆分后的TCAM表項按照表項所屬優(yōu)先級按相應(yīng)優(yōu)先級對應(yīng)空間比例添加到TCAM中;B23、在確定的插入位置處向低地址和向高地址搜索空閑表項,在搜索獲得足夠的空閑表項后,對這些搜索到的空閑表項進行挪移,將空閑表項挪移到插入位置后,執(zhí)行步驟B22。
9.根據(jù)權(quán)利要求8所述的靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,所述的步驟B23包括B231、在確定的插入位置沿向低地址和向高地址兩個方向按照優(yōu)先級塊搜索空閑位置,在搜索過程中記錄空閑數(shù)量,并記錄搜索到的空閑位置包含距離要添加表項位置最遠(yuǎn)的優(yōu)先級塊;B232、當(dāng)找到的空閑位置的數(shù)量足夠時,從找到的距離要添加表項最遠(yuǎn)的優(yōu)先級塊開始將優(yōu)先級塊在TCAM中的位置向與新添加表項位置相反的方向移動。
10.根據(jù)權(quán)利要求9所述的靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,所述的步驟B232包括從本優(yōu)先級塊中距離新添加表項的位置最近的表項開始,將表項移動到與本優(yōu)先級塊相鄰的空閑塊中距離新添加表項最遠(yuǎn)的位置。
11.根據(jù)權(quán)利要求1、2、3、4或6所述的靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,當(dāng)刪除靜態(tài)多接口范圍匹配規(guī)則時,所述的步驟B包括B3、查找各規(guī)則對應(yīng)管理維護結(jié)構(gòu)確定所述靜態(tài)多接口范圍匹配規(guī)則對應(yīng)的管理維護結(jié)構(gòu);B4、根據(jù)所述的管理維護結(jié)構(gòu)信息刪除TCAM中保存的該匹配規(guī)則對應(yīng)的所有表項,并修改相應(yīng)的管理維護結(jié)構(gòu)。
12.根據(jù)權(quán)利要求1、2、3、4或6所述的靜態(tài)多接口范圍匹配表的管理維護方法,其特征在于,所述的方法還包括當(dāng)需要在兩個連續(xù)優(yōu)先級的規(guī)則之間插入一條新的規(guī)則時,則需要調(diào)整各個規(guī)則對應(yīng)的優(yōu)先級絕對數(shù)值,各規(guī)則之間的相對優(yōu)先級關(guān)系不變。
全文摘要
本發(fā)明涉及一種靜態(tài)多接口范圍匹配表的管理維護方法,本發(fā)明主要包括首先,為靜態(tài)多接口范圍匹配表中各接口組分別建立相互獨立的一組關(guān)聯(lián)的管理維護結(jié)構(gòu),所述各接口組對應(yīng)的若干組管理維護結(jié)構(gòu)間相互獨立并交織存儲于共用存儲空間中,所述的一組管理維護結(jié)構(gòu)中包含各管理維護結(jié)構(gòu)之間按優(yōu)先級關(guān)聯(lián),且每個管理維護結(jié)構(gòu)單元對應(yīng)一個接口組下的一條規(guī)則;之后,再利用所述的若干組管理維護結(jié)構(gòu)對保存的所述靜態(tài)多接口范圍匹配表中各接口組下的規(guī)則進行分優(yōu)先級的管理維護。本發(fā)明的實現(xiàn)可以使得靜態(tài)多接口范圍匹配表可以有效利用TCAM或類似TCAM的存儲器的優(yōu)點進行存儲管理,從而可以提高查找及維護靜態(tài)接口范圍匹配表的效率。
文檔編號G06F11/30GK1866918SQ20051012408
公開日2006年11月22日 申請日期2005年11月28日 優(yōu)先權(quán)日2005年11月28日
發(fā)明者胡睿, 余蓁 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1