一種基于NetFPGA可編程虛擬路由器的數(shù)據(jù)包加速轉(zhuǎn)發(fā)方法及裝置制造方法
【專利摘要】本發(fā)明公開一種基于NetFPGA可編程虛擬路由器的數(shù)據(jù)包加速轉(zhuǎn)發(fā)方法和裝置。通過在數(shù)據(jù)轉(zhuǎn)發(fā)平面設(shè)計(jì)一個局部加速轉(zhuǎn)發(fā)模塊,使之與原有的常規(guī)轉(zhuǎn)發(fā)模塊形成一個雙引擎架構(gòu),兩條查找線路通過一個優(yōu)先權(quán)選擇模塊進(jìn)行線路切換,形成一個互補(bǔ)查找結(jié)構(gòu)。加速路由表中的條目具有生存期,利用定時刷新機(jī)制可以對表中的數(shù)據(jù)定時更新。通過設(shè)計(jì)加速轉(zhuǎn)發(fā)模塊,使可編程虛擬路由器在對數(shù)據(jù)包的處理過程中能夠縮短數(shù)據(jù)包的查找過程、減少路由表的查找次數(shù)、減輕路由查找負(fù)擔(dān),起到加速數(shù)據(jù)包轉(zhuǎn)發(fā)的目的。
【專利說明】—種基于NetFPGA可編程虛擬路由器的數(shù)據(jù)包加速轉(zhuǎn)發(fā)方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及可編程路由器技術(shù),具體是數(shù)據(jù)包加速轉(zhuǎn)發(fā)方法即裝置。
【背景技術(shù)】
[0002]可編程虛擬路由器是下一代網(wǎng)絡(luò)研究試驗(yàn)床的核心設(shè)備,具有可編程,虛擬化特性。其可編程性可以使研究人員很方便的在可編程虛擬路由器上部署新協(xié)議、驗(yàn)證新算法、擴(kuò)展新功能等。在對可編程虛擬路由器的研究中,數(shù)據(jù)包轉(zhuǎn)發(fā)速率的研究是當(dāng)前研究的一個重點(diǎn)。有專門針對路由查找算法的研究,通過提高查找算法來提升查找速率,加速數(shù)據(jù)包的處理,如基于Hash的算法、基于Trie的算法、基于比特查找樹的算法等,也有針對路由器硬件查找方法的的研究來提高轉(zhuǎn)發(fā)速率,如TCAM查找方法,CACHE+SRAM查找方法等。
[0003]基于NetFPGA的可編程虛擬路由器采用的是控制和轉(zhuǎn)發(fā)相分離的架構(gòu):控制平面采用OpenVZ+Quagga技術(shù)。其中OpenVZ是一種虛擬化技術(shù),Quagga是一種協(xié)議部署軟件。整個控制平面是基于Iinux系統(tǒng),具體是Centos系統(tǒng)。轉(zhuǎn)發(fā)平面采用一塊NetFPGA板卡實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā),該板卡支持可編程功能。
[0004]目前,與本發(fā)明比較接近的一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法是利用緩存機(jī)制(CACHE+SRAM)實(shí)現(xiàn),其不足之處在于高速緩存容量有限,且高速緩存中的數(shù)據(jù)無法急時更新。當(dāng)高速緩存中的條目達(dá)到一定程度后,無法繼續(xù)向高速緩存中添加條目。當(dāng)數(shù)據(jù)包進(jìn)入數(shù)據(jù)轉(zhuǎn)發(fā)層面需要進(jìn)行全局路由查時,必須先經(jīng)過高速緩存查找才能再次進(jìn)入全局路由查找。當(dāng)流數(shù)據(jù)過大時,路由查找延遲增大,且對于同一路由條目的多次重復(fù)性查找加重了路由器的負(fù)擔(dān),使得路由器數(shù)據(jù)包轉(zhuǎn)發(fā)性能下降。
【發(fā)明內(nèi)容】
[0005]針對數(shù)據(jù)轉(zhuǎn)發(fā)過程中的查找延遲及同一路由條目的多次重復(fù)性查找而加重路由負(fù)擔(dān)的問題,本發(fā)明在原有架構(gòu)的基礎(chǔ)上,提出一種加速數(shù)據(jù)包轉(zhuǎn)發(fā)的路由查找架構(gòu),解決數(shù)據(jù)包查找過程中同一路由條目的多次查找,縮短查找流程,提高系統(tǒng)的轉(zhuǎn)發(fā)性能。
[0006]本發(fā)明的技術(shù)方案如下:
一種基于NetFPGA可編程虛擬路由器的數(shù)據(jù)包加速轉(zhuǎn)發(fā)裝置,所述裝置在數(shù)據(jù)轉(zhuǎn)發(fā)層面包括常規(guī)轉(zhuǎn)發(fā)模塊和加速轉(zhuǎn)發(fā)模塊,構(gòu)成一種并行架構(gòu),實(shí)現(xiàn)雙引擎查找,常規(guī)轉(zhuǎn)發(fā)模塊對應(yīng)于常規(guī)查找線路,加速轉(zhuǎn)發(fā)模塊對應(yīng)于加速查找線路,所述裝置包含:數(shù)據(jù)包頭部解析模塊、索引查找模塊、優(yōu)先權(quán)判定模塊、IP查找模塊、ARP查找模塊、加速查找模塊、輸出選擇模塊、數(shù)據(jù)包緩沖隊(duì)列模塊和數(shù)據(jù)包重新封裝模塊;其中索引查找模塊、優(yōu)先權(quán)判定模塊、加速查找模塊和輸出選擇模塊構(gòu)成加速轉(zhuǎn)發(fā)模塊;索引查找模塊、優(yōu)先權(quán)判定模塊、IP查找模塊、ARP查找模塊和輸出選擇模塊構(gòu)成常規(guī)轉(zhuǎn)發(fā)模塊。
[0007]所述數(shù)據(jù)包頭部解析模塊,用于提取數(shù)據(jù)包包頭的相關(guān)信息,通過該模塊為數(shù)據(jù)包的后續(xù)查找提供相應(yīng)信息; 所述索引查找模塊,用于關(guān)鍵字的查找,根據(jù)頭部解析模塊給出的關(guān)鍵字信息進(jìn)行關(guān)鍵字的查找,為查找關(guān)鍵字匹配一個地址信息,該地址信息為路由表中路由條目的存儲地址;索引查找模塊由兩個TCAM (—種三態(tài)內(nèi)容尋址存儲器,采用硬件并行查找結(jié)構(gòu),查找速度快)構(gòu)成,其中一個用于加速路由表索引查找(命名為TCAM_A),另一個用于常規(guī)路由表索引查找(命名為TCAM_B),兩個TCAM并行運(yùn)行。TCAM中存放的著查找路由條目所需的關(guān)鍵字信息和對應(yīng)路由條目的地址信息,格式如圖3所示。
[0008]所述優(yōu)先權(quán)判定模塊,用于選擇優(yōu)先權(quán)最高的的查找線路進(jìn)行路由查找,當(dāng)前一模塊有數(shù)據(jù)輸出時,該模塊通過判決規(guī)則,選擇一條優(yōu)先權(quán)最高的線路作為輸出,并啟動對應(yīng)的查找線路。對于TCAM_A啟動加速查找線路(如圖2中下支路),對于TCAM_B啟動常規(guī)查找線路(如圖2中上支路),默認(rèn)TCAM_A返回值優(yōu)先權(quán)高于TCAM_B返回值優(yōu)先權(quán)。
[0009]所述加速查找模塊,存儲數(shù)據(jù)轉(zhuǎn)發(fā)所需的路由信息;該模塊根據(jù)接收到的地址信息返回加速路由表中對應(yīng)地址的路由信息,并對路由條目生存期進(jìn)行修改。即該模塊根據(jù)優(yōu)先權(quán)判定模塊提供的地址信息,通過內(nèi)部加速路由表,返回相應(yīng)地址的路由條目。加速路由表的存儲格式如圖4中所示,包括下一跳MAC值,輸出端口號,生存期。該模塊采用定時刷新機(jī)制,根據(jù)查找頻率和刷新頻率,對加速路由表中條目的生存期進(jìn)行修改。該模塊還能通過反饋線路添加新的條目信息,且支持用戶操作。
[0010]所述輸出選擇模塊,該模塊配合優(yōu)先權(quán)判定模塊,用于選擇合適的查找線路上的輸出數(shù)據(jù)作為查找結(jié)果的輸出,并與加速查找模塊逆向通信。如果選擇的是常規(guī)查找線路作為輸出,除了將數(shù)據(jù)輸出到數(shù)據(jù)包重新封裝模塊,還要將查找結(jié)果通過反饋線路(如圖2中虛線箭頭所示)發(fā)送到加速表查找模塊及TCAM_A模塊。
[0011]所述數(shù)據(jù)包緩沖隊(duì)列模塊,該模塊配合查找線路對數(shù)據(jù)包進(jìn)行緩沖,為后面的數(shù)據(jù)包重新封裝提供相應(yīng)的數(shù)據(jù)。該模塊接收到輸出選擇模塊的數(shù)據(jù)后,調(diào)取緩沖隊(duì)列中的數(shù)據(jù)包,對數(shù)據(jù)包進(jìn)行重新封裝,包括修改下一跳MAC,輸出端口,生存期TTL等,封裝完成后將新的數(shù)據(jù)包輸出。
[0012]本發(fā)明通過在數(shù)據(jù)轉(zhuǎn)發(fā)層面設(shè)計(jì)一個加速轉(zhuǎn)發(fā)模塊,使數(shù)據(jù)包在路由轉(zhuǎn)發(fā)時,減少對常規(guī)路由表中同一路由條目的多次查找,縮短數(shù)據(jù)包的查找過程,從而減少數(shù)據(jù)包在路由器中的逗留時間,減輕路由查找負(fù)擔(dān),起到加速數(shù)據(jù)包轉(zhuǎn)發(fā)的目的。
[0013]本發(fā)明采用雙引擎構(gòu)架,加速查找線路和常規(guī)查找線路并行運(yùn)行,互不影響,僅通過一個優(yōu)先權(quán)判定模塊進(jìn)行線路的快速切換。其次,加速路由表還采用了定時刷新機(jī)制對表中的條目定時更新,從而解決了加速路由表的容量不足問題。
【專利附圖】
【附圖說明】
[0014]圖1為可編程虛擬路由器架構(gòu)圖;
圖2為數(shù)據(jù)包處理模塊內(nèi)部框圖;
圖3 TCAM_A內(nèi)部存儲結(jié)構(gòu)圖;
圖4加速路由表結(jié)構(gòu)圖;
圖5為數(shù)據(jù)包加速處理流程圖。
【具體實(shí)施方式】[0015]如圖1所示為可編程虛擬路由器基本架構(gòu)圖,本發(fā)明在數(shù)據(jù)平面添加了一個加速轉(zhuǎn)發(fā)模塊,如圖2中虛框包含部分,包括以下幾個部分:索引查找模塊,優(yōu)先權(quán)判定模塊,力口速表查找模塊,輸出選擇模塊。該模塊與常規(guī)轉(zhuǎn)發(fā)模塊并行運(yùn)行,構(gòu)成雙引擎查找架構(gòu)。
[0016]圖2為數(shù)據(jù)包處理的內(nèi)部框圖。整個數(shù)據(jù)包轉(zhuǎn)發(fā)包括數(shù)據(jù)包頭部解析模塊、索引查找模塊、優(yōu)先權(quán)判定模塊、IP查找模塊、ARP查找模塊、加速查找模塊、輸出選擇模塊、數(shù)據(jù)包緩沖隊(duì)列模塊和數(shù)據(jù)包重新封裝模塊。
[0017]A、數(shù)據(jù)包頭部解析模塊,該模塊用于提取數(shù)據(jù)包包頭的相關(guān)信息,包括提取目的MAC、源MAC、目的IP地址、源IP地址、端口號、生存期TTL、校驗(yàn)和等。通過該模塊為數(shù)據(jù)包的后續(xù)查找提供相應(yīng)信息。
[0018]B、索引查找模塊,該模塊用于關(guān)鍵字查找,包含兩個TCAM。TCAM中的內(nèi)容如圖3所示,前一項(xiàng)存儲的是關(guān)鍵字信息,后一項(xiàng)是一個地址信息,該地址指向加速路由表中的路由條目,TCAM采用并行查找,一次性能夠?qū)λ嘘P(guān)鍵字信息進(jìn)行匹配。TCAM_A在進(jìn)行查找匹配時,當(dāng)發(fā)現(xiàn)存在與查找關(guān)鍵字匹配的信息時返回該關(guān)鍵字信息對應(yīng)的地址信息;當(dāng)沒有與查找關(guān)鍵字匹配的信息時,則停止查找。TCAM_B在進(jìn)行查找匹配時,當(dāng)有關(guān)鍵字信息與查找關(guān)鍵字匹配時,返回對應(yīng)的地址信息;當(dāng)沒有關(guān)鍵字信息匹配時,且沒有默認(rèn)信息匹配時則停止查找,并丟棄該數(shù)據(jù)包。
[0019]C、優(yōu)先權(quán)判定模塊,該模塊通過判定規(guī)則,當(dāng)兩個TCAM均有返回值時,選擇一條優(yōu)先權(quán)最高的返回值作為該模塊輸出,并啟動對應(yīng)的查找線路。對于TCAM_A啟動加速查找線路(如圖2中下支路),對于TCAM_B啟動常規(guī)查找線路(如圖2中上支路)。默認(rèn)TCAM_A返回值優(yōu)先權(quán)高于TCAM_B返回值優(yōu)先權(quán)。
[0020]D、加速查找模塊,該模塊根據(jù)接收到的地址信息返回加速路由表中對應(yīng)地址的路由信息(如下一跳MAC,輸出端口號),并對路由條目生存期進(jìn)行修改。加速路由表中的內(nèi)容信息如圖4所示,存儲有下一跳MAC,輸出端口號,生存期。該模塊通過定時刷新機(jī)制對表中的內(nèi)容進(jìn)行更新,主要是對生存期的修改(根據(jù)加速路由表刷新頻率對條目生存期做遞減操作,但是當(dāng)加速路由表中的某一條目被查找一次時,則對該條目生存期加1,生存期最大為7最小為0),對于生存期為O的條目進(jìn)行刪除,并隨時準(zhǔn)備添加新條目信息。
[0021]E、輸出選擇模塊,該模塊配合優(yōu)先權(quán)判定模塊選擇合適線路上的數(shù)據(jù)進(jìn)行輸出。當(dāng)進(jìn)行常規(guī)查時,將查找結(jié)果(如下一跳MAC及輸出端口號。對于IPv4數(shù)據(jù)包的處理中,數(shù)據(jù)包進(jìn)入查找模塊時需要進(jìn)行兩次查找,一次進(jìn)行IP查找得到下一跳IP地址及輸出端口號,一次進(jìn)行ARP查找得到下一跳MAC)通過反饋線路(如圖2中虛箭頭所示)發(fā)送到加速查找模塊及TCAM_A中,并在加速路由表中給該條目產(chǎn)生一個生存期(默認(rèn)為3)。
[0022]F、數(shù)據(jù)包緩沖隊(duì)列模塊,該模塊配合查找線路對數(shù)據(jù)包進(jìn)行緩沖,為后面的數(shù)據(jù)包重新封裝提供相應(yīng)的數(shù)據(jù)。
[0023]G、數(shù)據(jù)包重新封裝模塊,該模塊接收到選擇輸出模塊的數(shù)據(jù)后,調(diào)取緩沖隊(duì)列中的數(shù)據(jù)包,對數(shù)據(jù)包進(jìn)行重新封裝,包括修改下一跳MAC,輸出端口,生存期TTL等。封裝完成后將新的數(shù)據(jù)包輸出。
[0024]數(shù)據(jù)包加速轉(zhuǎn)發(fā)流程如圖5所示,具體轉(zhuǎn)發(fā)步驟如下:
步驟一:在路由器中,當(dāng)數(shù)據(jù)包依次進(jìn)入路由查找模塊時,數(shù)據(jù)包首先進(jìn)入數(shù)據(jù)包頭部解析模塊,該模塊能夠獲得路由查找所需的關(guān)鍵字(對于IPv4協(xié)議,即為32位目的IP地址)。
[0025]步驟二:根據(jù)步驟一,將提取到的查找關(guān)鍵字與兩個TCAM模塊中的的關(guān)鍵字信息進(jìn)行對比。在TCAM_A中當(dāng)發(fā)現(xiàn)存在與查找的關(guān)鍵字匹配的信息時返回該關(guān)鍵字信息對應(yīng)的地址信息Address。當(dāng)TCAM_A中沒有與查找關(guān)鍵字匹配的條目時,則停止查找。在TCAM_B中,當(dāng)存在與查找關(guān)鍵字匹配的信息時,返回對應(yīng)的地址信息Address。當(dāng)TCAM_B中沒有與查找關(guān)鍵字匹配對象時,且沒有默認(rèn)匹配的信息時則停止查找,并丟棄該數(shù)據(jù)包。
[0026]步驟三:根據(jù)步驟二,當(dāng)兩個TCAM中都返回值A(chǔ)ddress信息時,則進(jìn)入優(yōu)先權(quán)判定模塊,通過判定規(guī)則(默認(rèn)TCAM_A返回值優(yōu)先權(quán)最高。當(dāng)TCAM_A沒有返回值,且TCAM_B有返回值時,以TCAM_B的返回值作為輸出)選擇合適的TCAM返回值A(chǔ)ddress信息為優(yōu)先權(quán)判定模塊的輸出值,并啟動相應(yīng)的查找線路(即選擇TCAM_A返回值為優(yōu)先權(quán)判定模塊的輸出時,啟動加速查找線路(圖2中的下支路)。選擇TCAM_B返回值作為優(yōu)先權(quán)判定模塊的輸出時,啟動常規(guī)查找線路(圖2中的上支路)。
[0027]步驟四:根據(jù)步驟三,當(dāng)啟動加速查找線路時,加速查找模塊根據(jù)得到的Address信息直接輸出加速路由表中對應(yīng)地址的路由信息,包括下一跳MAC地址和輸出端口號,并且將表中該條目的生存期加I (最高為7)。當(dāng)啟動常規(guī)查找線路時,IP查找模塊根據(jù)線路上的Address信息返回IP路由表中該地址對應(yīng)的信息(其中包括下一跳IP地址信息和輸出端口號),并將下一跳IP地址信息發(fā)送到ARP查找模塊,ARP查找模塊根據(jù)接收到的下一跳IP地址信息與ARP表中的條目進(jìn)行查找匹配,返回下一跳MAC地址信息。如果ARP表中沒有對應(yīng)下一跳MAC信息時,則通過輸出端口向本地連接的網(wǎng)段廣播一個ARP請求,請求下一跳設(shè)備MAC地址信息。正常情況下,下一跳設(shè)備會發(fā)送一個帶有其MAC地址信息的ARP應(yīng)答。
[0028]步驟五:根據(jù)步驟四,輸出選擇模塊根據(jù)優(yōu)先權(quán)判定模塊選擇合適的線路上的數(shù)據(jù)作為查找結(jié)果輸出。當(dāng)選擇常規(guī)查找線路作為輸出時,除了直接輸出查找結(jié)果外還要將查找結(jié)果通過反饋線路(如圖2中虛箭頭所示)發(fā)送到加速查找模塊,加速查找模塊將反饋信息以符合加速路由表存儲格式的形式存入表中,并將更新信息反饋給TCAM_A。
[0029]步驟六:根據(jù)步驟五,數(shù)據(jù)包重新封裝模根據(jù)上一模塊的輸出,從數(shù)據(jù)緩沖隊(duì)列中讀取數(shù)據(jù)包,并對數(shù)據(jù)包頭部對應(yīng)字段進(jìn)行相應(yīng)修改,完成封裝之后將新數(shù)據(jù)包轉(zhuǎn)發(fā)出去。
[0030]從以上實(shí)施例可以看出,本發(fā)明通過在數(shù)據(jù)轉(zhuǎn)發(fā)平面設(shè)計(jì)一個局部加速轉(zhuǎn)發(fā)模塊,使之與原有的常規(guī)轉(zhuǎn)發(fā)模塊形成一個雙引擎架構(gòu),兩條查找線路通過一個優(yōu)先權(quán)選擇模塊進(jìn)行線路切換,形成一個互補(bǔ)查找結(jié)構(gòu)。加速路由表中的條目具有生存期,利用定時刷新機(jī)制可以對表中的數(shù)據(jù)定時更新。通過設(shè)計(jì)加速轉(zhuǎn)發(fā)模塊,使可編程虛擬路由器在對數(shù)據(jù)包的處理過程中能夠縮短數(shù)據(jù)包的查找過程、減少路由表的查找次數(shù)、減輕路由查找負(fù)擔(dān),起到加速數(shù)據(jù)包轉(zhuǎn)發(fā)的目的。
【權(quán)利要求】
1.一種基于NetFPGA可編程虛擬路由器的數(shù)據(jù)包加速轉(zhuǎn)發(fā)裝置,其特征在于:所述裝置在數(shù)據(jù)轉(zhuǎn)發(fā)層面包括常規(guī)轉(zhuǎn)發(fā)模塊和加速轉(zhuǎn)發(fā)模塊,構(gòu)成一種并行架構(gòu),實(shí)現(xiàn)雙引擎查找,常規(guī)轉(zhuǎn)發(fā)模塊對應(yīng)于常規(guī)查找線路,加速轉(zhuǎn)發(fā)模塊對應(yīng)于加速查找線路,所述裝置包含: 數(shù)據(jù)包頭部解析模塊、索引查找模塊、優(yōu)先權(quán)判定模塊、IP查找模塊、ARP查找模塊、加速查找模塊、輸出選擇模塊、數(shù)據(jù)包緩沖隊(duì)列模塊和數(shù)據(jù)包重新封裝模塊;其中加速查找模塊和輸出選擇模塊構(gòu)成加速查找路線;IP查找模塊、ARP查找模塊和輸出選擇模塊構(gòu)成常規(guī)查找路線; 所述數(shù)據(jù)包頭部解析模塊,用于提取數(shù)據(jù)包包頭的相關(guān)信息,通過該模塊為數(shù)據(jù)包的后續(xù)查找提供相應(yīng)信息; 所述索引查找模塊,用于關(guān)鍵字的查找,為查找關(guān)鍵字匹配一個地址信息,該地址信息為路由表中路由條目的存儲地址;索引查找模塊由兩個TCAM構(gòu)成,TCAM_A用于加速路由表索引查找,TCAM_B用于常規(guī)路由表索引查找,兩個TCAM并行運(yùn)行; 所述優(yōu)先權(quán)判定模塊,用于選擇優(yōu)先權(quán)最高的查找線路進(jìn)行路由查找,對于TCAM_A啟動加速查找線路,對于TCAM_B啟動常規(guī)查找線路,默認(rèn)TCAM_A返回值優(yōu)先權(quán)高于TCAM_B返回值優(yōu)先權(quán); 所述加速查找模塊,存儲數(shù)據(jù)轉(zhuǎn)發(fā)所需的路由信息;該模塊根據(jù)接收到的地址信息返回加速路由表中對應(yīng)地址的路由信息,并對路由條目生存期進(jìn)行修改; 所述輸出選擇模塊,用于選擇合適的查找線路上的輸出數(shù)據(jù)為查找結(jié)果的輸出,并與加速查找模塊逆向通信; 所述數(shù)據(jù)包緩沖隊(duì)列模塊,該模塊配合查找線路對數(shù)據(jù)包進(jìn)行緩沖,為后面的數(shù)據(jù)包重新封裝提供相應(yīng)的數(shù)據(jù);· 所述數(shù)據(jù)包重新封裝模塊,該模塊接收到輸出選擇模塊的數(shù)據(jù)后,調(diào)取緩沖隊(duì)列中的數(shù)據(jù)包,對數(shù)據(jù)包進(jìn)行重新封裝,包括修改下一跳MAC,輸出端口,生存期TTL等,封裝完成后將新的數(shù)據(jù)包輸出。
2.根據(jù)權(quán)利要求1所述基于NetFPGA可編程虛擬路由器的數(shù)據(jù)包加速裝置,其特征在于:所述數(shù)據(jù)包頭部解析模塊提取數(shù)據(jù)包包頭的相關(guān)信息包括提取目的MAC、源MAC、目的IP地址、源IP地址、端口號、生存期TTL、校驗(yàn)和等。
3.根據(jù)權(quán)利要求1所述基于NetFPGA可編程虛擬路由器的數(shù)據(jù)包加速裝置,其特征在于:所述索引查找模塊的TCAM_A在進(jìn)行查找匹配時,當(dāng)發(fā)現(xiàn)存在與查找關(guān)鍵字匹配的信息時返回該關(guān)鍵字信息對應(yīng)的地址信息;當(dāng)沒有與查找關(guān)鍵字匹配的信息時,則停止查找;TCAM_B在進(jìn)行查找匹配時,當(dāng)有關(guān)鍵字信息與查找關(guān)鍵字匹配時,返回對應(yīng)的地址信息;當(dāng)沒有關(guān)鍵字信息匹配時,且沒有默認(rèn)信息匹配時則停止查找,并丟棄該數(shù)據(jù)包。
4.根據(jù)權(quán)利要求1所述基于NetFPGA可編程虛擬路由器的數(shù)據(jù)包加速裝置,其特征在于:所述加速查找模塊包含一個加速路由表,其中含有下一跳MAC地址、輸出端口號、生存期,加速路由表采用刷新機(jī)制,定時更新表中內(nèi)容,且加速查找模塊支持用戶操作。
5.根據(jù)權(quán)利要求4所述基于NetFPGA可編程虛擬路由器的數(shù)據(jù)包加速裝置,其特征在于:所述加速路由表定時更新表中內(nèi)容主要是對生存期的修改,即根據(jù)加速路由表刷新頻率對條目生存期做遞減操作,但是當(dāng)加速路由表中的某一條目被查找一次時,則對該條目生存期加1,生存期最大為7最小為O,對于生存期為O的條目進(jìn)行刪除,并隨時準(zhǔn)備添加新條目信息。
6.根據(jù)權(quán)利要求4所述基于NetFPGA可編程虛擬路由器的數(shù)據(jù)包加速裝置,其特征在于:所述輸出選擇模塊在進(jìn)行常規(guī)查時,將查找結(jié)果通過反饋線路發(fā)送到加速查找模塊及TCAM_A中,并在加速路由表中給該條目產(chǎn)生一個生存期,該生存期默認(rèn)為3。
7.一種基于NetFPGA可編程虛擬路由器的數(shù)據(jù)包加速方法,其特征在于:數(shù)據(jù)轉(zhuǎn)發(fā)層面在接收到數(shù)據(jù)包后,首先進(jìn)行數(shù)據(jù)包頭部解析獲取查找關(guān)鍵字,索引查找模塊根據(jù)接收到的數(shù)據(jù)進(jìn)行關(guān)鍵字匹配,當(dāng)兩個TCAM均有返回值時利用優(yōu)先權(quán)判定模塊選擇優(yōu)先權(quán)最高的TCAM返回值為輸出,當(dāng)選擇加速路由表索引查找(TCAM_A)返回值為輸出時,則進(jìn)入加速查找線路進(jìn)行查找,當(dāng)選擇常規(guī)路由表索引查找(TCAM_B)返回值為輸出時,則進(jìn)入常規(guī)查找線路進(jìn)行查找,并將常規(guī)查找的結(jié)果通過反饋線路存儲到加速路由表和加速路由表索引查找(即TCAM_A)中,最后由輸出選擇模塊選擇執(zhí)行查找的線路上的數(shù)據(jù)作為查找結(jié)果,數(shù)據(jù)包重新封裝模塊根據(jù)查找結(jié)果,調(diào)取數(shù)據(jù)緩沖隊(duì)列中的數(shù)據(jù)進(jìn)行相應(yīng)字段修改,重新封裝后將新數(shù)據(jù)包轉(zhuǎn)發(fā)出去·。
【文檔編號】H04L12/741GK103856407SQ201410113046
【公開日】2014年6月11日 申請日期:2014年3月25日 優(yōu)先權(quán)日:2014年3月25日
【發(fā)明者】張毅, 侯海兵, 趙國鋒, 胡書敏, 胡健 申請人:重慶郵電大學(xué)