專利名稱:報(bào)文轉(zhuǎn)發(fā)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多核技術(shù)領(lǐng)域,具體涉及一種應(yīng)用在多核處理器中的報(bào)文轉(zhuǎn)發(fā)方法和裝置。
背景技術(shù):
目前,對(duì)于采用單中央處理單元(CPU)集中式體系結(jié)構(gòu)的路由器,報(bào)文的處理全部由軟件完成,受到CPU處理能力的限制,產(chǎn)品的性能很難有較大程度的提升,制約著高性能路由器的發(fā)展。專用集成電路(ASIC)、網(wǎng)絡(luò)處理器(NP)技術(shù)雖然能夠提供很高的處理性能,但是通用性差、開發(fā)周期長(zhǎng)且不適于復(fù)雜業(yè)務(wù)的處理,不能滿足路由器多業(yè)務(wù)靈活處理以及快速推出業(yè)務(wù)的需要,多核處理器的出現(xiàn)提供了解決我們面臨問題的一條思路。
多核處理器可以看作是將多個(gè)通用的CPU以及一些功能部件集成到一塊芯片中形成的一個(gè)系統(tǒng)級(jí)芯片(SOC),這些CPU之間以及CPU與集成到芯片上的其他部件間通過高速的內(nèi)部互聯(lián)技術(shù)進(jìn)行通信,打破了以往多CPU系統(tǒng)中CPU之間以及CPU與系統(tǒng)其他部件間通信的性能瓶頸,使系統(tǒng)性能得到保證。
通常,具有多個(gè)核的處理器的處理模式有兩種,一種是對(duì)稱多處理器(SMP)模式,在該模式下的處理器,所有核具有相同的功能,相當(dāng)于多個(gè)單核設(shè)備在并發(fā)運(yùn)行;另一種是非對(duì)稱多處理器(AMP)模式,在該模式下只有一個(gè)或部分核運(yùn)行在操作系統(tǒng)上,這些核主要承擔(dān)協(xié)議的實(shí)現(xiàn)和提供對(duì)外的接口;其它核無操作系統(tǒng)支持,主要完成數(shù)據(jù)轉(zhuǎn)發(fā)功能。對(duì)于AMP模式,從邏輯上來說,運(yùn)行操作系統(tǒng)的核稱為控制平面,完成數(shù)據(jù)轉(zhuǎn)發(fā)的核稱為數(shù)據(jù)平面。SMP模式在實(shí)現(xiàn)上相對(duì)簡(jiǎn)單,但是在該模式下,各核對(duì)資源的占用是完全獨(dú)立的,這樣就要求系統(tǒng)有足夠的資源如內(nèi)存,這對(duì)于大部分?jǐn)?shù)據(jù)通信設(shè)備來說是無法滿足的,因此,多核處理器通常采用AMP模式。
在AMP模式下,以RMI公司的XLR處理器為例,由于XLR芯片本身提供快速消息環(huán)網(wǎng)絡(luò)(FMN)的通信機(jī)制,千兆以太網(wǎng)接口(GE)控制器可掛在FMN上,這樣,當(dāng)從GE口收到數(shù)據(jù)后,可通過FMN功能將數(shù)據(jù)以消息的形式發(fā)送到數(shù)據(jù)平面上,數(shù)據(jù)平面對(duì)收到的消息進(jìn)行解析,然后對(duì)收到的數(shù)據(jù)進(jìn)行內(nèi)存數(shù)據(jù)緩沖區(qū)(MBUF)封裝,將封裝后的數(shù)據(jù)提交鏈路層進(jìn)行鏈路解封裝處理。
但是,在AMP模式下,由于只有多核處理器自身攜帶的接口如GE口可以掛接在FMN上,而多核處理器的擴(kuò)展接口如外設(shè)部件互聯(lián)標(biāo)準(zhǔn)(PCI)接口等則無法掛接在FMN上,造成多核處理器無法對(duì)從擴(kuò)展接口收到的報(bào)文進(jìn)行處理。
發(fā)明內(nèi)容
本發(fā)明提供一種應(yīng)用在多核處理器中的報(bào)文轉(zhuǎn)發(fā)方法和裝置,以實(shí)現(xiàn)對(duì)從多核處理器的擴(kuò)展接口收到的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的目的。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種報(bào)文轉(zhuǎn)發(fā)方法,該方法用在多核處理器中,包括多核處理器從擴(kuò)展接口收到報(bào)文,將報(bào)文保存在數(shù)據(jù)緩沖區(qū)中,并通知控制平面收到報(bào)文,控制平面收到該通知后,從數(shù)據(jù)緩沖區(qū)中獲取該報(bào)文,對(duì)該報(bào)文進(jìn)行封裝后發(fā)送給數(shù)據(jù)平面。
所述通知控制平面收到報(bào)文通過硬件中斷的方式通知。
所述方法進(jìn)一步包括預(yù)先設(shè)定一個(gè)報(bào)文接收查詢周期,所述通知控制平面收到報(bào)文包括控制平面在所述報(bào)文接收查詢周期來臨時(shí),向擴(kuò)展接口發(fā)送報(bào)文接收查詢消息,擴(kuò)展接口收到該查詢消息后,檢測(cè)到在最近一次到本次收到報(bào)文接收查詢消息之間收到報(bào)文,向控制平面返回收到報(bào)文通知。
所述通知控制平面收到報(bào)文為通知控制平面的中斷處理模塊;所述控制平面收到該通知后,從數(shù)據(jù)緩沖區(qū)中獲取該報(bào)文包括中斷處理模塊收到該通知后,向報(bào)文接收消息隊(duì)列寫入報(bào)文接收消息,并向報(bào)文接收任務(wù)處理模塊發(fā)送報(bào)文接收任務(wù)激活事件,報(bào)文接收任務(wù)處理模塊收到所述激活事件后,從報(bào)文接收消息隊(duì)列獲取到報(bào)文接收消息,根據(jù)該報(bào)文接收消息從數(shù)據(jù)緩沖區(qū)中獲取到報(bào)文。
所述報(bào)文接收消息攜帶報(bào)文存儲(chǔ)地址信息,所述報(bào)文接收任務(wù)處理模塊從數(shù)據(jù)緩沖區(qū)中獲取到報(bào)文包括報(bào)文接收任務(wù)處理模塊根據(jù)所述存儲(chǔ)地址信息,從數(shù)據(jù)緩沖區(qū)的對(duì)應(yīng)地址中獲取到報(bào)文。
所述報(bào)文接收任務(wù)處理模塊保存有從擴(kuò)展接口收到的報(bào)文的固定存儲(chǔ)地址信息;所述報(bào)文接收任務(wù)處理模塊從數(shù)據(jù)緩沖區(qū)中獲取到報(bào)文包括報(bào)文接收任務(wù)處理模塊根據(jù)所述固定存儲(chǔ)地址信息,從數(shù)據(jù)緩沖區(qū)的對(duì)應(yīng)地址中獲取到報(bào)文。
所述控制平面對(duì)該報(bào)文進(jìn)行封裝包括控制平面將該報(bào)文封裝成MBUF格式。
一種報(bào)文轉(zhuǎn)發(fā)裝置,該裝置位于多核處理器中,包括擴(kuò)展接口模塊和控制平面模塊,其中擴(kuò)展接口模塊,用于在收到報(bào)文后,向控制平面模塊發(fā)送已收到報(bào)文通知;控制平面模塊,用于根據(jù)擴(kuò)展接口模塊發(fā)來的已收到報(bào)文通知,從數(shù)據(jù)緩沖區(qū)中獲取報(bào)文,將該報(bào)文封裝后發(fā)送給數(shù)據(jù)平面模塊。
所述裝置進(jìn)一步包括數(shù)據(jù)平面模塊,用于對(duì)控制平面模塊發(fā)來的報(bào)文進(jìn)行解封裝處理,將解封裝處理后的報(bào)文發(fā)送到控制平面模塊或其它數(shù)據(jù)平面模塊。
所述控制平面模塊包括中斷處理模塊、報(bào)文接收消息隊(duì)列模塊和報(bào)文接收任務(wù)處理模塊,其中
中斷處理模塊,用于根據(jù)擴(kuò)展接口模塊發(fā)來的已收到報(bào)文通知,向報(bào)文接收消息隊(duì)列模塊寫入報(bào)文接收消息,并向報(bào)文接收任務(wù)處理模塊發(fā)送報(bào)文接收任務(wù)激活事件;報(bào)文接收消息隊(duì)列模塊,用于接收中斷處理模塊寫入的報(bào)文接收消息,根據(jù)請(qǐng)求,將報(bào)文接收消息發(fā)送給報(bào)文接收任務(wù)處理模塊;報(bào)文接收任務(wù)處理模塊,用于根據(jù)中斷處理模塊發(fā)來的報(bào)文接收任務(wù)激活事件,從報(bào)文接收消息隊(duì)列模塊獲取報(bào)文接收消息,根據(jù)該報(bào)文接收消息從數(shù)據(jù)緩沖區(qū)中獲取報(bào)文,將該報(bào)文封裝后發(fā)送給數(shù)據(jù)平面模塊。
所述控制平面模塊包括報(bào)文接收查詢模塊、報(bào)文接收處理模塊,其中報(bào)文接收查詢模塊,用于在預(yù)定的報(bào)文查詢周期來臨時(shí),向擴(kuò)展接口模塊發(fā)送報(bào)文接收查詢消息,在收到擴(kuò)展接口模塊發(fā)來的已收到報(bào)文通知后,向報(bào)文接收處理模塊發(fā)送已收到報(bào)文通知;報(bào)文接收處理模塊,用于根據(jù)報(bào)文接收查詢模塊發(fā)來的已收到報(bào)文通知,從數(shù)據(jù)緩沖區(qū)中獲取報(bào)文,將該報(bào)文封裝后發(fā)送給數(shù)據(jù)平面模塊。
與現(xiàn)有技術(shù)相比,本發(fā)明在多核處理器從擴(kuò)展接口收到報(bào)文后,將報(bào)文保存到數(shù)據(jù)緩沖區(qū),并通知控制平面已收到報(bào)文,然后控制平面從數(shù)據(jù)緩沖區(qū)中獲取到該報(bào)文,將該報(bào)文進(jìn)行封裝后發(fā)送給數(shù)據(jù)平面,實(shí)現(xiàn)了在AMP模式下,多核處理器對(duì)從擴(kuò)展接口收到的報(bào)文的轉(zhuǎn)發(fā)處理,且通過將報(bào)文封裝成與FMN封裝的報(bào)文格式同樣的格式,向上層轉(zhuǎn)發(fā)模塊屏蔽了來自不同接口的報(bào)文在處理上的差異,簡(jiǎn)化了軟件適配。
圖1為本發(fā)明實(shí)施例一提供的對(duì)從多核處理器的擴(kuò)展接口收到的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的流程圖;圖2為本發(fā)明實(shí)施例二提供的對(duì)從多核處理器的擴(kuò)展接口收到的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的流程圖;圖3為本發(fā)明提供的對(duì)從多核處理器的擴(kuò)展接口收到的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的裝置組成示意圖;圖4為本發(fā)明實(shí)施例一提供的對(duì)從多核處理器的擴(kuò)展接口收到的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的裝置組成示意圖;圖5為本發(fā)明實(shí)施例二提供的對(duì)從多核處理器的擴(kuò)展接口收到的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的裝置組成示意圖。
具體實(shí)施例方式
本發(fā)明的核心思想是當(dāng)從多核處理器的擴(kuò)展接口上收到報(bào)文后,通知控制平面,然后控制平面對(duì)該報(bào)文進(jìn)行MBUF封裝處理,將封裝處理后的報(bào)文發(fā)送給數(shù)據(jù)平面。
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說明。
圖1是本發(fā)明實(shí)施例一提供的對(duì)從多核處理器的擴(kuò)展接口收到的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的流程圖,如圖1所示,其具體步驟如下步驟101在控制平面上創(chuàng)建一個(gè)報(bào)文接收消息隊(duì)列,創(chuàng)建一個(gè)報(bào)文接收任務(wù)處理模塊。
步驟102多核處理器從擴(kuò)展接口上收到報(bào)文,多核處理器將報(bào)文存儲(chǔ)到直接內(nèi)存存取(DMA)數(shù)據(jù)緩沖區(qū),并以硬件中斷方式向中斷處理模塊發(fā)送報(bào)文接收指示。
步驟103中斷處理模塊收到該報(bào)文接收指示后,向控制平面的報(bào)文接收消息隊(duì)列寫入報(bào)文接收消息,同時(shí),中斷處理模塊向控制平面的報(bào)文接收任務(wù)處理模塊發(fā)送報(bào)文接收任務(wù)激活事件,以通知接收到報(bào)文。
每個(gè)報(bào)文對(duì)應(yīng)一個(gè)報(bào)文接收消息,報(bào)文接收消息可攜帶報(bào)文的存儲(chǔ)地址等信息。
步驟104報(bào)文接收任務(wù)處理模塊收到該報(bào)文接收任務(wù)激活事件后,從報(bào)文接收消息隊(duì)列獲取報(bào)文接收消息。
步驟105報(bào)文接收任務(wù)處理模塊根據(jù)獲取的報(bào)文接收消息,從DMA數(shù)據(jù)緩沖區(qū)中獲取到報(bào)文。
報(bào)文接收任務(wù)處理模塊根據(jù)獲取的報(bào)文接收消息的個(gè)數(shù),從DMA數(shù)據(jù)緩沖區(qū)中獲取到對(duì)應(yīng)數(shù)目的報(bào)文。
報(bào)文接收任務(wù)處理模塊可根據(jù)報(bào)文接收消息中攜帶的存儲(chǔ)地址信息,從DMA數(shù)據(jù)緩沖區(qū)的對(duì)應(yīng)地址中獲取到報(bào)文;或者,從擴(kuò)展接口收到的報(bào)文保存在DMA數(shù)據(jù)緩沖區(qū)的固定地址空間內(nèi),報(bào)文接收任務(wù)處理模塊保存有該地址信息,根據(jù)該地址信息,從該固定的地址空間內(nèi)獲取到報(bào)文。
步驟106報(bào)文接收任務(wù)處理模塊將報(bào)文封裝成MBUF格式,該MBUF格式的報(bào)文中攜帶接收該報(bào)文的接口協(xié)議類型信息。
步驟107報(bào)文接收任務(wù)處理模塊創(chuàng)建核間消息,將該MBUF報(bào)文通過該核間消息發(fā)送到數(shù)據(jù)平面上。
步驟108數(shù)據(jù)平面收到該MBUF格式的報(bào)文后,將該報(bào)文的格式轉(zhuǎn)換成自身支持的格式,并將原MBUF格式的報(bào)文丟棄,根據(jù)該報(bào)文中攜帶的接口協(xié)議類型信息,對(duì)報(bào)文進(jìn)行解封裝處理。
本步驟中,對(duì)MBUF報(bào)文的格式轉(zhuǎn)換和對(duì)轉(zhuǎn)換成后報(bào)文的解封裝處理具體是由數(shù)據(jù)平面的鏈路層解封裝模塊完成的。
對(duì)于從多核處理器的支持不同協(xié)議類型的接口收到的報(bào)文,數(shù)據(jù)平面要作不同的解封裝處理。
步驟109數(shù)據(jù)平面根據(jù)該報(bào)文的目的地址信息,將解封裝處理后的報(bào)文發(fā)送到控制平面或其它數(shù)據(jù)平面。
數(shù)據(jù)平面根據(jù)報(bào)文的目的地址信息在自身的路由表中查找報(bào)文的出接口信息,若出接口為多核處理器擴(kuò)展的接口如PCI接口,則將報(bào)文發(fā)送到控制平面上,若出接口為多核處理器自身攜帶的接口,則將報(bào)文發(fā)送到數(shù)據(jù)平面上。
本發(fā)明中,控制平面也可周期性地向擴(kuò)展接口模塊發(fā)送報(bào)文接收查詢消息,以查詢是否從擴(kuò)展接口收到報(bào)文。
圖2是本發(fā)明實(shí)施例二提供的對(duì)來自多核處理器的擴(kuò)展接口的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的流程圖,如圖2所示,其具體步驟如下
步驟201預(yù)先在控制平面上創(chuàng)建報(bào)文接收任務(wù)處理模塊,并設(shè)定一個(gè)報(bào)文接收查詢周期。
步驟202多核處理器從擴(kuò)展接口上收到報(bào)文,多核處理器將報(bào)文存儲(chǔ)到DMA數(shù)據(jù)緩沖區(qū)。
步驟203報(bào)文接收任務(wù)處理模塊檢測(cè)到本次報(bào)文接收查詢周期來臨,向擴(kuò)展接口模塊發(fā)送報(bào)文接收查詢消息。
步驟204擴(kuò)展接口模塊收到該報(bào)文接收查詢消息后,若檢測(cè)到在上次與本次接收到查詢消息之間收到報(bào)文,則向報(bào)文接收任務(wù)處理模塊發(fā)送報(bào)文接收指示。
該報(bào)文接收指示中攜帶已收到的報(bào)文的數(shù)目信息。
步驟205報(bào)文接收任務(wù)處理模塊收到報(bào)文接收指示后,從DMA數(shù)據(jù)緩沖區(qū)中獲取到報(bào)文。
步驟206~209與步驟106~109相同。
圖3是本發(fā)明提供的對(duì)從多核處理器的擴(kuò)展接口收到的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的裝置組成示意圖,如圖3所示,其主要包括擴(kuò)展接口模塊31、控制平面模塊32和數(shù)據(jù)平面模塊33,其中擴(kuò)展接口模塊31用于在收到報(bào)文后,向控制平面模塊32發(fā)送報(bào)文接收指示。
控制平面模塊32用于在收到擴(kuò)展接口模塊31發(fā)來的報(bào)文接收指示后,從DMA數(shù)據(jù)緩沖區(qū)中獲取報(bào)文,將該報(bào)文封裝成MBUF格式的報(bào)文,將封裝后的MBUF報(bào)文通過核間消息發(fā)送給數(shù)據(jù)平面模塊33。
數(shù)據(jù)平面模塊33用于在收到控制平面模塊32發(fā)來的MBUF報(bào)文后,將該報(bào)文轉(zhuǎn)換成自身支持的格式,并將原MBUF報(bào)文丟棄,根據(jù)該報(bào)文攜帶的接口協(xié)議類型信息,對(duì)該報(bào)文進(jìn)行解封裝處理,將解封裝處理的報(bào)文發(fā)送到控制平面模塊或其它數(shù)據(jù)平面模塊。
圖4是本發(fā)明實(shí)施例一提供的對(duì)從多核處理器的擴(kuò)展接口收到的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的裝置組成示意圖,如圖4所示,該圖與圖3相比,其區(qū)別在于控制平面模塊32主要包括中斷處理模塊3211、報(bào)文接收消息隊(duì)列模塊3212和報(bào)文接收任務(wù)處理模塊3213,其中中斷處理模塊3211用于在收到擴(kuò)展接口模塊31發(fā)來的報(bào)文接收指示后,向報(bào)文接收消息隊(duì)列模塊3212寫入報(bào)文接收消息,并向報(bào)文接收任務(wù)處理模塊3213發(fā)送報(bào)文接收任務(wù)激活事件。
報(bào)文接收消息隊(duì)列模塊3212用于接收中斷處理模塊3211寫入的報(bào)文接收消息,并根據(jù)報(bào)文接收任務(wù)處理模塊3213的獲取請(qǐng)求,將自身保存的報(bào)文接收消息發(fā)送給報(bào)文接收任務(wù)處理模塊3213。
報(bào)文接收任務(wù)處理模塊3213用于在收到中斷處理模塊3211發(fā)來的報(bào)文接收任務(wù)激活事件后,從報(bào)文接收消息隊(duì)列模塊3212獲取報(bào)文接收消息,根據(jù)該報(bào)文接收消息從DMA數(shù)據(jù)緩沖區(qū)中獲取報(bào)文,將該報(bào)文封裝成MBUF格式的報(bào)文,將封裝后的MBUF報(bào)文通過核間消息發(fā)送給數(shù)據(jù)平面模塊33。
圖5是本發(fā)明實(shí)施例二提供的對(duì)從多核處理器的擴(kuò)展接口收到的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的裝置組成示意圖,如圖5所示,該圖與圖3相比控制平面模塊32主要包括報(bào)文接收查詢模塊3221和報(bào)文接收處理模塊3222,其中報(bào)文接收查詢模塊3221用于在設(shè)定的報(bào)文接收查詢周期來臨時(shí),向擴(kuò)展接口模塊31發(fā)送報(bào)文接收查詢消息,在收到擴(kuò)展接口模塊31發(fā)來的報(bào)文接收指示后,向報(bào)文接收處理模塊3222發(fā)送已收到報(bào)文指示。
報(bào)文接收處理模塊3222用于根據(jù)報(bào)文接收查詢模塊3221發(fā)來的已收到報(bào)文指示,從DMA數(shù)據(jù)緩沖區(qū)中獲取報(bào)文,將該報(bào)文封裝成MBUF格式的報(bào)文,將封裝后的MBUF報(bào)文通過核間消息發(fā)送給數(shù)據(jù)平面模塊33。
報(bào)文接收查詢模塊3221和報(bào)文接收處理模塊3222可同時(shí)位于同一個(gè)報(bào)文接收任務(wù)處理模塊中。
以上所述僅為本發(fā)明的過程及方法實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種報(bào)文轉(zhuǎn)發(fā)方法,該方法用于多核處理器中,其特征在于,包括多核處理器從擴(kuò)展接口收到報(bào)文,將報(bào)文保存在數(shù)據(jù)緩沖區(qū)中,并通知控制平面收到報(bào)文,控制平面收到該通知后,從數(shù)據(jù)緩沖區(qū)中獲取該報(bào)文,對(duì)該報(bào)文進(jìn)行封裝后發(fā)送給數(shù)據(jù)平面。
2.如權(quán)利要求1所述的方法,其特征在于,所述通知控制平面收到報(bào)文通過硬件中斷的方式通知。
3.如權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括預(yù)先設(shè)定一個(gè)報(bào)文接收查詢周期,所述通知控制平面收到報(bào)文包括控制平面在所述報(bào)文接收查詢周期來臨時(shí),向擴(kuò)展接口發(fā)送報(bào)文接收查詢消息,擴(kuò)展接口收到該查詢消息后,檢測(cè)到在最近一次到本次收到報(bào)文接收查詢消息之間收到報(bào)文,向控制平面返回收到報(bào)文通知。
4.如權(quán)利要求1所述的方法,其特征在于,所述通知控制平面收到報(bào)文為通知控制平面的中斷處理模塊;所述控制平面收到該通知后,從數(shù)據(jù)緩沖區(qū)中獲取該報(bào)文包括中斷處理模塊收到該通知后,向報(bào)文接收消息隊(duì)列寫入報(bào)文接收消息,并向報(bào)文接收任務(wù)處理模塊發(fā)送報(bào)文接收任務(wù)激活事件,報(bào)文接收任務(wù)處理模塊收到所述激活事件后,從報(bào)文接收消息隊(duì)列獲取到報(bào)文接收消息,根據(jù)該報(bào)文接收消息從數(shù)據(jù)緩沖區(qū)中獲取到報(bào)文。
5.如權(quán)利要求4所述的方法,其特征在于,所述報(bào)文接收消息攜帶報(bào)文存儲(chǔ)地址信息,所述報(bào)文接收任務(wù)處理模塊從數(shù)據(jù)緩沖區(qū)中獲取到報(bào)文包括報(bào)文接收任務(wù)處理模塊根據(jù)所述存儲(chǔ)地址信息,從數(shù)據(jù)緩沖區(qū)的對(duì)應(yīng)地址中獲取到報(bào)文。
6.如權(quán)利要求4所述的方法,其特征在于,所述報(bào)文接收任務(wù)處理模塊保存有從擴(kuò)展接口收到的報(bào)文的固定存儲(chǔ)地址信息,所述報(bào)文接收任務(wù)處理模塊從數(shù)據(jù)緩沖區(qū)中獲取到報(bào)文包括報(bào)文接收任務(wù)處理模塊根據(jù)所述固定存儲(chǔ)地址信息,從數(shù)據(jù)緩沖區(qū)的對(duì)應(yīng)地址中獲取到報(bào)文。
7.如權(quán)利要求1所述的方法,其特征在于,所述控制平面對(duì)該報(bào)文進(jìn)行封裝包括控制平面將該報(bào)文封裝成內(nèi)存數(shù)據(jù)緩沖區(qū)MBUF格式。
8.一種報(bào)文轉(zhuǎn)發(fā)裝置,該裝置位于多核處理器中,其特征在于,包括擴(kuò)展接口模塊和控制平面模塊,其中擴(kuò)展接口模塊,用于在收到報(bào)文后,向控制平面模塊發(fā)送已收到報(bào)文通知;控制平面模塊,用于根據(jù)擴(kuò)展接口模塊發(fā)來的已收到報(bào)文通知,從數(shù)據(jù)緩沖區(qū)中獲取報(bào)文,將該報(bào)文封裝后發(fā)送給數(shù)據(jù)平面模塊。
9.如權(quán)利要求8所述的裝置,其特征在于,所述裝置進(jìn)一步包括數(shù)據(jù)平面模塊,用于對(duì)控制平面模塊發(fā)來的報(bào)文進(jìn)行解封裝處理,將解封裝處理后的報(bào)文發(fā)送到控制平面模塊或其它數(shù)據(jù)平面模塊。
10.如權(quán)利要求8或9所述的裝置,其特征在于,所述控制平面模塊包括中斷處理模塊、報(bào)文接收消息隊(duì)列模塊和報(bào)文接收任務(wù)處理模塊,其中中斷處理模塊,用于根據(jù)擴(kuò)展接口模塊發(fā)來的已收到報(bào)文通知,向報(bào)文接收消息隊(duì)列模塊寫入報(bào)文接收消息,并向報(bào)文接收任務(wù)處理模塊發(fā)送報(bào)文接收任務(wù)激活事件;報(bào)文接收消息隊(duì)列模塊,用于接收中斷處理模塊寫入的報(bào)文接收消息,根據(jù)請(qǐng)求,將報(bào)文接收消息發(fā)送給報(bào)文接收任務(wù)處理模塊;報(bào)文接收任務(wù)處理模塊,用于根據(jù)中斷處理模塊發(fā)來的報(bào)文接收任務(wù)激活事件,從報(bào)文接收消息隊(duì)列模塊獲取報(bào)文接收消息,根據(jù)該報(bào)文接收消息從數(shù)據(jù)緩沖區(qū)中獲取報(bào)文,將該報(bào)文封裝后發(fā)送給數(shù)據(jù)平面模塊。
11.如權(quán)利要求8或9所述的裝置,其特征在于,所述控制平面模塊包括報(bào)文接收查詢模塊、報(bào)文接收處理模塊,其中報(bào)文接收查詢模塊,用于在預(yù)定的報(bào)文查詢周期來臨時(shí),向擴(kuò)展接口模塊發(fā)送報(bào)文接收查詢消息,在收到擴(kuò)展接口模塊發(fā)來的已收到報(bào)文通知后,向報(bào)文接收處理模塊發(fā)送已收到報(bào)文通知;報(bào)文接收處理模塊,用于根據(jù)報(bào)文接收查詢模塊發(fā)來的已收到報(bào)文通知,從數(shù)據(jù)緩沖區(qū)中獲取報(bào)文,將該報(bào)文封裝后發(fā)送給數(shù)據(jù)平面模塊。
全文摘要
本發(fā)明公開了一種報(bào)文轉(zhuǎn)發(fā)方法,包括多核處理器從擴(kuò)展接口收到報(bào)文,將該報(bào)文保存在數(shù)據(jù)緩沖區(qū)中,并通知控制平面收到報(bào)文,控制平面收到該通知后,從數(shù)據(jù)緩沖區(qū)中獲取該報(bào)文,對(duì)該報(bào)文進(jìn)行封裝后發(fā)送給數(shù)據(jù)平面;本發(fā)明同時(shí)公開了一種報(bào)文轉(zhuǎn)發(fā)裝置,包括擴(kuò)展接口模塊和控制平面模塊。本發(fā)明實(shí)現(xiàn)了多核處理器對(duì)從擴(kuò)展接口收到的報(bào)文的轉(zhuǎn)發(fā)處理,且通過將報(bào)文封裝成與FMN封裝的報(bào)文格式同樣的格式,向上層轉(zhuǎn)發(fā)模塊屏蔽了來自不同接口的報(bào)文在處理上的差異,簡(jiǎn)化了軟件適配。
文檔編號(hào)H04L29/06GK1925453SQ200610140199
公開日2007年3月7日 申請(qǐng)日期2006年10月12日 優(yōu)先權(quán)日2006年10月12日
發(fā)明者孟丹, 常向青, 龔一斌, 趙鯤鵬 申請(qǐng)人:杭州華為三康技術(shù)有限公司