專利名稱:訪問控制列表規(guī)則的更新方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域中的訪問控制列表技術(shù),具體涉及訪問控制列表規(guī) 則的更新方法和訪問控制列表規(guī)則的更新裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大和流量的增加,對(duì)網(wǎng)絡(luò)安全的控制和對(duì)帶寬的分配 成為網(wǎng)絡(luò)管理的重要內(nèi)容。通過對(duì)報(bào)文進(jìn)行過濾,可以有效防止非法用戶對(duì) 網(wǎng)絡(luò)的訪問,同時(shí)也可以控制流量,節(jié)約網(wǎng)絡(luò)資源。
采用ACL (Access Control List,訪問控制列表)規(guī)則過濾報(bào)文是較為 常用的報(bào)文過濾手段。當(dāng)網(wǎng)絡(luò)設(shè)備的端口接收到報(bào)文后,根據(jù)當(dāng)前端口上應(yīng) 用的ACL規(guī)則對(duì)報(bào)文的字段進(jìn)行分析,在識(shí)別出特定的報(bào)文之后,根據(jù)預(yù) 先設(shè)定的策略對(duì)報(bào)文執(zhí)行相應(yīng)動(dòng)作,從而實(shí)現(xiàn)報(bào)文過濾。在具體應(yīng)用中,根 據(jù)實(shí)現(xiàn)功能的不同,ACL規(guī)則具有不同優(yōu)先級(jí)。
目前主流的ACL規(guī)則存儲(chǔ)方式是在三態(tài)內(nèi)容可尋址存儲(chǔ)器(TCAM, Ternary Content — Addressable Memory )。圖1為現(xiàn)有技術(shù)中在TCAM存儲(chǔ) ACL規(guī)則的存儲(chǔ)示意圖。如圖1所示,TCAM被劃分為多個(gè)條目,每個(gè)條 目(entry )提供一個(gè)ACL硬件資源,且每個(gè)entry具有一個(gè)索引號(hào)(Index )。 在TCAM存儲(chǔ)ACL規(guī)則時(shí),每個(gè)ACL硬件資源可存儲(chǔ)一個(gè)ACL規(guī)則。在 TCAM中,按照ACL規(guī)則優(yōu)先級(jí)的高低來對(duì)ACL規(guī)則進(jìn)行排序。圖1中 entry左側(cè)的數(shù)字表示entry的索引號(hào),entry內(nèi)部的數(shù)字表示ACL規(guī)則優(yōu)先 級(jí)。索引號(hào)小的entry存儲(chǔ)的ACL規(guī)則優(yōu)先級(jí)高,索引號(hào)大的entry存儲(chǔ)的 ACL規(guī)則優(yōu)先級(jí)低。
當(dāng)向TCAM插入新ACL規(guī)則時(shí),根據(jù)TCAM中已有ACL規(guī)則的優(yōu)先級(jí),確定待插入ACL規(guī)則的插入位置,保證插入后各ACL規(guī)則的優(yōu)先級(jí)從 高到底順序排列。如果插入的ACL規(guī)則優(yōu)先級(jí)比已有ACL規(guī)則的最低優(yōu)先 級(jí)還低或者與之相等,那么如圖2所示,可以把待插入的ACL規(guī)則直接插 入到第 一個(gè)空閑的entry中。如果待插入ACL規(guī)則的優(yōu)先級(jí)介于已有ACL 規(guī)則的最高優(yōu)先級(jí)和最低優(yōu)先級(jí)之間,那么如圖3所示,就需要把優(yōu)先級(jí)低 于待插入ACL規(guī)則的所有已有ACL規(guī)則都分別向后移動(dòng)一個(gè)entry,然后 再向騰出的空閑entry中插入ACL規(guī)則。如果待插入ACL規(guī)則的優(yōu)先級(jí)比 所有已有ACL規(guī)則的優(yōu)先級(jí)都高,那么就需要把所有已有ACL規(guī)則分別向 后移動(dòng)一個(gè)entry,然后再把待插入ACL *見則插入到第 一個(gè)entry中。
當(dāng)從TCAM刪除已有ACL規(guī)則時(shí),如果刪除的ACL規(guī)則并非處于最 后一個(gè)entry,則會(huì)觸發(fā)重新排序,使得排序后任意兩個(gè)entry之間均沒有空 閑entry 。
可見,采用現(xiàn)有的ACL規(guī)則更新方式,在絕大多數(shù)應(yīng)用情況下,都會(huì) * 2士 a m _M siil舌4fr逸 4rr莩isi — fi+ * +魯曰/f+水fes a m
規(guī)則,就需要對(duì)這些ACL規(guī)則不斷的進(jìn)行重新排序。從以上對(duì)排序過程的 描述可以看出,排序是通過移動(dòng)ACL規(guī)則的位置實(shí)現(xiàn)。由于移動(dòng)一個(gè)ACL 規(guī)則需要對(duì)硬件資源進(jìn)行操作,因此大量的移動(dòng)操作必然會(huì)頻繁地操作硬 件,耗費(fèi)大量系統(tǒng)CPU資源,并且增加時(shí)間開銷,導(dǎo)致設(shè)備整體性能的降 低。對(duì)于采用TCAM之外的存儲(chǔ)介質(zhì)存儲(chǔ)ACL規(guī)則的情況,只要按照ACL 規(guī)則優(yōu)先級(jí)存儲(chǔ),都會(huì)存在上述缺陷。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種訪問控制列表規(guī)則的更新方法,能夠減少 重新排序的次數(shù),從而降低排序帶來的資源耗費(fèi)。 該方法包括
將存儲(chǔ)空間劃分為多個(gè)區(qū)塊,每個(gè)區(qū)塊具有多個(gè)用于記錄ACL規(guī)則的ACL 硬件資源;位置在前的區(qū)塊所記錄ACL規(guī)則的優(yōu)先級(jí)大于或等于位置在后的區(qū)塊所記錄ACL規(guī)則的優(yōu)先級(jí);
每次插入ACL規(guī)則時(shí),在各區(qū)塊中查找與待插入ACL規(guī)則具有相同優(yōu) 先級(jí)的ACL規(guī)則;如果查找到,則將待插入ACL規(guī)則插入與其具有相同優(yōu) 先級(jí)的ACL規(guī)則所屬區(qū)塊中;如果沒有查找到,則將優(yōu)先級(jí)低于待插入ACL 規(guī)則的所有ACL規(guī)則從當(dāng)前所在區(qū)塊中移到相鄰的后一個(gè)區(qū)塊中,將待插 入ACL規(guī)則插入因移動(dòng)變空的空區(qū)塊中。
較佳地,不同區(qū)塊具有的ACL硬件資源數(shù)目相同。
其中,所述將待插入ACL規(guī)則插入與其具有相同優(yōu)先級(jí)的ACL規(guī)則所 屬區(qū)塊中,包括
塊;
如果查找到的區(qū)塊具有空閑ACL硬件資源,則將待插入ACL規(guī)則插入 該空閑ACL硬件資源中;
如果查找到的區(qū)塊沒有空閑ACL硬件資源,且與該查找到的區(qū)塊相鄰 的后一個(gè)區(qū)塊被占用,則將所有區(qū)塊中優(yōu)先級(jí)低于待插入ACL規(guī)則的ACL 規(guī)則從當(dāng)前所在區(qū)塊移到相鄰的后一個(gè)區(qū)塊中,將待插入ACL規(guī)則插入因 移動(dòng)變空的空區(qū)塊。
其中,確定沒有查找到所述與待插入ACL規(guī)則具有相同優(yōu)先級(jí)的ACL 身見則之后,該方法進(jìn)一步包括
判斷所有區(qū)塊內(nèi)的ACL規(guī)則中,是否存在優(yōu)先級(jí)低于待插入ACL規(guī)則 的ACL規(guī)則;
如果是,則執(zhí)行所述將優(yōu)先級(jí)低于待插入ACL規(guī)則的所有ACL規(guī)則從 當(dāng)前所在區(qū)塊移到相鄰的后一個(gè)區(qū)塊中,將待插入ACL規(guī)則插入因移動(dòng)變 空的空區(qū)塊中的操作;
如果否,則將待插入ACL規(guī)則插入與最后一個(gè)被占用區(qū)塊相鄰的空區(qū)塊。
其中,向所述空區(qū)塊插入ACL規(guī)則為將待插入ACL規(guī)則插入空區(qū)塊的第 一個(gè)ACL硬件資源。
其中,向具有空閑ACL硬件資源的區(qū)塊插入ACL規(guī)則為將待插入 ACL規(guī)則插入?yún)^(qū)塊中第一個(gè)空閑ACL硬件資源。
較佳地,該方法進(jìn)一 步包括從區(qū)塊中刪除ACL規(guī)則后,如果被刪除 ACL規(guī)則所在區(qū)塊變?yōu)榭諈^(qū)塊,則以區(qū)塊為單位進(jìn)行ACL規(guī)則排序,消除 任意兩個(gè)被占用區(qū)塊之間的空區(qū)塊;
和/或,從區(qū)塊刪除ACL規(guī)則后,對(duì)被刪除ACL規(guī)則所在區(qū)塊內(nèi)的所 有ACL規(guī)則進(jìn)行排序,消除區(qū)塊內(nèi)任意兩個(gè)被占用ACL硬件資源之間的空 閑ACL硬件資源。
較佳地,該方法進(jìn)一步包括在所述插入ACL規(guī)則時(shí),判斷是否所有 區(qū)塊均被占用;如果是,則取消區(qū)塊的劃分,以ACL規(guī)則為單位進(jìn)行排序, 消除任意兩個(gè)ACL規(guī)則之間的空閑ACL硬件資源,然后插入ACL規(guī)則; 否則,保持區(qū)塊劃分,執(zhí)行所述在各區(qū)塊中查找與待插入ACL規(guī)則具有相 同優(yōu)先級(jí)的ACL規(guī)則的操作。
較佳地,所述移動(dòng)操作之前,進(jìn)一步包括判斷是否所有區(qū)塊均被占用; 如果是,則取消區(qū)塊的劃分,以ACL規(guī)則為單位進(jìn)行排序,消除任意兩個(gè) ACL規(guī)則之間的空閑ACL硬件資源,然后插入ACL規(guī)則;否則,保持區(qū)塊 劃分,執(zhí)行所述移動(dòng)操作。
所述存儲(chǔ)空間為三態(tài)內(nèi)容可尋址存儲(chǔ)器TCAM;所述每個(gè)區(qū)塊具有多個(gè) ACL硬件資源為不同區(qū)塊包含相同數(shù)目的條目, 一個(gè)條目對(duì)應(yīng)一個(gè)ACL 硬件資源。
本發(fā)明還提供了 一種訪問控制列表規(guī)則的更新裝置,能夠減少重新排序 的次數(shù),從而降低排序帶來的資源耗費(fèi)。
該裝置包括存儲(chǔ)單元、分區(qū)單元和插入處理單元; 所述存儲(chǔ)單元,用于存儲(chǔ)ACL規(guī)則;
所述分區(qū)單元,用于將所述存儲(chǔ)單元中的存儲(chǔ)空間劃分為多個(gè)區(qū)塊,每 個(gè)區(qū)塊具有多個(gè)用于記錄ACL規(guī)則的ACL硬件資源;位置在前的區(qū)塊所記錄ACL規(guī)則的優(yōu)先級(jí)大于或等于位置在后的區(qū)塊所記錄ACL規(guī)則的優(yōu)先 級(jí);
所述插入處理單元包括判斷模塊、相同優(yōu)先級(jí)處理模塊和不同優(yōu)先級(jí)處 理模塊;
所述判斷模塊,用于每次插入ACL規(guī)則時(shí),在各區(qū)塊中查找與待插入 ACL規(guī)則具有相同優(yōu)先級(jí)的ACL規(guī)則;如果查找到,則通知相同優(yōu)先級(jí)處 理模塊,否則通知不同優(yōu)先級(jí)處理模塊;
所述相同優(yōu)先級(jí)處理模塊,在接到通知后,將待插入ACL規(guī)則插入與 其具有相同優(yōu)先級(jí)的ACL規(guī)則所屬區(qū)塊中;
所述不同優(yōu)先級(jí)處理模塊,在接到通知后,將優(yōu)先級(jí)低于待插入ACL 規(guī)則的所有ACL規(guī)則從當(dāng)前所在區(qū)塊移到相鄰的后一個(gè)區(qū)塊中,將待插入 ACL規(guī)則插入因移動(dòng)變空的空區(qū)塊中。
其中,所述分區(qū)單元將三態(tài)內(nèi)容可尋址存儲(chǔ)器TCAM的存儲(chǔ)空間劃分 為多個(gè)連續(xù)的區(qū)塊,不同區(qū)塊具有的相同數(shù)目的條目, 一個(gè)條目對(duì)應(yīng)一個(gè) ACL石更件資源。
其中,所述相同優(yōu)先級(jí)處理模塊包括查找子模塊、第一子模塊和第二子
模塊;
所述查找子模塊,在接到通知后,查找與待插入ACL規(guī)則具有相同優(yōu) 先級(jí)的ACL規(guī)則占用的最后一個(gè)區(qū)塊,將查找到的區(qū)塊信息發(fā)送給第一子 模塊和第二子模塊;
所述第一子模塊,在查找到的區(qū)塊具有空閑ACL硬件資源時(shí),將待插 入ACL規(guī)則插入該空閑ACL硬件資源中;
所述第二子模塊,在查找到的區(qū)塊沒有空閑ACL硬件資源,且與該查 找到的區(qū)塊相鄰的后 一個(gè)區(qū)塊被占用時(shí),將所有區(qū)塊中優(yōu)先級(jí)低于待插入 ACL規(guī)則的ACL規(guī)則從當(dāng)前所在區(qū)塊移到相鄰的后一個(gè)區(qū)塊中,將待插入 ACL規(guī)則插入因移動(dòng)變空的空區(qū)塊。
較佳地,所述不同優(yōu)先級(jí)處理模塊進(jìn)一步用于,在接到通知后,判斷所有區(qū)塊內(nèi)的ACL規(guī)則中,是否存在優(yōu)先級(jí)低于待插入ACL規(guī)則的ACL規(guī) 則;如果是,則執(zhí)行所述將優(yōu)先級(jí)低于待插入ACL規(guī)則的所有ACL規(guī)則從 當(dāng)前所在區(qū)塊中移到相鄰的后 一個(gè)區(qū)塊中,將待插入ACL規(guī)則插入因移動(dòng) 變空的空區(qū)塊中的操作;如果否,則將待插入ACL規(guī)則插入與最后一個(gè)被 占用區(qū)塊相鄰的空區(qū)塊中。
較佳地,該裝置進(jìn)一步包括刪除處理單元,用于從區(qū)塊刪除ACL規(guī)則 后,對(duì)被刪除ACL規(guī)則所在區(qū)塊內(nèi)的所有ACL規(guī)則進(jìn)行排序,消除區(qū)塊內(nèi) 任意兩個(gè)被占用ACL硬件資源之間的空閑ACL硬件資源;和/或,從區(qū)塊 刪除ACL規(guī)則后,如果被刪除ACL規(guī)則所在區(qū)塊變?yōu)榭諈^(qū)塊,則以區(qū)塊為 單位進(jìn)行ACL規(guī)則排序,消除任意兩個(gè)被占用區(qū)塊之間的空區(qū)塊。
根據(jù)以上技術(shù)方案可見,本發(fā)明將存儲(chǔ)空間劃分為多個(gè)區(qū)塊,相同優(yōu)先 級(jí)的ACL規(guī)則插入相同區(qū)塊,不同優(yōu)先級(jí)的ACL規(guī)則插入不同區(qū)塊。在插 入ACL規(guī)則時(shí),如果與待插入ACL規(guī)則具有相同優(yōu)先級(jí)的ACL規(guī)則所在 block還有空間,則無需觸發(fā)排序過程,只有在所有block中均沒有與待插 入ACL規(guī)則優(yōu)先級(jí)相同的ACL規(guī)則時(shí),才觸發(fā)排序操作。極大的減少了重 新排序的次數(shù),從而降低排序帶來的系統(tǒng)資源耗費(fèi)。
圖1為現(xiàn)有技術(shù)中在TCAM存儲(chǔ)ACL規(guī)則的存儲(chǔ)示意圖。 圖2為現(xiàn)有技術(shù)中插入ACL規(guī)則后的效果圖之一 。 圖3為現(xiàn)有技術(shù)中插入ACL規(guī)則后的效果圖之二 。 圖4為本發(fā)明中區(qū)塊劃分示意圖。
圖5a為采用本發(fā)明方案插入ACL規(guī)則之前的存儲(chǔ)示意圖。
圖5b為采用現(xiàn)有技術(shù)插入ACL規(guī)則之前的存儲(chǔ)示意圖。
圖6a為采用本發(fā)明方案插入優(yōu)先級(jí)為9的ACL規(guī)則后的效果圖。
圖6b為采用現(xiàn)有技術(shù)插入優(yōu)先級(jí)為9的ACL規(guī)則后的效果圖。
圖7a為采用本發(fā)明方案插入優(yōu)先級(jí)為8的ACL規(guī)則后的效果圖。圖7b為采用現(xiàn)有技術(shù)插入優(yōu)先級(jí)為8的ACL規(guī)則后的效果圖。 圖8a為采用本發(fā)明方案插入優(yōu)先級(jí)為3的ACL規(guī)則后的效果圖。 圖8b為采用現(xiàn)有技術(shù)插入優(yōu)先級(jí)為3的ACL規(guī)則后的效果圖。 圖9a為采用本發(fā)明方案插入優(yōu)先級(jí)為4的ACL規(guī)則后的效果圖。 圖9b為采用現(xiàn)有技術(shù)插入優(yōu)先級(jí)為4的ACL規(guī)則后的效果圖。 圖10a為采用本發(fā)明方案兩次插入4個(gè)ACL規(guī)則后的效果圖。 圖10b為采用現(xiàn)有技術(shù)兩次插入4個(gè)ACL規(guī)則后的效果圖。 圖11 a為采用本發(fā)明方案三次插入4個(gè)ACL規(guī)則后的效果圖。 圖1 lb為采用現(xiàn)有技術(shù)三次插入4個(gè)ACL規(guī)則后的效果圖。 圖12為采用本發(fā)明方案在圖11的基礎(chǔ)上再插入優(yōu)先級(jí)為8的ACL規(guī) 則后的效果圖。
圖13為本發(fā)明實(shí)施例中ACL規(guī)則的更新裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面結(jié)合附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
本發(fā)明為一種ACL規(guī)則的更新方案,其基本思想為將存儲(chǔ)空間劃分 為多個(gè)區(qū)塊,稱為block,每個(gè)block包含若干個(gè)ACL硬件資源。位置在前 的block所記錄ACL規(guī)則的優(yōu)先級(jí)大于或等于位置在后的區(qū)塊所記錄ACL 規(guī)則的優(yōu)先級(jí)。
本發(fā)明插入ACL規(guī)則的原則是相同優(yōu)先級(jí)的ACL規(guī)則放入相同的 block,不同優(yōu)先級(jí)的ACL失見則i文入不同的block。
每次插入ACL規(guī)則時(shí),在各block中查找與待插入ACL規(guī)則優(yōu)先級(jí)相 同的ACL規(guī)則,如果查找到,則直接將待插入ACL規(guī)則插入與其具有相同 優(yōu)先級(jí)的ACL規(guī)則所屬block中,無需進(jìn)行重新排序和ACL規(guī)則的移動(dòng)。 如果沒有查找到,則將優(yōu)先級(jí)低于待插入ACL規(guī)則的所有ACL規(guī)則從當(dāng)前 所在block中移到相鄰的后 一個(gè)block中,將待插入ACL規(guī)則插入因移動(dòng)變 空的空block中??梢?,采用本發(fā)明的更新方案,在插入ACL規(guī)則時(shí),如果相應(yīng)block 還有空間,則無需觸發(fā)排序過程,只有在所有block中均沒有與待插入ACL 規(guī)則優(yōu)先級(jí)相同的ACL規(guī)則時(shí),才觸發(fā)排序操作,極大地減少了重新排序 的次數(shù),從而降低排序帶來的系統(tǒng)資源耗費(fèi)。
在實(shí)際中,廣泛采用TCAM作為ACL規(guī)則的存儲(chǔ)介質(zhì)。以下以TCAM 作為存儲(chǔ)介質(zhì)為例,對(duì)本發(fā)明的方案進(jìn)行詳細(xì)描述。
首先,按照上述block的劃分方式對(duì)TCAM的存儲(chǔ)空間進(jìn)行劃分,將 TCAM的存儲(chǔ)空間劃分為多個(gè)block,每個(gè)block包含若干個(gè)entry,每個(gè)entry 對(duì)應(yīng) 一個(gè)ACL硬件資源。具體每個(gè)block的entry數(shù)量可以由用戶根據(jù)實(shí)際 需要設(shè)定,設(shè)定時(shí)綜合考慮設(shè)備性能和資源耗費(fèi)。這里假定TCAM包括400 個(gè)ACL硬件資源,每個(gè)block包含4個(gè)entry,那么可以劃分出100個(gè)block。 具體劃分情況如圖4所示。entry0的優(yōu)先級(jí)最高,entry399的優(yōu)先級(jí)最低。
在插入ACL規(guī)則時(shí),首先確定待插入ACL規(guī)則的優(yōu)先級(jí);
行如下操作查找與待插入ACL規(guī)則具有相同優(yōu)先級(jí)的ACL規(guī)則占用的最 后一個(gè)block;如果查找到的block具有空閑entry,則直接將待插入ACL #見 則插入到該block的空閑entry中;如果查找到的block已滿且與該block相 鄰的后一個(gè)block被其它優(yōu)先級(jí)的ACL規(guī)則占用,則將所有block中優(yōu)先級(jí) 低于待插入ACL規(guī)則的ACL規(guī)則,從當(dāng)前所在block移到相鄰的后一個(gè) block中,然后將待插入ACL規(guī)則插入因移動(dòng)空出的block中。在向空block 插入ACL規(guī)則時(shí),插入到空block內(nèi)的首個(gè)entry中。
括兩種情況
情況1 、待插入ACL規(guī)則的優(yōu)先級(jí)高于所有block中的ACL規(guī)則;或 者,待插入ACL規(guī)則的優(yōu)先級(jí)介于所有block中各ACL規(guī)則的最高優(yōu)先級(jí) 和最低優(yōu)先級(jí)之間;
情況2、待插入ACL規(guī)則的優(yōu)先級(jí)低于所有block中的ACL規(guī)則。為了區(qū)分這兩種情況,在確定待插入ACL規(guī)則的優(yōu)先級(jí)與已有ACL規(guī) 則的優(yōu)先級(jí)沒有重合后,進(jìn)一步判斷所有block內(nèi)的ACL規(guī)則中,是否存 在優(yōu)先級(jí)低于待插入ACL規(guī)則的ACL規(guī)則,如果是,則視為情況l,如果 否,則視為情況2。
針對(duì)情況1,將優(yōu)先級(jí)低于待插入ACL規(guī)則的所有ACL規(guī)則從當(dāng)前所 在block移到相鄰的后一個(gè)block中,將待插入ACL規(guī)則插入因移動(dòng)變空的 block。
更具體地進(jìn)行如下操作當(dāng)待插入ACL ^見則的優(yōu)先級(jí)高于所有block 中的ACL規(guī)則時(shí),如果第 一個(gè)block沒有被占用,則將待插入ACL直接插 入到第一個(gè)block中;如果第一個(gè)block已經(jīng)被占用,則將所有ACL規(guī)則從 當(dāng)前所在block移到相鄰的后一個(gè)block中,被移動(dòng)的ACL規(guī)則在block中 的相對(duì)位置不變,然后將待插入ACL規(guī)則插入第一個(gè)block中。在插入時(shí), 插入到第 一個(gè)block的空閑entry中,較佳地,插入第 一個(gè)block的首個(gè)entry 中。
當(dāng)待插入ACL規(guī)則的優(yōu)先級(jí)介于所有block中各ACL規(guī)則的最高優(yōu)先 級(jí)和最低優(yōu)先級(jí)之間時(shí),將優(yōu)先級(jí)低于待插入ACL規(guī)則的所有ACL規(guī)則從 當(dāng)前所在block移到相鄰的后一個(gè)block中,被移動(dòng)的ACL規(guī)則在block中 的相對(duì)位置不變,然后將待插入的ACL規(guī)則插入移動(dòng)后空出的空block中。 同樣,在插入時(shí),插入到空出的block的首個(gè)entry中。
針對(duì)情況2,將待插入ACL規(guī)則插入與最后一個(gè)被占用區(qū)塊相鄰的空 區(qū)塊中。
更具體地進(jìn)行如下才喿作從第一個(gè)block開始查找,找到一個(gè)空閑的 block,將待插入ACL規(guī)則插入查找到的空閑block中。同樣,在插入時(shí), 插入到第一個(gè)空閑block內(nèi)的首個(gè)entry中。
以上是插入ACL規(guī)則的處理方法。在實(shí)際中,刪除已有ACL規(guī)則也是 更新操作的一種形式。如果區(qū)塊中的ACL規(guī)則被刪除,則可能出現(xiàn)兩種情 況,其一 從區(qū)塊中刪除ACL規(guī)則后,該刪除沒有導(dǎo)致被刪除ACL規(guī)則所
消除區(qū)塊內(nèi)任意兩個(gè)被占用entry之間的空閑entry,該空閑entry是因刪除 ACL規(guī)則產(chǎn)生的。排序操作為將與被刪除ACL規(guī)則處于同一 block且位 于被刪除ACL規(guī)則之后的各ACL規(guī)則向前移動(dòng)若干個(gè)entry,直到任意兩 個(gè)#皮占用entry之間的空閑entry被_填滿。
其二從區(qū)塊中刪除ACL規(guī)則后,導(dǎo)致被刪除的ACL規(guī)則所在block 為空,且該空block后面還有被占用的block,以block為單位進(jìn)行ACL規(guī) 則排序,消除任意兩個(gè)被占用block之間的空block。該排序操作為將每 個(gè)空block之后的所有block內(nèi)容向前移動(dòng)若干個(gè)block,直到任意兩個(gè)被占 用block之間的空閑block對(duì)皮^真入夫見則。
上述刪除后的排序操作可以在下一次出現(xiàn)待插入ACL規(guī)則后,且在插 入之前執(zhí)行。
當(dāng)所有block均被占用后,如果需要對(duì)block進(jìn)行后移操作,將導(dǎo)致最 后一個(gè)block中的ACL規(guī)則丟失,為了最大限度的容納ACL規(guī)則,當(dāng)所有 block均被占用且需要對(duì)任何一個(gè)block進(jìn)行后移操作時(shí),本發(fā)明實(shí)施例判 斷是否所有block均被占用,如果是,則取消block的劃分,以ACL規(guī)則為 單位進(jìn)行排序,消除任意兩個(gè)ACL規(guī)則之間的空閑entry,然后采用現(xiàn)有的 插入方式插入ACL規(guī)則;如果還有空block,則允許4丸行后移操作。
在實(shí)際中,還可以在下發(fā)待插入ACL規(guī)則時(shí),判斷是否所有block均 被占用,如果是,則取消block的劃分,以ACL規(guī)則為單位進(jìn)行排序,消 除任意兩個(gè)ACL規(guī)則之間的空閑entry,然后采用現(xiàn)有的插入方式插入ACL 規(guī)則;如果還有空block,則執(zhí)行根據(jù)待插入ACL規(guī)則的優(yōu)先級(jí)判斷是否有 相同優(yōu)先級(jí)的ACL的操作及其后續(xù)流程。
本發(fā)明的技術(shù)效果。
假設(shè),ACL硬件資源中已經(jīng)存在優(yōu)先級(jí)分別為10、 8、 7、 4的4條ACL規(guī)則。圖5a示出的采用本發(fā)明實(shí)施例區(qū)塊劃分的當(dāng)前存儲(chǔ)效果。圖5b示出 了采用現(xiàn)有技術(shù)的當(dāng)前存儲(chǔ)效果。
情況①插入優(yōu)先級(jí)為9的ACL規(guī)則
采用本發(fā)明實(shí)施例的插入方式將優(yōu)先級(jí)分別為8、7和4的這3個(gè)block 內(nèi)容分別向后移動(dòng)一個(gè)block,然后再把優(yōu)先級(jí)為9的ACL規(guī)則插入到空出 的block2的第一個(gè)entry中。插入效果參見圖6a。
采用現(xiàn)有的插入方式將優(yōu)先級(jí)為8、 7和4的這3個(gè)entry分別向后移 動(dòng)一個(gè)entry,然后再才巴優(yōu)先級(jí)為9的ACL規(guī)則插入到空出的entry中。插 入效果參見圖6b。
情況②接著,插入優(yōu)先級(jí)為8的ACL規(guī)則
采用本發(fā)明實(shí)施例的插入方式由于block3的第一個(gè)entry的優(yōu)先級(jí)為 8,且block3有空閑entry,所以可以將優(yōu)先級(jí)為8的待插入ACL規(guī)則直接 插入到block3的第二個(gè)entry中。插入效果參見圖7a。
采用現(xiàn)有的插入方式需要把優(yōu)先級(jí)為7和4的這兩個(gè)entry分別向后 移動(dòng)一個(gè)entry,然后再將優(yōu)先級(jí)為8的待插入ACL ^見則插入空出的entry 中。插入效果參見圖7b。
情況③4妄著,插入優(yōu)先級(jí)為3的ACL規(guī)則
采用本發(fā)明實(shí)施例的插入方式由于優(yōu)先級(jí)為3低于已有的任何一個(gè) ACL規(guī)則,因此,可以直接將待插入ACL規(guī)則插入到優(yōu)先級(jí)為4的block5 后的空閑block中,即block6的第 一個(gè)entry中。插入效果參見圖8a。
采用現(xiàn)有的插入方式將待插入ACL規(guī)則直接插入到優(yōu)先級(jí)為4的 entry后的空閑entry中。插入效果參見圖8b。
情況 接著,插入優(yōu)先級(jí)為4的ACL規(guī)則
采用本發(fā)明實(shí)施例的插入方式由于block5中第 一個(gè)entry的優(yōu)先級(jí)為 4,且block5有空閑entry,所以可以將待插入ACL規(guī)則直接插入到block5 的第二個(gè)entry中。插入效果參見圖9a。
采用現(xiàn)有的插入方式需要將優(yōu)先級(jí)為3的entry向后移動(dòng)一個(gè)entry,然后再把待插入ACL規(guī)則插入到空出的entry中。插入效果參見圖9b。
假設(shè)多次下發(fā)多個(gè)ACL規(guī)則,且每次下發(fā)的ACL規(guī)則包括優(yōu)先級(jí)為9、
8、 3和4的ACL規(guī)則。如果在圖5所示插入前初始狀態(tài)的基礎(chǔ)上,下發(fā)3
次這樣的規(guī)則組,那么,通過上面列舉的例子可以看出
第一次下發(fā)優(yōu)先級(jí)分別為9、 8、 3和4的ACL規(guī)則時(shí),采用本發(fā)明實(shí)
施例的插入方式只有在插入優(yōu)先級(jí)為9的ACL規(guī)則時(shí)才需要進(jìn)行重新排序;
而現(xiàn)有插入方式除了在插入優(yōu)先級(jí)為3的ACL規(guī)則時(shí)無需重新排序,插入
優(yōu)先級(jí)為9、 8和4的ACL規(guī)則都需要進(jìn)行重新排序。
第二次下發(fā)優(yōu)先級(jí)分別為9、 8、 3和4的ACL規(guī)則時(shí),采用本發(fā)明實(shí)
施例的插入方式不需要進(jìn)行重新排序,插入效果參見圖10a;而現(xiàn)有插入方
式在插入優(yōu)先級(jí)為9、 8和4的ACL規(guī)則時(shí)仍然需要進(jìn)行重新排序,插入效
果參見圖10b。
第三次下發(fā)優(yōu)先級(jí)分別為9、 8、 3和4的ACL規(guī)則時(shí),采用本發(fā)明實(shí) 施例的插入方式仍不需要進(jìn)行重新排序,插入效果參見圖lla;而現(xiàn)有插入 方式在插入優(yōu)先級(jí)為9、 8和4的ACL規(guī)則時(shí)仍然需要進(jìn)行重新排序,插入 效果參見圖llb。
綜上可以得到
采用本發(fā)明實(shí)施例的插入方式共需要進(jìn)行重新排序的次數(shù)為1 (第一 次)十0 (第二次)+0 (第三次)=1次。
采用現(xiàn)有的插入方式共需要進(jìn)行重新排序的次數(shù)為3 (第一次)+3 (第 二次)+3 (第三次)=9次。
在實(shí)際中,每插入一條ACL規(guī)則需要進(jìn)行一次硬件資源操作,同時(shí)每 移動(dòng)一條ACL規(guī)則也需要進(jìn)行一次硬件資源操作,由此還可以得到
采用本發(fā)明實(shí)施例的插入方式共需要進(jìn)行硬件操作的次數(shù)為7 (第一 次)+4 (第二次)+4 (第三次)=15次。
采用現(xiàn)有的插入方式共需要進(jìn)行硬件操作的次數(shù)為10 (第一次)+16 (第二次)+22 (第三次)=48次。從以上的例子可以清楚地看出,采用本發(fā)明實(shí)施例的插入方式相比于現(xiàn) 有技術(shù),極大地減少了重新排序次數(shù)和硬件操作次數(shù),明顯提升系統(tǒng)效率。
如果在圖lla的基礎(chǔ)上,再插入優(yōu)先級(jí)為8的ACL規(guī)則,由于block3 已滿,因此需要將block4至block6中的ACL規(guī)則分別向后移動(dòng)一個(gè)block, 然后將待插入的優(yōu)先級(jí)為8的ACLM^則插入空出的block4的第一個(gè)entry 中,插入效果參見圖12。
在根據(jù)本發(fā)明實(shí)施例方案進(jìn)行編程實(shí)現(xiàn)時(shí),可以采用如下操作順序?qū)?現(xiàn)從第一個(gè)block開始搜索,搜索目標(biāo)為與待插入ACL規(guī)則具有相同優(yōu) 先級(jí)的ACL規(guī)則所在block,如果搜索到,則判定存在與待插入ACL規(guī)則 具有相同優(yōu)先級(jí)的規(guī)則,執(zhí)行相應(yīng)操作。
在搜索過程中,在還沒有搜索到相同優(yōu)先級(jí)的ACL規(guī)則時(shí),就已經(jīng)發(fā) 現(xiàn)了優(yōu)先級(jí)低于帶插入ACL規(guī)則的ACL規(guī)則,此時(shí),判定各block中沒有 與待插入ACL規(guī)則具有相同優(yōu)先級(jí)的ACL規(guī)則,且同時(shí)能夠判定存在優(yōu)先 級(jí)低于待插入ACL規(guī)則的ACL規(guī)則,執(zhí)行相應(yīng)操作。
在搜索過程中,在還沒有搜索到相同優(yōu)先級(jí)的ACL規(guī)則時(shí),就已經(jīng)發(fā) 現(xiàn)了空block,此時(shí),判定各block中沒有與待插入ACL規(guī)則具有相同優(yōu)先 級(jí)的ACL規(guī)則,且同時(shí)能夠判定待插入ACL規(guī)則的優(yōu)先級(jí)最低,^L行相應(yīng) 操作。
采用上述搜索方式無需多次搜索,只需一次搜索即可確定待插入ACL 規(guī)則的優(yōu)先級(jí)在所有ACL規(guī)則優(yōu)先級(jí)中的位置,并執(zhí)行相應(yīng)操作。
為了實(shí)現(xiàn)上述方法,本發(fā)明還提供了一種ACL規(guī)則的更新裝置。圖13 示出了本發(fā)明實(shí)施例中ACL規(guī)則的更新裝置的結(jié)構(gòu)示意圖。如圖13所示, 該裝置包括存儲(chǔ)單元10、分區(qū)單元20和插入處理單元30。
其中,存儲(chǔ)單元10,提供存儲(chǔ)空間,存儲(chǔ)ACL規(guī)則;
分區(qū)單元20,用于將存儲(chǔ)單元10中的存儲(chǔ)空間劃分為多個(gè)block,每個(gè)block具有多個(gè)ACL硬件資源;位置在前的區(qū)塊所記錄ACL規(guī)則的優(yōu)先級(jí)大于或等 于位置在后的區(qū)塊。當(dāng)TCAM為存儲(chǔ)介質(zhì)時(shí),該分區(qū)單元20將TCAM的存儲(chǔ) 空間劃分為多個(gè)連續(xù)的block,不同block具有的相同數(shù)目的entry, —個(gè)entry 對(duì)應(yīng) 一個(gè)ACL -更件資源。
插入處理單元30,具體包括判斷模塊31、相同優(yōu)先級(jí)處理模塊32和不同 優(yōu)先級(jí)處理模塊33;其中
判斷模塊31 ,用于每次插入ACL規(guī)則時(shí),在各block中查找與待插入ACL 規(guī)則具有相同優(yōu)先級(jí)的ACL規(guī)則;如果查找到,則通知相同優(yōu)先級(jí)處理模塊 32,否則通知不同優(yōu)先級(jí)處理模塊33 。
相同優(yōu)先級(jí)處理模塊32,在接到通知后,將待插入ACL規(guī)則插入與其具 有相同優(yōu)先級(jí)的ACL規(guī)則所屬block中。
具體來說,相同優(yōu)先級(jí)處理模塊32包括查找子模塊、第一子模塊和第二子 模。圖13中未示出相同優(yōu)先級(jí)處理模塊32的具體結(jié)構(gòu)。
其中,查找子模塊,在接到通知后,查找與待插入ACL規(guī)則具有相同優(yōu)先 級(jí)的ACL規(guī)則占用的最后一個(gè)block,將查找到的block信息發(fā)送給第一子才莫 塊和第二子模塊。
第一子模塊,在查找到的block具有空閑ACL硬件資源時(shí),將待插入ACL 規(guī)則插入該空閑ACL硬件資源中。
第二子模塊,在查找到的block沒有空閑ACL硬件資源,且與該block相 鄰的后一個(gè)區(qū)塊被占用時(shí),將所有block中優(yōu)先級(jí)低于待插入ACL規(guī)則的ACL 規(guī)則從當(dāng)前所在block移到相鄰的后一個(gè)block中,將待插入ACL規(guī)則插入因 移動(dòng)變空的空block。
不同優(yōu)先級(jí)處理模塊33,在接到通知后,將優(yōu)先級(jí)低于待插入ACL規(guī) 則的所有ACL規(guī)則從當(dāng)前所在block移到相鄰的后一個(gè)block中,將待插入 ACL規(guī)則插入因移動(dòng)變空的空block中。
具體來說,該不同優(yōu)先級(jí)處理模塊33在接到通知后,判斷所有block 內(nèi)的ACL規(guī)則中,是否存在優(yōu)先級(jí)低于待插入ACL規(guī)則的ACL規(guī)則;如果是,則將優(yōu)先級(jí)低于待插入ACL規(guī)則的所有ACL少見則從當(dāng)前所在block 移到相鄰的后一個(gè)block中,將待插入ACL規(guī)則插入因移動(dòng)變空的空block 中;如果否,則將待插入ACL規(guī)則插入與最后一個(gè)被占用block相鄰的空 block中。
較佳地,該裝置進(jìn)一步包括刪除處理單元40,用于從block刪除ACL 規(guī)則后,對(duì)被刪除ACL規(guī)則所在block內(nèi)的所有ACL規(guī)則進(jìn)行排序,消除 區(qū)塊內(nèi)任意兩個(gè)被占用ACL硬件資源之間的空閑entry;和Z或,從block刪 除ACL規(guī)則后,如果被刪除ACL規(guī)則所在block變空,則以block為單位 進(jìn)行ACL規(guī)則排序,消除任意兩個(gè)被占用block之間的空block。
較佳地,插入處理單元30中的各個(gè)模塊在執(zhí)行ACL規(guī)則的移動(dòng)操作之 前,進(jìn)一步判斷是否所有block均^f皮占用;如果是,則^"又消block的劃分, 以ACL規(guī)則為單位進(jìn)行排序,消除任意兩個(gè)ACL規(guī)則之間的空閑entry, 然后采用現(xiàn)有插入方式插入新ACL規(guī)則;否則,保持區(qū)塊劃分,執(zhí)行所述 移動(dòng)操作。
該判斷是否所有block均被占用的操作也可以由插入處理單元30中的 判斷模塊31在插入ACL規(guī)則之前執(zhí)行,如果所有block均被占用,則取消 block的劃分,消除任意兩個(gè)ACL規(guī)則之間的空閑entry;如果還有空block, 則保持區(qū)塊劃分,執(zhí)行后續(xù)操作。
綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的 保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改 進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種訪問控制列表規(guī)則的更新方法,其特征在于,該方法包括將存儲(chǔ)空間劃分為多個(gè)區(qū)塊,每個(gè)區(qū)塊具有多個(gè)用于記錄ACL規(guī)則的ACL硬件資源;位置在前的區(qū)塊所記錄ACL規(guī)則的優(yōu)先級(jí)大于或等于位置在后的區(qū)塊所記錄ACL規(guī)則的優(yōu)先級(jí);每次插入ACL規(guī)則時(shí),在各區(qū)塊中查找與待插入ACL規(guī)則具有相同優(yōu)先級(jí)的ACL規(guī)則;如果查找到,則將待插入ACL規(guī)則插入與其具有相同優(yōu)先級(jí)的ACL規(guī)則所屬區(qū)塊中;如果沒有查找到,則將優(yōu)先級(jí)低于待插入ACL規(guī)則的所有ACL規(guī)則從當(dāng)前所在區(qū)塊中移到相鄰的后一個(gè)區(qū)塊中,將待插入ACL規(guī)則插入因移動(dòng)變空的空區(qū)塊中。
2、 如權(quán)利要求1所述的方法,其特征在于,不同區(qū)塊具有的ACL硬件資 源數(shù)目相同。
3、 如權(quán)利要求1所述的方法,其特征在于,所述將待插入ACL兵見則插入 與其具有相同優(yōu)先級(jí)的ACL規(guī)則所屬區(qū)塊中,包括如果查找到的區(qū)塊具有空閑ACL硬件資源,則將待插入ACL規(guī)則插入該 空閑ACL硬件資源中;如果查找到的區(qū)塊沒有空閑ACL硬件資源,且與該查找到的區(qū)塊相鄰的后 一個(gè)區(qū)塊被占用,則將所有區(qū)塊中優(yōu)先級(jí)低于待插入ACL規(guī)則的ACL規(guī)則從 當(dāng)前所在區(qū)塊移到相鄰的后 一個(gè)區(qū)塊中,將待插入ACL規(guī)則插入因移動(dòng)變空的 空區(qū)塊。
4、 如權(quán)利要求l所述的方法,其特征在于,確定沒有查找到所述與待插入 ACL規(guī)則具有相同優(yōu)先級(jí)的ACL規(guī)則之后,該方法進(jìn)一步包括判斷所有區(qū)塊內(nèi)的ACL規(guī)則中,是否存在優(yōu)先級(jí)低于待插入ACL規(guī)則的 ACL規(guī)則;如果是,則執(zhí)行所述將優(yōu)先級(jí)低于待插入ACL規(guī)則的所有ACL規(guī)則從當(dāng)前所在區(qū)塊移到相鄰的后 一個(gè)區(qū)塊中,將待插入ACL規(guī)則插入因移動(dòng)變空的空 區(qū)塊中的操作;如果否,則將待插入ACL規(guī)則插入與最后一個(gè)被占用區(qū)塊相鄰的空區(qū)塊。
5、 如權(quán)利要求3或4所述的方法,其特征在于,向所述空區(qū)塊插入ACL 規(guī)則為將待插入ACL規(guī)則插入空區(qū)塊的第 一個(gè)ACL硬件資源。
6、 如權(quán)利要求3所述的方法,其特征在于,向具有空閑ACL硬件資源的 區(qū)塊插入ACL規(guī)則為將待插入ACL規(guī)則插入?yún)^(qū)塊中第 一個(gè)空閑ACL硬件資 源。
7、 如權(quán)利要求l所述的方法,其特征在于,該方法進(jìn)一步包括從區(qū)塊中 刪除ACL規(guī)則后,如果被刪除ACL規(guī)則所在區(qū)塊變?yōu)榭諈^(qū)塊,則以區(qū)塊為單 位進(jìn)行ACL規(guī)則排序,消除任意兩個(gè)被占用區(qū)塊之間的空區(qū)塊;和/或,從區(qū)塊刪除ACL規(guī)則后,對(duì)被刪除ACL規(guī)則所在區(qū)塊內(nèi)的所有 ACL規(guī)則進(jìn)行排序,消除區(qū)塊內(nèi)任意兩個(gè)被占用ACL硬件資源之間的空閑ACL 硬件資源。
8、 如權(quán)利要求l所述的方法,其特征在于,該方法進(jìn)一步包括在所述插 入ACL規(guī)則時(shí),判斷是否所有區(qū)塊均被占用;如果是,則取消區(qū)塊的劃分,以 ACL規(guī)則為單位進(jìn)行排序,消除任意兩個(gè)ACL規(guī)則之間的空閑ACL硬件資源, 然后插入ACL規(guī)則;否則,保持區(qū)塊劃分,執(zhí)行所述在各區(qū)塊中查找與待插入 ACL規(guī)則具有相同優(yōu)先級(jí)的ACL規(guī)則的操作。
9、 如權(quán)利要求l、 3或4所述的方法,其特征在于,所述移動(dòng)操作之前, 進(jìn)一步包括判斷是否所有區(qū)塊均被占用;如果是,則取消區(qū)塊的劃分,以ACL 規(guī)則為單位進(jìn)行排序,消除任意兩個(gè)ACL規(guī)則之間的空閑ACL硬件資源,然 后插入ACL規(guī)則;否則,保持區(qū)塊劃分,執(zhí)行所述移動(dòng)操作。
10、 如權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)空間為三態(tài)內(nèi)容可 尋址存儲(chǔ)器TCAM;所述每個(gè)區(qū)塊具有多個(gè)ACL硬件資源為不同區(qū)塊包含 相同#:目的條目, 一個(gè)條目對(duì)應(yīng)一個(gè)ACL ^5更件資源。
11、 一種訪問控制列表規(guī)則的更新裝置,其特征在于,該裝置包括存儲(chǔ)單元、分區(qū)單元和插入處理單元;所述存儲(chǔ)單元,用于存儲(chǔ)ACL規(guī)則;所述分區(qū)單元,用于將所述存儲(chǔ)單元中的存儲(chǔ)空間劃分為多個(gè)區(qū)塊,每個(gè) 區(qū)塊具有多個(gè)用于記錄ACL規(guī)則的ACL硬件資源;位置在前的區(qū)塊所記錄 ACL規(guī)則的優(yōu)先級(jí)大于或等于位置在后的區(qū)塊所記錄ACL規(guī)則的優(yōu)先級(jí);所述插入處理單元包括判斷模塊、相同優(yōu)先級(jí)處理模塊和不同優(yōu)先級(jí)處理 模塊;所述判斷模塊,用于每次插入ACL規(guī)則時(shí),在各區(qū)塊中查找與待插入ACL 規(guī)則具有相同優(yōu)先級(jí)的ACL規(guī)則;如果查找到,則通知相同優(yōu)先級(jí)處理才莫塊, 否則通知不同優(yōu)先級(jí)處理模塊;所述相同優(yōu)先級(jí)處理模塊,在接到通知后,將待插入ACL規(guī)則插入與其具 有相同優(yōu)先級(jí)的ACL規(guī)則所屬區(qū)塊中;所述不同優(yōu)先級(jí)處理模塊,在接到通知后,將優(yōu)先級(jí)低于待插入ACL規(guī)則 的所有ACL規(guī)則從當(dāng)前所在區(qū)塊移到相鄰的后一個(gè)區(qū)塊中,將待插入ACL規(guī) 則插入因移動(dòng)變空的空區(qū)塊中。
12、 如權(quán)利要求11所述的裝置,其特征在于,所述分區(qū)單元將三態(tài)內(nèi)容可 尋址存儲(chǔ)器TCAM的存儲(chǔ)空間劃分為多個(gè)連續(xù)的區(qū)塊,不同區(qū)塊具有的相同數(shù) 目的條目, 一個(gè)條目對(duì)應(yīng)一個(gè)ACL硬件資源。
13、 如權(quán)利要求11所述的裝置,其特征在于,所述相同優(yōu)先級(jí)處理模塊包 括查找子模塊、第一子模塊和第二子模塊;所述查找子模塊,在接到通知后,查找與待插入ACL規(guī)則具有相同優(yōu)先級(jí) 的ACL規(guī)則占用的最后一個(gè)區(qū)塊,將查找到的區(qū)塊信息發(fā)送給第一子模塊和第 二子模塊;所述第一子模塊,在查找到的區(qū)塊具有空閑ACL硬件資源時(shí),將待插入 ACL規(guī)則插入該空閑ACL硬件資源中;所述第二子模塊,在查找到的區(qū)塊沒有空閑ACL硬件資源,且與該查找到 的區(qū)塊相鄰的后一個(gè)區(qū)塊被占用時(shí),將所有區(qū)塊中優(yōu)先級(jí)低于待插入ACL規(guī)則的ACL規(guī)則從當(dāng)前所在區(qū)塊移到相鄰的后一個(gè)區(qū)塊中,將待插入ACL規(guī)則插 入因移動(dòng)變空的空區(qū)塊。
14、 如權(quán)利要求11所述的裝置,其特征在于,所述不同優(yōu)先級(jí)處理模塊進(jìn) 一步用于,在接到通知后,判斷所有區(qū)塊內(nèi)的ACL規(guī)則中,是否存在優(yōu)先級(jí)低 于待插入ACL規(guī)則的ACL規(guī)則;如果是,則執(zhí)行所述將優(yōu)先級(jí)低于待插入ACL 規(guī)則的所有ACL規(guī)則從當(dāng)前所在區(qū)塊中移到相鄰的后一個(gè)區(qū)塊中,將待插入 ACL規(guī)則插入因移動(dòng)變空的空區(qū)塊中的操作;如果否,則將待插入ACL規(guī)則 插入與最后 一個(gè)被占用區(qū)塊相鄰的空區(qū)塊中。
15、 如權(quán)利要求11所述的裝置,其特征在于,該裝置進(jìn)一步包括刪除處理 單元,用于從區(qū)塊刪除ACL規(guī)則后,對(duì)被刪除ACL規(guī)則所在區(qū)塊內(nèi)的所有ACL 規(guī)則進(jìn)行排序,消除區(qū)塊內(nèi)任意兩個(gè)被占用ACL硬件資源之間的空閑ACL硬 件資源;和/或,從區(qū)塊刪除ACL規(guī)則后,如果被刪除ACL規(guī)則所在區(qū)塊變?yōu)?空區(qū)塊,則以區(qū)塊為單位進(jìn)行ACL規(guī)則排序,消除任意兩個(gè)被占用區(qū)塊之間的 空區(qū)塊。
全文摘要
本發(fā)明公開了一種訪問控制列表規(guī)則的更新方法和裝置。本發(fā)明將存儲(chǔ)空間劃分為多個(gè)區(qū)塊,每個(gè)區(qū)塊具有多個(gè)用于記錄ACL規(guī)則的ACL硬件資源;位置在前的區(qū)塊所記錄ACL規(guī)則的優(yōu)先級(jí)大于或等于位置在后的區(qū)塊所記錄ACL規(guī)則的優(yōu)先級(jí);每次插入ACL規(guī)則時(shí),在各區(qū)塊中查找與待插入ACL規(guī)則具有相同優(yōu)先級(jí)的ACL規(guī)則;如果查找到,則將待插入ACL規(guī)則插入查找到的區(qū)塊中,無需觸發(fā)排序過程;如果沒有查找到,則將優(yōu)先級(jí)低于待插入ACL規(guī)則的所有ACL規(guī)則從當(dāng)前所在區(qū)塊中移到相鄰的后一個(gè)區(qū)塊中,將待插入ACL規(guī)則插入因移動(dòng)變空的空區(qū)塊中。使用本發(fā)明能夠極大地減少重新排序的次數(shù),從而降低排序帶來的系統(tǒng)資源耗費(fèi)。
文檔編號(hào)H04L12/56GK101447940SQ20081024072
公開日2009年6月3日 申請(qǐng)日期2008年12月23日 優(yōu)先權(quán)日2008年12月23日
發(fā)明者戟 何, 朱嚴(yán)峰, 胡元章 申請(qǐng)人:杭州華三通信技術(shù)有限公司