亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法

文檔序號:7859343閱讀:97來源:國知局
專利名稱:一種利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信技木,尤其涉及ー種利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法。
背景技術(shù)
三層交換機(jī)最重要的功能就是通過路由查找實(shí)現(xiàn)三層轉(zhuǎn)發(fā)。一般來說,將包交給CPU,協(xié)議棧就會查找相應(yīng)的路由實(shí)現(xiàn)包的三層轉(zhuǎn)發(fā),也就是通過軟件路由表進(jìn)行轉(zhuǎn)發(fā),而三層交換機(jī)一般都要處理高速大容量的包,由于CPU處理能力有限,這時還需要將軟件所學(xué)習(xí)到的路由下發(fā)到硬件,從而實(shí)現(xiàn)硬件級路由轉(zhuǎn)發(fā),達(dá)到高效快速的包轉(zhuǎn)發(fā)目的?,F(xiàn)有采用直接函數(shù)調(diào)用寫硬件的方式,會増大模塊之間的耦合度,導(dǎo)致路由下發(fā)的低效,調(diào)用頻繁等問題。而且無法實(shí)現(xiàn)多個優(yōu)先級不同路由之間的路由備份功能,以及等 價多路由(ECMP,Equal Cost Multi-Path)功能。在socket緩存以及系統(tǒng)資源有限的情況下,難以滿足大容量路由下發(fā)的需求。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供ー種利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法,防止CPU負(fù)荷過重,以保持系統(tǒng)的穩(wěn)定性,同時滿足大容量路由下發(fā)的收斂時間要求。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的
ー種利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法,該方法包括
A、對大容量路由進(jìn)行添加寫硬件的步驟;
B、地址解析協(xié)議ARP學(xué)習(xí)震蕩的處理步驟;
C、路由震蕩的處理步驟;以及
D、對路由表項(xiàng)的狀態(tài)變遷的操作步驟。其中步驟A具體包括
Al、逐一解析出路由的目的IP地址、掩碼、下一跳IP地址、路由協(xié)議號、路由距離向量、接ロ的信息,然后將所述信息加入路由hash表中,以路由條目中的目的IP地址、掩碼、下一跳IP地址作為索引進(jìn)行存儲,完成路由在hwroute模塊的軟件存儲;
A2、在路由下發(fā)到硬件之前,在ARP表中查找是否存在對應(yīng)的ARP條目,若不存在,則觸發(fā)ARP條目的學(xué)習(xí);否則,則在完成簡單的硬件接ロ調(diào)用之前,完成路由的路由備份和等價多路由ECMP處理功能,然后執(zhí)行步驟A3 ;
A3、采用異步方式,在收到每條需要寫硬件的路由條目時,將路由條目存入ー個批量路由鏈表中;
A4、進(jìn)行定時器超時處理,將多條路由條目組成ー個適當(dāng)大小的緩存批量的下發(fā)到硬件。步驟B具體包括BI、將收到的ARP學(xué)習(xí)條目加入到ARP軟件表;
B2、再將所述ARP學(xué)習(xí)條目下發(fā)硬件,判斷下硬件是否成功,若寫失敗,則將此ARP條目加入到失敗表中,定時取表寫硬件,直至成功;否則,將路由pend表中關(guān)聯(lián)的路由條目從表中刪除,然后執(zhí)行步驟B3;
B3、查找路由軟件表中關(guān)聯(lián)的路由條目,將其加入到批量路由表中;
B4、檢測是否有相同的ARP條目老化的消息,若沒有,則進(jìn)行批量鏈表中的路由寫硬件操作;否則,刪除硬件ARP條目,執(zhí)行步驟B5 ;
B5、刪除批量鏈表中對應(yīng)的路由條目,不進(jìn)行路由寫硬件操作,然后刪除ARP軟件表中的該ARP條目。步驟C具體包括
Cl、將收到的路由條目加入到軟件路由表中;
C2、查找ARP表,判斷是否存在路由條目下一跳所關(guān)聯(lián)的ARP條目,若不存在,則將路由加入到pend表中;否則,將路由條目加入到批量路由表中,然后執(zhí)行步驟C3 ;
C3、在超時進(jìn)行批量路由表中的路由寫硬件操作的同吋,檢測是否有上層路由協(xié)議發(fā)來的對應(yīng)路由的刪除消息;若沒有,則繼續(xù)完成批量路由表的路由寫硬件過程;否則,則將路由條目從批量路由表中刪除,然后執(zhí)行步驟C4 ;
C4、刪除軟件路由表中對應(yīng)的路由條目,結(jié)束該過程。步驟D所述路由表項(xiàng)的狀態(tài)變遷,包括如下五個不同的狀態(tài)
失敗狀態(tài)FaiI,阻塞狀態(tài)Pend,批量增加狀態(tài)Addbatch,批量刪除狀態(tài)Delbatch,以及成功狀態(tài)Success ;所述的五種狀態(tài)能夠相互變遷,其變遷的條件主要是由路由和ARP條目的增加/刪除事件觸發(fā)。該方法能夠應(yīng)用于機(jī)架式高端交換機(jī)。該方法能夠同時進(jìn)行rip, ospf, bgp, isis路由的硬件下發(fā)。本發(fā)明所提供的利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法,具有以下優(yōu)點(diǎn)
本發(fā)明采用了異步方式對大容量路由進(jìn)行快速寫硬件;還采用超時socket接收緩存檢測,實(shí)現(xiàn)插ロ消息優(yōu)先響應(yīng)機(jī)制,保證路由消息的收發(fā)不會丟失。在多個優(yōu)先級不同路由之間使用路由備份功能,以及等價多路由ECMP功能的實(shí)現(xiàn)。采用獨(dú)立的模塊實(shí)現(xiàn)路由的硬件下發(fā),降低了模塊之間的稱合。在地址解析協(xié)議(ARP, address resolution protocol)學(xué)習(xí)以及ARP老化后,實(shí)現(xiàn)與ARP關(guān)聯(lián)的路由進(jìn)行硬件更新操作。能保證路由震蕩,ARP震蕩發(fā)生時路由軟硬件表項(xiàng)的一致性。本發(fā)明方法,在收到路由條目進(jìn)行硬件下發(fā)時,不直接進(jìn)行硬件接ロ的調(diào)用,而是加入到批量鏈表中,待定時得到CPU資源時進(jìn)行下發(fā),可使路由插ロ消息的收發(fā)能及時處理。并在進(jìn)行下發(fā)時,采用批量組包方式,一次下發(fā)多個路由到硬件,加快了路由寫硬件速度。減少了模塊之間的耦合,降低內(nèi)核處理的負(fù)擔(dān),高效率的實(shí)現(xiàn)大容量路由的硬件下發(fā)。同時還為上層路由協(xié)議的路由硬件下發(fā)提供統(tǒng)ー接ロ,減少上層路由協(xié)議的代碼復(fù)雜度。此外,本發(fā)明的方法還能有效解決大容量路由硬件下發(fā)時,路由插ロ消息收發(fā)的緩存溢出問題。還能夠處理路由的硬件下發(fā)與ARP表項(xiàng)的作用關(guān)系,保證ARP震蕩時的硬件路由的更新,以及大容量路由震蕩時的路由硬件的更新。


