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