專利名稱:一種組播報(bào)文處理方法、線卡及通信設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域中的 PCIE (Peripheral Component Interconnect Express,增強(qiáng)的外部組件互聯(lián)標(biāo)準(zhǔn))總線技術(shù)領(lǐng)域,尤其涉及一種組播報(bào)文處理方法、線卡及通信設(shè)備。
背景技術(shù):
PCIE總線是用于互連通信設(shè)備中各線卡的第三代I/O高性能總線,是基于 PCI (Peripheral Component Interconnect,外部組件互聯(lián)標(biāo)準(zhǔn))總線而發(fā)展起來的。PCI 總線采用共享并行連接方式,同一時(shí)間在PCI總線上僅能有一個(gè)線卡進(jìn)行通信,如果PCI總線上掛接的線卡增多,每個(gè)線卡的實(shí)際傳輸速率就會(huì)下降,性能得不到保證;而PCIE總線采用點(diǎn)對(duì)點(diǎn)串行連接方式,每一個(gè)線卡都擁有自己獨(dú)立的數(shù)據(jù)連接,各線卡之間并發(fā)的數(shù)據(jù)傳輸互不影響,從而保證了數(shù)據(jù)傳輸通道的專有性,避免其他線卡的干擾,提高了數(shù)據(jù)傳輸速率。在采用PCIE交換技術(shù)的通信設(shè)備中,一般包括一個(gè)主控卡、若干個(gè)線卡和PCIE交換器,也可將PCIE交換器集成于主控卡,主控卡控制PCIE交換器實(shí)現(xiàn)對(duì)各線卡之間需要傳輸?shù)膱?bào)文的轉(zhuǎn)發(fā),各線卡之間進(jìn)行報(bào)文傳輸?shù)慕涌诜Q為PCIE接口,與PCIE接口相區(qū)分,線卡中用于與其他通信設(shè)備之間傳輸報(bào)文的接口稱為通信接口。目前,按照內(nèi)部線卡對(duì)報(bào)文處理方式的不同,通信設(shè)備主要有兩種類型,一種是集中式通信設(shè)備,其中主控卡上設(shè)置有CPU,用于負(fù)責(zé)多個(gè)線卡的報(bào)文處理,另一種是分布式通信設(shè)備,除主控卡上設(shè)置有CPU外,每個(gè)線卡上也都設(shè)置有CPU,每個(gè)線卡對(duì)于自身的報(bào)文處理由各自的CPU負(fù)責(zé)。隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,分布式通信設(shè)備已經(jīng)在越來越多的網(wǎng)絡(luò)環(huán)境中使用。 分布式通信設(shè)備中各線卡之間的數(shù)據(jù)交換通道叫做背板交換網(wǎng)絡(luò),在目前分布式通信設(shè)備中,PCIE交換和以太交換是兩種較為常見的背板交換技術(shù)。以太網(wǎng)在MAC層支持組播地址,所以基于以太交換的分布式設(shè)備中,線卡間傳輸組播報(bào)文比較簡(jiǎn)單,只需要將報(bào)文的目的MAC地址修改為組播地址,然后發(fā)送到以太交換芯片,就可以由交換芯片將該組播報(bào)文同時(shí)轉(zhuǎn)發(fā)給多個(gè)目的線卡。然而在PCIE交換方式中,主要采用根據(jù)報(bào)文的目的地址進(jìn)行路由,不同的線卡擁有不同的PCIE基地址,通過向不同的PCIE地址寫數(shù)據(jù)即可完成報(bào)文轉(zhuǎn)發(fā)。但是在這種方式中,不支持將一個(gè)報(bào)文一次發(fā)送給多個(gè)目的線卡,所以PCIE交換本身不能實(shí)現(xiàn)類似于以太交換的組播報(bào)文跨線卡轉(zhuǎn)發(fā)。下面以圖1所示的基于PCIE交換的分布式通信設(shè)備為例,對(duì)采用PCIE交換方式的設(shè)備內(nèi)部報(bào)文傳輸?shù)姆桨高M(jìn)行介紹。在圖1中,分布式通信設(shè)備中包括了兩種板卡,一種是帶有PCIE交換器的主控卡, 也可稱為核心交換卡,另一種是有通信接口的線卡,每個(gè)線卡都擁有各自的CPU,并設(shè)置有數(shù)量不等或種類不同的通信接口,用于與其它通信設(shè)備進(jìn)行報(bào)文傳輸,例如,線卡1上設(shè)置有接口 1/0和接口 1/1共計(jì)兩個(gè)通信接口,且每個(gè)線卡均通過PCIE接口與主控卡中的PCIE 交換器相連,用于在線卡之間進(jìn)行報(bào)文傳輸。由于每個(gè)線卡均具有報(bào)文處理能力,所以相比集中式通信設(shè)備,設(shè)備整機(jī)的處理能力為各線卡的處理能力的線性疊加,從而提升了整機(jī)性能和容量。按照?qǐng)?bào)文轉(zhuǎn)發(fā)路徑的不同可以分為本卡轉(zhuǎn)發(fā)和跨卡轉(zhuǎn)發(fā),其中,在同一線卡上的不同通信接口之間的報(bào)文轉(zhuǎn)發(fā)稱為本卡轉(zhuǎn)發(fā),本卡轉(zhuǎn)發(fā)不需要其它線卡的CPU參與轉(zhuǎn)發(fā)處理;在不同線卡的通信接口之間的報(bào)文轉(zhuǎn)發(fā)稱為跨卡轉(zhuǎn)發(fā),跨卡轉(zhuǎn)發(fā)時(shí)報(bào)文需要經(jīng)過PCIE 交換器,且需要兩個(gè)線卡的CPU的參與才能完成。對(duì)于本卡轉(zhuǎn)發(fā)單播報(bào)文的處理流程,以從線卡1的接口 1/0接收的報(bào)文通過接口 1/1轉(zhuǎn)發(fā)為例,如圖2所示,包括步驟S201、線卡1從接口 1/0接收?qǐng)?bào)文,并將該報(bào)文存放在本卡內(nèi)存的bufferl中 (通信設(shè)備接口接收的報(bào)文一般由接口硬件負(fù)責(zé)將報(bào)文存入buffer中,不需要CPU干預(yù), CPU只需要通過中斷或者查詢方式去發(fā)現(xiàn)報(bào)文是否已經(jīng)成功存放到內(nèi)存中即可)。步驟S202、線卡1解析該報(bào)文,根據(jù)該報(bào)文中攜帶的目的地址,查找該報(bào)文的目的接口為本卡的接口 1/1。步驟S203、線卡1對(duì)該報(bào)文進(jìn)行必要的修改(例如修改二層協(xié)議頭,修改TTL值)。步驟S204、線卡1通過接口 1/1發(fā)送報(bào)文,報(bào)文發(fā)送后釋放bufferl。對(duì)于跨卡轉(zhuǎn)發(fā)單播報(bào)文的處理流程,以從線卡1的接口 1/0接收的報(bào)文通過線卡 2的接口 2/0轉(zhuǎn)發(fā)為例,線卡1為源線卡,線卡2為目的線卡,如圖3所示,包括步驟S301、線卡1從接口 1/0接收?qǐng)?bào)文,并將該報(bào)文存放在線卡1內(nèi)存的bufferl 中。步驟S302、線卡1解析該報(bào)文,根據(jù)該報(bào)文中攜帶的目的地址,查找該報(bào)文的目的接口為線卡2的接口 2/0。步驟S303、線卡1通過內(nèi)部PCIE接口把該報(bào)文發(fā)送給線卡2,發(fā)送成功后,釋放線卡 1 的 bufferl。步驟S304、線卡2通過內(nèi)部PCIE接口接收該報(bào)文,并將該報(bào)文存放在線卡2內(nèi)存的 buffer2 中。步驟S305、線卡2對(duì)該報(bào)文進(jìn)行必要的修改。步驟S306、線卡2通過接口 2/0發(fā)送報(bào)文,報(bào)文發(fā)送后釋放線卡2的bufferf。對(duì)于跨卡轉(zhuǎn)發(fā)組播報(bào)文的處理流程,以從線卡1的接口 1/0接收的報(bào)文需要分別通過線卡2的接口 2/0、線卡3的接口 3/0和線卡η的接口 η/0進(jìn)行轉(zhuǎn)發(fā)為例,線卡1為源線卡,線卡2、線卡3和線卡η為目的線卡,如圖4所示,包括步驟S401、線卡1從接口 1/0接收?qǐng)?bào)文,并將該報(bào)文存放在線卡1內(nèi)存的bufferl 中。步驟S402、線卡1解析該報(bào)文,根據(jù)該報(bào)文中攜帶的目的地址,確定該報(bào)文是組播報(bào)文,并查找該組播報(bào)文的目的接口為線卡2的2/0、線卡3的3/0和線卡η的η/0。步驟S403、線卡1將該報(bào)文復(fù)制到線卡1內(nèi)存的buffer2和buffer3中。步驟S404、線卡1將bufferl中的報(bào)文通過PCIE接口發(fā)送給線卡2,發(fā)送成功后釋放buffer 1,并將buffer2中的報(bào)文通過PCIE接口發(fā)送給線卡3,發(fā)送成功后釋放buffer2,以及將buf f er3中的報(bào)文通過PCIE接口發(fā)送給線卡n,發(fā)送成功后釋放buf f er3。步驟S405、線卡2通過內(nèi)部PCIE接口接收該報(bào)文,并將該報(bào)文存放在線卡2內(nèi)存的bufferf中,并對(duì)該報(bào)文進(jìn)行必要的修改,然后通過接口 2/0發(fā)送該報(bào)文,報(bào)文發(fā)送后釋放線卡2的buffer4。步驟S406、線卡3通過內(nèi)部PCIE接口接收該報(bào)文,并將該報(bào)文存放在線卡3內(nèi)存的bufferf中,并對(duì)該報(bào)文進(jìn)行必要的修改,然后通過接口 3/0發(fā)送該報(bào)文,報(bào)文發(fā)送后釋放線卡3的buffer5。步驟S407、線卡η通過內(nèi)部PCIE接口接收該報(bào)文,并將該報(bào)文存放在線卡η內(nèi)存的buffere中,并對(duì)該報(bào)文進(jìn)行必要的修改,然后通過接口 η/0發(fā)送該報(bào)文,報(bào)文發(fā)送后釋放線卡η的buffer6。按照上述圖4所示的處理流程,跨卡組播報(bào)文在線卡之間的傳輸過程如圖5所示, 組播報(bào)文在從接口 1/0進(jìn)入線卡1后,線卡1需要將該組播報(bào)文分別傳輸給該組播報(bào)文的其它目的線卡,如果其它目的線卡的數(shù)量為m,則需要進(jìn)行m-1次報(bào)文的復(fù)制,并通過PCIE 接口發(fā)送m次組播報(bào)文,并釋放m次buffer。對(duì)于每一次報(bào)文復(fù)制和發(fā)送,均需要耗費(fèi)CPU 的處理資源,尤其是報(bào)文復(fù)制,需要耗費(fèi)大量的CPU指令才能完成。所以,當(dāng)需要接收組播報(bào)文的目的線卡的數(shù)量較大時(shí),源線卡由于需要進(jìn)行大量的報(bào)文復(fù)制和發(fā)送處理,需要大量的CPU處理資源,從而使得源線卡的負(fù)擔(dān)較重而導(dǎo)致源線卡的性能下降。而目的線卡僅通過PCIE接口接收組播報(bào)文,并將該組播報(bào)文通過自身的通信接口進(jìn)行轉(zhuǎn)發(fā),所以,相比源線卡,目的線卡的CPU的利用率則較低。并且,由于源線卡在進(jìn)行組播報(bào)文傳輸處理時(shí)的負(fù)擔(dān)較重,將因其性能下降導(dǎo)致設(shè)備整機(jī)的整體性能下降。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種組播報(bào)文處理方法、線卡,用以解決現(xiàn)有技術(shù)中存在的在分布式通信設(shè)備中源線卡在進(jìn)行組播報(bào)文傳輸處理時(shí)負(fù)擔(dān)較重的問題。本發(fā)明實(shí)施例還提供一種組播報(bào)文處理方法、線卡,用以解決現(xiàn)有技術(shù)中存在的在分布式通信設(shè)備中目的線卡在進(jìn)行組播報(bào)文傳輸處理時(shí)CPU利用率較低的問題。本發(fā)明實(shí)施例還提供一種通信設(shè)備,用以解決現(xiàn)有技術(shù)中存在的分布式通信設(shè)備在進(jìn)行組播報(bào)文傳輸處理時(shí)性能較低的問題。本發(fā)明實(shí)施例提供一種組播報(bào)文處理方法,包括源線卡對(duì)通過通信接口接收的組播報(bào)文進(jìn)行處理,得到處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中的第一個(gè)目的線卡。本發(fā)明實(shí)施例還提供一種組播報(bào)文處理方法,包括目的線卡接收對(duì)組播報(bào)文進(jìn)行處理得到的處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;根據(jù)所述指示信息,將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。本發(fā)明實(shí)施例還提供一種線卡,包括
第一處理單元,用于對(duì)通過通信接口接收的組播報(bào)文進(jìn)行處理,得到處理后報(bào)文, 所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;第一發(fā)送單元,用于將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中的第一個(gè)目的線卡。本發(fā)明實(shí)施例還提供一種線卡,包括接收單元,用于接收對(duì)組播報(bào)文進(jìn)行處理得到的處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;第二發(fā)送單元,用于根據(jù)所述指示信息,將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。本發(fā)明實(shí)施例還提供一種通信設(shè)備,包括源線卡和目的線卡,所述源線卡為上述包括第一處理單元和第一發(fā)送單元的線卡,所述目的線卡為上述包括接收單元和第二發(fā)送單元的線卡,其中所述源線卡,用于對(duì)通過通信接口接收的組播報(bào)文進(jìn)行處理,得到處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的所述目的線卡的指示信息;以及將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中的第一個(gè)目的線卡;所述目的線卡,用于接收對(duì)組播報(bào)文進(jìn)行處理得到的所述處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;并根據(jù)所述指示信息,將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。本發(fā)明有益效果包括本發(fā)明實(shí)施例提供的組播報(bào)文處理方法中,源線卡在通過通信接口接收到組播報(bào)文后,將對(duì)該組播報(bào)文進(jìn)行處理得到處理后報(bào)文,且該處理后報(bào)文中攜帶需要接收該組播報(bào)文的目的線卡的指示信息,然后將該處理后報(bào)文通過PCIE接口,發(fā)送給按照指定順序排列的需要接收該組播報(bào)文的目的線卡中的第一個(gè)目的線卡。相比現(xiàn)有技術(shù),不再需要將該組播報(bào)文發(fā)送給需要接收該組播報(bào)文的每個(gè)目的線卡,而是發(fā)送給一個(gè)目的線卡即可,所以減少了對(duì)組播報(bào)文的復(fù)制和發(fā)送的處理,從而減輕了進(jìn)行組播報(bào)文傳輸處理時(shí)的負(fù)擔(dān)。本發(fā)明實(shí)施例提供的組播報(bào)文處理方法中,目的線卡在接收到對(duì)組播報(bào)文進(jìn)行處理得到的處理后報(bào)文后,根據(jù)該處理后報(bào)文中攜帶的需要接收該組播報(bào)文的目的線卡的指示信息,將該處理后報(bào)文通過PCIE接口,發(fā)送給按照指定順序排列的需要接收該組播報(bào)文的目的線卡中位于自身后面的第一個(gè)目的線卡。相比現(xiàn)有技術(shù),目的線卡參與了該組播報(bào)文在各目的線卡之間的傳輸處理,而不再是僅將該組播報(bào)文從自身的通信接口進(jìn)行轉(zhuǎn)發(fā)處理,所以在進(jìn)行組播報(bào)文傳輸處理時(shí)提高了其CPU的利用率。本發(fā)明實(shí)施例提供的通信設(shè)備中,相比現(xiàn)有技術(shù),源線卡不再需要將該組播報(bào)文發(fā)送給需要接收該組播報(bào)文的每個(gè)目的線卡,而是發(fā)送給一個(gè)目的線卡即可,相應(yīng)的,由其它目的線卡參與該組播報(bào)文在各目的線卡之間的傳輸處理,從而實(shí)現(xiàn)了在源線卡和目的線卡之間,對(duì)該組播報(bào)文的傳輸處理操作的均衡,進(jìn)而避免了因源線卡的性能下降而導(dǎo)致設(shè)備整機(jī)的整體性能下降,即提高了在進(jìn)行組播報(bào)文傳輸處理時(shí)設(shè)備整機(jī)的性能。
圖1為基于PCIE交換的分布式通信設(shè)備的結(jié)構(gòu)示意圖;圖2為現(xiàn)有技術(shù)中本卡轉(zhuǎn)發(fā)單播報(bào)文的處理流程圖;圖3為現(xiàn)有技術(shù)中跨卡轉(zhuǎn)發(fā)單播報(bào)文的處理流程圖;圖4為現(xiàn)有技術(shù)中跨卡轉(zhuǎn)發(fā)組播報(bào)文的處理流程圖;圖5為現(xiàn)有技術(shù)中跨卡轉(zhuǎn)發(fā)組播報(bào)文時(shí)組播報(bào)文在線卡之間的傳輸過程示意圖;圖6為本發(fā)明實(shí)施例提供的應(yīng)用于源線卡的組播報(bào)文處理方法的流程圖;圖7為本發(fā)明實(shí)施例提供的應(yīng)用于目的線卡的組播報(bào)文處理方法的流程圖;圖8為本發(fā)明實(shí)施例1中跨卡轉(zhuǎn)發(fā)組播報(bào)文的處理流程圖;圖9為本發(fā)明實(shí)施例1中封裝報(bào)文的字段結(jié)構(gòu)示意圖;圖10為本發(fā)明實(shí)施例1中跨卡轉(zhuǎn)發(fā)組播報(bào)文時(shí)組播報(bào)文在線卡之間的傳輸過程示意圖;圖11為本發(fā)明實(shí)施例2中提供的一種線卡的結(jié)構(gòu)示意圖之一;圖12為本發(fā)明實(shí)施例2中提供的一種線卡的結(jié)構(gòu)示意圖之二 ;圖13為本發(fā)明實(shí)施例2中提供的一種通信設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了給出在進(jìn)行組播報(bào)文傳輸處理時(shí),減輕源線卡的負(fù)擔(dān),提高目的線卡的CPU 利用率,以及提高設(shè)備整機(jī)性能的實(shí)現(xiàn)方案,本發(fā)明實(shí)施例提供了一種組播報(bào)文處理方法、 線卡及通信設(shè)備,以下結(jié)合說明書附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。并且在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。本發(fā)明實(shí)施例提供一種組播報(bào)文處理方法,應(yīng)用于分布式通信設(shè)備中的源線卡, 如圖6所示,包括步驟S601、源線卡對(duì)通過通信接口接收的組播報(bào)文進(jìn)行處理,得到處理后報(bào)文,該處理后報(bào)文中攜帶該組播報(bào)文的目的線卡的指示信息。步驟S602、將該處理后報(bào)文通過PCIE接口,發(fā)送給該組播報(bào)文的按照指定順序排列的目的線卡中的第一個(gè)目的線卡。相應(yīng)的,本發(fā)明實(shí)施例還提供一種組播報(bào)文處理方法,應(yīng)用于分布式通信設(shè)備中的目的線卡,如圖7所示,包括步驟S701、目的線卡接收對(duì)組播報(bào)文進(jìn)行處理得到的處理后報(bào)文,該處理后報(bào)文中攜帶該組播報(bào)文的目的線卡的指示信息。步驟S702、根據(jù)該指示信息,將該處理后報(bào)文通過PCIE接口,發(fā)送給該組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。下面結(jié)合附圖,用具體實(shí)施例對(duì)本發(fā)明提供的方法、線卡及通信設(shè)備進(jìn)行詳細(xì)描述。實(shí)施例1 本發(fā)明實(shí)施例1中,通過對(duì)組播報(bào)文在分布式通信設(shè)備中各線卡之間的傳輸處理流程的描述,對(duì)本發(fā)明實(shí)施例提供的組播報(bào)文處理方法進(jìn)行詳細(xì)介紹。以在圖1所示結(jié)構(gòu)的分布式通信設(shè)備中,從線卡1的接口 1/0接收的報(bào)文需要分別通過線卡2的接口 2/0、線卡3的接口 3/0和線卡η的接口 η/0進(jìn)行轉(zhuǎn)發(fā)為例,線卡1為源線卡,線卡2、線卡3和線卡η為目的線卡,本發(fā)明實(shí)施例1中提供的對(duì)于跨卡轉(zhuǎn)發(fā)組播報(bào)文的處理流程如圖8所示,具體包括如下處理步驟步驟S801、線卡1從接口 1/0接收?qǐng)?bào)文,并將該報(bào)文存放在線卡1內(nèi)存的bufferl 中;并解析該報(bào)文,確定該報(bào)文是組播報(bào)文;以及根據(jù)該組播報(bào)文中攜帶的目的地址,查找出該組播報(bào)文的目的接口,從而確定需要接收該組播報(bào)文的目的線卡,例如,目的接口為線卡2的2/0、線卡3的3/0和線卡η的η/0,相應(yīng)的,則該組播報(bào)文的目的線卡為線卡2、線卡 3和線卡η。步驟S802、線卡1對(duì)該組播報(bào)文進(jìn)行處理,得到處理后報(bào)文,且處理后報(bào)文中攜帶該組播報(bào)文的目的線卡的指示信息。具體的,對(duì)組播報(bào)文的處理,可以是在組播報(bào)文的報(bào)文頭的保留字段中,添加該組播報(bào)文的目的線卡的指示信息,也可以是對(duì)該組播報(bào)文進(jìn)行封裝,封裝報(bào)文的報(bào)文頭中攜帶有該組播報(bào)文的目的線卡的指示信息,下面以對(duì)組播報(bào)文進(jìn)行封裝的處理為例進(jìn)行詳細(xì)描述。如圖9所示為封裝報(bào)文的字段結(jié)構(gòu)示意圖,其中,封裝報(bào)文的報(bào)文頭中,除攜帶有目的線卡的指示信息外,還可以攜帶通過接口 1/0接收的報(bào)文的類型信息,以及該報(bào)文的長(zhǎng)度信息。類型信息具體可以包括單播報(bào)文和組播報(bào)文兩種,長(zhǎng)度信息最大值可以為 65535。其中,攜帶的該組播報(bào)文的目的線卡的指示信息,具體可以包括與該組播報(bào)文的各目的線卡分別對(duì)應(yīng)的指示信息,即每個(gè)目的線卡對(duì)應(yīng)一個(gè)指示信息。例如,可以針對(duì)該通信設(shè)備中的每個(gè)線卡分別設(shè)置對(duì)應(yīng)的指示位,當(dāng)該指示位為1時(shí),表示該指示位對(duì)應(yīng)線卡為目的線卡,如果通信設(shè)備中攻擊有32個(gè)線卡,則可以使用4字節(jié)共計(jì)32bit (bit0-bit32) 的字段用于攜帶每個(gè)線卡對(duì)應(yīng)的指示信息。則本步驟中,具體為對(duì)bufferl中的組播報(bào)文進(jìn)行封裝,得到的封裝報(bào)文的報(bào)文頭中,類型字段中攜帶組播類型信息,長(zhǎng)度字段中攜帶該組播報(bào)文的長(zhǎng)度信息,指示信息字段中線卡2、線卡3和線卡η分別對(duì)應(yīng)的指示位為1,其它線卡的指示位為0。由于每個(gè)線卡對(duì)應(yīng)的指示位在指示信息字段存在排列順序,所以每個(gè)線卡存在排列順序,相應(yīng)的,各目的線卡也存在排列順序。后續(xù)以從線卡1到線卡η的排列順序作為指定排列順序?yàn)槔M(jìn)行描述。步驟S803、線卡1將處理后報(bào)文通過PCIE接口,發(fā)送給該組播報(bào)文的按照指定順序排列的目的線卡中的第一個(gè)目的線卡。具體的,線卡1將bufferl中的封裝報(bào)文,傳輸給線卡1中的PCIE驅(qū)動(dòng)模塊,PCIE 驅(qū)動(dòng)模塊解析封裝報(bào)文的報(bào)文頭,按照指示位從低到高的順序(也可以是從高到低的順序,只需要是按照指定順序即可)對(duì)指示信息字段的各指示位進(jìn)行識(shí)別,在首次識(shí)別出為 1的指示位后,即通過PCIE接口將存放在bufferl中的封裝報(bào)文,發(fā)送給識(shí)別出的為1的該指示位對(duì)應(yīng)的線卡。以該組播報(bào)文為例,即將該封裝報(bào)文發(fā)送給線卡2,發(fā)送成功后釋放
bufferlo步驟S804、線卡2(目的線卡)通過PCIE接口接收到該封裝報(bào)文,并將該封裝報(bào)文存放在線卡2的buffer2中。
步驟S805、線卡2根據(jù)該封裝報(bào)文中攜帶的指示信息,將該封裝報(bào)文通過PCIE接口,發(fā)送給該組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡?;谏鲜龇庋b報(bào)文的報(bào)文頭所攜帶信息的具體表征方式,線卡2首先解析該封裝報(bào)文的報(bào)文頭,根據(jù)其中的類型字段確定該封裝報(bào)文中封裝的是組播報(bào)文,然后由線卡2 的PCIE驅(qū)動(dòng)模塊轉(zhuǎn)發(fā)給下一個(gè)目的線卡,具體可以采用如下兩種方式第一種方式線卡2的PCIE驅(qū)動(dòng)模塊,將buffer2中封裝報(bào)文的報(bào)文頭中指示信息字段中與自身對(duì)應(yīng)的指示位的值設(shè)置為0,然后按照指示位從低到高的順序?qū)χ甘拘畔⒆侄蔚母髦甘疚贿M(jìn)行識(shí)別,在首次識(shí)別出為1的指示位后,即通過PCIE接口將存放在 buffer2中的線卡2的指示位已設(shè)置為0的封裝報(bào)文,發(fā)送給識(shí)別出的為1的該指示位對(duì)應(yīng)的線卡,該指示位對(duì)應(yīng)的線卡即為按照指定排列順序在本線卡2后面的第一個(gè)目的線卡。 以該組播報(bào)文為例,即將該封裝報(bào)文發(fā)送給線卡3。第二種方式線卡2的PCIE驅(qū)動(dòng)模塊,按照指示位從低到高的順序,從自身對(duì)應(yīng)指示位開始,對(duì)指示信息字段中線卡2對(duì)應(yīng)指示位后面的各指示位進(jìn)行識(shí)別,在首次識(shí)別出為1的指示位后,即通過PCIE接口將存放在buffer2中的封裝報(bào)文,發(fā)送給識(shí)別出的為1 的該指示位對(duì)應(yīng)的線卡,該指示位對(duì)應(yīng)的線卡即為按照指定排列順序在本線卡2后面的第一個(gè)目的線卡。以該組播報(bào)文為例,即將該封裝報(bào)文發(fā)送給線卡3。步驟S806、線卡2在將封裝報(bào)文通過PCIE接口發(fā)送給線卡3后,還將對(duì)接收的該封裝報(bào)文進(jìn)行解封裝處理,得到該組播報(bào)文,并將該組播報(bào)文通過自身的與該組播報(bào)文的目的地址對(duì)應(yīng)的通信接口進(jìn)行轉(zhuǎn)發(fā),即通過接口 2/0進(jìn)行轉(zhuǎn)發(fā),組播報(bào)文轉(zhuǎn)發(fā)成功后釋放 buffer20本步驟中通過接口 2/0轉(zhuǎn)發(fā)該組播報(bào)文的處理,與上述步驟S805中通過PCIE接口將封裝報(bào)文發(fā)送給線卡3的處理,兩者之間沒有嚴(yán)格的先后順序。步驟S807、線卡3(目的線卡)通過PCIE接口接收到該封裝報(bào)文,并將該封裝報(bào)文存放在線卡3的buffer3中,然后采用與上述步驟S805和步驟S806中相同的報(bào)文處理方式,將該封裝報(bào)文通過PCIE接口發(fā)送給線卡n,并將該封裝報(bào)文中封裝的該組播報(bào)文通過接口 3/0進(jìn)行轉(zhuǎn)發(fā),詳細(xì)處理流程在此不再進(jìn)行詳細(xì)描述。步驟S808、線卡η(目的線卡)通過PCIE接口接收到該封裝報(bào)文,并將該封裝報(bào)文存放在線卡η的buffer4中,然后確定自身位于上述指定順序的最后一位,則取消通過PCIE 接口對(duì)該封裝報(bào)文的發(fā)送,可以采用如下兩種方式第一種方式線卡η的PCIE驅(qū)動(dòng)模塊,將buffer4中封裝報(bào)文的報(bào)文頭中指示信息字段中與自身對(duì)應(yīng)的指示位的值設(shè)置為0,然后按照指示位從低到高的順序?qū)χ甘拘畔⒆侄蔚母髦甘疚贿M(jìn)行識(shí)別,在未識(shí)別出為1的指示位后,即確定線卡η為按照上述指定排列順序的各目的線卡中的最后一個(gè)目的線卡,取消通過PCIE接口對(duì)該封裝報(bào)文的發(fā)送。第二種方式線卡η的PCIE驅(qū)動(dòng)模塊,按照指示位從低到高的順序,從自身對(duì)應(yīng)指示位開始,對(duì)指示信息字段中線卡η對(duì)應(yīng)指示位后面的各指示位進(jìn)行識(shí)別,在未識(shí)別出為1 的指示位后,即線卡η為按照上述指定排列順序的各目的線卡中的最后一個(gè)目的線卡,取消通過PCIE接口對(duì)該封裝報(bào)文的發(fā)送。并且,本步驟中,線卡η還采用與上述步驟S806中相同的報(bào)文處理方式,將該封裝報(bào)文中封裝的該組播報(bào)文通過接口 η/0進(jìn)行轉(zhuǎn)發(fā),詳細(xì)處理流程在此不再進(jìn)行詳細(xì)描述。采用上述圖8所示的組播報(bào)文的處理流程,跨卡組播報(bào)文在線卡之間的傳輸過程如圖10所示,組播報(bào)文在從接口 1/0進(jìn)入線卡1后,線卡1在對(duì)該組播報(bào)文進(jìn)行封裝后,僅將封裝后該組播報(bào)文的封裝后報(bào)文通過PCIE接口發(fā)送給一個(gè)目的線卡,即線卡2,再由線卡2將該封裝報(bào)文通過PCIE接口發(fā)送給下一個(gè)目的線卡,即線卡3,再由線卡3將該封裝報(bào)文通過PCIE接口發(fā)送給最后一個(gè)目的線卡,即線卡η,從而實(shí)現(xiàn)了組播報(bào)文從源線卡到其它各目的線卡之間的跨卡組播報(bào)文的傳輸。相比現(xiàn)有技術(shù),源線卡不再需要對(duì)組播報(bào)文進(jìn)行復(fù)制和多次發(fā)送,從而減輕了源線卡的負(fù)擔(dān),而目的線卡參與了組播報(bào)文在通信設(shè)備內(nèi)部的各目的線卡之間的傳輸處理, 從而提高了目的線卡的CPU利用率,進(jìn)而實(shí)現(xiàn)了在源線卡和目的線卡之間,對(duì)該組播報(bào)文的傳輸處理操作的均衡,進(jìn)而避免了因源線卡的性能下降而導(dǎo)致設(shè)備整機(jī)的整體性能下降,即提高了在進(jìn)行組播報(bào)文傳輸處理時(shí)設(shè)備整機(jī)的性能。實(shí)施例2:基于同一發(fā)明構(gòu)思,根據(jù)本發(fā)明上述實(shí)施例提供的組播報(bào)文處理方法,相應(yīng)地,本發(fā)明實(shí)施例2還提供了一種線卡,其結(jié)構(gòu)示意圖如圖11所示,具體包括第一處理單元1101,用于對(duì)通過通信接口接收的組播報(bào)文進(jìn)行處理,得到處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;第一發(fā)送單元1102,用于將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中的第一個(gè)目的線卡。本發(fā)明實(shí)施例2還提供了一種線卡,其結(jié)構(gòu)示意圖如圖12所示,具體包括接收單元1201,用于接收對(duì)組播報(bào)文進(jìn)行處理得到的處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;第二發(fā)送單元1202,用于根據(jù)所述指示信息,將所述處理后報(bào)文通過PCIE接口, 發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。較佳的,還包括第二處理單元1203,用于當(dāng)自身位于所述指定順序的最后一位時(shí),取消通過PCIE 接口對(duì)所述處理后報(bào)文的發(fā)送。較佳的,還包括第二處理單元1203 ;所述指示信息具體包括與所述組播報(bào)文的各目的線卡分別對(duì)應(yīng)的指示信息;所述第二處理單元1203,用于從所述處理后報(bào)文中刪除與自身對(duì)應(yīng)的指示信息, 得到未攜帶與自身對(duì)應(yīng)的指示信息的處理后報(bào)文;所述第二發(fā)送單元1202,具體用于將所述未攜帶與自身對(duì)應(yīng)的指示信息的處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。較佳的,還包括第二處理單元1203,用于對(duì)接收的所述處理后報(bào)文進(jìn)行恢復(fù)處理,得到所述組播報(bào)文;所述第二發(fā)送單元1202,用于將所述組播報(bào)文通過自身的與所述組播報(bào)文的目的地址對(duì)應(yīng)的通信接口進(jìn)行轉(zhuǎn)發(fā)。
11
本發(fā)明實(shí)施例2還提供了一種通信設(shè)備,其結(jié)構(gòu)示意圖如圖13所示,具體包括源線卡1301和目的線卡1302,源線卡1301可以為上述圖11所示的線卡,目的線卡1302可以為上述圖12所示的線卡,其中源線卡1301,用于對(duì)通過通信接口接收的組播報(bào)文進(jìn)行處理,得到處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的所述目的線卡的指示信息;以及將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中的第一個(gè)目的線卡;目的線卡1302,用于接收對(duì)組播報(bào)文進(jìn)行處理得到的所述處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;并根據(jù)所述指示信息,將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。綜上所述,本發(fā)明實(shí)施例提供的方案,包括源線卡對(duì)通過通信接口接收的組播報(bào)文進(jìn)行處理,得到處理后報(bào)文,該處理后報(bào)文中攜帶該組播報(bào)文的目的線卡的指示信息;并將該處理后報(bào)文通過PCIE接口,發(fā)送給該組播報(bào)文的按照指定順序排列的目的線卡中的第一個(gè)目的線卡。相應(yīng)的,目的線卡接收對(duì)組播報(bào)文進(jìn)行處理得到的處理后報(bào)文;并根據(jù)該指示信息,將該處理后報(bào)文通過PCIE接口,發(fā)送給該組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。采用本發(fā)明實(shí)施例提供的方案,在進(jìn)行組播報(bào)文傳輸處理時(shí),減輕了源線卡的負(fù)擔(dān),提高了目的線卡的CPU利用率,以及提高了設(shè)備整機(jī)的性能。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種組播報(bào)文處理方法,其特征在于,包括源線卡對(duì)通過通信接口接收的組播報(bào)文進(jìn)行處理,得到處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中的第一個(gè)目的線卡。
2.一種組播報(bào)文處理方法,其特征在于,包括目的線卡接收對(duì)組播報(bào)文進(jìn)行處理得到的處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;根據(jù)所述指示信息,將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。
3.如權(quán)利要求2所述的方法,其特征在于,還包括所述目的線卡當(dāng)自身位于所述指定順序的最后一位時(shí),取消通過PCIE接口對(duì)所述處理后報(bào)文的發(fā)送。
4.如權(quán)利要求2所述的方法,其特征在于,所述指示信息具體包括與所述組播報(bào)文的各目的線卡分別對(duì)應(yīng)的指示信息;在將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡之前,還包括從所述處理后報(bào)文中刪除與自身對(duì)應(yīng)的指示信息,得到未攜帶與自身對(duì)應(yīng)的指示信息的處理后報(bào)文;在將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡,具體為將所述未攜帶與自身對(duì)應(yīng)的指示信息的處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。
5.如權(quán)利要求2所述的方法,其特征在于,還包括所述目的線卡對(duì)接收的所述處理后報(bào)文進(jìn)行恢復(fù)處理,得到所述組播報(bào)文; 將所述組播報(bào)文通過自身的與所述組播報(bào)文的目的地址對(duì)應(yīng)的通信接口進(jìn)行轉(zhuǎn)發(fā)。
6.一種線卡,其特征在于,包括第一處理單元,用于對(duì)通過通信接口接收的組播報(bào)文進(jìn)行處理,得到處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;第一發(fā)送單元,用于將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中的第一個(gè)目的線卡。
7.一種線卡,其特征在于,包括接收單元,用于接收對(duì)組播報(bào)文進(jìn)行處理得到的處理后報(bào)文,所述處理后報(bào)文中攜帶所述組播報(bào)文的目的線卡的指示信息;第二發(fā)送單元,用于根據(jù)所述指示信息,將所述處理后報(bào)文通過PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。
8.如權(quán)利要求7所述的線卡,其特征在于,還包括第二處理單元,用于當(dāng)自身位于所述指定順序的最后一位時(shí),取消通過PCIE接口對(duì)所述處理后報(bào)文的發(fā)送。
9.如權(quán)利要求7所述的線卡,其特征在于,還包括第二處理單元;所述指示信息具體包括與所述組播報(bào)文的各目的線卡分別對(duì)應(yīng)的指示信息; 所述第二處理單元,用于從所述處理后報(bào)文中刪除與自身對(duì)應(yīng)的指示信息,得到未攜帶與自身對(duì)應(yīng)的指示信息的處理后報(bào)文;所述第二發(fā)送單元,具體用于將所述未攜帶與自身對(duì)應(yīng)的指示信息的處理后報(bào)文通過 PCIE接口,發(fā)送給所述組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。
10.如權(quán)利要求7所述的線卡,其特征在于,還包括第二處理單元,用于對(duì)接收的所述處理后報(bào)文進(jìn)行恢復(fù)處理,得到所述組播報(bào)文; 所述第二發(fā)送單元,用于將所述組播報(bào)文通過自身的與所述組播報(bào)文的目的地址對(duì)應(yīng)的通信接口進(jìn)行轉(zhuǎn)發(fā)。
11.一種通信設(shè)備,其特征在于,包括如權(quán)利要求6所述的線卡和如權(quán)利要求7-10任一所述的目的線卡。
全文摘要
本發(fā)明公開了一種組播報(bào)文處理方法、線卡及通信設(shè)備,包括源線卡對(duì)通過通信接口接收的組播報(bào)文進(jìn)行處理,得到處理后報(bào)文,該處理后報(bào)文中攜帶該組播報(bào)文的目的線卡的指示信息;并將該處理后報(bào)文通過PCIE接口,發(fā)送給該組播報(bào)文的按照指定順序排列的目的線卡中的第一個(gè)目的線卡。相應(yīng)的,目的線卡接收對(duì)組播報(bào)文進(jìn)行處理得到的處理后報(bào)文;并根據(jù)該指示信息,將該處理后報(bào)文通過PCIE接口,發(fā)送給該組播報(bào)文的按照指定順序排列的目的線卡中位于自身后面的第一個(gè)目的線卡。采用本發(fā)明實(shí)施例提供的方案,在進(jìn)行組播報(bào)文傳輸處理時(shí),減輕了源線卡的負(fù)擔(dān),提高了目的線卡的CPU利用率,以及提高了設(shè)備整機(jī)的性能。
文檔編號(hào)H04L12/18GK102299857SQ20111027329
公開日2011年12月28日 申請(qǐng)日期2011年9月15日 優(yōu)先權(quán)日2011年9月15日
發(fā)明者彭凱 申請(qǐng)人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司