国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種ip數(shù)據(jù)包的匹配方法和匹配加速器的制作方法

      文檔序號:7814696閱讀:351來源:國知局
      專利名稱:一種ip數(shù)據(jù)包的匹配方法和匹配加速器的制作方法
      技術領域
      本發(fā)明涉及移動通信系統(tǒng)領域,尤其涉及業(yè)務流模板中一種IP數(shù)據(jù)包的匹配方法和匹配加速器。
      背景技術
      隨著無線通信技術與網(wǎng)絡互聯(lián)協(xié)議(IP, Internet Protocol)技術的緊密結合,移動通信網(wǎng)絡從全球移動通訊系統(tǒng)(GSM, Global System of Mobi lecommuni cat ion)系統(tǒng)的電路交換網(wǎng)發(fā)展到通用分組無線業(yè)務(GPRS, GeneralPacket Radio Service)的分組交換網(wǎng)。為了滿足用戶對高速無線數(shù)據(jù)業(yè)務的新需求,GPRS經(jīng)歷增強型數(shù)據(jù)速率GSM演進技術(EDGE, Enhanced Data Ratefor GSM Evolution)向第三代移動通信技術(3G,3rd_generation) / 通用移動通信系統(tǒng)(UMTS, Universal Mobile TelecommunicationsSystem)的演進。雖然3G移動通信系統(tǒng)比起2G有了很大改進,但是仍然無法滿足用戶的要求,又進一步推出了演進UMTS技術即演進分組系統(tǒng)(EPS, Evolved PacketSystem),目標是為實時和非實時業(yè)務提供一種統(tǒng)一的體系結構,并且為用戶提供高數(shù)據(jù)傳輸速率、低時延和優(yōu)化的分組無線接入技術。這個目標由EPS的兩個重要組成部分:無線接口長期演進(LTE, LongTermEvolution)和系統(tǒng)結構演進(SAE, System Architecture Evolution)來完成。同時針對服務質(zhì)量(QoS,Quality of Service)、針對未來數(shù)據(jù)業(yè)務具有突發(fā)性的特點,引入EPS專用承載與默認承載的概念,有效地減少了業(yè)務承載的建立時延,真正實現(xiàn)了用戶的“永遠在線”。默認承載是一個種滿足默認QoS的數(shù)據(jù)和信令的用戶承載。專用承載是對某些特定業(yè)務所使用的SAE承載。一般情況下專用SAE承載QoS比默認QoS的要求高。專用承載在用戶設備(UE,User Equipment)關聯(lián)一個上行的業(yè)務流模板(TFT,Traffic FlowTemplate),在公用數(shù)據(jù)網(wǎng)網(wǎng)關(PDNGW,Public Data Network Gateway)關聯(lián)一個下行的TFT,TFT中包含業(yè)務數(shù)據(jù)流的分組過濾器(PF, Packet Pilter),只有IP數(shù)據(jù)包與PF匹配成功才能傳輸。在EPS系統(tǒng)中,同一承載上的所有業(yè)務數(shù)據(jù)流將獲得同樣的QoS保障,不同承載類型提供不同的QoS保障。一個EPS承載可看作用戶設備與公用數(shù)據(jù)網(wǎng)網(wǎng)關(PDNGW,PublicData Network Gateway)之間的邏輯電路,業(yè)務流模板中的每個分組包過濾器(PF)對應一個EPS承載。通過與承載對應的PF,將PDN下的業(yè)務數(shù)據(jù)流進行分類并分發(fā)到不同的EPS承載上傳輸。在EPS系統(tǒng)中,接入點名稱(APN, Access Point Name)連接可能存在多個專用承載(含有多個PF)。如果接收到的IP數(shù)據(jù)包頭部參數(shù)與某PF中有效屬性組合的屬性值全匹配,則IP數(shù)據(jù)包與PF匹配成功,同時IP數(shù)據(jù)包可在本PF映射的無線承載上傳輸?,F(xiàn)有的IP數(shù)據(jù)包與PF的軟件實現(xiàn)匹配方法,如圖1所示,在Ti時刻,先從IP數(shù)據(jù)流提取出一個IP數(shù)據(jù)包(圖1中為IPl),然后從該IP數(shù)據(jù)包中提取頭部參數(shù)與PF按照優(yōu)先級高低從PH)至PF255逐一進行匹配比較,一直持續(xù)到IP數(shù)據(jù)包與其中某個PF匹配成功,再將此IP數(shù)據(jù)包與EPS承載標識(EBI,EPS Bearer Identity)綁定后發(fā)送給協(xié)議棧處理,然后在(Ti+Ι)時刻再提取下一個IP數(shù)據(jù)包(IP2)進行類似的匹配處理,也就是說,當上一個IP數(shù)據(jù)包與PF未匹配成功時下一個IP包必須等待,如圖1所示,當IPl在匹配時,IP2必須等待,只有當IPl與PF匹配成功后IP2才能開始從優(yōu)先級最高的PR)至PF255逐一開始匹配,這就是一個串行的過程,而對于現(xiàn)在要求越來越高的上行速度,這種串行的實現(xiàn)過程需要的匹配時間較長。發(fā)明內(nèi)容
      本發(fā)明實施例提供了一種IP數(shù)據(jù)包的匹配方法和匹配加速器,用于提高IP數(shù)據(jù)包與分組過濾器的匹配效率。
      一方面,本發(fā)明實施例提供的IP數(shù)據(jù)包的匹配方法,包括:
      IP頭部參數(shù)緩存器從IP數(shù)據(jù)流的η個IP數(shù)據(jù)包中分別提取每一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址,然后分別保存至所述IP頭部參數(shù)緩存器的X個緩存塊中,其中η, X都是正整數(shù);
      所述匹配模塊的第i個分組過濾器將所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配,其中,所述匹配模塊包括m個分組過濾器,其中,I彡i < (i+1) < m, 1、k、m是正整數(shù);
      若所述第i個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配成功,所述主控模塊將所述第i個分組過濾器的演進分組系統(tǒng)承載索引EBI寫入所述第k個緩存塊對應的IP數(shù)據(jù)包的結構體中,所述主控模塊將所述第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中;
      若所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配失敗,所述匹配模塊的第(i+1)個分組過濾器將所述第(i+1)個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配;
      所述匹配模塊的第i個分組過濾器將所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之后,所述第i個分組過濾器將所述第i個分組過濾器的匹配屬性值與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配。
      另一方面,本發(fā)明實施例提供的匹配加速器,包括:
      IP頭部參數(shù)緩存器、主控模塊、匹配模塊、發(fā)送緩存器,其中,
      所述IP頭部參數(shù)緩存器包括:X個緩存塊,其中X是正整數(shù);
      所述IP頭部參數(shù)緩存器,用于從IP數(shù)據(jù)流的η個IP數(shù)據(jù)包中分別提取每一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址,然后分別保存至所述IP頭部參數(shù)緩存器的X個緩存塊中,其中,η是正整數(shù);
      所述匹配模塊包括m個分組過濾器,其中,I ≤ i < (i+1) <m, 1、m是正整數(shù);
      所述匹配模 塊的第i個分組過濾器,用于將所述第i個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配,其中,k為正整數(shù);
      所述主控模塊,用于若所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配成功,將所述第i個分組過濾器的演進分組系統(tǒng)承載索引EBI寫入所述第k個緩存塊對應的IP數(shù)據(jù)包的結構體中,將所述第k個緩存塊中的IP數(shù)據(jù)包的結構體地址存入所述發(fā)送緩存器中;
      所述發(fā)送緩存器,用于保存所述主控模塊存入的第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址;
      所述匹配模塊的第(i + 1)個分組過濾器,用于若所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配失敗,將所述第(i+1)個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配;
      所述匹配模塊的第i個分組過濾器,用于將所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之后,將所述第i個分組過濾器的匹配屬性值與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配。
      從以上技術方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
      在本發(fā)明實施例中,IP頭部參數(shù)緩存器首先從IP數(shù)據(jù)流的η個IP數(shù)據(jù)包中分別提取每一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址,然后分別保存至IP頭部參數(shù)緩存器中的X個緩存塊中,匹配模塊的第i個分組過濾器將第i分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配,然后第i個分組過濾器將第i個分組過濾器的匹配屬性值與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進匹配,可見,在本發(fā)明實施例中,第i個分組過濾器在匹配完第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值之后,就可以再匹配第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值,而不需要等到匹配模塊中的m個分組過濾器都與第k個緩存塊中保存的IP數(shù)據(jù)包匹配完之后再進行,也就是說,本發(fā)明實施例中,匹配模塊中的各個分組過濾器對IP頭部參數(shù)緩存器中各個緩存塊中保存的IP數(shù)據(jù)包的匹配可以并行處理,能夠提高IP數(shù)據(jù)包與分組過濾器的匹配效率。


      為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域的技術人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
      圖1為現(xiàn)有技術中存在的IP數(shù)據(jù)包與PF的匹配方法的示意圖2為本發(fā)明實施例提供的IP數(shù)據(jù)包的匹配方法的示意圖3為本發(fā)明實施例提供的一種匹配加速器的組成結構示意圖4為本發(fā)明實施例提供的另一種匹配加速器的組成結構示意圖5為本發(fā)明實施例中提供的對一個IP數(shù)據(jù)包進行匹配處理的示意圖6 (a)為本發(fā)明實施例提供的多個IP數(shù)據(jù)鏈在Ti時刻進行匹配處理的示意圖6(b)為本發(fā)明實施例提供的多個IP數(shù)據(jù)鏈在Ti+Ι時刻進行匹配處理的示意圖6(c)為本發(fā)明實施例提供的多個IP數(shù)據(jù)鏈在Ti+2時刻進行匹配處理的示意圖。
      具體實施方式
      本發(fā)明實施例提供了一種IP數(shù)據(jù)包的匹配方法和匹配加速器,用于提高IP數(shù)據(jù)包與分組過濾器的匹配效率。為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部實施例?;诒景l(fā)明中的實施例,本領域的技術人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明實施例提供的IP數(shù)據(jù)包的匹配方法,如圖2所示,包括:20UIP頭部參數(shù)緩存器從IP數(shù)據(jù)流的η個IP數(shù)據(jù)包中分別提取每一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址,然后分別保存至IP頭部參數(shù)緩存器的X個緩存塊中。其中η,X都是正整數(shù),η指的是IP數(shù)據(jù)流中包含的IP數(shù)據(jù)包的個數(shù),x指的是IP頭部參數(shù)緩存器中包含的緩存塊的個數(shù),需要說明的是,本發(fā)明實施例中出現(xiàn)的η、X以及后續(xù)出現(xiàn)的m指代的都是數(shù)量,并且可以是根據(jù)實際的應用環(huán)境而改變的數(shù)量值,n、x、m并非是指n、x、m這些字母的本身,當然也可以用其它任意的字母或者數(shù)字來代替,此處只是表明數(shù)據(jù)包、緩存塊、分組過濾器的個數(shù),此處僅作說明,不做限定。需要說明的是,本發(fā)明實施例中η和X沒有對應關系,η有可能小于χ,η有可能大于X,在初始開始緩存IP數(shù)據(jù)包時不一定是把IP頭部參數(shù)緩存器中的所有緩存塊填滿再去匹配,有可能緩存一個數(shù)據(jù)包或幾個數(shù)據(jù)包就開始匹配的過程,此處僅作說明,不做限定。在本發(fā)明實施例中,匹配加速器包括:IP頭部參數(shù)緩存器、主控模塊、匹配模塊、發(fā)送緩存器,其中,IP頭部參數(shù)緩存器包括:Χ個緩存塊,匹配模塊包括m個分組過濾器。關于x、m的說明詳見前述描述,此處不再贅述。在本發(fā)明實施例中,IP頭部參數(shù)緩存器用于存放IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址,提供給匹配模塊進行PF匹配。需要說明的是,此時描述的IP頭部參數(shù)緩存器包括了 χ個緩存塊,在后續(xù)步驟中只描述了第k個緩存塊和第(k+Ι)個緩存塊,只是為了能夠清楚的描述各個緩存塊的工作流程以及實現(xiàn)方式,當然IP頭部參數(shù)緩存器也可以包括多個緩存塊,但是多個緩存塊的實現(xiàn)方式仍然是重復本發(fā)明實施例提供的第k個緩存塊和第(k+Ι)緩存塊的工作流程,仍就包含在本發(fā)明實施例之中。在實際應用中,IP頭部參數(shù)緩存器可以包含χ個緩存塊,χ是正整數(shù),由于IP頭部參數(shù)緩存器在進行IP頭部參數(shù)提取時,本發(fā)明實施例中的匹配模塊也在同時進行匹配處理,當IP頭部參數(shù)提取的速率小于匹配模塊中的PF匹配速率,IP頭部參數(shù)緩存器就不會出現(xiàn)緩存不夠用的情況,為了減少硬件資源開銷,此處IP頭部參數(shù)緩存器中的緩存塊具體可以為16,即IP頭部參數(shù)緩存器中包括的緩存塊為第I個緩存塊、第2個緩存塊.....第16個緩存塊。在本發(fā)明實施例中,IP數(shù)據(jù)流包括η個IP數(shù)據(jù)包,但是在實際應用中一個IP數(shù)據(jù)流(也可以叫一個IP數(shù)據(jù)鏈)中通??梢园ǘ鄠€IP數(shù)據(jù)包,需要說明的是,此時描述的IP數(shù)據(jù)流包括η個IP數(shù)據(jù)包只是為了能夠清楚的描述各個IP數(shù)據(jù)包的被處理的工作流程以及實現(xiàn)方式,當然一個IP數(shù)據(jù)流也可以包括多個IP數(shù)據(jù)包,但是對多個IP數(shù)據(jù)包的實現(xiàn)方式仍然是重復本發(fā)明實施例提供的對第k個緩存塊中保存的IP數(shù)據(jù)包和第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的被處理流程,仍就包含在本發(fā)明實施例之中。在每一個IP數(shù)據(jù)包中都包括有IP數(shù)據(jù)包的頭部參數(shù)值和IP數(shù)據(jù)包結構體地址,例如第一 IP數(shù)據(jù)包就包括有第一 IP數(shù)據(jù)包頭部參數(shù)值和第一 IP數(shù)據(jù)包結構體地址,第二 IP數(shù)據(jù)包就包括有第二IP數(shù)據(jù)包頭部參數(shù)值和第二 IP數(shù)據(jù)包結構體地址。
      在本發(fā)明實施例中,IP頭部參數(shù)緩存器從IP數(shù)據(jù)流的η個IP數(shù)據(jù)包中分別提取頭部參數(shù)值和結構體地址并分別保存至IP頭部參數(shù)緩存器的X個緩存塊,若IP頭部參數(shù)緩存器包括有多個緩存塊,此處可以將多個IP數(shù)據(jù)包頭部參數(shù)值和結構體地址保存在空閑的緩存塊中。202、匹配模塊的第i個分組過濾器將第i個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配,若匹配成功,觸發(fā)步驟203執(zhí)行,若匹配未成功,觸發(fā)步驟204執(zhí)行。其中,匹配模塊包括m個分組過濾器,其中,I < i < (i+1) <m,1、k、m是正整數(shù)。
      1、k、(i+1)都是正整數(shù),1、(i+1)滿足條件I < i < (i+1) <m,其中i指的是匹配模塊中第i個分組過濾器,(i+1)指的是匹配模塊中第(i+1)個分組過濾器,k指的是IP頭部參數(shù)緩存器中第k個緩存塊,需要說明的是,本發(fā)明實施例中出現(xiàn)的1、k、(i+1)以及后續(xù)出現(xiàn)的(k+Ι)指代的都是某一個分組過濾器或緩存塊,例如如果i取值為3,則指代的是匹配模塊中的第3個分組過濾器,k取值為1,則指代的是IP頭部參數(shù)寄存器中第I個緩存塊,另外1、k、(i+l)以及后續(xù)出現(xiàn)的(k+Ι)可以是根據(jù)實際的應用環(huán)境而改變的數(shù)量值,1、k、(i+1)、(k+Ι)并非是指1、k、(i+1)、(k+Ι)這些字母的本身,當然也可以用其它任意的字母或者數(shù)字來代替,此處只是表明第幾個分組過濾器、第幾個緩存塊,此處僅作說明,不做限定。在本發(fā)明實施例中,主控模塊用于對IP頭部參數(shù)緩存器、匹配模塊、發(fā)送緩存器的控制,例如主控模塊對匹配模塊、IP頭部參數(shù)緩存器、發(fā)送緩存器的是否使能進行控制,只有在使能的情況下,其余三個模塊才能正常工作。在本發(fā)明實施例中,匹配模塊包括m個分組過濾器,步驟202中只是描述了第i個分組過濾器的實現(xiàn)方法,需要說明的是,此時描述的匹配模塊中的第i個分組過濾器只是為了能夠清楚的描述匹配模塊中的一個分組過濾器的工作流程以及實現(xiàn)方式,當然匹配模塊也可以包括多個分組過濾器,但是多個分作過濾器的實現(xiàn)方式仍然是重復本發(fā)明實施例提供的第i個分組過濾器的工作流程,仍就包含在本發(fā)明實施例之中。在本發(fā)明實施例中,匹配模塊是主要的功能模塊,用于將IP數(shù)據(jù)包與網(wǎng)絡配予的有效分組過濾器進行匹配比較,并且將匹配成功的分組過濾器對應的EPS承載標識(EBI,EPS Bearer Identity)寫入IP數(shù)據(jù)包的結構體中。其中,IP數(shù)據(jù)包的匹配原則可以按著優(yōu)先級高到低進行匹配,故分組濾波器的設計也可以按照從優(yōu)先級高到低的順序進行匹配。需要說明的是,在本發(fā)明實施中,第i個分組過濾器的優(yōu)先級索引(EPI,Evaluation Precedence Index)可以高于第(i+1)個分組過濾器的EPI,每個分組過濾器通過唯一的分組過濾器標識符(PF ID)來識別,同時每個分組過濾器都包含有一個優(yōu)先級索引,每個EPI不同的分組過濾器所采用的匹配屬性原則可能不同,EPI的取值在使用相同IP地址和APN的所有EPS承載的同一方向(具體指上行方向或下行方向)下是惟一的,優(yōu)先級索引的優(yōu)先級取值范圍是O 255,其中O代表的是優(yōu)先級最高,255代表的是優(yōu)先級最低。在本發(fā)明實施例中,第i個分組過濾器將第i個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配,其中,匹配屬性值包括以下屬性值的至少一個:遠端地址和子網(wǎng)掩碼屬性值、安全參數(shù)索引屬性值、流標記屬性值、本地端口范圍屬性值、遠端端口范圍屬性值、互聯(lián)網(wǎng)協(xié)議第四版(IPv4, Internet Protocol version4)中服務類型或互聯(lián)網(wǎng)協(xié)議第六版(IPv6, Internet Protocol version 6)中業(yè)務等級屬性值、IPV4中協(xié)議號或IPV6中下一首部屬性值。
      通過EBI可將所有分組過濾器與EPS承載相互映射,每個EPS承載有對應的EBI參數(shù)和TFT。每個TFT中可以沒有對應的分組過濾器,但是一個PDN連接中最多只能有一個TFT中沒有分組過濾器,也就是說如果默認承載上沒有分組過濾器那么PDN連接對應的所有匹配加速器中都必須存在分組過濾器。
      鑒于本發(fā)明實施例中分組過濾器對IP數(shù)據(jù)包的匹配過程,增加IP頭部參數(shù)緩存器的優(yōu)勢在于:
      (I)、在匹配模塊在匹配IP數(shù)據(jù)包的同時可以提取IP數(shù)據(jù)流中其他IP數(shù)據(jù)包的頭部參數(shù)值,從而提高匹配效率;
      (2)、可減少匹配模塊的硬件開銷和匹配比較時IP數(shù)據(jù)包頭部參數(shù)的拷貝次數(shù),假如沒有本發(fā)明實施例提出的IP頭部參數(shù)緩存器,那么匹配模塊中的每個PF中都需開辟另一存儲空間用于存放IP數(shù)據(jù)包頭部參數(shù)以用于每次的匹配比較,這樣每個PF都需要再增加與屬性值寄存器同樣大的空間,對于256個PF,整個匹配模塊就需要額外增加256個寄存器,增加了硬件開銷;其次,當IP數(shù)據(jù)包在前一個PF中未能匹配成功需送往下一個PF匹配的情況下,有兩種方法,一種是重新從IP數(shù)據(jù)包中取出IP數(shù)據(jù)包頭部參數(shù),但因為這些頭部參數(shù)中涉及到兩個不固定位置的參數(shù),所以重新取數(shù)的開銷比從前一個PF存儲IP數(shù)據(jù)包的頭部參數(shù)的寄存器中拷貝更大;另一種是從上一個PF中拷貝,考慮極限情況,則需要拷貝256次。所以直接使用本發(fā)明實施例提供的IP頭部參數(shù)緩存器與PF中的匹配屬性值進行匹配比較既可以減少硬件開銷也可以減少拷貝次數(shù),提高了匹配效率。
      另外需要說明的是,步驟202中對于第k個緩存塊和第i個分組過濾器,都是指的有效的緩存塊和使能空閑的分組過濾器(也就是可以進行讀取的緩存塊和可以進行匹配的分組過濾器),包括后續(xù)步驟中出現(xiàn)的第(i+1)個分組過濾器和第(k+Ι)個緩存塊也是指有效的緩存塊和使能空閑的分組過濾器,也是對于使能空閑的分組過濾器來說,第(i+1)個分組過濾器并不一定是和第i個分組過濾器相鄰的那一個分組過濾器,同樣第(k+Ι)個緩存塊也并不一定是和第k個緩存塊相鄰的那一個緩存塊。簡言之,對于緩存塊:空閑表示可以往里面寫入IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址,有效表示可以讀取緩存塊中的頭部參數(shù)值與PF匹配;對于匹配模塊,使能空閑表示可以與下一有效緩存塊中的頭部參數(shù)值進行匹配。
      203、若第i個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配成功,主控模塊將第i個分組過濾器的演進分組系統(tǒng)承載索引EBI寫入第k個緩存塊對應的IP數(shù)據(jù)包的結構體中,主控模塊將第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中。
      在本發(fā)明實施例中,若第i個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配成功,主控模塊將第i個分組過濾器的EBI寫入第k個緩存塊中保存的IP數(shù)據(jù)包的結構體中,主控模塊將第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中,其中,發(fā)送緩存器用于存放匹配成功后的IP數(shù)據(jù)包結構體地址,發(fā)送緩存器的設計應注意:緩存區(qū)空間不需要開辟的過大,以減少硬件開銷。
      需要說明的是,在本發(fā)明實施例中,IP數(shù)據(jù)包結構體中必須包含一個用以存儲相應EBI值的成員,當IP數(shù)據(jù)包與PF匹配成功或是失敗需要將相應EBI值寫入其中,即匹配成功時將分組過濾器的EBI寫入IP數(shù)據(jù)包結構體對應的成員中,所有的分組過濾器都與IP數(shù)據(jù)包匹配失敗時將主控模塊中的EBI寫入IP數(shù)據(jù)包結構體對應的成員中。需要說明的是,在實際應用中,主控模塊將匹配成功的第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中之后,還可以包括步驟:主控模塊判斷是否滿足預置的中斷觸發(fā)條件,若滿足則主控模塊觸發(fā)中斷,發(fā)送緩存器將在發(fā)送緩存器中保存的IP數(shù)據(jù)包的結構體地址輸出給協(xié)議棧,以使協(xié)議棧對IP數(shù)據(jù)包的結構體地址進行處理,若不滿足則主控模塊不觸發(fā)中斷。例如,主控模塊為發(fā)送緩存器設置中斷觸發(fā)條件,當中斷觸發(fā)條件滿足時,主控模塊觸發(fā)中斷,發(fā)送緩存器將在發(fā)送緩存器中保存的IP數(shù)據(jù)包結構體地址輸出給協(xié)議棧,以滿足IP數(shù)據(jù)流中對已經(jīng)匹配成功的IP數(shù)據(jù)包結構體地址優(yōu)先處理。在實際應用中,主控模塊預置的中斷觸發(fā)條件具體可以包括:發(fā)送緩存器中保存的IP數(shù)據(jù)包結構體地址的個數(shù)不小于預置個數(shù);或,滿足空閑觸發(fā)中斷的條件,其中,空閑觸發(fā)終端的條件包括:IP頭部參數(shù)緩存器中所有緩存塊空閑、匹配模塊的所有m個分組過濾器都處于使能空閑狀態(tài)、發(fā)送緩存器中保存的IP數(shù)據(jù)包的結構體地址的個數(shù)大于零。204、若第i個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配失敗,匹配模塊的第(i+1)個分組過濾器將第(i+1)個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配。在本發(fā)明實施例中,當?shù)趇個分組過濾器與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配失敗時,由第(i+1)個分組過濾器繼續(xù)與第k個緩存塊中保存的IP數(shù)據(jù)包頭部參數(shù)值進行匹配。這是一個不斷持續(xù)進行的過程,若匹配模塊中含有多個分組過濾器,則在前一個分組過濾器匹配失敗時,需要由后續(xù)的分組過濾器繼續(xù)進行匹配。需要說明的是,在本發(fā)明實施例中,一種可實現(xiàn)的情況是,匹配模塊的第(i+1)個分組過濾器將第(i+1)個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之后,還可以包括如下步驟:當(i+1) =m,若第(i+1)個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配失敗,主控模塊將主控模塊中的演進分組系統(tǒng)承載索引EBI寫入第k個緩存塊對應的IP數(shù)據(jù)包的結構體中,主控模塊將第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中。也就是說,若匹配模塊中包括的m個分組過濾器都匹配失敗時,則主控模塊將主控模塊中的EBI寫入第k個緩存塊中保存的IP數(shù)據(jù)包中,主控模塊將第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中。以下舉例進行說明,在實際應用中,優(yōu)先級索引的優(yōu)先級取值范圍是O 255,匹配模塊具體可以包含256個分組過濾器PF,按著PF優(yōu)先級從高到低的順序設計,即PR)對應為優(yōu)先級為O的PF,PFk存放優(yōu)先對應為優(yōu)先級為k的PF,首先由PR)進行匹配,若匹配失敗,由PFl進行匹配,若PFl匹配失敗,繼續(xù)由PF2進行匹配,...,直到由PF255進行匹配,若PF255匹配失敗,則主控模塊將主控模塊的EBI寫入第k個緩存塊中保存的IP數(shù)據(jù)包的結構體中,主控模塊將第k個緩存塊中的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中。205、匹配模塊的第i個分組過濾器將第i個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之后,第i個分組過濾器將第i個分組過濾器的匹配屬性值與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配。
      在本發(fā)明實施例中,匹配模塊的第i個分組過濾器將第i個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之后,第i個分組過濾器將第i個分組過濾器的匹配屬性值與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配,由于第i個分組過濾器在使能空閑時就可以繼續(xù)進行匹配工作,而不需要等到匹配模塊中的m個分組過濾器都匹配完成之后才能進行匹配,故可以實現(xiàn)并行的匹配方式,提高匹配效率。
      需要說明的是,在本發(fā)明實施例中,步驟205執(zhí)行之前還可以包括如下步驟:
      主控模塊判斷匹配模塊的第(i+1)個分組過濾器是否使能空閑,若是,主控模塊觸發(fā)第(i+1)個分組過濾器執(zhí)行與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配的功能。即,在第(i+1)個分組過濾器開始進行匹配之前,主控模塊判斷一下第(i+1)個分組過濾器的狀態(tài),若第(i+1)個分組過濾器有效,主控模塊再觸發(fā)第(i+1)個分組過濾器開始匹配工作。
      需要說明的是,本發(fā)明實施例中,匹配模塊的第i個分組過濾器將第i個分組過濾器的匹配屬性值與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之前,還包括:主控模塊判斷IP頭部參數(shù)緩存器中第(k+Ι)個緩存塊是否有效,若是,主控模塊觸發(fā)第i個分組過濾器與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配。
      在本發(fā)明實施例中,IP頭部參數(shù)緩存器首先從IP數(shù)據(jù)流的η個IP數(shù)據(jù)包中分別提取每一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址,然后分別保存至IP頭部參數(shù)緩存器中的X個緩存塊中,匹配模塊的第i個分組過濾器將第i分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配,然后第i個分組過濾器將第i個分組過濾器的匹配屬性值與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進匹配,可見,在本發(fā)明實施例中,第i個分組過濾器在匹配完第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值之后,就可以再匹配第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值,而不需要等到匹配模塊中的m個分組過濾器都與第k個緩存塊中保存的IP數(shù)據(jù)包匹配完之后再進行,也就是說,本發(fā)明實施例中,匹配模塊中的各個分組過濾器對IP頭部參數(shù)緩存器中各個緩存塊中保存的IP數(shù)據(jù)包的匹配可以并行處理,能夠提高IP數(shù)據(jù)包與分組過濾器的匹配效率。
      以上實施例介紹了本發(fā)明實施例提供的IP數(shù)據(jù)包的匹配方法,接下來介紹本發(fā)明實施例提供的方法相對應的裝置:匹配加速器,如圖3所示,一種匹配加速器300,包括:IP頭部參數(shù)緩存器301、主控模塊302、匹配模塊303、發(fā)送緩存器304,其中,
      IP頭部參數(shù)緩存器301包括:X個緩存塊,其中X是正整數(shù);
      IP頭部參數(shù)緩存器301,用于從IP數(shù)據(jù)流的η個IP數(shù)據(jù)包中分別提取每一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址,然后分別保存至所述IP頭部參數(shù)緩存器的X個緩存塊中,其中,η是正整數(shù);
      匹配模塊303包括m個分組過濾器,其中,I < i < (i+1) <m,1、m是正整數(shù);
      匹配模塊的第i分組過濾器3031,用于將第i個分組過濾器3031的匹配屬性值與第k個緩存塊3011中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配,其中,k為正整數(shù);
      主控模塊302,用于若第i個分組過濾器3031的匹配屬性值與第k個緩存塊3011中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配成功,將第i個分組過濾器3031的演進分組系統(tǒng)承載索引EBI寫入第k個緩存塊3011對應的IP數(shù)據(jù)包的結構體中,將第k個緩存塊3011中的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器304中;發(fā)送緩存器304,用于保存主控模塊302存入的第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址;匹配模塊的第(i+1)個分組過濾器3032,用于若第i個分組過濾器3031的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配失敗,將第(i+1)個分組過濾器3032的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包頭部參數(shù)值進行匹配;匹配模塊的第i個分組過濾器3031,用于將第i個分組過濾器3031的匹配屬性值與第k個緩存塊3011中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之后,將第i個分組過濾器3031的匹配屬性值與第(k+Ι)個緩存塊3012中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配。需要說明的是,對于主控模塊302和第(i+1)個分組過濾器3032而言,在實際應用中,主控模塊302,還用于當(i+1) =m,若第(i+1)個分組過濾器3032的匹配屬性值與第k個緩存塊3011中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配失敗,將主控模塊302中的演進分組系統(tǒng)承載索引EBI寫入第k個緩存塊3011對應的IP數(shù)據(jù)包的結構體中,將第k個緩存塊3011中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器304中。需要說明的是,對于主控模塊302和發(fā)送緩存器304而言,在實際應用中,主控模塊302,還用于判斷是否滿足預置的中斷觸發(fā)條件,若滿足則觸發(fā)中斷;發(fā)送緩存器304,還用于將在發(fā)送緩存器304中保存的IP數(shù)據(jù)包的結構體地址輸出給協(xié)議棧,以使協(xié)議棧對發(fā)送緩存器304中保存的IP數(shù)據(jù)包的結構體地址進行處理。需要說明的是,對于主控模塊302和IP頭部參數(shù)緩存器301而言,在實際應用中,主控模塊302,還用于將第k個緩存塊3011中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器304中之后,將IP頭部參數(shù)寄存器301的第k個緩存塊3011清零;IP頭部參數(shù)緩存器301,還用于從IP數(shù)據(jù)流中提取未保存的一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址并保存至IP頭部參數(shù)緩存器的第k個緩存塊3011。需要說明的是,對于主控模塊302而言,在實際應用中,主控模塊302,還用于在第(i+1)個分組過濾器3032執(zhí)行之前進行判斷第(i+1)個分組過濾器3032是否使能空閑,若是,觸發(fā)第(i+1)個分組過濾器3032執(zhí)行。需要說的是,主控模塊302,還用于在第i個分組過濾器執(zhí)行之前判斷第(i+1)個緩存塊是否有效,若是,觸發(fā)第i個分組過濾器3031與第(k+Ι)個緩存塊3012中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配。需要說明的是,上述裝置各模塊/單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構思,其帶來的技術效果與本發(fā)明方法實施例相同,具體內(nèi)容可參見本發(fā)明如圖1所示的方法實施例中的敘述,此處不再贅述。本發(fā)明實施例中,IP頭部參數(shù)緩存器首先從IP數(shù)據(jù)流的η個IP數(shù)據(jù)包中分別提取每一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址,然后分別保存至IP頭部參數(shù)緩存器中的X個緩存塊中,匹配模塊的第i個分組過濾器將第i分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配,然后第i個分組過濾器將第i個分組過濾器的匹配屬性值與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進匹配,可見,在本發(fā)明實施例中,第i個分組過濾器在匹配完第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值之后,就可以再匹配第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值,而不需要等到匹配模塊中的m個分組過濾器都與第k個緩存塊中保存的IP數(shù)據(jù)包匹配完之后再進行,也就是說,本發(fā)明實施例中,匹配模塊中的各個分組過濾器對IP頭部參數(shù)緩存器中各個緩存塊中保存的IP數(shù)據(jù)包的匹配可以并行處理,能夠提高IP數(shù)據(jù)包與分組過濾器的匹配效率。接下來,以一個實際的應用場景對本發(fā)明實施例提出的匹配加速器進行詳細說明,如圖4所示,匹配加速器包括:IP頭部參數(shù)緩存器、主控模塊、匹配模塊、發(fā)送緩存器,其中,IP頭部參數(shù)緩存器包括:緩存塊1、緩存塊2.....緩存塊n,該IP頭部參數(shù)緩存器
      包含η個緩存塊,為了能夠使匹配模塊中所有PF使能工作,那么η取值應該是256,由于IP頭部參數(shù)緩存器在進行IP頭部參數(shù)提取時,匹配模塊也在同時匹配處理,當IP頭部參數(shù)提取的速率小于匹配模塊中的PF匹配速率,IP頭部參數(shù)緩存器就不會出現(xiàn)緩存不夠情況,為了減少硬件資源開銷,此處IP頭部參數(shù)緩存器中緩存塊以16為例。其中,IP頭部參數(shù)緩存器中的每個緩存塊至少應包括三個部分,如圖4所示,圖4中僅畫出了緩存塊I中包括了 IP
      數(shù)據(jù)包結構體地址寄存器、匹配屬性值寄存器、狀態(tài)寄存器,其它緩存塊如緩存塊2.....緩
      存塊η都包括了這3個部分,每個緩存塊中具體包括:一個用于存放包含有IP數(shù)據(jù)包信息的結構體地址寄存器;另一個用于存放從IP數(shù)據(jù)包中提取的頭部參數(shù)的匹配屬性值寄存器,還有一個用于指示當前緩存塊是否有效的狀態(tài)寄存器。其中緩存塊的讀寫根據(jù)緩存塊的工作狀態(tài)依次操作,往IP頭部參數(shù)緩存器中的緩存塊中保存IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址時為寫緩存塊,向現(xiàn)有空閑緩存塊中離上次寫緩存塊向后最近的空閑緩存塊進行寫操作;ΙΡ頭部參數(shù)與匹配模塊進行匹配時為讀緩存塊,向現(xiàn)有有效緩存塊中離上次讀緩存塊向后最近的有效緩存塊進行讀操作。主控模塊包括:觸發(fā)寄存器、長度寄存器、EBI寄存器、配置寄存器、狀態(tài)寄存器,接下來分別作 介紹。觸發(fā)寄存器:結合發(fā)送緩存器的空間大小,配置中斷產(chǎn)生觸發(fā)條件;長度寄存器:用于存儲中斷產(chǎn)生時,從發(fā)送緩存器中提取的IP數(shù)據(jù)包結構體地址的個數(shù)。EBI寄存器:用于存儲沒有PF的EBI (即所有的PF都匹配失敗時)對應的EBI,同一 TON連接下,如果所有承載(包括默認承載和專用承載)都分配有PF,則此EBI寄存器被置為一無效值;配置寄存器:用于存儲匹配加速器使能、匹配模塊使能和觸發(fā)寄存器使能等配置信息;狀態(tài)寄存器:中斷狀態(tài)、IP頭部參數(shù)緩存器、匹配模塊等工作狀態(tài)信息;需要說明的是,如果有其他功能需求,可增加寄存器個數(shù)用于不同的控制。匹配模塊包括256個PF,按著PF優(yōu)先級從高到低的順序設計,分別為PFO、PFUPF2、...、PF255,即PR)對應為優(yōu)先級為O的PF,PFk存放優(yōu)先對應為優(yōu)先級為k的PF,PFk指的是第k個PF。每個PF至少存在五部分:比較器:用于IP數(shù)據(jù)包頭部參數(shù)值與PF的匹配屬性值比較;
      狀態(tài)寄存器:記錄PF工作狀態(tài)等狀態(tài)信息;EBI寄存器:存放PF對應的EPS承載標識(EBI);配置寄存器:存放PF匹配屬性原則和匹配模塊的使能控制位,其中的PF匹配屬性原則按著位圖(bitmap)設計,每一比特位代表一種PF匹配屬性的有效性;屬性值寄存器:存放對應PF的匹配屬性值,可如下表I中設計:

      權利要求
      1.一種IP數(shù)據(jù)包的匹配方法,其特征在于,包括: IP頭部參數(shù)緩存器從IP數(shù)據(jù)流的η個IP數(shù)據(jù)包中分別提取每一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址,然后分別保存至所述IP頭部參數(shù)緩存器的X個緩存塊中,其中η,X都是正整數(shù); 所述匹配模塊的第i個分組過濾器將所述第i個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配,所述匹配模塊包括m個分組過濾器,其中,I < i < (i+1) < m, 1、k、m 是正整數(shù); 若所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配成功,所述主控模塊將所述第i個分組過濾器的演進分組系統(tǒng)承載索引EBI寫入所述第k個緩存塊對應的IP數(shù)據(jù)包的結構體中,所述主控模塊將所述第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中; 若所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配失敗,所述匹配模塊的第(i+1)個分組過濾器將所述第(i+1)個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配; 所述匹配模塊的第i個分組過濾器將所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之后,所述第i個分組過濾器將所述第i個分組過濾器的匹配屬性值與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配。
      2.根據(jù)權利要求1所述的IP數(shù)據(jù)包的匹配方法,其特征在于,所述匹配模塊的第(i+1)個分組過濾器將所述第(i+1)個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之后,還包括: 當(i+1) =m,若所述第(i+1)個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配失敗,所述主控模塊將所述主控模塊中的演進分組系統(tǒng)承載索引EBI寫入所述第k個緩存塊對應的IP數(shù)據(jù)包的結構體中,所述主控模塊將所述第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中。
      3.根據(jù)權利要求1所述的IP數(shù)據(jù)包的匹配方法,其特征在于,所述方法還包括: 所述主控模塊判斷是否滿足預置的中斷觸發(fā)條件,若滿足則所述主控模塊觸發(fā)中斷,所述發(fā)送緩存器將在所述 發(fā)送緩存器中保存的IP數(shù)據(jù)包的結構體地址輸出給協(xié)議棧,以使所述協(xié)議棧對所述發(fā)送緩存器中保存的IP數(shù)據(jù)包的結構體地址進行處理。
      4.根據(jù)權利要求3所述的IP數(shù)據(jù)包的匹配方法,其特征在于,所述預置的中斷觸發(fā)條件包括: 所述發(fā)送緩存器中保存的IP數(shù)據(jù)包的結構體地址的個數(shù)不小于預置個數(shù); 或,滿足空閑觸發(fā)中斷的條件,所述空閑觸發(fā)終端的條件包括:所述IP頭部參數(shù)緩存器中所有緩存塊空閑、所述匹配模塊的m個分組過濾器都處于使能空閑狀態(tài)、所述發(fā)送緩存器中保存的IP數(shù)據(jù)包的結構體地址的個數(shù)大于零。
      5.根據(jù)權利要求1所述的IP數(shù)據(jù)包的匹配方法,其特征在于,所述主控模塊將所述第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中之后,還包括: 所述主控模塊將所述IP頭部參數(shù)寄存器的第k個緩存塊清零; 所述IP頭部參數(shù)緩存器從IP數(shù)據(jù)流中提取未保存的一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址并保存至所述IP頭部參數(shù)緩存器的第k個緩存塊。
      6.根據(jù)權利要求1所述的IP數(shù)據(jù)包的匹配方法,其特征在于,所述第i個分組過濾器的優(yōu)先級索引EPI高于所述第(i+1)個分組過濾器的EPI。
      7.根據(jù)權利要求1所述的IP數(shù)據(jù)包的匹配方法,其特征在于,所述匹配屬性值包括以下屬性值的至少一個: 遠端地址和遠端地址子網(wǎng)掩碼屬性值、安全參數(shù)索引屬性值、流標記屬性值、本地端口范圍屬性值、遠端端口范圍屬性值、互聯(lián)網(wǎng)協(xié)議第四版IPv4中服務類型或互聯(lián)網(wǎng)協(xié)議第六版IPv6中業(yè)務等級屬性值、IPv4中協(xié)議號或IPv6中下一首部屬性值。
      8.根據(jù)權利要求1所述的IP數(shù)據(jù)包的匹配方法,其特征在于,所述匹配模塊的第(i+1)個分組過濾器將所述第(i+1)個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之前,還包括: 所述主控模塊判斷所述匹配模塊的第(i+1)個分組過濾器是否使能空閑,若是,所述主控模塊觸發(fā)所述第(i+1)個分組過濾器執(zhí)行與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配的功能 。
      9.根據(jù)權利要求1所述的IP數(shù)據(jù)包的匹配方法,其特征在于,匹配模塊的第i個分組過濾器將所述第i個分組過濾器的匹配屬性值與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之前,還包括: 所述主控模塊判斷所述IP頭部參數(shù)緩存器中第(k+Ι)個緩存塊是否有效,若是,所述主控模塊觸發(fā)所述第i個分組過濾器與所述第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配。
      10.一種匹配加速器,其特征在于,包括:IP頭部參數(shù)緩存器、主控模塊、匹配模塊、發(fā)送緩存器,其中, 所述IP頭部參數(shù)緩存器包括:X個緩存塊,其中X是正整數(shù); 所述IP頭部參數(shù)緩存器,用于從IP數(shù)據(jù)流的η個IP數(shù)據(jù)包中分別提取每一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址,然后分別保存至所述IP頭部參數(shù)緩存器的X個緩存塊中,其中,η是正整數(shù); 所述匹配模塊包括m個分組過濾器,其中,1 < i < (i+1) <m, 1、m是正整數(shù); 所述匹配模塊的第i個分組過濾器,用于將所述第i個分組過濾器的匹配屬性值與第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配,其中,k為正整數(shù); 所述主控模塊,用于若所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配成功,將所述第i個分組過濾器的演進分組系統(tǒng)承載索引EBI寫入所述第k個緩存塊對應的IP數(shù)據(jù)包的結構體中,將所述第k個緩存塊中的IP數(shù)據(jù)包的結構體地址存入所述發(fā)送緩存器中; 所述發(fā)送緩存器,用于保存所述主控模塊存入的第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址; 所述匹配模塊的第(i+1)個分組過濾器,用于若所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配失敗,將所述第(i+1)個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配; 所述匹配模塊的第i個分組過濾器,用于將所述第i個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配之后,將所述第i個分組過濾器的匹配屬性值與第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配。
      11.根據(jù)權利要求10所述的匹配加速器,其特征在于,所述主控模塊,還用于當(i+1)=m,若所述第(i+1)個分組過濾器的匹配屬性值與所述第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值匹配失敗,將所述主控模塊中的演進分組系統(tǒng)承載索引EBI寫入所述第k個緩存塊對應的IP數(shù)據(jù)包的結構體中,將所述第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中。
      12.根據(jù)權利要求10所述的匹配加速器,其特征在于, 所述主控模塊,還用于判斷是否滿足預置的中斷觸發(fā)條件,若滿足則觸發(fā)中斷; 所述發(fā)送緩存器,還用于將在所述發(fā)送緩存器中保存的IP數(shù)據(jù)包的結構體地址輸出給協(xié)議棧,以使所述協(xié)議棧對所述發(fā)送緩存器中保存的IP數(shù)據(jù)包的結構體地址進行處理。
      13.根據(jù)權利要求10所述的匹配加速器,其特征在于, 所述主控模塊,還用于將所述第k個緩存塊中保存的IP數(shù)據(jù)包的結構體地址存入發(fā)送緩存器中之后,將所述IP頭部參數(shù)寄存器的第k個緩存塊清零; 所述IP頭部參數(shù)緩存器,還用于從IP數(shù)據(jù)流中提取未保存的一個IP數(shù)據(jù)包的頭部參數(shù)值和結構體地址并保存至所述IP 頭部參數(shù)緩存器的第k個緩存塊。
      14.根據(jù)權利要求10所述的匹配加速器,其特征在于,所述主控模塊,還用于在所述第(i+1)個分組過濾器執(zhí)行之前判斷所述第(i+1)個分組過濾器是否使能空閑,若是,觸發(fā)所述第α+1)個分組過濾器執(zhí)行。
      15.根據(jù)權利要求10所述的匹配加速器,其特征在于,所述主控模塊,還用于在所述第I個分組過濾器執(zhí)行之前判斷所述第(i+1)個緩存塊是否有效,若是,觸發(fā)所述第i個分組過濾器與所述第(k+Ι)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值進行匹配。
      全文摘要
      本發(fā)明實施例公開了一種IP數(shù)據(jù)包的匹配方法和匹配加速器,用于提高IP數(shù)據(jù)包與分組過濾器的匹配效率。本發(fā)明實施例提供的方法中,第i個分組過濾器在匹配完第k個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值之后,就可以再匹配第(k+1)個緩存塊中保存的IP數(shù)據(jù)包的頭部參數(shù)值,而不需要等到匹配模塊中的m個分組過濾器都與第k個緩存塊中保存的IP數(shù)據(jù)包匹配完之后再進行,也就是說,本發(fā)明實施例中,匹配模塊中的各個分組過濾器對IP頭部參數(shù)緩存器中各個緩存塊中保存的IP數(shù)據(jù)包的匹配可以并行處理,能夠提高IP數(shù)據(jù)包與分組過濾器的匹配效率。
      文檔編號H04L1/00GK103188042SQ20111045975
      公開日2013年7月3日 申請日期2011年12月31日 優(yōu)先權日2011年12月31日
      發(fā)明者佘廣橋, 周勃, 楊煉, 朱正發(fā) 申請人:重慶重郵信科通信技術有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1