圖I為協(xié)議棧內(nèi)核的通用聯(lián)網(wǎng)組織結(jié)構(gòu)示意 圖2為進(jìn)程與路由子系統(tǒng)之間的交互過程示意 圖3為本發(fā)明的路由添加寫硬件流程示意 圖4為ARP學(xué)習(xí)震蕩流程示意 圖5為路由震蕩的處通流程不意 圖6為路由的狀態(tài)變遷不意圖。
具體實(shí)施方式

下面結(jié)合附圖及本發(fā)明的實(shí)施例對本發(fā)明的方法作進(jìn)ー步詳細(xì)的說明。本發(fā)明是在機(jī)架式三層交換機(jī)上實(shí)現(xiàn)大容量路由硬件下發(fā)過程中的方法。本發(fā)明的實(shí)施例以Vxworks5. 5. I協(xié)議棧和BSD選路插ロ(routing socket)作為技術(shù)背景的。Vxworks5. 5. I協(xié)議棧中通用聯(lián)網(wǎng)以及路由子系統(tǒng)的實(shí)現(xiàn)是來源于4. 4 BSD版本。圖I為協(xié)議棧內(nèi)核的通用聯(lián)網(wǎng)組織結(jié)構(gòu)示意圖,如圖I所示,其插ロ層是ー個到下層協(xié)議相關(guān)層的協(xié)議無關(guān)接ロ。所有系統(tǒng)調(diào)用從協(xié)議無關(guān)的插ロ層開始。從進(jìn)程到內(nèi)核的發(fā)包過程主要是通過函數(shù)調(diào)用實(shí)現(xiàn),從底層到上層的收包過程主要是通過隊(duì)列完成,插ロ層有創(chuàng)建的插ロ隊(duì)列,協(xié)議層有創(chuàng)建的協(xié)議隊(duì)列。以上是說明的聯(lián)網(wǎng)收發(fā)包時進(jìn)程與內(nèi)核之間的交互,而進(jìn)程和路由子系統(tǒng)間的交互過程則要引入選路插ロ(routing socket)的概念,進(jìn)程在AF_R0UTE域中創(chuàng)建ー個原始插ロ(raw socket),就能夠向內(nèi)核發(fā)送選路消息,以及從內(nèi)核接收選路消息。圖2為進(jìn)程與路由子系統(tǒng)之間的交互過程示意圖,如圖2所示
I) 一個進(jìn)程使用選路域(routing domain)中的一個插ロ來發(fā)送和接收選路報文。socket系統(tǒng)調(diào)用需要指定ー個AF_R0UTE的族類型和ー個S0CK_RAW的插ロ類型。2)當(dāng)進(jìn)程需要添加路由、刪除路由時,通過系統(tǒng)調(diào)用send進(jìn)入路由子系統(tǒng),進(jìn)入route_usrreqs選路協(xié)議的用戶請求函數(shù),進(jìn)而調(diào)用raw_usrreqs完成在選路域中用戶請求處理的大部分工作。在圖2中省略了 route_usrreqs的調(diào)用,是因?yàn)樗械奶幚碜罱K是由raw_usrreqs完成的。然后通過raw_usend的回調(diào)進(jìn)入route_output,這是一個進(jìn)程向一個選路插ロ進(jìn)行寫操作所引起的,最后通過判斷用戶的操作類型作相應(yīng)的路由處理RTM_ADD則調(diào)用ipIntRouteCreate函數(shù)在內(nèi)核中增加一條路由,RTM_DELETE則調(diào)用ipIntRouteDelete函數(shù)刪除對應(yīng)的路由。3)接ロ啟動和斷開時,各ioctl調(diào)用rtinit,以添加或刪除路由。它會調(diào)用rt_newaddrmsg,RTM_ADD 和 RTM_DELETE 添加和刪除本地路由,RTM_NEWADDR和 RTM_DELADDR添加和刪除地址,最后通過raw_input向進(jìn)程通告所有選路報文?,F(xiàn)有技術(shù)中,采用路由寫硬件的可能方案如下圖2所示的左邊部分主要完成的是路由在軟件上的添加和刪除,但是在大容量高速轉(zhuǎn)發(fā)需求的高端三層交換機(jī)上僅僅靠軟件路由進(jìn)行查找或轉(zhuǎn)發(fā)是遠(yuǎn)遠(yuǎn)不能滿足需求的,因此就需要將軟件上的路由下發(fā)到硬件。在圖2中流程執(zhí)行到最后,在添加路由時調(diào)用ipIntRouteCreate函數(shù)來添加軟件路由表,可以在ipIntRouteCreate函數(shù)添加軟件路由表之后,直接調(diào)用由硬件驅(qū)動提供相應(yīng)的接ロ函數(shù),將硬件路由表所需信息通過接ロ函數(shù)傳遞給SDK,進(jìn)而將軟件上學(xué)習(xí)到的路由寫到硬件。若將路由寫硬件的操作直接放在軟件路由表產(chǎn)生之后通過函數(shù)調(diào)用的方式實(shí)現(xiàn)的話,則會在原有路由產(chǎn)生的過程中額外增加函數(shù)調(diào)用和寫硬件的過程,而寫硬件的過程一般比軟件上的代碼執(zhí)行速度要慢的多,這就大大增加了路由下發(fā)的時間,在存在有大容量路由需要下發(fā)時,會導(dǎo)致路由收斂時間相當(dāng)慢,256K bgp路由甚至需要花上幾個小時。這顯然會導(dǎo)致CPU負(fù)擔(dān)過重。為了防止CPU的負(fù)擔(dān)過重,而保持系統(tǒng)的穩(wěn)定性,同時滿足大容量路由下發(fā)的收斂時間要求;就需要解決設(shè)備處理大容量路由的快速硬件下發(fā)的問題。此時為了滿足高效的要求,將不能使用直接的函數(shù)調(diào)用方式寫硬件。本發(fā)明借鑒了圖2中右邊的流程中的路由通告機(jī)制,在軟件學(xué)習(xí)到路由的同時,將路由通過rawjnput調(diào)用通告給進(jìn)程,然后通過ー個獨(dú)立的應(yīng)用層模塊(以下稱此模塊為hwroute)來監(jiān)聽此路由插ロ,接收通告上來的路由消息,這樣內(nèi)核只需在原來的處理上増加一個路由消息的發(fā)送,而相比于直接的硬件函數(shù)調(diào)用來說,效率要高的多,同時,把路由寫硬件的操作從內(nèi)核 中獨(dú)立出來,交由獨(dú)立的模塊來處理,降低了模塊之間的耦合。當(dāng)然采用此種方案需要解決的技術(shù)問題是
路由插ロ之間的消息傳遞是需要收發(fā)緩沖資源的,在處理大容量路由時,很可能因?yàn)?PU調(diào)度不及時致使接收速度遠(yuǎn)遠(yuǎn)趕不上發(fā)送的速度,而導(dǎo)致SOkcet緩沖區(qū)耗盡,從而丟失掉大量的路由信息。我們使用兩種機(jī)制來保證收發(fā)的平衡,第一,在路由發(fā)送過程中使用錯誤重傳機(jī)制,當(dāng)發(fā)現(xiàn)緩沖區(qū)滿了后,等待一定時候后再進(jìn)行路由的下發(fā),第二,在路由接收方,hwroute模塊中使用異步方式進(jìn)行路由的寫硬件處理,對接收到的路由先存儲,然后在CPU有空閑時進(jìn)行下發(fā),對接收的路由消息進(jìn)行優(yōu)先響應(yīng)機(jī)制。第二種方案是我們討論的重點(diǎn),也是本發(fā)明的關(guān)鍵所在。此外還需要解決如下技術(shù)問題第一、在ARP學(xué)習(xí)以及ARP老化后,與ARP關(guān)聯(lián)的路由,需要對硬件進(jìn)行更新操作。第二、要保證路由震蕩,ARP震蕩過程的路由軟硬件表項(xiàng)的一致性。由于現(xiàn)有采用直接函數(shù)調(diào)用寫硬件的方式,會増大模塊之間的耦合度,導(dǎo)致路由下發(fā)的低效,調(diào)用頻繁等問題。而且無法實(shí)現(xiàn)多個優(yōu)先級不同路由之間的路由備份功能,以及等價多路由(ECMP)功能。在socket緩存以及系統(tǒng)資源有限的情況下,難以滿足大容量路由下發(fā)的需求。在采用路由插ロ的路由通告機(jī)制和hwroute模塊的異步寫硬件之后,軟件與硬件路由之間的使用異步方式處理,優(yōu)先響應(yīng)路由插ロ的通告消息,保證緩存不會溢出,路由消息能全部正確的下發(fā)硬件,并減少內(nèi)核的CPU處理負(fù)擔(dān),并在hwroute下發(fā)硬件時采用批量方式快速的實(shí)現(xiàn)硬件的下發(fā)。在使用hwroute模塊單獨(dú)進(jìn)行路由的下發(fā),還能對ARP學(xué)習(xí)和老化后所關(guān)聯(lián)的路由的硬件更新操作,另外能實(shí)現(xiàn)多個優(yōu)先級不同路由之間的路由備份功能,以及等價多路由ECMP功能。本發(fā)明軟件路由表項(xiàng)也是由內(nèi)核維護(hù)并管理的,hwroute需要知道的路由也是通過內(nèi)核發(fā)送路由套接字(socket)消息獲得。然而當(dāng)路由協(xié)議學(xué)習(xí)到大量路由吋,內(nèi)核所要發(fā)送的路由消息會非常頻繁,増加了內(nèi)核的負(fù)擔(dān),這時需要考慮將路由協(xié)議學(xué)習(xí)到的路由直接發(fā)送給hwroute模塊,這樣,一方面能夠減少內(nèi)核的處理過程,另一方面由于路由的發(fā)送和接收都由應(yīng)用模塊來完成,可以更靈活的對路由信息進(jìn)行組織(只發(fā)送需要的路由信息和一次大批量的發(fā)送),而內(nèi)核只需要發(fā)送本地路由和靜態(tài)路由即可。hwroute模塊對路由的存儲和管理也采用hash鏈表。圖3為路由添加寫硬件流程示意圖,如圖3所示,在hwroute模塊中開啟任務(wù)接收路由插ロ來的路由增加消息時,其主要步驟如下。步驟301 :逐一解析出路由的目的IP地址、掩碼、下一跳IP地址、路由協(xié)議號、路由距離向量、接ロ等信息,然后將所述信息加入路由的hash表中,以路由條目中的目的IP地址、掩碼、下一跳IP地址作為索引(為多實(shí)例的擴(kuò)展可以加入實(shí)例號)進(jìn)行存儲,完成路由在hwroute模塊的軟件存儲。步驟302 :路由到硬件的下發(fā)依賴于路由所關(guān)聯(lián)的ARP條目的存在,在路由下發(fā)到硬件之前,在ARP表中查找是否存在對應(yīng)的ARP條目,若否,執(zhí)行步驟303 ;否則,執(zhí)行步驟 304。步驟303 :若不存在,則觸發(fā)ARP條目的學(xué)習(xí)。由于上層模塊對路由的下發(fā)是不關(guān)心ARP是否存在的,這時,則將這樣的路由條目加入到ー個pend鏈表中輪詢觸發(fā)ARP的學(xué)習(xí)。步驟304:若存在吋,則在完成簡單的硬件接ロ調(diào)用之前,完成路由的兩個重要的功能路由備份和等價多路由(ECMP)處理。這里,路由備份是指在多條優(yōu)先級不同(以路由距離向量,接ロ狀態(tài)等作為判斷依據(jù))的路由有著相同的目的地址,掩碼,而下一跳IP地址不同,這時在硬件表中只能存在一條優(yōu)先級最高的路由,在新増加的路由優(yōu)先級較高時,需要刪除原有路由,當(dāng)優(yōu)先級較高的路由刪除時,優(yōu)先級較低的路由也能自動的加入到硬件,也就是說優(yōu)先級較低的路由充當(dāng)了備份路由的角色。等價多路由(ECMP)與前述的路由備份中所提到的路由的唯一不同在于,多條此路由有著相同的優(yōu)先級,在硬件中可以同時存在,實(shí)現(xiàn)相同目的的數(shù)據(jù)包分流的作用。在下發(fā)硬件的過程中同時找出滿足上述條件的路由,優(yōu)先級低的實(shí)行刪除硬件操作,優(yōu)先級高的則實(shí)行加硬件操作。步驟305 :采用異步方式,在收到每條需要寫硬件的路由條目吋,不直接調(diào)用硬件接ロ而是將路由條目存入到一個批量路由鏈表中。步驟306 :然后在步驟405的基礎(chǔ)上,進(jìn)行定時器超時處理,將多條路由條目組成一個適當(dāng)大小的緩存批量的下發(fā)到硬件。這里,需要一個處理就是任務(wù)需要優(yōu)先響應(yīng)路由插ロ的路由消息,通過每次輪詢檢測插ロ是否有數(shù)據(jù)到達(dá)從而能在批量下發(fā)路由的過程中在檢測有路由消息時跳出而去執(zhí)行路由消息的處理。這樣就可以解決在有大容量路由存在吋,因?yàn)閬聿患搬尫艑?dǎo)致socket緩沖區(qū)耗盡,從而丟失掉大量的路由信息的問題。。此外,路由條目的下一跳IP所對應(yīng)的ARP也存在下硬件的需求,并且ARP的存在是路由能寫硬件的必要條件,在ARP學(xué)習(xí)和老化后需要對路由在硬件上的條目進(jìn)行更新,同時由于路由寫硬件采用異步方式,所以存在ARP震蕩(ARP學(xué)習(xí)和老化時間很短)時的路由軟硬一致性的處理。
圖4為ARP學(xué)習(xí)震蕩的處理流程示意圖,如圖4所示,hwroute接收ARP消息也是通過內(nèi)核發(fā)送路由插ロ消息獲得的。步驟401 :將收到的ARP學(xué)習(xí)條目加入到ARP軟件表。步驟402 :再將所述ARP學(xué)習(xí)條目下發(fā)(即寫 )硬件,判斷下硬件是否成功,若否,則執(zhí)行步驟403 ;否則,執(zhí)行步驟404。這里,對ARP寫硬件方式可以采用直接的硬件接ロ調(diào)用。一般的硬件接ロ調(diào)用或機(jī)架式設(shè)備的主控到線卡的發(fā)送都需要一定的處理時間,若不采用批量方式會導(dǎo)致頻繁調(diào)用而最終影響路由的硬件下發(fā),加大路由的收斂時間。如果實(shí)時進(jìn)行路由的硬件下發(fā),會導(dǎo)致硬件下發(fā)長時間占用CPU資源,而不能及時進(jìn)行路由插ロ的消息接收,導(dǎo)致緩存溢出,路由丟失。步驟403 :若寫硬件失敗,則將此ARP條目加入到失敗表中,定時取表寫硬件,直至成功。步驟404 =^ARP寫硬件成功,則將路由pend表中關(guān)聯(lián)的路由條目從表中刪除。步驟405 :查找路由軟件表中關(guān)聯(lián)的路由條目,將其加入到批量路由表中。步驟406 :由于大容量路由的存在,批量路由表中條目未完全下發(fā)時,需要檢測是否有相同的ARP條目老化的消息,若沒有,則執(zhí)行步驟407 ;否則,執(zhí)行步驟408。步驟407 :若沒有,則說明不存在ARP的震蕩,只需超時進(jìn)行批量鏈表中的路由寫硬件操作。步驟408 :若有,則說明存在ARP的震蕩,此時刪除硬件ARP條目即可。然后執(zhí)行步驟409。步驟409 :刪除批量鏈表中對應(yīng)的路由條目,無需進(jìn)行路由寫硬件操作。步驟410 :刪除ARP軟件表中的此ARP條目。采用異步方式,同時滿足大容量路由的需求,必然存在路由在寫硬件過程中,不可避免的會產(chǎn)生路由還沒有寫到硬件時,上層路由協(xié)議出現(xiàn)端ロ down或鄰居down等要將學(xué)習(xí)到的路由刪除掉,這時就會出現(xiàn)路由的震蕩。圖5為路由震蕩的處理流程示意圖,如圖5所示,該處理過程包括
步驟501 :將收到的路由條目加入到軟件路由表中。步驟502 :查找ARP表,判斷是否存在路由條目下一跳所關(guān)聯(lián)的ARP條目,若存在,則執(zhí)行步驟504 ;否則,執(zhí)行步驟503。步驟503 :若不存在ARP條目,則將路由加入到pend表中。步驟504 :若存在ARP條目,則將路由條目加入到批量路由表中。這里,該過程與前述的路由添加流程相同。步驟505 :在步驟504的基礎(chǔ)上,在超時進(jìn)行批量路由表中的路由寫硬件操作的同吋,檢測是否有上層路由協(xié)議發(fā)來的對應(yīng)路由的刪除消息;若有,則執(zhí)行步驟507 ;否則,執(zhí)行步驟506。步驟506 :若沒有路由的刪除消息,則說明不存在路由震蕩,只需繼續(xù)完成批量路由表的路由寫硬件過程。步驟507 :若有路由的刪除消息吋,由于此時路由還未進(jìn)行寫硬件操作,所以只需將路由條目從批量路由表中刪除即可。
步驟508 :在步驟507的基礎(chǔ)上,刪除軟件路由表中對應(yīng)的路由條目,結(jié)束該過程。由于要求hwroute的各個表項(xiàng)要保證一致性,也就是說在路由和ARP震蕩時,各表項(xiàng)的內(nèi)容要正確的記錄震蕩的變化,而這些變化發(fā)生時所采取的實(shí)際操作就需要依靠表項(xiàng)的實(shí)際狀態(tài)。狀態(tài)的變遷直接影響表項(xiàng)在各個鏈表中的變化。因此路由表項(xiàng)的狀態(tài)是整個路由硬件下發(fā)的關(guān)鍵因素。圖6為路由表項(xiàng)的狀態(tài)變遷示意圖,如圖6所示,路由表項(xiàng)在整個硬件下發(fā)過程中可以處于以下5個不同的狀態(tài)
失敗狀態(tài)(Fai I)也叫初始化狀態(tài),是路由在軟件上初始創(chuàng)建時的狀態(tài)。阻塞狀態(tài)(Pend)即路由所關(guān)聯(lián)的ARP條目不 存在。批量增加狀態(tài)(Addbatch)即路由需要下發(fā)但還沒有下發(fā)到硬件的狀態(tài),通常處于這種狀態(tài)的路由表項(xiàng)會加入到批量路由增加鏈表中。批量刪除狀態(tài)(Delbatch)即路由需要從硬件中刪除但還沒有從硬件中刪除的狀態(tài),通常處于這種狀態(tài)的路由表項(xiàng)會加入到批量路由刪除鏈表中。成功狀態(tài)(Success)即路由成功的下發(fā)到硬件,軟件表和硬件表都有對應(yīng)的路由。其路由的狀態(tài)可以相互變遷,變遷的條件主要是根據(jù)路由和ARP條目的増加/刪除事件而觸發(fā)。本發(fā)明能夠應(yīng)用于機(jī)架式的高端交換機(jī),能快速的實(shí)現(xiàn)256K bgp路由的硬件下發(fā),除去路由協(xié)議的路由學(xué)習(xí)時間,256K路由的收斂時間不到2分鐘。另外能同時進(jìn)行r ip,ospf, bgp, isis等路由的硬件下發(fā)。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.ー種利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法,其特征在于,該方法包括 A、對大容量路由進(jìn)行添加寫硬件的步驟; B、地址解析協(xié)議ARP學(xué)習(xí)震蕩的處理步驟; C、路由震蕩的處理步驟;以及 D、對路由表項(xiàng)的狀態(tài)變遷的操作步驟。
2.根據(jù)權(quán)利要求I所述的利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法,其特征在于,步驟A具體包括 Al、逐一解析出路由的目的IP地址、掩碼、下一跳IP地址、路由協(xié)議號、路由距離向量、接ロ的信息,然后將所述信息加入路由hash表中,以路由條目中的目的IP地址、掩碼、下一跳IP地址作為索引進(jìn)行存儲,完成路由在hwroute模塊的軟件存儲; A2、在路由下發(fā)到硬件之前,在ARP表中查找是否存在對應(yīng)的ARP條目,若不存在,則觸發(fā)ARP條目的學(xué)習(xí);否則,則在完成簡單的硬件接ロ調(diào)用之前,完成路由的路由備份和等價多路由ECMP處理功能,然后執(zhí)行步驟A3 ; A3、采用異步方式,在收到每條需要寫硬件的路由條目時,將路由條目存入ー個批量路由鏈表中; A4、進(jìn)行定時器超時處理,將多條路由條目組成ー個適當(dāng)大小的緩存批量的下發(fā)到硬件。
3.根據(jù)權(quán)利要求I所述的利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法,其特征在于,步驟B具體包括 BI、將收到的ARP學(xué)習(xí)條目加入到ARP軟件表; B2、再將所述ARP學(xué)習(xí)條目下發(fā)硬件,判斷下硬件是否成功,若寫失敗,則將此ARP條目加入到失敗表中,定時取表寫硬件,直至成功;否則,將路由Pend表中關(guān)聯(lián)的路由條目從表中刪除,然后執(zhí)行步驟B3; B3、查找路由軟件表中關(guān)聯(lián)的路由條目,將其加入到批量路由表中; B4、檢測是否有相同的ARP條目老化的消息,若沒有,則進(jìn)行批量鏈表中的路由寫硬件操作;否則,刪除硬件ARP條目,執(zhí)行步驟B5 ; B5、刪除批量鏈表中對應(yīng)的路由條目,不進(jìn)行路由寫硬件操作,然后刪除ARP軟件表中的該ARP條目。
4.根據(jù)權(quán)利要求I所述的利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法,其特征在于,步驟C具體包括 Cl、將收到的路由條目加入到軟件路由表中; C2、查找ARP表,判斷是否存在路由條目下一跳所關(guān)聯(lián)的ARP條目,若不存在,則將路由加入到pend表中;否則,將路由條目加入到批量路由表中,然后執(zhí)行步驟C3 ; C3、在超時進(jìn)行批量路由表中的路由寫硬件操作的同吋,檢測是否有上層路由協(xié)議發(fā)來的對應(yīng)路由的刪除消息;若沒有,則繼續(xù)完成批量路由表的路由寫硬件過程;否則,則將路由條目從批量路由表中刪除,然后執(zhí)行步驟C4 ; C4、刪除軟件路由表中對應(yīng)的路由條目,結(jié)束該過程。
5.根據(jù)權(quán)利要求I所述的利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法,其特征在于,步驟D所述路由表項(xiàng)的狀態(tài)變遷,包括如下五個不同的狀態(tài)失敗狀態(tài)FaiI,阻塞狀態(tài)Pend,批量增加狀態(tài)Addbatch,批量刪除狀態(tài)Delbatch,以及成功狀態(tài)Success ;所述的五種狀態(tài)能夠相互變遷,其變遷的條件主要是由路由和ARP條目的增加/刪除事件觸發(fā)。
6.根據(jù)權(quán)利要求I 6任一項(xiàng)所述的利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法,其特征在于,該方法能夠應(yīng)用于機(jī)架式高端交換機(jī)。
7.根據(jù)權(quán)利要求7所述的利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法,其特征在于,該方法能夠同時進(jìn)行rip, ospf, bgp, isis路由的硬件下發(fā)。
全文摘要
本發(fā)明公開了一種利用異步方式實(shí)現(xiàn)大容量路由快速寫硬件的方法,包括A、對大容量路由進(jìn)行添加寫硬件的步驟;B、地址解析協(xié)議ARP學(xué)習(xí)震蕩的處理步驟;C、路由震蕩的處理步驟;以及D、對路由表項(xiàng)的狀態(tài)變遷的操作步驟。在機(jī)架式高端交換機(jī)中采用本發(fā)明方法,能夠防止CPU負(fù)荷過重,以保持系統(tǒng)的穩(wěn)定性,同時滿足大容量路由下發(fā)的收斂時間要求。
文檔編號H04L12/773GK102868621SQ20121031797
公開日2013年1月9日 申請日期2012年8月31日 優(yōu)先權(quán)日2012年8月31日
發(fā)明者劉磊 申請人:武漢烽火網(wǎng)絡(luò)有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1