高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種流量統(tǒng)計(jì)技術(shù),尤其是涉及一種高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法及裝置。
【背景技術(shù)】
[0002]Flow stats (流量統(tǒng)計(jì))是一種依靠ACL (訪問(wèn)控制列表)實(shí)現(xiàn)流量統(tǒng)計(jì)的技術(shù),對(duì)流量分析、問(wèn)題定位等都廣泛的應(yīng)用。根據(jù)ACL識(shí)別特定的流,并關(guān)聯(lián)stats表項(xiàng),將識(shí)別到的流統(tǒng)計(jì)到stats表項(xiàng)中,Stats表項(xiàng)在芯片內(nèi)使用物理存儲(chǔ)器實(shí)現(xiàn),表項(xiàng)規(guī)格有限制。為了防止溢出導(dǎo)致統(tǒng)計(jì)反轉(zhuǎn),現(xiàn)有大部分芯片的做法是設(shè)定閾值,達(dá)到閾值會(huì)觸發(fā)中斷,此時(shí)cpu (中央處理器)接管中斷,讀取芯片ram(隨機(jī)存取存儲(chǔ)器)中的stats統(tǒng)計(jì),并清O。最終的stats統(tǒng)計(jì)是依靠軟件多次讀取的結(jié)果累加后返回。
[0003]由于stats表項(xiàng)占用ram資源,不可能設(shè)置過(guò)多的位寬,按100G的流量來(lái)計(jì)算,Is中的報(bào)文統(tǒng)計(jì)就需要占用34個(gè)位寬的ram資源,同時(shí)中斷需要達(dá)到至少Is —次才能有效的防止反轉(zhuǎn),這種情況下對(duì)cpu的沖擊很大,效率很低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法及裝置,利用DMA和CPU可共享內(nèi)存的特點(diǎn),采用芯片的DMA控制器以實(shí)現(xiàn)流量統(tǒng)計(jì)。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明提出如下技術(shù)方案:一種高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法,所述芯片內(nèi)包括ACL流表、流統(tǒng)計(jì)、RAM內(nèi)存和DMA控制器,所述方法包括:
[0006]SI,報(bào)文進(jìn)入芯片,根據(jù)自身攜帶的報(bào)文信息查找芯片中的ACL流表,找到匹配的流表并關(guān)聯(lián)所述流統(tǒng)計(jì)的行為;
[0007]S2,根據(jù)關(guān)聯(lián)的所述流統(tǒng)計(jì)行為更新所述RAM內(nèi)存中的信息;
[0008]S3,DMA控制器周期性地進(jìn)行:定時(shí)讀取所述RAM內(nèi)存中的統(tǒng)計(jì)數(shù)據(jù),同時(shí)讀取DMA內(nèi)存中的數(shù)據(jù),將讀取的RAM內(nèi)存中的統(tǒng)計(jì)數(shù)據(jù)和DMA內(nèi)存中的數(shù)據(jù)累加,再寫回到所述DMA內(nèi)存中;其中,所述DMA內(nèi)存是由CPU為芯片DMA分配的指定地址的CPU內(nèi)存。
[0009]優(yōu)選地,所述報(bào)文自身攜帶的報(bào)文信息包括報(bào)文的五元組信息,所述五元組信息包括報(bào)文的目的mac地址、源mac地址、目的IP地址和源IP地址。
[0010]優(yōu)選地,更新所述RAM內(nèi)存中的信息包括:將報(bào)文的個(gè)數(shù)和長(zhǎng)度統(tǒng)計(jì)到所述RAM內(nèi)存中。
[0011]優(yōu)選地,步驟S3中,芯片啟用DAM功能,DMA控制器根據(jù)配置的時(shí)間間隔周期性地進(jìn)行操作。
[0012]優(yōu)選地,通過(guò)直接讀取所述CPU內(nèi)存中數(shù)據(jù),以獲得流量統(tǒng)計(jì)數(shù)據(jù)。
[0013]本發(fā)明還提出了一種高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的裝置,包括芯片內(nèi)的ACL流表、流統(tǒng)計(jì)、RAM內(nèi)存、DMA控制器,CPU及DMA內(nèi)存,其中,
[0014]所述ACL流表用于供進(jìn)入芯片的報(bào)文根據(jù)自身攜帶的報(bào)文信息進(jìn)行流表查找,匹配到的流表關(guān)聯(lián)所述流統(tǒng)計(jì)的行為。
[0015]所述RAM內(nèi)存用于根據(jù)關(guān)聯(lián)的所述流統(tǒng)計(jì)行為更新所儲(chǔ)存的信息,做流量統(tǒng)計(jì);
[0016]所述DMA控制器用于周期性地進(jìn)行:定時(shí)讀取所述RAM內(nèi)存中的統(tǒng)計(jì)數(shù)據(jù),同時(shí)讀取DMA內(nèi)存中的數(shù)據(jù),將讀取的RAM內(nèi)存中的統(tǒng)計(jì)數(shù)據(jù)和DMA內(nèi)存中的數(shù)據(jù)累加,再寫回到所述DMA內(nèi)存中;
[0017]所述CPU用于為芯片DMA分配指定地址的CPU內(nèi)存做為所述DMA內(nèi)存。
[0018]優(yōu)選地,所述RAM內(nèi)存統(tǒng)計(jì)報(bào)文的個(gè)數(shù)和長(zhǎng)度,以更新其內(nèi)部?jī)?chǔ)存信息。
[0019]優(yōu)選地,所述裝置還包括數(shù)據(jù)讀取模塊,所述數(shù)據(jù)讀取模塊用于讀取所述CPU內(nèi)存中數(shù)據(jù),以獲得流量統(tǒng)計(jì)數(shù)據(jù)。
[0020]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:通過(guò)本發(fā)明不需要頻繁中斷,完全由芯片DMA來(lái)實(shí)現(xiàn)統(tǒng)計(jì)的同步和累加到CPU內(nèi)存,整個(gè)過(guò)程中基本不需要軟件參與,可以大大降低CPU的占用率,同時(shí)高效完成flow stats的功能。
【附圖說(shuō)明】
[0021]圖1是本發(fā)明高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的裝置的原理示意圖;
[0022]圖2是本發(fā)明高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法的流程示意圖。
【具體實(shí)施方式】
[0023]下面將結(jié)合本發(fā)明的附圖,對(duì)本發(fā)明實(shí)施例的技術(shù)方案進(jìn)行清楚、完整的描述。
[0024]本發(fā)明利用直接存儲(chǔ)訪問(wèn)(DMA)和CPU會(huì)共享內(nèi)存的特點(diǎn),由芯片的DMA控制器來(lái)自動(dòng)實(shí)現(xiàn)流量統(tǒng)計(jì)。如圖1所示,本發(fā)明實(shí)施例所揭示的一種高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的裝置,包括芯片、CPU及DMA內(nèi)存,芯片內(nèi)包括ACL流表、流統(tǒng)計(jì)、RAM內(nèi)存和DMA控制器。
[0025]圖2為本發(fā)明高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法的流程示意圖,結(jié)合圖1和圖2所示,報(bào)文進(jìn)入芯片后,根據(jù)攜帶的目的mac地址(MacDa) /源mac地址(MacSa) /目的IP地址(IPda)/源IP地址(IPsa)等五元組信息查找芯片中ACL流表(圖1中的步驟I),找到匹配的流表并關(guān)聯(lián)流統(tǒng)計(jì)的行為(Act1n)來(lái)做流量統(tǒng)計(jì)(圖1中的步驟2)。需要說(shuō)明的是,報(bào)文自身攜帶的報(bào)文信息包括但不僅限于五元組信息,除這里提及的報(bào)文的目的mac地址,源mac地址,目的IP地址,源IP地址外,還包括目的端口,源端口等。
[0026]流量統(tǒng)計(jì)是利用芯片中的一塊Ram資源(即RAM內(nèi)存)來(lái)實(shí)現(xiàn),當(dāng)匹配到的ACL流表中有統(tǒng)計(jì)的Act1n時(shí),就會(huì)更新這塊Ram內(nèi)存中的信息,將報(bào)文個(gè)數(shù)和長(zhǎng)度統(tǒng)計(jì)到Ram資源中(圖1中的步驟3)。芯片啟用DMA功能,CPU為DMA分配指定地址的CPU內(nèi)存做為DMA內(nèi)存來(lái)使用,由DMA控制器定時(shí)去讀取Ram中的統(tǒng)計(jì)數(shù)據(jù)(圖1中的步驟4)。同時(shí)讀取已經(jīng)分配的DMA內(nèi)存中的數(shù)據(jù)(圖1中的步驟5),將步驟4和步驟5中的數(shù)據(jù)進(jìn)行累加,再回寫到DMA內(nèi)存(圖1中的步驟6),DMA根據(jù)已經(jīng)配置好的時(shí)間間隔周期性的進(jìn)行步驟4到步驟6的操作。
[0027]這樣,流量統(tǒng)計(jì)的數(shù)據(jù)就會(huì)不斷的更新到DMA內(nèi)存,由于DMA和CPU是共享同一塊內(nèi)存,當(dāng)需要獲取流量統(tǒng)計(jì)時(shí),只需要讀取相應(yīng)CPU內(nèi)存中的數(shù)據(jù)即可(圖1中的步驟7),可通過(guò)一數(shù)據(jù)讀取模塊(圖未示)來(lái)讀取。
[0028]需要說(shuō)明的是,本發(fā)明中所指芯片不局限于專用集成電路(ASIC)芯片,還包括現(xiàn)場(chǎng)可編程門陣列(FPGA)或網(wǎng)絡(luò)處理器NP等。
[0029]本發(fā)明的技術(shù)內(nèi)容及技術(shù)特征已揭示如上,然而熟悉本領(lǐng)域的技術(shù)人員仍可能基于本發(fā)明的教示及揭示而作種種不背離本發(fā)明精神的替換及修飾,因此,本發(fā)明保護(hù)范圍應(yīng)不限于實(shí)施例所揭示的內(nèi)容,而應(yīng)包括各種不背離本發(fā)明的替換及修飾,并為本專利申請(qǐng)權(quán)利要求所涵蓋。
【主權(quán)項(xiàng)】
1.一種高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法,其特征在于,所述芯片內(nèi)包括ACL流表、流統(tǒng)計(jì)、RAM內(nèi)存和DMA控制器,所述方法包括: SI,報(bào)文進(jìn)入芯片,根據(jù)自身攜帶的報(bào)文信息查找芯片中的ACL流表,找到匹配的流表并關(guān)聯(lián)所述流統(tǒng)計(jì)的行為; S2,根據(jù)關(guān)聯(lián)的所述流統(tǒng)計(jì)行為更新所述RAM內(nèi)存中的信息; S3,DMA控制器周期性地進(jìn)行:定時(shí)讀取所述RAM內(nèi)存中的統(tǒng)計(jì)數(shù)據(jù),同時(shí)讀取DMA內(nèi)存中的數(shù)據(jù),將讀取的RAM內(nèi)存中的統(tǒng)計(jì)數(shù)據(jù)和DMA內(nèi)存中的數(shù)據(jù)累加,再寫回到所述DMA內(nèi)存中;其中,所述DMA內(nèi)存是由CPU為芯片DMA分配的指定地址的CPU內(nèi)存。2.根據(jù)權(quán)利要求1所述的高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法,其特征在于,所述報(bào)文自身攜帶的報(bào)文信息包括報(bào)文的五元組信息,所述五元組信息包括報(bào)文的目的mac地址、源mac地址、目的IP地址和源IP地址。3.根據(jù)權(quán)利要求1所述的高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法,其特征在于,更新所述RAM內(nèi)存中的信息包括:將報(bào)文的個(gè)數(shù)和長(zhǎng)度統(tǒng)計(jì)到所述RAM內(nèi)存中。4.根據(jù)權(quán)利要求1所述的高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法,其特征在于,步驟S3中,芯片啟用DAM功能,DMA控制器根據(jù)配置的時(shí)間間隔周期性地進(jìn)行操作。5.根據(jù)權(quán)利要求1所述的高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法,其特征在于,通過(guò)直接讀取所述CPU內(nèi)存中數(shù)據(jù),以獲得流量統(tǒng)計(jì)數(shù)據(jù)。6.一種高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的裝置,其特征在于,包括芯片內(nèi)的ACL流表、流統(tǒng)計(jì)、RAM內(nèi)存、DMA控制器,CPU及DMA內(nèi)存,其中, 所述ACL流表用于供進(jìn)入芯片的報(bào)文根據(jù)自身攜帶的報(bào)文信息進(jìn)行流表查找,匹配到的流表關(guān)聯(lián)所述流統(tǒng)計(jì)的行為。 所述RAM內(nèi)存用于根據(jù)關(guān)聯(lián)的所述流統(tǒng)計(jì)行為更新所儲(chǔ)存的信息,做流量統(tǒng)計(jì); 所述DMA控制器用于周期性地進(jìn)行:定時(shí)讀取所述RAM內(nèi)存中的統(tǒng)計(jì)數(shù)據(jù),同時(shí)讀取DMA內(nèi)存中的數(shù)據(jù),將讀取的RAM內(nèi)存中的統(tǒng)計(jì)數(shù)據(jù)和DMA內(nèi)存中的數(shù)據(jù)累加,再寫回到所述DMA內(nèi)存中; 所述CPU用于為芯片DMA分配指定地址的CPU內(nèi)存做為所述DMA內(nèi)存。7.根據(jù)權(quán)利要求6所述的高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的裝置,其特征在于,所述報(bào)文自身攜帶的報(bào)文信息包括報(bào)文的五元組信息,所述五元組信息包括報(bào)文的目的mac地址、源mac地址、目的IP地址和源IP地址。8.根據(jù)權(quán)利要求6所述的高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的裝置,其特征在于,所述RAM內(nèi)存統(tǒng)計(jì)報(bào)文的個(gè)數(shù)和長(zhǎng)度,以更新其內(nèi)部?jī)?chǔ)存信息。9.根據(jù)權(quán)利要求6所述的高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的裝置,其特征在于,所述裝置還包括數(shù)據(jù)讀取模塊,所述數(shù)據(jù)讀取模塊用于讀取所述CPU內(nèi)存中數(shù)據(jù),以獲得流量統(tǒng)計(jì)數(shù)據(jù)。
【專利摘要】本發(fā)明揭示了一種高效實(shí)現(xiàn)網(wǎng)絡(luò)芯片流量統(tǒng)計(jì)的方法及裝置,所述方法包括:報(bào)文查找芯片中的ACL流表,找到匹配的流表并關(guān)聯(lián)流統(tǒng)計(jì)的行為;根據(jù)關(guān)聯(lián)的流統(tǒng)計(jì)行為更新RAM內(nèi)存中的信息;DMA控制器周期性地進(jìn)行:定時(shí)讀取RAM內(nèi)存中的統(tǒng)計(jì)數(shù)據(jù),同時(shí)讀取DMA內(nèi)存中的數(shù)據(jù),將讀取的RAM內(nèi)存中的統(tǒng)計(jì)數(shù)據(jù)和DMA內(nèi)存中的數(shù)據(jù)累加,再寫回到DMA內(nèi)存中;其中,DMA內(nèi)存是由CPU為芯片DMA分配的指定地址的CPU內(nèi)存。本發(fā)明完全由芯片DMA來(lái)實(shí)現(xiàn)統(tǒng)計(jì)的同步和累加到CPU內(nèi)存,整個(gè)過(guò)程中基本不需要軟件參與,可以大大降低CPU的占用率,同時(shí)高效完成flow?stats的功能。
【IPC分類】H04L29/06, H04L12/24
【公開(kāi)號(hào)】CN105141468
【申請(qǐng)?zhí)枴緾N201510641205
【發(fā)明人】李磊, 趙茂聰, 賈復(fù)山
【申請(qǐng)人】盛科網(wǎng)絡(luò)(蘇州)有限公司
【公開(kāi)日】2015年12月9日
【申請(qǐng)日】2015年10月8日