專利名稱::組播消息發(fā)送方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信領(lǐng)域,尤其涉及組播消息發(fā)送方法。技術(shù)背景對于帶有ADSL(AsymmetricalDigitalSubscriberLoop,非對稱凌丈字用戶環(huán)5各)端口的DSLAM(DigitalSubscriberLineAccessMultiplexer,數(shù)字用戶線接入復(fù)用器)設(shè)備,每個DSL(DigitalSubscriberLine,凄t字用戶線)端口下一般帶有多條PVC(PermanentVirtualCircuits,7jc久虛電3各)。早期基于FPGA(FieldProgrammableGateArray,現(xiàn)場可編程門陣列)實(shí)現(xiàn)的設(shè)備,由于受FPGA夕卜掛RAM(RandomAccessMemory,隨機(jī)訪問存儲間的限制,一般無法支持容量很大的組播表,也就沒法完整地實(shí)現(xiàn)PVC級別的組播功能,更具體地講,早期基于FPGA實(shí)現(xiàn)的組播功能往往會有這才羊一個約束一個DSL端口內(nèi)的不同的PVC不能同時加入同一個組播組。也就是說,對于某一個組播組,在同一個DSL端口內(nèi),只能發(fā)送一份組播包,沒法同時發(fā)送多份組播包。隨著網(wǎng)絡(luò)的發(fā)展和應(yīng)用需求的日漸豐富,對DSLAM設(shè)備組播功能的要求越來越高,上述約束顯得越來越不合時宜,迫切地需要#皮去除。同時,從成本和網(wǎng)絡(luò)穩(wěn)定運(yùn)行的角度考慮,設(shè)備一力殳^皮要求平滑升級,即新的改動應(yīng)該盡可能小的影響既有的架構(gòu)和功能。要同時實(shí)現(xiàn)"去除上述組播功能的約束"和"盡可能不改變既有方案的架構(gòu)和功能"這兩個目標(biāo),確是一個不小的才兆戰(zhàn)。本發(fā)明正是針對這個才兆戰(zhàn)4是出的一個比#交現(xiàn)實(shí)可行的解決方案。
發(fā)明內(nèi)容鑒于以上所述的一個或多個問題,本發(fā)明提出了一種組播消息生成方法,目的在于不對現(xiàn)有架構(gòu)作任何改動,就可以實(shí)現(xiàn)一個DSL端口內(nèi)的多條PVC同時加入一個組4番組的目標(biāo),同時對現(xiàn)有功能也不產(chǎn)生任何影響。根據(jù)本發(fā)明的組播消息發(fā)送方法包括以下步驟步驟S102,基于第一對應(yīng)關(guān)系建立第二對應(yīng)關(guān)系,其中,第一對應(yīng)關(guān)系表示S尋一個或多個端口加入一個或多個紐i番《且,第二只t應(yīng)關(guān)系表示將一個或多個7Jc久虛電^各通過其所隸屬的端口加入一個或多個組纟番組;以及步驟S104,根據(jù)第一對應(yīng)關(guān)系、第二對應(yīng)關(guān)系確定組播消息發(fā)送^各徑;以及步驟S106,通過組播消息發(fā)送路徑發(fā)送組纟番消息。步驟S104包括以下步驟查找組播消息對應(yīng)的組播組;在第一對應(yīng)關(guān)系中查找加入組4番組的一個或多個端口;在第二對應(yīng)關(guān)系中查找通過一個或多個端口加入組4番組的一個或多個永久虛電^各;以及在組播組中通過查找到的一個或多個端口以及查找到的一個或多個永久虛電路建立組播消息的發(fā)送路徑。一個或多個端口是一個或多個婆史字用戶線端口。在第一對應(yīng)關(guān)系中,通過將端口位圖置位來表示將一個或多個端口力口入一個或多個iai番纟且。在第二對應(yīng)關(guān)系中,通過將永久虛電路位圖置位來表示將一個或多個7J^久虛電i各通過其所隸屬的端口加入一個或多個組播纟且。一個或多個端口中的每一都至多包含8條永久虛電路。通過本發(fā)明,無須對J見有架構(gòu)作4壬何改動,才尤可實(shí)現(xiàn)一個DSL端口內(nèi)的多條PVC同時加入一個組^"組的目標(biāo),同時對現(xiàn)有功能也不會產(chǎn)生任何影響。此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖1是才艮據(jù)本發(fā)明的實(shí)施例的組播消息生成方法的流程圖。具體實(shí)施方式下面參考附圖,詳細(xì)說明本發(fā)明的具體實(shí)施方式。圖1是才艮據(jù)本發(fā)明的實(shí)施例的組播消息生成方法的流程圖。如圖1所示,該方法包4舌以下步-驟步驟S102,基于第一對應(yīng)關(guān)系(現(xiàn)有組播表)建立第二對應(yīng)關(guān)系(二級索引表),其中,第一對應(yīng)關(guān)系表示將一個或多個端口加入一個或多個組4番組,第二對應(yīng)關(guān)系表示將一個或多個PVC通過其所隸屬的端口加入一個或多個組^"組;以及步艱《S104,才艮據(jù)第一只于應(yīng)關(guān)系、第二只于應(yīng)關(guān)系確定組4番消息發(fā)送^各徑;以及步-驟S106,生成組播消息,并通過組播消息發(fā)送路徑發(fā)送組播消息。步-驟S104包4舌以下步艱《查找iHi番消息只于應(yīng)的紐i番組;在第一對應(yīng)關(guān)系中查找加入組^番組的一個或多個端口;在第二對應(yīng)關(guān)系中查找通過一個或多個端口加入組,燔組的一個或多個PVC;以及在纟且4番會且中通過查才戈到的一個或多個端口以及查沖戈到的一個或多個Pvc建立組播消息的發(fā)送路徑。一個或多個端口是一個或多個DSL端口。在第一對應(yīng)關(guān)系中,通過將portbitmap(端口位圖)置位來表示將一個或多個端口加入一個或多個組4番組。在第二對應(yīng)關(guān)系中,通過將PVCbitmap(PVC位圖)置位來表示將一個或多個PVC通過其所隸屬的端口加入一個或多個組^播組。每個DSL端口最多包含8條PVC?,F(xiàn)有方案,也就是早期基于FPGA實(shí)現(xiàn)的組播方案,組播表多是針對DSL端口的,或者說組播表是DSL端口級別的,組播表中只有某個組,燔組包含哪些DSL端口的信息,沒有某個組纟番組包含口那些PVC的信息。表l、表2、及表3給出了早期方案中MAC地址表和組播表的數(shù)據(jù)結(jié)構(gòu)。表1是現(xiàn)有方案中MAC地址表的數(shù)據(jù)結(jié)構(gòu)。表1中,每字(WORD)位寬是32bit(比特)。V是表項(xiàng)有效標(biāo)志4立,0=無歲文表項(xiàng)(Invalidentry);1=有歲文表項(xiàng)(Validentry)。A是地址老化標(biāo)記。Addr-[47:O]是48bit的MAC地址。Vid[ll:O]是VLANID。Port~#:6bit,表示端口號,取f直范圍是0-63。St:,爭態(tài)標(biāo)志^立,0=該條目可以改變;1=該條目不可以改變。Vidx[8:O]:9bit,纟且4番表索引號;對應(yīng)512個纟且4番組。表1WORDOWORD1WORD2AddrAddrVVidVidxStPort#AREPVC—NUM[47:16][15:0][11:0〗[8:0][6:0]V同31-031-161211-024-161514-876-32-0表2是現(xiàn)有方案中游組播表的數(shù)據(jù)結(jié)構(gòu)。在表2中,每WORD位寬是32比特。Port:共64bit,對應(yīng)64個DSL端口;CPU/GE:3bit,分別對應(yīng)1個CPU端口和2個千兆以太網(wǎng)上聯(lián)端口;PVC—NUM:3bit,每個DSL端口內(nèi)的PVC號,7于應(yīng)8條PVC;這個字段的存在表明,每個DSL端口不僅只能有一條PVC加入同一個組,播組,而且加入該組纟番組的各個PVC的NUM號還必須是一樣的;Vlan_prio:12bit,VLAN優(yōu)先級(cos優(yōu)先級)。表2WORDOWORD1WORD231-031-031-292827-2524-2322-2120-1716-0Port[63:32]Port[31:0]CPU/GEPVC—N簡[2:0]Vlan一PrioREV31-031-031-292827-2524-2322-2120-1716-0表3是根據(jù)現(xiàn)有方案中組播表在FPGA外部SSRAM(SynchronousStaticRandomAccessMemory,同步靜態(tài)隨機(jī)訪問存儲器)中的組織結(jié)構(gòu)。<table>tableseeoriginaldocumentpage9</column></row><table>在才艮據(jù)本發(fā)明的實(shí)施例中,在保留上述組纟番表并且不改變上述組播表數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,增加一張組播二級索引表(例如,表4)。要去除前述"約束",實(shí)現(xiàn)PVC級別的組播功能,對應(yīng)的功能要求就是DSL端口內(nèi)的多條PVC可以同時加入同一個組播組。所增加的組播二級索引表正是包含了PVC級別的信息。組播二級索引表是以組播組號為索引的,即每個組播組對應(yīng)一個表項(xiàng),每個表項(xiàng)中記錄著各個DSL端口中有哪些PVC加入了本組播組。有了這個組播二級索引表疊加在現(xiàn)有架構(gòu)基礎(chǔ)上,無須對現(xiàn)有架構(gòu)作任何改動,就可實(shí)現(xiàn)一個DSL端口內(nèi)的多條PVC同時加入一個組播組的目標(biāo),同時對現(xiàn)有功能也不會產(chǎn)生4壬4可影響。表4是新增加的組播二級索引表在FPGA外部SSRAM中的組織結(jié)構(gòu)及其凄史據(jù)結(jié)構(gòu)。表4<table>tableseeoriginaldocumentpage10</column></row><table>為敘述方便,這里々支設(shè)系統(tǒng)共有64個DSL端口(端口0~端口63),每DSL端口最多包含8條PVC(PVC0PVC7),全系統(tǒng)要求支持512個組播組(組播組0~組播組511)。更進(jìn)一步地々支i殳端口1(DSL端口1)的PVC2加入了組播^組3。對于既有方案,其組播功能實(shí)際存在2個約束端口1內(nèi)的其他PVC不能再加入組播組3;對于其他DSL端口,比如端口0或端口2~端口63,也只能是PVC2可以加入組^番組3,這些DSL端口內(nèi)的其他PVC是不能加入組#番組3的;也就是i兌,各個DSL端口內(nèi)加入同一組4番組的眾多PVC,它們的PVC號(PVC_NUM)必須是一致的。既有方案組才番表中的"PVC一NUM,,字段正體現(xiàn)出了這一約束。要去除上述約束,就是要實(shí)現(xiàn)端口1內(nèi)的其他PVC(PVC0、PVC1以及PVC3—PVC7)都可以力口入纟Ji番纟且3。對于其葉也DSL端口,比如端口0或端口2~端口63,這些DSL端口內(nèi)的任4可一條PVC都可以加入組^番組3。實(shí)現(xiàn)了這一目標(biāo),也就實(shí)現(xiàn)了"單端口內(nèi)復(fù)制多份組播包"的目標(biāo)。要實(shí)現(xiàn)上述目標(biāo),就需要增加一張如表4所示的組播二級索引表,這張表的配置和創(chuàng)建如下首先,參照表3,在SSRAM中,以0xc000為基址,在"地址12,,找到組,潘組3對應(yīng)的組4番表項(xiàng);將該表項(xiàng)的wordl的bit[l]置^f立,表示將端口i的某條PVC加入組播組3。其次,將"組播組號(3,9比特)+08乙端口號(1,6比特)"合并,構(gòu)成一個15比特的索引值,通過直接映射的方式,在"組播二級索引表"中直接定位相應(yīng)的表項(xiàng),每個表項(xiàng)實(shí)際4叉包含一個8比特的字,殳,這8比特分別對應(yīng)一個端口下的8條PVC,是一個bitmap,標(biāo)識哪些PVC加入了組4番組;在SSRAM中,每個word(32比特)包含4個表項(xiàng),具體到本例,就是在地址48處,將pvc—bitmap[18]置4立(參見表4中"纟且#番組3/端口1pvc—bitmap[23:16],,的表),表示端口1的PVC2力口入了組播組3。當(dāng)收到下行組播數(shù)據(jù)包時,通過查詢原有組播表和新增的組播二級索引表的處理流程如下首先,以組4番包的"目的maci也址+vid"為索引查MAC表,得到"Vidx[8:0]",即得到組播組號;比如得到Vidx-3;其次,以組4番組號為索引,在SSRAM中找到對應(yīng)的組播表項(xiàng),根據(jù)組播表中port—bitmap的置位情況,以"組播組號+用戶端口號,,為索引去查組播二級索引表;port—bitmap中有1個比特置位,就需要查1次組播二級索引表,有n(n<=64)個比特被置位,就需要查n次組播二級索引表;比如,發(fā)現(xiàn)組播表的wordl的比特[l]置位了,就可以用"組播組號(3,9比特)+用戶端口號(1,6比特)"構(gòu)造出索引4直15,b000000011—000001,然后到SSRAM中找到只t應(yīng)的組播二級索引表表項(xiàng);再次,綜合組播表中查得的端口信息和組播二級索引表中查得的pvc_bitmap,生成l個或多個消息;即,如果pvc—bitmap[7:0]字段只有1個比特置位,則生成一個消息,若有多個比特置位,則相應(yīng)i也生成多個消息,只寸于不同的消息,pvc—num^直不同。后續(xù),消息寫入各個端口的不同優(yōu)先級隊(duì)列以及調(diào)度才莫塊將消息調(diào)度出隊(duì)列的過程都無需估文l務(wù)改。以上所述〗又為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的沖支術(shù)人員來"i兌,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何^畛改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1.一種組播消息發(fā)送方法,其特征在于,包括以下步驟步驟S102,基于第一對應(yīng)關(guān)系建立第二對應(yīng)關(guān)系,其中,所述第一對應(yīng)關(guān)系表示將一個或多個端口加入一個或多個組播組,所述第二對應(yīng)關(guān)系表示將一個或多個永久虛電路通過其所隸屬的端口加入所述一個或多個組播組;以及步驟S104,根據(jù)所述第一對應(yīng)關(guān)系、所述第二對應(yīng)關(guān)系確定組播消息發(fā)送路徑;以及步驟S106,通過所述組播消息發(fā)送路徑發(fā)送所述組播消息。2.根據(jù)權(quán)利要求1所述的組播消息發(fā)送方法,其特征在于,所述步-驟S104包4舌以下步艱纟查找所述組,播消息對應(yīng)的組,潘組;在所述第一乂寸應(yīng)關(guān)系中查找加入所述組4番組的所述一個或多個端口;在所述第二對應(yīng)關(guān)系中查找通過所述一個或多個端口加入所述組纟番組的所述一個或多個永久虛電^各;以及在所述組播組中通過查找到的所述一個或多個端口以及查找到的所述一個或多個7^久虛電路建立所述組播消息的發(fā)送路徑。3.根據(jù)權(quán)利要求2所述的組播消息發(fā)送方法,其特征在于,所述一個或多個端口是一個或多個凄t字用戶線端口。4.根據(jù)權(quán)利要求3所述的組播消息發(fā)送方法,其特征在于,在所述第一對應(yīng)關(guān)系中,通過將端口位圖置位來表示將所述一個或多個端口力口入所述一個或多個組播組。5.根據(jù)權(quán)利要求4所述的組播消息發(fā)送方法,其特征在于,在所述第二對應(yīng)關(guān)系中,通過將永久虛電路位圖置位來表示將所述一個或多個7;K久虛電^各通過其所隸屬的端口力口入所述一個或多個組播組。6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的組播消息發(fā)送方法,其特征在于,所述一個或多個端口中的每一都最多包含8條永久虛電路。全文摘要本發(fā)明提出了一種組播消息發(fā)送方法,其中,該方法包括以下步驟步驟S102,基于第一對應(yīng)關(guān)系建立第二對應(yīng)關(guān)系,其中,第一對應(yīng)關(guān)系表示將一個或多個端口加入一個或多個組播組,第二對應(yīng)關(guān)系表示將一個或多個永久虛電路通過其所隸屬的端口加入一個或多個組播組;以及步驟S104,根據(jù)第一對應(yīng)關(guān)系、第二對應(yīng)關(guān)系確定組播消息發(fā)送路徑;以及步驟S106,生成組播消息,并通過組播消息發(fā)送路徑發(fā)送組播消息。通過本發(fā)明,無須對現(xiàn)有架構(gòu)作任何改動,就可實(shí)現(xiàn)一個DSL端口內(nèi)的多條PVC同時加入一個組播組的目標(biāo),同時對現(xiàn)有功能也不會產(chǎn)生任何影響。文檔編號H04L12/18GK101222345SQ20081000704公開日2008年7月16日申請日期2008年1月25日優(yōu)先權(quán)日2008年1月25日發(fā)明者波劉,徐曉東申請人:中興通訊股份有限公司