專利名稱:一種保障報(bào)文硬件轉(zhuǎn)發(fā)的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通訊技術(shù),尤指一種保障報(bào)文硬件轉(zhuǎn)發(fā)的方法及裝置。
背景技術(shù):
現(xiàn)有的三層交換機(jī)通??梢詫?shí)現(xiàn)報(bào)文的硬件轉(zhuǎn)發(fā)和軟件轉(zhuǎn)發(fā)。由于硬件轉(zhuǎn)發(fā)具有很高的轉(zhuǎn)發(fā)速度以及轉(zhuǎn)發(fā)效率,因此三層交換機(jī)優(yōu)先使用硬件轉(zhuǎn)發(fā)。只有在不存在相應(yīng)的硬件轉(zhuǎn)發(fā)信息時(shí),才會(huì)通過軟件轉(zhuǎn)發(fā)發(fā)送報(bào)文,同時(shí)在軟件轉(zhuǎn)發(fā)的過程中學(xué)習(xí)硬件轉(zhuǎn)發(fā)信息,進(jìn)而在下次轉(zhuǎn)發(fā)相同報(bào)文時(shí)采用硬件轉(zhuǎn)發(fā)。
軟件轉(zhuǎn)發(fā)單元為三層交換機(jī)中實(shí)現(xiàn)軟件轉(zhuǎn)發(fā)的單元,包括轉(zhuǎn)發(fā)信息表(FIB)軟件轉(zhuǎn)發(fā)單元和地址解析協(xié)議(ARP)軟件轉(zhuǎn)發(fā)單元。FIB軟件轉(zhuǎn)發(fā)單元中包括FIB軟件路由表,ARP軟件轉(zhuǎn)發(fā)單元中包括ARP軟件路由表。FIB軟件轉(zhuǎn)發(fā)單元根據(jù)報(bào)文的目的IP地址查找FIB軟件路由表獲得報(bào)文的出接口和下一跳信息;ARP軟件轉(zhuǎn)發(fā)單元再根據(jù)查找得到的出接口和下一跳信息,查找自身的ARP軟件路由表獲得對應(yīng)的二層封裝信息,包括目的MAC地址、出端口信息等,實(shí)現(xiàn)報(bào)文的軟件轉(zhuǎn)發(fā)。
硬件轉(zhuǎn)發(fā)單元為三層交換機(jī)中實(shí)現(xiàn)硬件轉(zhuǎn)發(fā)的單元。硬件轉(zhuǎn)發(fā)單元中存在硬件轉(zhuǎn)發(fā)表,包括路由前綴(Prefix)表和下一跳(nexthop)表。硬件轉(zhuǎn)發(fā)單元根據(jù)報(bào)文的目的IP地址查找路由前綴表獲得指向nexthop表的下一跳指針,根據(jù)下一跳指針查找nexthop獲得二層封裝信息,進(jìn)而實(shí)現(xiàn)報(bào)文的硬件轉(zhuǎn)發(fā)。這里,Prefix表和nexthop表中的表項(xiàng)均能稱為硬件路由表項(xiàng)。
硬件轉(zhuǎn)發(fā)單元中的Prefix表項(xiàng)是通過ARP軟件轉(zhuǎn)發(fā)單元根據(jù)自身的ARP軟件路由表項(xiàng)、以及FIB軟件轉(zhuǎn)發(fā)單元根據(jù)自身的FIB軟件路由表項(xiàng)下發(fā)添加至硬件轉(zhuǎn)發(fā)單元中的。
在硬件轉(zhuǎn)發(fā)單元中由目的IP地址和子網(wǎng)掩碼的位數(shù)唯一確定一個(gè)Prefix表項(xiàng)。這里,子網(wǎng)掩碼的位數(shù)為用于設(shè)置子網(wǎng)號的點(diǎn)分十進(jìn)制的位數(shù)。由于由ARP軟件轉(zhuǎn)發(fā)單元添加至硬件轉(zhuǎn)發(fā)單元的Prefix表項(xiàng)的子網(wǎng)掩碼位數(shù)均為32位,因此當(dāng)FIB軟件轉(zhuǎn)發(fā)單元添加具有相同的目的IP地址以及32位子網(wǎng)掩碼的Prefix表項(xiàng)時(shí),則硬件轉(zhuǎn)發(fā)單元的一個(gè)Prefix表項(xiàng)同時(shí)對應(yīng)著FIB軟件轉(zhuǎn)發(fā)單元中的FIB軟件路由表項(xiàng)、以及ARP軟件轉(zhuǎn)發(fā)單元中的ARP軟件路由表項(xiàng)。
雖然,具有相同目的IP地址和32位子網(wǎng)掩碼的ARP軟件路由表項(xiàng)和FIB軟件路由表項(xiàng)對應(yīng)于相同的Prefix表項(xiàng),但是由ARP軟件轉(zhuǎn)發(fā)單元根據(jù)ARP軟件路由表項(xiàng)添加的Prefix表項(xiàng),與由FIB軟件轉(zhuǎn)發(fā)單元根據(jù)FIB軟件路由表項(xiàng)添加的Prefix表項(xiàng),所對應(yīng)的下一跳信息有可能不一樣。由FIB軟件轉(zhuǎn)發(fā)單元下發(fā)的Prekfix表項(xiàng)對應(yīng)的下一跳信息,可能指向與目的IP地址不同的其他IP地址;而由ARP軟件轉(zhuǎn)發(fā)單元下發(fā)的Prefix表項(xiàng)對應(yīng)的下一跳信息,必定指向與目的IP地址相同的IP地址。
在硬件轉(zhuǎn)發(fā)單元的Prefix表項(xiàng)同時(shí)對應(yīng)著FIB軟件轉(zhuǎn)發(fā)單元中的FIB軟件路由表項(xiàng)、和ARP軟件轉(zhuǎn)發(fā)單元中的ARP軟件路由表項(xiàng)的情況下,如果FIB軟件轉(zhuǎn)發(fā)單元或ARP軟件轉(zhuǎn)發(fā)單元要?jiǎng)h除自身與Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)時(shí),也會(huì)同時(shí)刪除硬件轉(zhuǎn)發(fā)單元中所述軟件路由表項(xiàng)對應(yīng)的Prefix表項(xiàng)的情況。這樣就會(huì)造成FIB軟件轉(zhuǎn)發(fā)單元或ARP軟件轉(zhuǎn)發(fā)單元中的一方還存在與Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng),而硬件轉(zhuǎn)發(fā)單元中已經(jīng)不存在相應(yīng)的Prefix表項(xiàng)。在這種情況下,對于該P(yáng)refix表項(xiàng)的報(bào)文則不能再通過硬件進(jìn)行轉(zhuǎn)發(fā),而只能通過軟件轉(zhuǎn)發(fā)。這樣,不僅降低了三層交換機(jī)的轉(zhuǎn)發(fā)效率,而且也給三層交換機(jī)的中央處理器(CPU)造成了沉重的負(fù)擔(dān),特別是在該P(yáng)refix表項(xiàng)對應(yīng)的報(bào)文流量較高的情況下,對應(yīng)報(bào)文的轉(zhuǎn)發(fā)效率會(huì)降低,甚至?xí)绊懭龑咏粨Q機(jī)的正常工作狀態(tài)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種保障報(bào)文硬件轉(zhuǎn)發(fā)的方法,應(yīng)用該方法能使軟件路由表項(xiàng)始終存在對應(yīng)的硬件路由表項(xiàng),保障報(bào)文的硬件轉(zhuǎn)發(fā)。
另外,本發(fā)明的又一主要目的在于提供一種保障報(bào)文硬件轉(zhuǎn)發(fā)的裝置,應(yīng)用該裝置能使軟件路由表項(xiàng)在硬件轉(zhuǎn)發(fā)單元中始終存在對應(yīng)的硬件路由表項(xiàng),保障報(bào)文的硬件轉(zhuǎn)發(fā)。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種保障報(bào)文硬件轉(zhuǎn)發(fā)的方法,執(zhí)行以下步驟A、刪除硬件路由表項(xiàng),判斷所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突,當(dāng)所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突時(shí),確保所述存在沖突的軟件路由表項(xiàng)存在對應(yīng)的硬件路由表項(xiàng)。
其中,第一軟件轉(zhuǎn)發(fā)單元在硬件轉(zhuǎn)發(fā)單元中執(zhí)行所述刪除硬件路由表項(xiàng)的步驟;當(dāng)?shù)谝卉浖D(zhuǎn)發(fā)單元?jiǎng)h除硬件路由表項(xiàng)后,該方法進(jìn)一步包括第一軟件轉(zhuǎn)發(fā)單元指示第二軟件轉(zhuǎn)發(fā)單元向硬件轉(zhuǎn)發(fā)單元添加所述硬件路由表項(xiàng);由第二軟件轉(zhuǎn)發(fā)單元執(zhí)行所述判斷的步驟。
其中,所述第一軟件轉(zhuǎn)發(fā)單元在硬件轉(zhuǎn)發(fā)單元中執(zhí)行所述刪除硬件路由表項(xiàng)的步驟為第一軟件轉(zhuǎn)發(fā)單元指示硬件轉(zhuǎn)發(fā)單元?jiǎng)h除硬件路由表項(xiàng),硬件轉(zhuǎn)發(fā)單元判斷所述硬件路由表項(xiàng)是否為第一軟件轉(zhuǎn)發(fā)單元添加,如果是,則硬件轉(zhuǎn)發(fā)單元?jiǎng)h除所述硬件路由表項(xiàng);否則,硬件轉(zhuǎn)發(fā)單元不刪除所述硬件路由表項(xiàng),結(jié)束當(dāng)前處理流程。
其中,所述第二軟件轉(zhuǎn)發(fā)單元判斷硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突為第二軟件轉(zhuǎn)發(fā)單元判斷自身是否存在與所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng),如果是,則第二軟件轉(zhuǎn)發(fā)單元將所述硬件路由表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元;否則,不添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
其中,第一軟件轉(zhuǎn)發(fā)單元在硬件轉(zhuǎn)發(fā)單元中執(zhí)行所述刪除硬件路由表項(xiàng)的步驟;第一軟件轉(zhuǎn)發(fā)單元在刪除硬件路由表項(xiàng)后,執(zhí)行所述判斷的步驟。
其中,所述確保存在對應(yīng)的硬件路由表項(xiàng)為第一軟件轉(zhuǎn)發(fā)單元指示第二軟件轉(zhuǎn)發(fā)單元添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
另外,在步驟A之前,該方法進(jìn)一步包括a2、添加硬件路由表項(xiàng)確定所述硬件路由表項(xiàng)存在沖突時(shí),對所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)設(shè)置沖突標(biāo)記;所述第一軟件轉(zhuǎn)發(fā)單元判斷硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突為判斷硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否設(shè)置沖突標(biāo)記,如果設(shè)置沖突標(biāo)記,則所述軟件路由表項(xiàng)存在沖突。
其中,第一軟件轉(zhuǎn)發(fā)單元在硬件轉(zhuǎn)發(fā)單元中執(zhí)行所述刪除硬件路由表項(xiàng)的步驟;第一軟件轉(zhuǎn)發(fā)單元在刪除硬件路由表項(xiàng)之前,執(zhí)行所述判斷的步驟。
其中,設(shè)置第一軟件轉(zhuǎn)發(fā)單元和第二軟件轉(zhuǎn)發(fā)單元的優(yōu)先級;所述確保存在對應(yīng)的硬件路由表項(xiàng)為,執(zhí)行以下步驟A31、第一軟件轉(zhuǎn)發(fā)單元判斷自身的優(yōu)先級是否高于第二軟件轉(zhuǎn)發(fā)單元,如果是,則執(zhí)行步驟A32;否則,第一軟件轉(zhuǎn)發(fā)單元不刪除所述硬件路由表項(xiàng),結(jié)束當(dāng)前處理流程。
A32、第一軟件轉(zhuǎn)發(fā)單元?jiǎng)h除所述硬件路由表項(xiàng),并指示第二軟件轉(zhuǎn)發(fā)單元重新添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
另外,在步驟A之前,該方法進(jìn)一步包括a3、添加硬件路由表項(xiàng)確定所述硬件路由表項(xiàng)存在沖突時(shí),確定優(yōu)先級高的軟件轉(zhuǎn)發(fā)單元添加硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元,對所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)設(shè)置沖突標(biāo)記;所述第一軟件轉(zhuǎn)發(fā)單元判斷硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突為判斷硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否設(shè)置沖突標(biāo)記,如果設(shè)置沖突標(biāo)記,則所述軟件路由表項(xiàng)存在沖突。
其中,步驟a3中,所述確定優(yōu)先級高的軟件轉(zhuǎn)發(fā)單元添加硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元為判斷自身的優(yōu)先級是否高于另一軟件轉(zhuǎn)發(fā)單元,如果是,則指示另一軟件轉(zhuǎn)發(fā)單元?jiǎng)h除硬件轉(zhuǎn)發(fā)單元中的所述硬件路由表項(xiàng),并將自身所述硬件路由表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元;否則,不執(zhí)行將自身所述硬件路由表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元的操作。
其中,步驟a2中及步驟a3中,所述確定所述硬件路由表項(xiàng)存在沖突為向硬件轉(zhuǎn)發(fā)單元添加硬件路由表項(xiàng)時(shí),硬件轉(zhuǎn)發(fā)單元返回沖突響應(yīng),則確定所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突。
其中,所述第一軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元,第二軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元;或第一軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元,第二軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元。
另外,本發(fā)明還提供一種保障報(bào)文硬件轉(zhuǎn)發(fā)的裝置,該裝置包括軟件轉(zhuǎn)發(fā)單元和硬件轉(zhuǎn)發(fā)單元;其中,軟件轉(zhuǎn)發(fā)單元用于在刪除硬件轉(zhuǎn)發(fā)單元中的硬件路由表項(xiàng)時(shí),判斷所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突;在所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突時(shí),確保硬件轉(zhuǎn)發(fā)單元中存在所述存在沖突的軟件路由表項(xiàng)對應(yīng)的硬件路由表項(xiàng)。
其中,所述軟件轉(zhuǎn)發(fā)單元包括第一軟件轉(zhuǎn)發(fā)單元和第二軟件轉(zhuǎn)發(fā)單元;其中,第一軟件轉(zhuǎn)發(fā)單元,用于刪除硬件轉(zhuǎn)發(fā)單元中的硬件路由表項(xiàng),并指示第二軟件轉(zhuǎn)發(fā)單元添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元;第二軟件轉(zhuǎn)發(fā)單元,用于判斷所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突,在所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突時(shí),添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
其中,所述軟件轉(zhuǎn)發(fā)單元包括第一軟件轉(zhuǎn)發(fā)單元和第二軟件轉(zhuǎn)發(fā)單元;其中,
第一軟件轉(zhuǎn)發(fā)單元,用于刪除硬件轉(zhuǎn)發(fā)單元中的硬件路由表項(xiàng),并判斷所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突;在所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突時(shí),指示第二軟件轉(zhuǎn)發(fā)單元添加所述存在沖突的軟件路由表項(xiàng)對應(yīng)的硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元;第二軟件轉(zhuǎn)發(fā)單元,用于添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
其中,所述軟件轉(zhuǎn)發(fā)單元包括第一軟件轉(zhuǎn)發(fā)單元和第二軟件轉(zhuǎn)發(fā)單元;其中,第一軟件轉(zhuǎn)發(fā)單元,用于在刪除硬件路由表項(xiàng)時(shí),判斷所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突、以及自身與第二軟件轉(zhuǎn)發(fā)單元的優(yōu)先級高低;當(dāng)所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)不存在沖突時(shí),刪除硬件轉(zhuǎn)發(fā)單元中所述硬件路由表項(xiàng);當(dāng)所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突,并且自身優(yōu)先級高于第二軟件轉(zhuǎn)發(fā)單元時(shí),刪除硬件轉(zhuǎn)發(fā)單元中所述硬件路由表項(xiàng),并指示第二軟件轉(zhuǎn)發(fā)單元添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元;當(dāng)所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突,并且自身優(yōu)先級不高于第二軟件轉(zhuǎn)發(fā)單元時(shí),不刪除硬件轉(zhuǎn)發(fā)單元中所述硬件路由表項(xiàng);第二軟件轉(zhuǎn)發(fā)單元,用于根據(jù)第一軟件轉(zhuǎn)發(fā)單元的指示添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
其中,所述第一軟件轉(zhuǎn)發(fā)單元,進(jìn)一步用于在添加硬件路由表項(xiàng)、確定所述硬件路由表項(xiàng)存在沖突時(shí),判斷自身與第二軟件轉(zhuǎn)發(fā)單元優(yōu)先級的高低;當(dāng)自身優(yōu)先級高于第二軟件轉(zhuǎn)發(fā)單元時(shí),則指示第二軟件轉(zhuǎn)發(fā)單元?jiǎng)h除硬件轉(zhuǎn)發(fā)單元中的所述硬件路由表項(xiàng),并將自身所述硬件路由表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元;當(dāng)自身優(yōu)先級不高于第二軟件轉(zhuǎn)發(fā)單元時(shí),不執(zhí)行添加所述硬件路由表項(xiàng)的操作;第二軟件轉(zhuǎn)發(fā)單元,進(jìn)一步用于根據(jù)第一軟件轉(zhuǎn)發(fā)單元的指示刪除硬件轉(zhuǎn)發(fā)單元中的所述硬件路由表項(xiàng)。
本發(fā)明所提供的一種保障報(bào)文硬件轉(zhuǎn)發(fā)的方法,通過刪除硬件轉(zhuǎn)發(fā)單元中的硬件路由表項(xiàng)時(shí),判斷所述硬件路由表項(xiàng)是否存在沖突,當(dāng)所述硬件路由表項(xiàng)存在沖突時(shí),確定硬件轉(zhuǎn)發(fā)單元中存在所述硬件路由表項(xiàng),始終保持軟件路由表項(xiàng)在硬件轉(zhuǎn)發(fā)單元中存在對應(yīng)的硬件路由表項(xiàng)。另外,本發(fā)明還提供了一種保障報(bào)文硬件轉(zhuǎn)發(fā)的裝置。應(yīng)用本發(fā)明所提供的方法及裝置,能夠保證軟件路由表項(xiàng)在硬件轉(zhuǎn)發(fā)單元中始終存在對應(yīng)的硬件路由表項(xiàng),保證報(bào)文的硬件轉(zhuǎn)發(fā),保證三層交換機(jī)的轉(zhuǎn)發(fā)效率,減少CPU的負(fù)荷。
圖1為本發(fā)明裝置的結(jié)構(gòu)圖;圖2為本發(fā)明第一較佳實(shí)施例方法的流程圖;圖3為本發(fā)明第一較佳實(shí)施例裝置的結(jié)構(gòu)圖;圖4為本發(fā)明第二較佳實(shí)施例方法的流程圖;圖5為本發(fā)明第二較佳實(shí)施例一添加硬件路由表項(xiàng)方法的流程圖;圖6為本發(fā)明第二較佳實(shí)施例又一添加硬件路由表項(xiàng)方法的流程圖;圖7為本發(fā)明第三較佳實(shí)施例一添加硬件路由表項(xiàng)方法的流程圖;圖8為本發(fā)明第三較佳實(shí)施例又一添加硬件路由表項(xiàng)方法的流程圖;圖9為本發(fā)明第三較佳實(shí)施例方法的流程圖。
具體實(shí)施例方式
本發(fā)明的核心思想是刪除硬件轉(zhuǎn)發(fā)單元中的硬件路由表項(xiàng)時(shí),判斷所述硬件路由表項(xiàng)是否存在沖突,當(dāng)所述硬件路由表項(xiàng)存在沖突時(shí),確定硬件轉(zhuǎn)發(fā)單元中存在所述硬件路由表項(xiàng)。
這里所述確定硬件轉(zhuǎn)發(fā)單元中存在所述硬件路由表項(xiàng)包括兩種方法第一種為第一軟件轉(zhuǎn)發(fā)單元?jiǎng)h除硬件轉(zhuǎn)發(fā)單元中的硬件路由表項(xiàng)后,指示第二軟件轉(zhuǎn)發(fā)單元,向硬件轉(zhuǎn)發(fā)單元重新下發(fā)所述硬件路由表項(xiàng);第二種為第一軟件轉(zhuǎn)發(fā)單元不刪除所述硬件路由表項(xiàng),僅刪除自身對應(yīng)的軟件路由表項(xiàng),則硬件轉(zhuǎn)發(fā)單元中仍然存在所述硬件路由表項(xiàng)。總而言之,即當(dāng)要?jiǎng)h除的硬件路由表項(xiàng)存在沖突時(shí),保障硬件轉(zhuǎn)發(fā)單元中存在與軟件路由表項(xiàng)對應(yīng)的硬件路由表項(xiàng)。
其中,所述的第一軟件轉(zhuǎn)發(fā)單元和第二軟件轉(zhuǎn)發(fā)單元為存在沖突的硬件路由表項(xiàng)所對應(yīng)兩個(gè)軟件轉(zhuǎn)發(fā)單元。所述的第一軟件轉(zhuǎn)發(fā)單元可以是FIB軟件轉(zhuǎn)發(fā)單元,相應(yīng)的第二軟件轉(zhuǎn)發(fā)單元是ARP軟件轉(zhuǎn)發(fā)單元;或所述的第一軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元,相應(yīng)的第二軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元。
相應(yīng)的,本發(fā)明裝置的結(jié)構(gòu)如圖1所示,包括軟件轉(zhuǎn)發(fā)單元11和硬件轉(zhuǎn)發(fā)單元12。這里,軟件轉(zhuǎn)發(fā)單元11用于在刪除硬件轉(zhuǎn)發(fā)單元12中的硬件路由表項(xiàng)時(shí),判斷所述硬件路由表項(xiàng)是否存在沖突;在所述硬件路由表項(xiàng)存在沖突時(shí),確定硬件轉(zhuǎn)發(fā)單元12中存在所述硬件路由表項(xiàng)。
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下舉三個(gè)較佳實(shí)施例對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)說明。
在本發(fā)明三個(gè)較佳實(shí)施例的介紹中,均以硬件路由表項(xiàng)為Prefix表項(xiàng)進(jìn)行介紹。
這里,第一較佳實(shí)施例主要描述的是,當(dāng)?shù)谝卉浖D(zhuǎn)發(fā)單元?jiǎng)h除硬件轉(zhuǎn)發(fā)單元中的Prefix表項(xiàng)后,指示第二軟件轉(zhuǎn)發(fā)單元重新添加Prefix表項(xiàng),當(dāng)所述Prefix表項(xiàng)存在沖突時(shí),第二軟件轉(zhuǎn)發(fā)單元?jiǎng)t重新添加Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
第二較佳實(shí)施例主要描述的是在添加Prefix表項(xiàng)發(fā)現(xiàn)沖突時(shí),針對所述Prefix表項(xiàng)設(shè)置沖突標(biāo)記;在第一軟件轉(zhuǎn)發(fā)單元?jiǎng)h除Prefix表項(xiàng)后,判斷所述Prefix表項(xiàng)是否設(shè)置沖突標(biāo)記,當(dāng)所述Prefix表項(xiàng)設(shè)置了沖突標(biāo)記,則第一軟件轉(zhuǎn)發(fā)單元指示第二軟件轉(zhuǎn)發(fā)單元添加所述Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
第三較佳實(shí)施例主要描述的是設(shè)置第一軟件轉(zhuǎn)發(fā)單元以及第二軟件轉(zhuǎn)發(fā)單元的優(yōu)先級,當(dāng)添加Prefix表項(xiàng)發(fā)現(xiàn)沖突時(shí),確定優(yōu)先級高的軟件轉(zhuǎn)發(fā)單元添加的Prefix表項(xiàng)保存于硬件轉(zhuǎn)發(fā)單元中,并針對所述Prefix表項(xiàng)設(shè)置沖突標(biāo)記;當(dāng)?shù)谝卉浖D(zhuǎn)發(fā)單元?jiǎng)h除Prefix表項(xiàng)時(shí),判斷所述Prefix表項(xiàng)以及自身優(yōu)先級的高低,從而確定存儲(chǔ)于硬件轉(zhuǎn)發(fā)單元的Prefix表項(xiàng)。
以下分別針對這三個(gè)較佳實(shí)施例進(jìn)行詳細(xì)說明。
第一較佳實(shí)施例在本實(shí)施例中,以ARP軟件轉(zhuǎn)發(fā)單元為第一軟件轉(zhuǎn)發(fā)單元,相應(yīng)的第二軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元,以ARP軟件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32軟件路由表項(xiàng)對應(yīng)的1.1.1.3/32Prefix表項(xiàng)為例進(jìn)行說明。
其中,硬件轉(zhuǎn)發(fā)單元由于生產(chǎn)廠商不一樣,因此導(dǎo)致硬件轉(zhuǎn)發(fā)單元的設(shè)置也不盡相同,主要包括添加覆蓋以及刪除保護(hù)。所述添加覆蓋為在后添加的Prefix表項(xiàng),覆蓋在先添加的Prefix表項(xiàng);刪除保護(hù)為由第一軟件轉(zhuǎn)發(fā)單元添加的Prefix表項(xiàng)只允許由第一軟件轉(zhuǎn)發(fā)單元?jiǎng)h除,不允許第二軟件轉(zhuǎn)發(fā)單元?jiǎng)h除。
本實(shí)施例中不涉及添加Prefix表項(xiàng)的過程,因此首先介紹硬件轉(zhuǎn)發(fā)單元支持刪除保護(hù)的情況。
當(dāng)ARP軟件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32軟件路由表項(xiàng)時(shí),也要在硬件轉(zhuǎn)發(fā)單元中刪除與1.1.1.3/32軟件路由表項(xiàng)對應(yīng)的1.1.1.3/32Prefix表項(xiàng),具體過程如圖2所示步驟201ARP軟件轉(zhuǎn)發(fā)單元指示硬件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32Prefix表項(xiàng)。
步驟202硬件轉(zhuǎn)發(fā)單元判斷1.1.1.3/32Prefix表項(xiàng)是否由ARP軟件轉(zhuǎn)發(fā)單元添加,如果是,則執(zhí)行步驟204;否則,執(zhí)行步驟203。
步驟203硬件轉(zhuǎn)發(fā)單元拒絕ARP軟件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32Prefix表項(xiàng),并向ARP軟件轉(zhuǎn)發(fā)單元返回錯(cuò)誤消息,執(zhí)行步驟208。
步驟204硬件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32Prefix表項(xiàng),并向ARP軟件轉(zhuǎn)發(fā)單元返回成功指示。
當(dāng)硬件轉(zhuǎn)發(fā)單元不支持刪除保護(hù),則硬件轉(zhuǎn)發(fā)單元不必執(zhí)行步驟202和203,當(dāng)收到ARP軟件轉(zhuǎn)發(fā)單元的指示后,刪除所述1.1.1.3/32Prefix表項(xiàng)。
步驟205ARP軟件轉(zhuǎn)發(fā)單元指示FIB軟件轉(zhuǎn)發(fā)單元向硬件轉(zhuǎn)發(fā)單元下發(fā)自身當(dāng)前刪除的1.1.1.3/32Prefix表項(xiàng)。
步驟206FIB軟件轉(zhuǎn)發(fā)單元判斷1.1.1.3/32Prefix表項(xiàng)是否存在沖突,如果是,執(zhí)行步驟207;否則,步驟208。
FIB軟件轉(zhuǎn)發(fā)單元判斷自身是否存在與所述Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng),即判斷自身是否存在目的IP地址與Prefix表項(xiàng)目的IP地址相同、并且具有32位子網(wǎng)掩碼的FIB軟件路由表項(xiàng),如果存在,則所述Prefix表項(xiàng)存在沖突。
步驟207FIB軟件轉(zhuǎn)發(fā)單元添加1.1.1.3/32Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
步驟208結(jié)束當(dāng)前處理流程。
在本實(shí)施例的介紹中,ARP軟件轉(zhuǎn)發(fā)單元為第一軟件轉(zhuǎn)發(fā)單元,F(xiàn)IB軟件轉(zhuǎn)發(fā)單元為第二軟件轉(zhuǎn)發(fā)單元;當(dāng)?shù)谝卉浖D(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元,第二軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元時(shí),同樣可以使用本實(shí)施例所述的方法,在此不再詳述。
與本實(shí)施例方法對應(yīng)的刪除Prefix表項(xiàng)裝置的結(jié)構(gòu)如圖3,包括軟件轉(zhuǎn)發(fā)單元31和硬件轉(zhuǎn)發(fā)單元32,其中軟件轉(zhuǎn)發(fā)單元31包括第一軟件轉(zhuǎn)發(fā)單元311和第二軟件轉(zhuǎn)發(fā)單元312。
其中,所述第一軟件轉(zhuǎn)發(fā)單元311,用于刪除硬件轉(zhuǎn)發(fā)單元32中的Prefix表項(xiàng),并指示第二軟件轉(zhuǎn)發(fā)單元312添加所述Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元32。
第二軟件轉(zhuǎn)發(fā)單元312,用于判斷所述Prefix表項(xiàng)是否存在沖突,在所述Prefix表項(xiàng)存在沖突時(shí),添加所述Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元32。
這里,第一軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元,相應(yīng)的第二軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元;或者第二軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元,相應(yīng)的第二軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元。
第二較佳實(shí)施例在本實(shí)施例中,ARP軟件轉(zhuǎn)發(fā)單元或FIB軟件轉(zhuǎn)發(fā)單元在向硬件轉(zhuǎn)發(fā)單元添加Prefix表項(xiàng)時(shí),發(fā)現(xiàn)硬件轉(zhuǎn)發(fā)單元中已經(jīng)存在與所述要添加的Prefix表項(xiàng)相同的Prefix表項(xiàng),則在自身與當(dāng)前要添加的Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記。
在本實(shí)施例中,ARP軟件轉(zhuǎn)發(fā)單元為第一軟件轉(zhuǎn)發(fā)單元,相應(yīng)的第二軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元,以ARP軟件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32軟件路由表項(xiàng)對應(yīng)的1.1.1.3/32Prefix表項(xiàng)為例進(jìn)行說明。在此,假設(shè)硬件轉(zhuǎn)發(fā)單元支持刪除保護(hù)。
本實(shí)施例方法的具體過程如圖4所示,包括以下步驟步驟401ARP軟件轉(zhuǎn)發(fā)單元指示硬件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32Prefix表項(xiàng)。
步驟402硬件轉(zhuǎn)發(fā)單元判斷1.1.1.3/32Prefix表項(xiàng)是否由ARP軟件轉(zhuǎn)發(fā)單元添加,如果是,則執(zhí)行步驟404;否則,執(zhí)行步驟403。
步驟403硬件轉(zhuǎn)發(fā)單元拒絕ARP軟件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32Prefix表項(xiàng),并向ARP軟件轉(zhuǎn)發(fā)單元返回錯(cuò)誤消息,執(zhí)行步驟408。
步驟404硬件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32Prefix表項(xiàng),并向ARP軟件轉(zhuǎn)發(fā)單元返回成功指示。
當(dāng)硬件轉(zhuǎn)發(fā)單元不支持刪除保護(hù),則硬件轉(zhuǎn)發(fā)單元不必執(zhí)行步驟402和403,當(dāng)收到軟件轉(zhuǎn)發(fā)單元的指示后,刪除所述1.1.1.3/32Prefix表項(xiàng)。
步驟405ARP軟件轉(zhuǎn)發(fā)單元判斷當(dāng)前刪除的1.1.1.3/32Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否設(shè)置了沖突標(biāo)記,如果是,執(zhí)行步驟406;否則,執(zhí)行步驟408。
步驟406ARP軟件轉(zhuǎn)發(fā)單元指示FIB軟件轉(zhuǎn)發(fā)單元向硬件轉(zhuǎn)發(fā)單元下發(fā)自身當(dāng)前刪除的1.1.1.3/32Prefix表項(xiàng)。
步驟407FIB軟件轉(zhuǎn)發(fā)單元添加1.1.1.3/32Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
步驟408結(jié)束當(dāng)前處理流程。
與本實(shí)施例方法對應(yīng)的刪除Prefix表項(xiàng)裝置的結(jié)構(gòu)與圖3所示的裝置結(jié)構(gòu)相同,包括軟件轉(zhuǎn)發(fā)單元和硬件轉(zhuǎn)發(fā)單元,其中軟件轉(zhuǎn)發(fā)單元包括第一軟件轉(zhuǎn)發(fā)單元和第二軟件轉(zhuǎn)發(fā)單元。
其中,所述第一軟件轉(zhuǎn)發(fā)單元,用于刪除硬件轉(zhuǎn)發(fā)單元中的Prefix表項(xiàng),并判斷所述Prefix表項(xiàng)是否存在沖突;在所述Prefix表項(xiàng)存在沖突時(shí),指示第二軟件轉(zhuǎn)發(fā)單元添加所述Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元;第二軟件轉(zhuǎn)發(fā)單元,用于添加所述Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
這里,第一軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元,相應(yīng)的第二軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元;或者第二軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元,相應(yīng)的第二軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元。
其中,本實(shí)施例中發(fā)現(xiàn)Prefix表項(xiàng)存在沖突的添加Prefix表項(xiàng)的方法有兩種,分別如圖5和圖6所示。
在圖5、圖6所示的流程中,均以ARP軟件轉(zhuǎn)發(fā)單元下發(fā)1.1.1.3/32Prefix表項(xiàng)為例。這里主要以硬件轉(zhuǎn)發(fā)單元不支持添加覆蓋為例進(jìn)行說明。
圖5所示的流程為步驟501ARP軟件轉(zhuǎn)發(fā)單元在添加1.1.1.3/32Prefix表項(xiàng)時(shí),檢查FIB軟件轉(zhuǎn)發(fā)單元是否存在與當(dāng)前要添加的1.1.1.3/32Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng),如果存在,執(zhí)行步驟502;如果不存在,執(zhí)行步驟503。
這里,ARP軟件轉(zhuǎn)發(fā)單元檢查FIB軟件轉(zhuǎn)發(fā)單元是否存在與當(dāng)前要添加的1.1.1.3/32Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)為,檢查是否存在目的IP地址與Prefix表項(xiàng)目的IP地址相同、并且具有32位子網(wǎng)掩碼的FIB軟件路由表項(xiàng),如果存在,執(zhí)行步驟502;如果不存在,執(zhí)行步驟503。
步驟502ARP軟件轉(zhuǎn)發(fā)單元不將1.1.1.3/32Prefix表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元;同時(shí),在自身與當(dāng)前要添加的Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記,并指示FIB軟件轉(zhuǎn)發(fā)單元在所述軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記。結(jié)束當(dāng)前處理流程。
步驟501說明FIB軟件轉(zhuǎn)發(fā)單元已將1.1.1.3/32Prefix表項(xiàng)下發(fā)至硬件轉(zhuǎn)發(fā)單元,因此在硬件轉(zhuǎn)發(fā)單元不支持覆蓋的情況下,ARP軟件轉(zhuǎn)發(fā)單元不將當(dāng)前1.1.1.3/32Prefix表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元。
如果在硬件轉(zhuǎn)發(fā)單元支持添加覆蓋的情況下,ARP軟件轉(zhuǎn)發(fā)單元可以選擇將1.1.1.3/32Prefix表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元,也可以選擇不將1.1.1.3/32Prefix表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元。
步驟503ARP軟件轉(zhuǎn)發(fā)單元將1.1.1.3/32Prefix表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元。
圖6的流程為步驟601ARP軟件轉(zhuǎn)發(fā)單元向硬件轉(zhuǎn)發(fā)單元添加1.1.1.3/32Prefix表項(xiàng)。
步驟602硬件轉(zhuǎn)發(fā)單元判斷自身是否已經(jīng)添加了當(dāng)前ARP軟件轉(zhuǎn)發(fā)單元要添加的1.1.1.3/32Prefix表項(xiàng),如果是,則執(zhí)行步驟604;否則,執(zhí)行步驟603。
步驟603硬件轉(zhuǎn)發(fā)單元添加1.1.1.3/32Prefix表項(xiàng),執(zhí)行步驟606。
步驟604硬件轉(zhuǎn)發(fā)單元不添加ARP軟件轉(zhuǎn)發(fā)單元當(dāng)前要添加的1.1.1.3/32Prefix表項(xiàng),向ARP軟件轉(zhuǎn)發(fā)單元返回沖突指示。
當(dāng)硬件轉(zhuǎn)發(fā)單元支持添加覆蓋時(shí),則處理過程為硬件轉(zhuǎn)發(fā)單元不論自身是否與1.1.1.3/32Prefix表項(xiàng)對應(yīng)的硬件路由表項(xiàng),都添加1.1.1.3/32Prefix表項(xiàng)。但是在存在當(dāng)前要添加的1.1.1.3/32Prefix表項(xiàng)對應(yīng)的硬件路由表項(xiàng)時(shí),用當(dāng)前的1.1.1.3/32Prefix表項(xiàng)覆蓋在先的硬件路由表項(xiàng),并向ARP軟件轉(zhuǎn)發(fā)單元返回沖突指示,接著執(zhí)行步驟605。
步驟605ARP軟件路由表項(xiàng)在自身與當(dāng)前要添加的Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記,并指示FIB軟件轉(zhuǎn)發(fā)單元在與當(dāng)前Prefix表項(xiàng)對應(yīng)的自身的軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記。
步驟606結(jié)束當(dāng)前處理流程。
以上對圖4、5和6的介紹是以ARP軟件轉(zhuǎn)發(fā)單元為第一軟件轉(zhuǎn)發(fā)單元,F(xiàn)IB軟件轉(zhuǎn)發(fā)單元為第二軟件轉(zhuǎn)發(fā)單元進(jìn)行說明。當(dāng)?shù)谝卉浖D(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元,第二軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元時(shí),具體的流與圖4、5和6所述的流程相同,在此不再詳述。
第三較佳實(shí)施例在本實(shí)施例中,考慮到硬件轉(zhuǎn)發(fā)單元只能對32位掩碼路由進(jìn)行直接處理,而ARP軟件轉(zhuǎn)發(fā)單元下發(fā)的Prefix表項(xiàng)均為32位掩碼,因此可以進(jìn)一步設(shè)置ARP軟件轉(zhuǎn)發(fā)單元和FIB軟件轉(zhuǎn)發(fā)單元的優(yōu)先級,并且ARP軟件轉(zhuǎn)發(fā)單元的優(yōu)先級高于FIB軟件轉(zhuǎn)發(fā)單元優(yōu)先級。根據(jù)設(shè)置的ARP軟件轉(zhuǎn)發(fā)單元以及FIB軟件轉(zhuǎn)發(fā)單元的優(yōu)先級確定在發(fā)生添加沖突時(shí),保留優(yōu)先級高的軟件轉(zhuǎn)發(fā)單元下發(fā)的Prefix表項(xiàng),因此,在ARP軟件轉(zhuǎn)發(fā)單元的優(yōu)先級高于FIB軟件轉(zhuǎn)發(fā)單元的優(yōu)先級時(shí),始終保留的是ARP軟件轉(zhuǎn)發(fā)單元添加的Prefix表項(xiàng)。
在本實(shí)施例中主要描述的是ARP軟件轉(zhuǎn)發(fā)單元的優(yōu)先級高于FIB軟件轉(zhuǎn)發(fā)單元的情況,當(dāng)然根據(jù)實(shí)際的情況還可以設(shè)置FIB軟件轉(zhuǎn)發(fā)單元的優(yōu)先級高于ARP。
與第二較佳實(shí)施例相同,存在兩種添加Prefix表項(xiàng)的方法。在此,以硬件轉(zhuǎn)發(fā)單元不支持添加覆蓋為例進(jìn)行說明,具體如圖7和圖8所示,現(xiàn)分別介紹如下圖7的流程為步驟701ARP軟件轉(zhuǎn)發(fā)單元在添加1.1.1.3/32Prefix表項(xiàng)時(shí),檢查FIB軟件轉(zhuǎn)發(fā)單元是否存在與當(dāng)前要添加的1.1.1.3/32Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng),如果是,則執(zhí)行步驟703;否則,執(zhí)行步驟702。
步驟702ARP軟件轉(zhuǎn)發(fā)單元將1.1.1.3/32Prefix表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元,執(zhí)行步驟708。
步驟703ARP軟件轉(zhuǎn)發(fā)單元判斷自身的優(yōu)先級是否比FIB軟件轉(zhuǎn)發(fā)單元高,如果是,則執(zhí)行步驟705;否則,執(zhí)行步驟704。
根據(jù)步驟701的判斷可知,F(xiàn)IB軟件轉(zhuǎn)發(fā)單元存在與當(dāng)前要添加的1.1.1.3/32Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng),因此說明FIB軟件轉(zhuǎn)發(fā)單元已將1.1.1.3/32Prefix表項(xiàng)下發(fā)至硬件轉(zhuǎn)發(fā)單元。
步驟704ARP軟件轉(zhuǎn)發(fā)單元取消將1.1.1.3/32Prefix表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元。同時(shí),ARP軟件轉(zhuǎn)發(fā)單元在自身與當(dāng)前要添加的Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記,并指示FIB軟件轉(zhuǎn)發(fā)單元在與當(dāng)前Prefix表項(xiàng)對應(yīng)的自身的軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記。執(zhí)行步驟708。
在本實(shí)施例設(shè)置ARP軟件轉(zhuǎn)發(fā)單元的優(yōu)先級高于FIB軟件轉(zhuǎn)發(fā)單元優(yōu)先級時(shí),本步驟是不會(huì)出現(xiàn)的。但是,在某些特殊的環(huán)境下,還是有可能將FIB軟件轉(zhuǎn)發(fā)單元的優(yōu)先級設(shè)置高于ARP軟件轉(zhuǎn)發(fā)單元,因此步驟704也是可能存在的情況。
步驟705ARP軟件轉(zhuǎn)發(fā)單元在自身與當(dāng)前要添加的Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記,指示FIB軟件轉(zhuǎn)發(fā)單元在所述軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記,同時(shí)指示FIB軟件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32Prefix表項(xiàng)。
步驟706FIB軟件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32Prefix表項(xiàng),并向ARP軟件轉(zhuǎn)發(fā)單元指示自身已經(jīng)成功刪除1.1.1.3/32Prefix表項(xiàng)。
步驟707ARP軟件轉(zhuǎn)發(fā)單元添加1.1.1.3/32Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
當(dāng)硬件轉(zhuǎn)發(fā)單元支持添加覆蓋時(shí),ARP軟件轉(zhuǎn)發(fā)單元?jiǎng)t不必執(zhí)行步驟705和706,而是在自身與當(dāng)前要添加的Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記,并指示FIB軟件轉(zhuǎn)發(fā)單元在所述軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記后,直接執(zhí)行步驟707。
步驟708結(jié)束當(dāng)前處理流程。
圖8的流程為步驟801ARP軟件轉(zhuǎn)發(fā)單元向硬件轉(zhuǎn)發(fā)單元添加1.1.1.3/32Prefix表項(xiàng)。
步驟802硬件轉(zhuǎn)發(fā)單元判斷自身是否已經(jīng)添加了當(dāng)前ARP軟件轉(zhuǎn)發(fā)單元要添加的1.1.1.3/32Prefix表項(xiàng),如果是,則執(zhí)行步驟804;否則,執(zhí)行步驟803。
步驟803硬件轉(zhuǎn)發(fā)單元添加1.1.1.3/32Prefix表項(xiàng),執(zhí)行步驟810。
步驟804硬件轉(zhuǎn)發(fā)單元不添加ARP軟件轉(zhuǎn)發(fā)單元當(dāng)前要添加的1.1.1.3/32Prefix表項(xiàng),向ARP軟件轉(zhuǎn)發(fā)單元返回沖突指示。
步驟805ARP軟件轉(zhuǎn)發(fā)單元判斷自身的優(yōu)先級是否比FIB軟件轉(zhuǎn)發(fā)單元優(yōu)先級高,如果是,則執(zhí)行步驟807;否則,執(zhí)行步驟806。
根據(jù)步驟802的判斷可知,F(xiàn)IB軟件轉(zhuǎn)發(fā)單元已將1.1.1.3/32Prefix表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元。
步驟806ARP軟件轉(zhuǎn)發(fā)單元取消將1.1.1.3/32Prefix表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元。同時(shí),ARP軟件轉(zhuǎn)發(fā)單元在自身與當(dāng)前要添加的Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記,并指示FIB軟件轉(zhuǎn)發(fā)單元在與當(dāng)前Prefix表項(xiàng)對應(yīng)的自身的軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記。執(zhí)行步驟810。
步驟807ARP軟件轉(zhuǎn)發(fā)單元在自身與當(dāng)前要添加的Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記,指示FIB軟件轉(zhuǎn)發(fā)單元在所述軟件路由表項(xiàng)上設(shè)置沖突標(biāo)記,同時(shí)指示FIB軟件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32Prefix表項(xiàng)。
步驟808FIB軟件轉(zhuǎn)發(fā)單元?jiǎng)h除1.1.1.3/32Prefix表項(xiàng),并向ARP軟件轉(zhuǎn)發(fā)單元指示自身已經(jīng)成功刪除1.1.1.3/32Prefix表項(xiàng)。
步驟809ARP軟件轉(zhuǎn)發(fā)單元添加1.1.1.3/32Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
步驟810結(jié)束當(dāng)前處理流程。
在本實(shí)施例中,同樣以ARP軟件轉(zhuǎn)發(fā)單元為第一軟件轉(zhuǎn)發(fā)單元,以刪除1.1.1.3/32軟件路由表項(xiàng)對應(yīng)的1.1.1.3/32Prefix表項(xiàng)為例進(jìn)行說明,相應(yīng)的FIB軟件轉(zhuǎn)發(fā)單元為第二軟件轉(zhuǎn)發(fā)單元。在此,硬件轉(zhuǎn)發(fā)單元是否支持刪除保護(hù)不對本實(shí)施例產(chǎn)生影響。本實(shí)施例的具體過程如圖9所示,詳細(xì)介紹如下步驟901ARP軟件轉(zhuǎn)發(fā)單元在刪除與1.1.1.3/32軟件路由表項(xiàng)對應(yīng)的1.1.1.3/32Prefix表項(xiàng)之前,判斷該1.1.1.3/32軟件路由表項(xiàng)是否設(shè)置了沖突標(biāo)記,如果是,則執(zhí)行步驟903;否則,執(zhí)行步驟902。
步驟902ARP軟件轉(zhuǎn)發(fā)單元指示硬件轉(zhuǎn)發(fā)單元?jiǎng)h除當(dāng)前1.1.1.3/32Prekfix表項(xiàng),硬件轉(zhuǎn)發(fā)單元?jiǎng)h除當(dāng)前ARP表項(xiàng),執(zhí)行步驟908。
步驟903判斷自身的優(yōu)先級是否高于FIB軟件轉(zhuǎn)發(fā)單元的優(yōu)先級,如果是,則執(zhí)行步驟905;否則,執(zhí)行步驟904。
步驟904ARP軟件轉(zhuǎn)發(fā)單元取消刪除硬件轉(zhuǎn)發(fā)單元中的1.1.1.3/32Prefix表項(xiàng),并通知FIB軟件轉(zhuǎn)發(fā)單元清除該1.1.1.3/32Prefix表項(xiàng)對應(yīng)的軟件路由表項(xiàng)的沖突標(biāo)記,執(zhí)行步驟908。
步驟905ARP軟件轉(zhuǎn)發(fā)單元指示硬件轉(zhuǎn)發(fā)單元?jiǎng)h除當(dāng)前1.1.1.3/32Prefix表項(xiàng),硬件轉(zhuǎn)發(fā)單元?jiǎng)h除當(dāng)前ARP表項(xiàng)。
步驟906ARP軟件轉(zhuǎn)發(fā)單元通知FIB軟件轉(zhuǎn)發(fā)單元向硬件轉(zhuǎn)發(fā)單元下發(fā)當(dāng)前自身刪除的1.1.1.3/32Prefix表項(xiàng)。
步驟907FIB軟件轉(zhuǎn)發(fā)單元將1.1.1.3/32軟件路由表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元中,并刪除自身1.1.1.3/32軟件路由表項(xiàng)設(shè)置的沖突標(biāo)記。
步驟908結(jié)束當(dāng)前處理流程。
以上對圖7、8和9的介紹是以ARP軟件轉(zhuǎn)發(fā)單元為第一軟件轉(zhuǎn)發(fā)單元,F(xiàn)IB軟件轉(zhuǎn)發(fā)單元為第二軟件轉(zhuǎn)發(fā)單元進(jìn)行說明。當(dāng)?shù)谝卉浖D(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元,第二軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元時(shí),具體的流程與圖7、8和9所述的流程相同,在此不再詳述。
本實(shí)施例方法對應(yīng)的裝置結(jié)構(gòu)與圖3所示的裝置結(jié)構(gòu)圖相同,包括軟件轉(zhuǎn)發(fā)單元和硬件轉(zhuǎn)發(fā)單元,其中軟件轉(zhuǎn)發(fā)單元包括第一軟件轉(zhuǎn)發(fā)單元和第二軟件轉(zhuǎn)發(fā)單元。
其中,所述第一軟件轉(zhuǎn)發(fā)單元,用于判斷所述Prefix表項(xiàng)是否存在沖突、以及自身與第二軟件轉(zhuǎn)發(fā)單元的優(yōu)先級高低;當(dāng)所述Prefix表項(xiàng)不存在沖突時(shí),刪除硬件轉(zhuǎn)發(fā)單元中所述Prefix表項(xiàng);當(dāng)所述Prefix表項(xiàng)存在沖突,并且自身優(yōu)先級高于第二軟件轉(zhuǎn)發(fā)單元時(shí),刪除硬件轉(zhuǎn)發(fā)單元中所述Prefix表項(xiàng),并指示第二軟件轉(zhuǎn)發(fā)單元添加所述Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元;當(dāng)所述Prefix表項(xiàng)存在沖突,并且自身優(yōu)先級不高于第二軟件轉(zhuǎn)發(fā)單元時(shí),不刪除硬件轉(zhuǎn)發(fā)單元中所述Prefix表項(xiàng)。
第二軟件轉(zhuǎn)發(fā)單元,用于根據(jù)第一軟件轉(zhuǎn)發(fā)單元的指示添加所述Prefix表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
這里,為了實(shí)現(xiàn)根據(jù)優(yōu)先級添加Prefix表項(xiàng)的操作,所述第一軟件轉(zhuǎn)發(fā)單元,進(jìn)一步用于在添加Prefix表項(xiàng)、確定所述Prefix表項(xiàng)存在沖突時(shí),判斷自身與第二軟件轉(zhuǎn)發(fā)單元優(yōu)先級的高低;當(dāng)自身優(yōu)先級高于第二軟件轉(zhuǎn)發(fā)單元時(shí),則指示第二軟件轉(zhuǎn)發(fā)單元?jiǎng)h除硬件轉(zhuǎn)發(fā)單元中的所述Prefix表項(xiàng),并將自身所述Prefix表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元;當(dāng)自身優(yōu)先級不高于第二軟件轉(zhuǎn)發(fā)單元時(shí),不執(zhí)行添加所述Prefix表項(xiàng)的操作;第二軟件轉(zhuǎn)發(fā)單元,進(jìn)一步用于根據(jù)第一軟件轉(zhuǎn)發(fā)單元的指示刪除硬件轉(zhuǎn)發(fā)單元中的所述Prefix表項(xiàng)。
這里,第一軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元,相應(yīng)的第二軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元;或者第二軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元,相應(yīng)的第二軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元。
在本發(fā)明中主要介紹的是,硬件轉(zhuǎn)發(fā)表包括Prefix表和nexthop表的情況,主要針對Prefix表中表項(xiàng)發(fā)生沖突的情況。對于不同三層交換機(jī)中的硬件轉(zhuǎn)發(fā)單元,其中硬件轉(zhuǎn)發(fā)表的組織形式也不盡相同。本發(fā)明所述的方法及裝置同樣適用于其他硬件轉(zhuǎn)發(fā)表的組織形式,例如硬件轉(zhuǎn)發(fā)表包括Prefix表和主機(jī)路由表的情況。
在這種硬件轉(zhuǎn)發(fā)表的組織形式中,主機(jī)路由表中包含二層轉(zhuǎn)發(fā)信息,三層交換機(jī)在進(jìn)行硬件轉(zhuǎn)發(fā)時(shí),優(yōu)先查找主機(jī)路由表,如果存在相應(yīng)的表項(xiàng),則可以直接獲得二層封裝信息轉(zhuǎn)發(fā)報(bào)文;如果不存在相應(yīng)的表項(xiàng),則在查找Prefix表,根據(jù)Prefix表指示的下一跳,再查找主機(jī)路由表,獲得二層封裝信息轉(zhuǎn)發(fā)報(bào)文。
當(dāng)硬件轉(zhuǎn)發(fā)表包括Prefix表和主機(jī)路由表時(shí),ARP軟件轉(zhuǎn)發(fā)單元不再Prefix表下發(fā)Prefix表項(xiàng),而向主機(jī)路由表中下發(fā)Prefix表項(xiàng);同時(shí),F(xiàn)IB軟件轉(zhuǎn)發(fā)單元也將自身具有32位掩碼的Prefix表項(xiàng)下發(fā)至主機(jī)路由表,因此主機(jī)路由表中的表項(xiàng)也同樣會(huì)存在沖突的問題。因此,本發(fā)明所提供的刪除Prefix表項(xiàng)的方法及裝置同樣適用于主機(jī)路由表中的表項(xiàng)。
另外,當(dāng)由多個(gè)軟件轉(zhuǎn)發(fā)單元向硬件轉(zhuǎn)發(fā)單元下發(fā)同一個(gè)硬件路由表項(xiàng)時(shí),例如,存在三個(gè)軟件轉(zhuǎn)發(fā)單元向主機(jī)路由表下發(fā)主機(jī)路由表項(xiàng),也可以按照本發(fā)明的核心思想去處理。
總之,本發(fā)明所提供的方法及裝置能適用于任何刪除硬件路由表項(xiàng)的情況,特別是刪除發(fā)生沖突的硬件路由表項(xiàng)。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種保障報(bào)文硬件轉(zhuǎn)發(fā)的方法,其特征在于,執(zhí)行以下步驟A、刪除硬件路由表項(xiàng),判斷所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突,當(dāng)所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突時(shí),確保所述存在沖突的軟件路由表項(xiàng)存在對應(yīng)的硬件路由表項(xiàng)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,第一軟件轉(zhuǎn)發(fā)單元在硬件轉(zhuǎn)發(fā)單元中執(zhí)行所述刪除硬件路由表項(xiàng)的步驟;當(dāng)?shù)谝卉浖D(zhuǎn)發(fā)單元?jiǎng)h除硬件路由表項(xiàng)后,該方法進(jìn)一步包括第一軟件轉(zhuǎn)發(fā)單元指示第二軟件轉(zhuǎn)發(fā)單元向硬件轉(zhuǎn)發(fā)單元添加所述硬件路由表項(xiàng);由第二軟件轉(zhuǎn)發(fā)單元執(zhí)行所述判斷的步驟。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第一軟件轉(zhuǎn)發(fā)單元在硬件轉(zhuǎn)發(fā)單元中執(zhí)行所述刪除硬件路由表項(xiàng)的步驟為第一軟件轉(zhuǎn)發(fā)單元指示硬件轉(zhuǎn)發(fā)單元?jiǎng)h除硬件路由表項(xiàng),硬件轉(zhuǎn)發(fā)單元判斷所述硬件路由表項(xiàng)是否為第一軟件轉(zhuǎn)發(fā)單元添加,如果是,則硬件轉(zhuǎn)發(fā)單元?jiǎng)h除所述硬件路由表項(xiàng);否則,硬件轉(zhuǎn)發(fā)單元不刪除所述硬件路由表項(xiàng),結(jié)束當(dāng)前處理流程。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第二軟件轉(zhuǎn)發(fā)單元判斷硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突為第二軟件轉(zhuǎn)發(fā)單元判斷自身是否存在與所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng),如果是,則第二軟件轉(zhuǎn)發(fā)單元將所述硬件路由表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元;否則,不添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,第一軟件轉(zhuǎn)發(fā)單元在硬件轉(zhuǎn)發(fā)單元中執(zhí)行所述刪除硬件路由表項(xiàng)的步驟;第一軟件轉(zhuǎn)發(fā)單元在刪除硬件路由表項(xiàng)后,執(zhí)行所述判斷的步驟。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述確保存在對應(yīng)的硬件路由表項(xiàng)為第一軟件轉(zhuǎn)發(fā)單元指示第二軟件轉(zhuǎn)發(fā)單元添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,在步驟A之前,該方法進(jìn)一步包括a2、添加硬件路由表項(xiàng)確定所述硬件路由表項(xiàng)存在沖突時(shí),對所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)設(shè)置沖突標(biāo)記;所述第一軟件轉(zhuǎn)發(fā)單元判斷硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突為判斷硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否設(shè)置沖突標(biāo)記,如果設(shè)置沖突標(biāo)記,則所述軟件路由表項(xiàng)存在沖突。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,第一軟件轉(zhuǎn)發(fā)單元在硬件轉(zhuǎn)發(fā)單元中執(zhí)行所述刪除硬件路由表項(xiàng)的步驟;第一軟件轉(zhuǎn)發(fā)單元在刪除硬件路由表項(xiàng)之前,執(zhí)行所述判斷的步驟。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,設(shè)置第一軟件轉(zhuǎn)發(fā)單元和第二軟件轉(zhuǎn)發(fā)單元的優(yōu)先級;所述確保存在對應(yīng)的硬件路由表項(xiàng)為,執(zhí)行以下步驟A31、第一軟件轉(zhuǎn)發(fā)單元判斷自身的優(yōu)先級是否高于第二軟件轉(zhuǎn)發(fā)單元,如果是,則執(zhí)行步驟A32;否則,第一軟件轉(zhuǎn)發(fā)單元不刪除所述硬件路由表項(xiàng),結(jié)束當(dāng)前處理流程。A32、第一軟件轉(zhuǎn)發(fā)單元?jiǎng)h除所述硬件路由表項(xiàng),并指示第二軟件轉(zhuǎn)發(fā)單元重新添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,在步驟A之前,該方法進(jìn)一步包括a3、添加硬件路由表項(xiàng)確定所述硬件路由表項(xiàng)存在沖突時(shí),確定優(yōu)先級高的軟件轉(zhuǎn)發(fā)單元添加硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元,對所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)設(shè)置沖突標(biāo)記;所述第一軟件轉(zhuǎn)發(fā)單元判斷硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突為判斷硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否設(shè)置沖突標(biāo)記,如果設(shè)置沖突標(biāo)記,則所述軟件路由表項(xiàng)存在沖突。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,步驟a3中,所述確定優(yōu)先級高的軟件轉(zhuǎn)發(fā)單元添加硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元為判斷自身的優(yōu)先級是否高于另一軟件轉(zhuǎn)發(fā)單元,如果是,則指示另一軟件轉(zhuǎn)發(fā)單元?jiǎng)h除硬件轉(zhuǎn)發(fā)單元中的所述硬件路由表項(xiàng),并將自身所述硬件路由表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元;否則,不執(zhí)行將自身所述硬件路由表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元的操作。
12.根據(jù)權(quán)利要求7、10或11所述的方法,其特征在于,步驟a2中及步驟a3中,所述確定所述硬件路由表項(xiàng)存在沖突為向硬件轉(zhuǎn)發(fā)單元添加硬件路由表項(xiàng)時(shí),硬件轉(zhuǎn)發(fā)單元返回沖突響應(yīng),則確定所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突。
13.根據(jù)權(quán)利要求2、3、4、6、7、9、10或11所述的方法,其特征在于,所述第一軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元,第二軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元;或第一軟件轉(zhuǎn)發(fā)單元為FIB軟件轉(zhuǎn)發(fā)單元,第二軟件轉(zhuǎn)發(fā)單元為ARP軟件轉(zhuǎn)發(fā)單元。
14.一種保障報(bào)文硬件轉(zhuǎn)發(fā)的裝置,其特征在于,該裝置包括軟件轉(zhuǎn)發(fā)單元和硬件轉(zhuǎn)發(fā)單元;其中,軟件轉(zhuǎn)發(fā)單元用于在刪除硬件轉(zhuǎn)發(fā)單元中的硬件路由表項(xiàng)時(shí),判斷所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突;在所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突時(shí),確保硬件轉(zhuǎn)發(fā)單元中存在所述存在沖突的軟件路由表項(xiàng)對應(yīng)的硬件路由表項(xiàng)。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述軟件轉(zhuǎn)發(fā)單元包括第一軟件轉(zhuǎn)發(fā)單元和第二軟件轉(zhuǎn)發(fā)單元;其中,第一軟件轉(zhuǎn)發(fā)單元,用于刪除硬件轉(zhuǎn)發(fā)單元中的硬件路由表項(xiàng),并指示第二軟件轉(zhuǎn)發(fā)單元添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元;第二軟件轉(zhuǎn)發(fā)單元,用于判斷所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突,在所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突時(shí),添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
16.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述軟件轉(zhuǎn)發(fā)單元包括第一軟件轉(zhuǎn)發(fā)單元和第二軟件轉(zhuǎn)發(fā)單元;其中,第一軟件轉(zhuǎn)發(fā)單元,用于刪除硬件轉(zhuǎn)發(fā)單元中的硬件路由表項(xiàng),并判斷所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突;在所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突時(shí),指示第二軟件轉(zhuǎn)發(fā)單元添加所述存在沖突的軟件路由表項(xiàng)對應(yīng)的硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元;第二軟件轉(zhuǎn)發(fā)單元,用于添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
17.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述軟件轉(zhuǎn)發(fā)單元包括第一軟件轉(zhuǎn)發(fā)單元和第二軟件轉(zhuǎn)發(fā)單元;其中,第一軟件轉(zhuǎn)發(fā)單元,用于在刪除硬件路由表項(xiàng)時(shí),判斷所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)是否存在沖突、以及自身與第二軟件轉(zhuǎn)發(fā)單元的優(yōu)先級高低;當(dāng)所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)不存在沖突時(shí),刪除硬件轉(zhuǎn)發(fā)單元中所述硬件路由表項(xiàng);當(dāng)所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突,并且自身優(yōu)先級高于第二軟件轉(zhuǎn)發(fā)單元時(shí),刪除硬件轉(zhuǎn)發(fā)單元中所述硬件路由表項(xiàng),并指示第二軟件轉(zhuǎn)發(fā)單元添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元;當(dāng)所述硬件路由表項(xiàng)對應(yīng)的軟件路由表項(xiàng)存在沖突,并且自身優(yōu)先級不高于第二軟件轉(zhuǎn)發(fā)單元時(shí),不刪除硬件轉(zhuǎn)發(fā)單元中所述硬件路由表項(xiàng);第二軟件轉(zhuǎn)發(fā)單元,用于根據(jù)第一軟件轉(zhuǎn)發(fā)單元的指示添加所述硬件路由表項(xiàng)至硬件轉(zhuǎn)發(fā)單元。
18.根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述第一軟件轉(zhuǎn)發(fā)單元,進(jìn)一步用于在添加硬件路由表項(xiàng)、確定所述硬件路由表項(xiàng)存在沖突時(shí),判斷自身與第二軟件轉(zhuǎn)發(fā)單元優(yōu)先級的高低;當(dāng)自身優(yōu)先級高于第二軟件轉(zhuǎn)發(fā)單元時(shí),則指示第二軟件轉(zhuǎn)發(fā)單元?jiǎng)h除硬件轉(zhuǎn)發(fā)單元中的所述硬件路由表項(xiàng),并將自身所述硬件路由表項(xiàng)添加至硬件轉(zhuǎn)發(fā)單元;當(dāng)自身優(yōu)先級不高于第二軟件轉(zhuǎn)發(fā)單元時(shí),不執(zhí)行添加所述硬件路由表項(xiàng)的操作;第二軟件轉(zhuǎn)發(fā)單元,進(jìn)一步用于根據(jù)第一軟件轉(zhuǎn)發(fā)單元的指示刪除硬件轉(zhuǎn)發(fā)單元中的所述硬件路由表項(xiàng)。
全文摘要
本發(fā)明公開了一種保障報(bào)文硬件轉(zhuǎn)發(fā)的方法,刪除硬件轉(zhuǎn)發(fā)單元中與刪除了的軟件路由表項(xiàng)對應(yīng)的硬件路由表項(xiàng)時(shí),判斷所述硬件路由表項(xiàng)是否存在沖突,當(dāng)所述硬件路由表項(xiàng)存在沖突時(shí),確保硬件轉(zhuǎn)發(fā)單元中存在所述軟件路由表項(xiàng)對應(yīng)的硬件路由表項(xiàng)。另外,本發(fā)明還提供了一種保障報(bào)文硬件轉(zhuǎn)發(fā)的裝置。應(yīng)用本發(fā)明所提供的方法及裝置,能夠保證軟件路由表項(xiàng)在硬件轉(zhuǎn)發(fā)單元中始終存在對應(yīng)的硬件路由表項(xiàng),保證報(bào)文的硬件轉(zhuǎn)發(fā),保證三層交換機(jī)的轉(zhuǎn)發(fā)效率,減少CPU的負(fù)荷。
文檔編號H04L29/08GK1921442SQ20061011122
公開日2007年2月28日 申請日期2006年8月15日 優(yōu)先權(quán)日2006年8月15日
發(fā)明者王颶, 趙麗娜, 潘凝, 蘇興山 申請人:杭州華為三康技術(shù)有限公司