專利名稱:基于芯片查找表的bfd實(shí)現(xiàn)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,特別涉及一種基于芯片查找表的BFD實(shí)現(xiàn)方法及裝置。
背景技術(shù):
雙向轉(zhuǎn)發(fā)檢測(BidirectionalForwarding Detection, BFD)協(xié)議是互聯(lián)網(wǎng)協(xié) 議(Internet Protocol, IP)層的快速檢測協(xié)議,可以檢測網(wǎng)絡(luò)各層的鏈路故障。而且,由 于BFD進(jìn)行故障檢測的簡單、單一性,使得BFD能夠?qū)W⒂诠收系目焖贆z測,幫助網(wǎng)絡(luò)以良 好的服務(wù)質(zhì)量(Quality of Service, QoS)實(shí)現(xiàn)語音、視頻及其它點(diǎn)播業(yè)務(wù)的傳輸,從而幫 助服務(wù)提供商為客戶提供所需的高可靠性、高適用性模擬聲音訊號網(wǎng)絡(luò)電話(Voice over Internet Protocol,VoIP)及其它實(shí)時(shí)業(yè)務(wù)。因此,BFD的檢測時(shí)延就成為衡量網(wǎng)絡(luò)設(shè)備的 重要指標(biāo)參數(shù)?,F(xiàn)有的BFD數(shù)據(jù)包都是先依靠CPU軟件查找轉(zhuǎn)發(fā)數(shù)據(jù)表并獲取發(fā)送端口,再將該 BFD數(shù)據(jù)包通過該發(fā)送端口發(fā)送,其三層轉(zhuǎn)發(fā)的數(shù)據(jù)表查找流程如圖1所示。首先,查找路 由表,得出數(shù)據(jù)包的下一跳的互聯(lián)網(wǎng)協(xié)議(InternetProtocol,IP)地址;其次,根據(jù)下一跳 的IP地址查找地址解析協(xié)議(AddressResolution Protocol, ARP)表,得出下一跳的媒體 訪問控制(Media AccessControl,MAC)地址;再次,根據(jù)下一跳的MAC地址查找MAC表,得 出BFD數(shù)據(jù)包的發(fā)送端口,從而將該BFD數(shù)據(jù)包由該發(fā)送端口發(fā)送出去。上述通過CPU軟件查找轉(zhuǎn)發(fā)數(shù)據(jù)表的方法,使得發(fā)送數(shù)據(jù)包的時(shí)間間隔較長,影 響B(tài)FD數(shù)據(jù)包轉(zhuǎn)發(fā)的速度。
發(fā)明內(nèi)容
本發(fā)明的主要目的是提供一種基于芯片查找表的BFD實(shí)現(xiàn)方法及裝置,旨在加快 了 BFD數(shù)據(jù)包的轉(zhuǎn)發(fā)速度。本發(fā)明提供了一種基于芯片查找表的BFD實(shí)現(xiàn)方法,包括以下步驟接收中央處理單元CPU發(fā)送的數(shù)據(jù)包;當(dāng)數(shù)據(jù)包為雙向轉(zhuǎn)發(fā)檢測BFD數(shù)據(jù)包時(shí),根據(jù)BFD數(shù)據(jù)包的包頭及芯片的預(yù)置使 能,獲取預(yù)置的預(yù)存表中的BFD數(shù)據(jù)包發(fā)送端口 ;通過發(fā)送端口發(fā)送BFD數(shù)據(jù)包。優(yōu)選地,上述接收CPU發(fā)送的數(shù)據(jù)包的步驟之前包括獲取控制指令,并根據(jù)控制指令設(shè)置芯片的預(yù)置使能,芯片的預(yù)置使能包括二層 轉(zhuǎn)發(fā)使能、三層轉(zhuǎn)發(fā)使能。優(yōu)選地,當(dāng)預(yù)置使能為二層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的包頭中目的媒體訪問控制 MAC地址查找預(yù)存表中的MAC表,獲取BFD數(shù)據(jù)包的發(fā)送端口。優(yōu)選地,當(dāng)預(yù)置使能為三層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的包頭中目的互聯(lián)網(wǎng)協(xié)議IP 地址查找路由表,獲取下一跳的IP地址;
3
根據(jù)下一跳的IP地址查找地址解析協(xié)議ARP表,獲取下一跳的MAC地址;根據(jù)該下一跳的MAC地址查找MAC表,獲取BFD數(shù)據(jù)包的發(fā)送端口。優(yōu)選地,上述接收CPU發(fā)送的數(shù)據(jù)包的步驟之后還包括當(dāng)數(shù)據(jù)包不是BFD數(shù)據(jù)包時(shí),丟棄數(shù)據(jù)包。本發(fā)明還提供了一種基于芯片查找表的BFD實(shí)現(xiàn)裝置,包括接收模塊,用于接收中央處理單元CPU發(fā)送的數(shù)據(jù)包;處理模塊,用于當(dāng)數(shù)據(jù)包為雙向轉(zhuǎn)發(fā)檢測BFD數(shù)據(jù)包時(shí),根據(jù)BFD數(shù)據(jù)包的包頭及 芯片的預(yù)置使能,獲取預(yù)置的預(yù)存表中的BFD數(shù)據(jù)包發(fā)送端口 ; 發(fā)送模塊,用于通過發(fā)送端口發(fā)送BFD數(shù)據(jù)包。優(yōu)選地,上述裝置還包括設(shè)置模塊,用于獲取控制指令,并根據(jù)控制指令設(shè)置芯片的預(yù)置使能,芯片的預(yù)置 使能包括二層轉(zhuǎn)發(fā)使能、三層轉(zhuǎn)發(fā)使能。優(yōu)選地,上述處理模塊具體用于當(dāng)預(yù)置使能為二層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的包 頭中目的媒體訪問控制MAC地址查找預(yù)存表中的MAC表,獲取BFD數(shù)據(jù)包的發(fā)送端口。優(yōu)選地,上述處理模塊還具體用于當(dāng)預(yù)置使能為三層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的 包頭中目的互聯(lián)網(wǎng)協(xié)議IP地址查找路由表,獲取下一跳的IP地址;根據(jù)下一跳的IP地址查找地址解析協(xié)議ARP表,獲取下一跳的MAC地址;根據(jù)該下一跳的MAC地址查找MAC表,獲取BFD數(shù)據(jù)包的發(fā)送端口。優(yōu)選地,上述處理模塊還具體用于當(dāng)數(shù)據(jù)包不是BFD數(shù)據(jù)包時(shí),丟棄數(shù)據(jù)包。本發(fā)明基于芯片查找表的BFD實(shí)現(xiàn)方法及裝置,通過芯片接收BFD數(shù)據(jù)包,并對其 進(jìn)行查找表,實(shí)現(xiàn)BFD數(shù)據(jù)包的轉(zhuǎn)發(fā),不但加快了 BFD數(shù)據(jù)包的轉(zhuǎn)發(fā)速度,而且減輕了現(xiàn)有 技術(shù)中CPU軟件查表的負(fù)擔(dān)。
圖1是現(xiàn)有技術(shù)中通過CPU軟件查表實(shí)現(xiàn)BFD的流程示意圖;圖2是本發(fā)明基于芯片查找表的BFD實(shí)現(xiàn)方法的一實(shí)施例的流程示意圖;圖3是本發(fā)明基于芯片查找表的BFD實(shí)現(xiàn)裝置的一實(shí)施例的流程示意圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施例方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖2是本發(fā)明一種基于芯片查找表的BFD實(shí)現(xiàn)方法一實(shí)施例的流程示意圖。本實(shí)施例一種基于芯片查找表的BFD實(shí)現(xiàn)方法,包括以下步驟步驟S11、接收CPU發(fā)送的數(shù)據(jù)包;交換芯片接收中央處理單元(Central Processing Unit,CPU)發(fā)送的組裝好的數(shù) 據(jù)包。當(dāng)該數(shù)據(jù)包為BFD數(shù)據(jù)包時(shí),其組裝流程為步驟A、組裝數(shù)據(jù)包的UDP部分;通過請求評議(Request for Comments, RFC)文檔對BFD檢測報(bào)文進(jìn)行用戶數(shù)據(jù) 包協(xié)議(User Datagram Protocol, UDP)封裝。該RFC文檔為傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(Transmission Control Protocol/Internet Protocol, TCP/IP)的標(biāo)準(zhǔn)文檔。步驟B、組裝數(shù)據(jù)包的IP部分;將經(jīng)過UDP封裝的數(shù)據(jù)包進(jìn)行互聯(lián)網(wǎng)協(xié)議(Internet Protocol, IP)封裝,添加目 的IP地址、源IP地址。步驟C、組裝數(shù)據(jù)包的二層包頭。二層包頭包括BFD標(biāo)識符、媒體訪問控制(Media Access Control,MAC)地址及虛 擬局域網(wǎng)(Virtual Local Area Network, VLAN)部分。在此,可設(shè)置VLAN ID為默認(rèn)的狀 態(tài),即VLAN 1。MAC地址中包括目的MAC地址、源MAC地址。步驟S12、判斷該數(shù)據(jù)包是否為BFD數(shù)據(jù)包;當(dāng)二層包頭中存在BFD標(biāo)識符,則判斷該數(shù)據(jù)包為BFD數(shù)據(jù)包,轉(zhuǎn)步驟S13 ;否則 判斷該數(shù)據(jù)包不是BFD數(shù)據(jù)包,轉(zhuǎn)步驟S15。步驟S13、根據(jù)BFD數(shù)據(jù)包的包頭及芯片的預(yù)置使能,獲取預(yù)置的預(yù)存表中的BFD 數(shù)據(jù)包發(fā)送端口;步驟S14、通過發(fā)送端口發(fā)送該BFD數(shù)據(jù)包;步驟S15、丟棄該數(shù)據(jù)包。上述步驟S11之前還包括步驟S10、獲取控制指令,并根據(jù)該控制指令設(shè)置芯片的預(yù)置使能;該芯片的預(yù)置使能包括二層轉(zhuǎn)發(fā)使能或三層轉(zhuǎn)發(fā)使能。根據(jù)寄存器手冊,通過獲 取控制指令,并根據(jù)該控制指令設(shè)置芯片相應(yīng)的寄存器值,即設(shè)置芯片的預(yù)置使能。具體的 預(yù)置使能設(shè)置要根據(jù)具體的芯片進(jìn)行相應(yīng)的設(shè)置,例如,某芯片的寄存器值將設(shè)置為IPMC_D0_VLAN = 0 ;V6IPMC_ENABLE = 1 ;V6L3_ENABLE = 0 ;V4L3_ENABLE = 1 ;由上述寄存器的設(shè)置,可知該芯片的預(yù)置使能為IPV4的三層轉(zhuǎn)發(fā)使能。因此,當(dāng) 接收到BFD數(shù)據(jù)包時(shí),該芯片根據(jù)BFD數(shù)據(jù)包包頭中的目的IP地址,依次查找路由表、ARP 表、MAC表,以獲得BFD數(shù)據(jù)轉(zhuǎn)發(fā)的發(fā)送端口。并通過該發(fā)送端口發(fā)送BFD數(shù)據(jù)包。上述步驟S13具體為A、當(dāng)預(yù)置使能為二層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的包頭中目的MAC地址查找預(yù)存表 中的MAC表,獲取BFD數(shù)據(jù)包的發(fā)送端口 ;B、當(dāng)預(yù)置使能為三層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的包頭中目的IP地址查找路由表, 獲取下一跳的IP地址;根據(jù)下一跳的IP地址查找地址解析協(xié)議ARP表,獲取下一跳的MAC 地址;根據(jù)該下一跳的MAC地址查找MAC表,獲取BFD數(shù)據(jù)包的發(fā)送端口。 本實(shí)施例基于芯片查找表的BFD實(shí)現(xiàn)方法,通過芯片接收BFD數(shù)據(jù)包,并對其進(jìn)行 查找表,實(shí)現(xiàn)BFD數(shù)據(jù)包的轉(zhuǎn)發(fā),不但減輕了現(xiàn)有技術(shù)中通過CPU軟件查表的負(fù)擔(dān),而且加 快了 BFD數(shù)據(jù)包的轉(zhuǎn)發(fā)速度。圖3是本發(fā)明基于芯片查找表的BFD實(shí)現(xiàn)裝置一實(shí)施例的結(jié)構(gòu)示意圖。本實(shí)施例基于芯片查找表的BFD實(shí)現(xiàn)裝置包括接收模塊10,用于接收中央處理單元CPU發(fā)送的數(shù)據(jù)包;
5
判斷模塊20,用于判斷該數(shù)據(jù)包是否為BFD數(shù)據(jù)包;處理模塊30,用于當(dāng)該數(shù)據(jù)包是BFD數(shù)據(jù)包時(shí),根據(jù)BFD數(shù)據(jù)包的包頭及芯片的預(yù) 置使能,獲取預(yù)置的預(yù)存表中的BFD數(shù)據(jù)包發(fā)送端口 ;發(fā)送模塊40,用于通過發(fā)送端口發(fā)送BFD數(shù)據(jù)包。上述基于芯片查找表的BFD實(shí)現(xiàn)裝置還包括設(shè)置模塊50,用于獲取控制指令,并根據(jù)控制指令設(shè)置芯片的預(yù)置使能,芯片的預(yù) 置使能包括二層轉(zhuǎn)發(fā)使能或三層轉(zhuǎn)發(fā)使能。根據(jù)寄存器手冊,通過獲取控制指令,并根據(jù)該控制指令設(shè)置芯片相應(yīng)的寄存器 值,即設(shè)置芯片的預(yù)置使能。例如,某芯片的寄存器值將設(shè)置為IPMC_D0_VLAN = 0 ;V6IPMC_ENABLE = 1 ;V6L3_ENABLE = 0 ;V4L3_ENABLE = 1 ;由上述寄存器的設(shè)置,可知該芯片的預(yù)置使能為IPV4的三層轉(zhuǎn)發(fā)使能。因此,當(dāng) 接收到BFD數(shù)據(jù)包時(shí),該芯片根據(jù)BFD數(shù)據(jù)包包頭中的目的IP地址,依次查找路由表、ARP 表、MAC表,以獲得BFD數(shù)據(jù)轉(zhuǎn)發(fā)的發(fā)送端口。并通過該發(fā)送端口發(fā)送BFD數(shù)據(jù)包。上述處理模塊30具體用于當(dāng)預(yù)置使能為二層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的包頭中 目的媒體訪問控制MAC地址查找預(yù)存表中的MAC表,獲取BFD數(shù)據(jù)包的發(fā)送端口 ;當(dāng)預(yù)置使能為三層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的包頭中目的互聯(lián)網(wǎng)協(xié)議IP地址查 找路由表,獲取下一跳的IP地址;根據(jù)下一跳的IP地址查找地址解析協(xié)議ARP表,獲取下 一跳的MAC地址;根據(jù)該下一跳的MAC地址查找MAC表,獲取BFD數(shù)據(jù)包的發(fā)送端口。上述處理模塊30還具體用于當(dāng)該數(shù)據(jù)包不是BFD數(shù)據(jù)包時(shí),丟棄該數(shù)據(jù)包。本實(shí)施例基于芯片查找表的BFD實(shí)現(xiàn)裝置,通過芯片接收BFD數(shù)據(jù)包,并對其進(jìn)行 查找表,實(shí)現(xiàn)BFD數(shù)據(jù)包的轉(zhuǎn)發(fā),不但減輕了現(xiàn)有技術(shù)中通過CPU軟件查表的負(fù)擔(dān),而且加 快了 BFD數(shù)據(jù)包的轉(zhuǎn)發(fā)速度。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用 本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān) 的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
一種基于芯片查找表的BFD實(shí)現(xiàn)方法,其特征在于,包括以下步驟接收中央處理單元CPU發(fā)送的數(shù)據(jù)包;當(dāng)所述數(shù)據(jù)包為雙向轉(zhuǎn)發(fā)檢測BFD數(shù)據(jù)包時(shí),根據(jù)BFD數(shù)據(jù)包的包頭及芯片的預(yù)置使能,獲取預(yù)置的預(yù)存表中的BFD數(shù)據(jù)包發(fā)送端口;通過所述發(fā)送端口發(fā)送所述BFD數(shù)據(jù)包。
2.如權(quán)利要求1所述的基于芯片查找表的BFD實(shí)現(xiàn)方法,其特征在于,所述接收CPU發(fā) 送的數(shù)據(jù)包的步驟之前包括獲取控制指令,并根據(jù)所述控制指令設(shè)置芯片的預(yù)置使能,所述芯片的預(yù)置使能包括 二層轉(zhuǎn)發(fā)使能或三層轉(zhuǎn)發(fā)使能。
3.如權(quán)利要求2所述的基于芯片查找表的BFD實(shí)現(xiàn)方法,其特征在于,當(dāng)預(yù)置使能為二 層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的包頭中目的媒體訪問控制MAC地址查找預(yù)存表中的MAC表,獲 取BFD數(shù)據(jù)包的發(fā)送端口。
4.如權(quán)利要求2所述的基于芯片查找表的BFD實(shí)現(xiàn)方法,其特征在于,當(dāng)預(yù)置使能為三 層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的包頭中目的互聯(lián)網(wǎng)協(xié)議IP地址查找路由表,獲取下一跳的IP 地址;根據(jù)下一跳的IP地址查找地址解析協(xié)議ARP表,獲取下一跳的MAC地址;根據(jù)該下一跳的MAC地址查找MAC表,獲取BFD數(shù)據(jù)包的發(fā)送端口。
5.如權(quán)利要求1所述的基于芯片查找表的BFD實(shí)現(xiàn)方法,其特征在于,所述接收CPU發(fā) 送的數(shù)據(jù)包的步驟之后還包括當(dāng)所述數(shù)據(jù)包不是BFD數(shù)據(jù)包時(shí),丟棄所述數(shù)據(jù)包。
6.一種基于芯片查找表的BFD實(shí)現(xiàn)裝置,其特征在于,包括接收模塊,用于接收中央處理單元CPU發(fā)送的數(shù)據(jù)包;處理模塊,用于當(dāng)所述數(shù)據(jù)包為雙向轉(zhuǎn)發(fā)檢測BFD數(shù)據(jù)包時(shí),根據(jù)BFD數(shù)據(jù)包的包頭及 芯片的預(yù)置使能,獲取預(yù)置的預(yù)存表中的BFD數(shù)據(jù)包發(fā)送端口 ;發(fā)送模塊,用于通過所述發(fā)送端口發(fā)送所述BFD數(shù)據(jù)包。
7.如權(quán)利要求6所述的基于芯片查找表的BFD實(shí)現(xiàn)裝置,其特征在于,所述裝置還包括設(shè)置模塊,用于獲取控制指令,并根據(jù)所述控制指令設(shè)置芯片的預(yù)置使能,所述芯片的 預(yù)置使能包括二層轉(zhuǎn)發(fā)使能或三層轉(zhuǎn)發(fā)使能。
8.如權(quán)利要求7所述的基于芯片查找表的BFD實(shí)現(xiàn)裝置,其特征在于,所述處理模塊具 體用于當(dāng)預(yù)置使能為二層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的包頭中目的媒體訪問控制MAC地址 查找預(yù)存表中的MAC表,獲取BFD數(shù)據(jù)包的發(fā)送端口。
9.如權(quán)利要求7所述的基于芯片查找表的BFD實(shí)現(xiàn)裝置,其特征在于,所述處理模塊還 具體用于當(dāng)預(yù)置使能為三層轉(zhuǎn)發(fā)使能時(shí),根據(jù)數(shù)據(jù)包的包頭中目的互聯(lián)網(wǎng)協(xié)議IP地址查 找路由表,獲取下一跳的IP地址;根據(jù)下一跳的IP地址查找地址解析協(xié)議ARP表,獲取下一跳的MAC地址;根據(jù)該下一跳的MAC地址查找MAC表,獲取BFD數(shù)據(jù)包的發(fā)送端口。
10.如權(quán)利要求6所述的基于芯片查找表的BFD實(shí)現(xiàn)裝置,其特征在于,所述處理模塊 還具體用于當(dāng)所述數(shù)據(jù)包不是BFD數(shù)據(jù)包時(shí),丟棄所述數(shù)據(jù)包。
全文摘要
本發(fā)明涉及一種基于芯片查找表的BFD實(shí)現(xiàn)方法,包括接收中央處理單元CPU發(fā)送的數(shù)據(jù)包;當(dāng)數(shù)據(jù)包為雙向轉(zhuǎn)發(fā)檢測BFD數(shù)據(jù)包時(shí),根據(jù)BFD數(shù)據(jù)包的包頭及芯片的預(yù)置使能,獲取預(yù)置的預(yù)存表中的BFD數(shù)據(jù)包發(fā)送端口;通過發(fā)送端口發(fā)送BFD數(shù)據(jù)包。本發(fā)明對應(yīng)地提出了基于芯片查找表的BFD實(shí)現(xiàn)裝置。本發(fā)明基于芯片查找表的BFD實(shí)現(xiàn)方法及裝置,通過芯片接收BFD數(shù)據(jù)包,并對其進(jìn)行查找表,實(shí)現(xiàn)BFD數(shù)據(jù)包的轉(zhuǎn)發(fā),不但加快了BFD數(shù)據(jù)包的轉(zhuǎn)發(fā)速度,而且減輕了現(xiàn)有技術(shù)中CPU軟件查表的負(fù)擔(dān)。
文檔編號H04L12/56GK101860483SQ20101018924
公開日2010年10月13日 申請日期2010年6月1日 優(yōu)先權(quán)日2010年6月1日
發(fā)明者韓輝 申請人:中興通訊股份有限公司