本發(fā)明涉及一種通信領(lǐng)域,尤其是涉及一種基于TCAM資源綁定查找ACL的實現(xiàn)方法及裝置。
背景技術(shù):
ACL(Access Control List,訪問控制列表)是一個有序的語句集,在交換機、路由器中被廣泛應用,它是一種基于將規(guī)則與報文進行匹配,用來允許或拒絕報文通過,從而達到對報文流量進行控制。在傳統(tǒng)的ACL匹配過程中,當路由器處理某種業(yè)務時,根據(jù)報文的某種特征,去到ACL表中逐一匹配,如果命中,則執(zhí)行相應規(guī)則中指定的動作,如果報文不匹配,則繼續(xù)匹配下一個語句。
在交換機,以及路由器中,多業(yè)務處理帶來頻繁的對ACL表的訪問,使得交換機、路由器性能大大下降。為了使交換機、路由器在某些特定復雜的應用環(huán)境中表現(xiàn)出更優(yōu)越的性能,需要一種高效實用的方法來實現(xiàn)對ACL的訪問,而TCAM正好滿足這種需求。TCAM在ACL中的應用放棄了原來對ACL表項的逐條查找匹配算法,實用特定硬件搜索,可以在極短時間即可完成對每條語句高達幾百比特位的ACL列表的搜索,從而大大提高了對ACL表的查找速度。
現(xiàn)有交換機、路由器中在實現(xiàn)對ACL表進行查找時,需要滿足多次ACL查找,并且,每一次的ACL查找可以訪問所有的TCAM寄存器,如圖1所示,ACL物理查找寄存器單元同TCAM寄存器單元做全連接(Full-Mesh),實現(xiàn)每次ACL查找都能夠訪問所有的TCAM寄存器單元,圖中所示為4次ACL查找,需要16條硬件連線,才能實現(xiàn)每次ACL查找訪問所有的TCAM寄存器單元。隨著ACL查找次數(shù)的增多,ACL物理查找寄存器單元同TCAM寄存器單元之間的硬件連線也相應的增長,若ACL查找數(shù)目為p,則硬件連線的數(shù)目為m=2∧p。
鑒于現(xiàn)有技術(shù)中實現(xiàn)ACL查找時,硬件開銷較大,并且,隨著ACL查找數(shù)目的增多,硬件連線以冪指數(shù)的方式增加,硬件開銷較大,亟需一種解決方式。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種基于TCAM資源綁定的查找ACL實現(xiàn)方法及裝置,能夠減小硬件開銷,提高查找效率。
為實現(xiàn)上述目的,本發(fā)明提出如下技術(shù)方案:一種基于TCAM資源綁定ACL的實現(xiàn)裝置,所述裝置包括:
至少一個TCAM寄存器單元,所述TCAM寄存器用于存放ACL表項;
至少一個ACL物理查找寄存器單元,所述ACL物理查找寄存器與所述TCAM寄存器相連接;以及
至少一個ACL邏輯查找寄存器單元,所述ACL邏輯查找寄存器單元與所述ACL物理查找寄存器單元相連接,通過相應配置命令控制所述ACL邏輯查找寄存器單元來訪問ACL物理查找寄存器單元,實現(xiàn)對TCAM寄存器單元進行ACL表項查找。
優(yōu)選地,所述ACL物理查找寄存器單元與所述TCAM寄存器單元一一對應連接。
優(yōu)選地,所述ACL邏輯查找寄存器單元與ACL物理查找寄存器單元之間關(guān)系為1:N,1個ACL邏輯查找寄存器單元能夠訪問N個ACL物理查找寄存器單元,其中,N為ACL物理寄存器單元的數(shù)量。
優(yōu)選地,所述ACL邏輯查找寄存器單元的數(shù)量不小于ACL物理查找寄存器單元的數(shù)量。
優(yōu)選地,所述配置命令包括如下命令:
AclLogicLookup K En[N-1:0],其中,K表示第K個ACL邏輯查找寄存器,N表示N個TCAM寄存器單元。
一種基于TCAM資源綁定查找ACL的實現(xiàn)方法,其特征在于,所述方法包括如下步驟:
S1,根據(jù)需求設(shè)定ACL邏輯寄存器單元數(shù)量;
S2,對所述ACL邏輯寄存器執(zhí)行相應配置命令,查找對應的ACL物理查找寄存器單元;
S3,所述ACL物理查找寄存器單元查找對應的TCAM寄存器單元,進行ACL表項查找。
優(yōu)選地,所述ACL物理查找寄存器單元與所述TCAM寄存器單元一一對應連接。
優(yōu)選地,所述ACL邏輯查找寄存器單元與ACL物理查找寄存器單元之間關(guān)系為1:N,1個ACL邏輯查找寄存器單元能夠訪問N個ACL物理查找寄存器單元,其中,N為ACL物理寄存器單元的數(shù)量。
優(yōu)選地,所述ACL邏輯查找寄存器單元的數(shù)量不小于ACL物理查找寄存器單元的數(shù)量。
優(yōu)選地,根據(jù)權(quán)利要求6所述的方法,其特征在于,所述配置命令包括如下命令:
AclLogicLookup K En[N-1:0],其中,K表示第K個ACL邏輯查找寄存器,N表示ACL物理查找寄存器單元的數(shù)量。
本發(fā)明的有益效果是:
本發(fā)明所揭示的基于TCAM資源綁定ACL的實現(xiàn)方法及裝置,無需在ACL物理查找寄存器單元與TCAM寄存器單元使用全連接(Full-Mesh),有效地降低交換芯片或者路由器芯片的復雜度和成本,并且,降低了查找ACL表項時的硬件開銷,提高了查找效率。
附圖說明
圖1是現(xiàn)有的ACL查找結(jié)構(gòu)示意圖;
圖2是本發(fā)明的ACL查找裝置結(jié)構(gòu)示意圖;
圖3是本發(fā)明的配置4次ACL查找結(jié)構(gòu)示意圖;
圖4是本發(fā)明的配置2次ACL查找結(jié)構(gòu)示意圖;
圖5是本發(fā)明的配置2次ACL查找邏輯效果框圖示意圖;
圖6是本發(fā)明的ACL查找方法流程圖示意圖。
具體實施方式
下面將結(jié)合本發(fā)明的附圖,對本發(fā)明實施例的技術(shù)方案進行清楚、完整的描述。
結(jié)合圖2所示,本發(fā)明所揭示的一種基于TCMA資源綁定查找ACL的實現(xiàn)裝置,所述裝置包括至少一個TCAM寄存器單元,至少一個ACL物理查找寄存器單元,以及至少一個ACL邏輯查找寄存器單元,其中,所述TCAM寄存器單元與所述ACL物理查找寄存器單元相連接,本實施例中,TCAM寄存器單元與ACL物理查找寄存器單元通過硬件連線進行連接,并且,優(yōu)選地,所述TCAM寄存器單元與ACL物理查找寄存器單元一一對應連接,即,如圖所示,每個TCAM寄存器單元通過硬件連線連接一個ACL物理查找寄存器單元;
所述ACL邏輯查找寄存器單元與ACL物理查找寄存器單元通過邏輯連線進行連接,具體的,通過相應的配置命令來控制ACL邏輯查找寄存器單元與ACL物理查找寄存器單元之間的邏輯連線,實現(xiàn)ACL邏輯寄存器單元訪問ACL物理查找寄存器單元,進一步對TCAM寄存器單元中的ACL表項進行查詢,所述ACL邏輯查找寄存器單元與ACL物理查找寄存器單元之間關(guān)系為1:N,即,1個ACL邏輯查找寄存器單元能夠訪問N個ACL物理查找寄存器單元,其中,N為ACL物理查找寄存器單元的數(shù)量,相應的配置命令為AlcLogicLookup K En[N-1:0]=Nb`0000....N,當ACL邏輯查找寄存器單元需要使能查找某一ACL物理查找寄存器單元時,只需將對應的二進制數(shù)置為1即可。
進一步地,本發(fā)明所述的裝置中,由于ACL物理查找寄存器單元與TCAM寄存器單元存在一一對應的關(guān)系,而非full-mesh連接,因此,可以減少硬件的開銷并且降低交換芯片、以及路由器芯片的復雜度和成本,同時,ACL邏輯寄存器的的數(shù)量可以根據(jù)實際工作需要進行添加,并且所述ACL邏輯寄存器的數(shù)量不大于TCAM寄存器單元的數(shù)量。
本實施例中,以4個TCAM寄存器單元、4個ACL物理查找寄存器單元,以及4個ACL邏輯查找寄存器單元為例,對本發(fā)明所揭示的基于TCAM資源綁定的ACL實現(xiàn)方法及裝置進行詳細的說明。
如圖3所示,本實施例中將所述4個TCAM寄存器單元依次編號為TCAM#0,TCAM#1,TCAM#2,TCAM#3,將所述ACL物理查找寄存器單元依次編號為ACL Lookup#0,ACL Lookup#1,ACL Lookup#2,ACL Lookup#3,將所述ACL邏輯查找寄存器單元依次編號為ACL Logic Lookup#0,ACL Logic Lookup#1,ACL Logic Lookup#2,ACL Logic Lookup#3,其中,TCAM#0與ACL Lookup#0,TCAM#1與ACL Lookup#1,TCAM#2與ACL Lookup#2,以及TCAM#3與ACL Lookup#3通過硬件連線進行連接,4個ACL邏輯寄存器單元與4個ACL物理查找寄存器單元通過邏輯連線進行連接,每次ACL查找時,都可以訪問1次、2次、3次或4次ACL物理查找寄存器單元,具體的,通過對每個ACL邏輯查找寄存器單元進行相應的配置實現(xiàn)ACL查找,其配置命令如下:
AclLogicLookup0EN[3:0];
AclLogicLookup1EN[3:0];
AclLogicLookup2EN[3:0];
AclLogicLookup3EN[3:0];
每個ACL邏輯查找寄存器單元使能時,有4位二進制數(shù),分別控制ACL邏輯查找寄存器單元訪問ACL物理查找寄存器單元進行物理查找。
更進一步的,為了控制同一次邏輯查找中,多次物理查找結(jié)果的優(yōu)先級,本實施例中,通過設(shè)置TCAM寄存器單元的優(yōu)先級,優(yōu)選地,TCAM#0>TCAM#1>TCAM#2>TCAM#3,當然,還可以通過另外增加相應數(shù)量的寄存器定義優(yōu)先級。
如圖3所示,配置4次ACL查找,每次ACL邏輯查找寄存器單元控制一次ACL物理查找寄存器單元,具體配置命令如下,
AclLogicLookup0En[3:0]=4`b0001;
AclLogicLookup1En[3:0]=4`b0010;
AclLogicLookup2En[3:0]=4`b0100;
AclLogicLookup3En[3:0]=4`b1000;
通過上述方式對每個ACL邏輯寄存器單元進行配置,能夠?qū)崿F(xiàn)每次ACL邏輯查找只能通過一個ACL物理查找寄存器單元訪問一個TCAM寄存器單元。
更進一步地,如圖4所示,配置2次ACL查找,具體配置命令如下;
AclLogicLookup0En[3:0]=4`b0011;
AclLogicLookup1En[3:0]=4`b0000;
AclLogicLookup2En[3:0]=4`b1101;
AclLogicLookup3En[3:0]=4`b0000;
通過上述方式對每個ACL邏輯寄存器單元進行配置,ACL Logic Lookup#0控制2次ACL物理查找寄存器單元進行物理查找,ACL Logic Lookup#2控制2次ACL物理查找寄存器單元進行物理查找,4個TCAM寄存器單元都可以被訪問,通過上述方式進行配置,只需通過2次ACL邏輯查找就能夠?qū)?個TCAM寄存器單元進行查找后,有效的減少了硬件的開銷。
由于設(shè)置了TCAM寄存器單元的優(yōu)先級,在ACL查找結(jié)果中,可能出現(xiàn)不同,本實施例中,以ACL Logic Lookup#0為例,對ACL查找結(jié)果進行進一步的說明;
在ACL Logic Lookup#0中,TCAM#0和TCAM#1都會被查找,會產(chǎn)生4中結(jié)果,具體的,
1:TCAM#0和TCAM#1都未查詢到相關(guān)的ACL表項,則無需對報文執(zhí)行相應的處理;
2:TCAM#0查詢到相關(guān)的ACL表項,TCAM#1中未查詢到相關(guān)的ACL表項,則使用TCAM#0中的ACL表項對報文執(zhí)行相應的處理;
3:TCAM#0未查詢到相關(guān)的ACL表項,TCAM#1查詢到相關(guān)的ACL表項,則使用TCAM#1中的ACL表項對報文執(zhí)行相應的處理;
4:TCAM#0和TCAM#1都查詢到相關(guān)的ACL表項,由于TCAM#0的優(yōu)先級大于TCAM#1的優(yōu)先級,則使用TCAM#0中的ACL表項對報文執(zhí)行相應的處理。
因此,軟件設(shè)計時,無需感知TCAM#0和TCAM#1,只需要都當做TCAM#0來處理,看到的TCAM大小變?yōu)樵瓉淼?倍,配置ACL表項時,優(yōu)先級高的配置到TCAM頂部,優(yōu)先級低的配置到TCAM底部,邏輯效果如圖5所示,
如圖6所示,一種基于TCAM資源綁定查找ACL的實現(xiàn)方法,所述方法包括如下步驟:
S1,根據(jù)需求設(shè)定ACL邏輯寄存器單元數(shù)量;
S2,對所述ACL邏輯寄存器進行相應配置,查找對應的ACL物理查找寄存器單元;
S3,所述ACL物理查找寄存器單元查找對應的TCAM寄存器單元,進行ACL查找。
其中,所述ACL邏輯寄存器單元的數(shù)量不大于TCAM寄存器的數(shù)量。
對所述ACL邏輯寄存器進行配置,其配置命令如下:
AclLogicLookup K En[N-1:0],其中,K表示第K個ACL邏輯查找寄存器,N表示ACL物理查找寄存器單元的數(shù)量。
本發(fā)明所揭示的基于TCAM資源綁定的ACL實現(xiàn)方法及裝置,無需在ACL物理查找寄存器單元與TCAM寄存器單元使用全連接(Full-Mesh),有效地降低交換芯片或者路由器芯片的復雜度和成本,并且,降低了查找ACL表項時的硬件開銷,提高了查找效率,同時,本發(fā)明所述的裝置擴展性好,后續(xù)需要增加ACL查找數(shù)目時,增加硬件連線數(shù)目和ACL查找數(shù)目是線性相關(guān),而不是冪指數(shù)相關(guān);并且本發(fā)明所述的方法中,只需要增加對應的邏輯連線的ACL邏輯查找控制寄存器單元,ACL查找結(jié)果無需新增邏輯,可以沿用既有的邏輯完成。
本發(fā)明的技術(shù)內(nèi)容及技術(shù)特征已揭示如上,然而熟悉本領(lǐng)域的技術(shù)人員仍可能基于本發(fā)明的教示及揭示而作種種不背離本發(fā)明精神的替換及修飾,因此,本發(fā)明保護范圍應不限于實施例所揭示的內(nèi)容,而應包括各種不背離本發(fā)明的替換及修飾,并為本專利申請權(quán)利要求所涵蓋。