專利名稱::一種組播報文轉(zhuǎn)發(fā)方法及其設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信
技術(shù)領(lǐng)域:
的IP三層交換技術(shù),尤其涉及一種組播報文轉(zhuǎn)發(fā)方法及其設(shè)備。
背景技術(shù):
:現(xiàn)有的部分交換機產(chǎn)品使用組播轉(zhuǎn)發(fā)硬件來實現(xiàn)組播報文的轉(zhuǎn)發(fā)處理,其中組播(S,G,V)信息可用硬件hash表來實現(xiàn),hash表可如表1所示,其中,每個hash桶對應(yīng)一定存儲空間,每個hash桶中存儲有一定數(shù)量的組播(S,G,V)信息,一個hash桶中的組播組播(S,G,V)信息的hashkey(hash關(guān)鍵字)相同。其中,組播(S,G,V)信息中的S表示特定組播源,G表示特定組播組,V表示入口VLAN(VirtualLocalAreaNetwork,虛擬局域網(wǎng))。表1Hash桶1Sl5Gl5VlS2,G2,V2S3,G3,V3S4,G4,V4S5,G5’V5S6,G6,Y6Key=keylHash桶2S1%G1',VI'S2,,G2’,V2,S3’,G3,’V3’Key=key2Hash桶3S1",G1",V1"S2",G2",V2"S3,’,G3”,V3"S4",G4",V4"Key=key3Hash桶4Key=key4交換機在轉(zhuǎn)發(fā)組播報文時,根據(jù)該組播報文的(S,G,V)信息查找對應(yīng)的L3_entry表項,根據(jù)1^_6壯巧表項查找1]\(1MultimediaCommunications,IP多播通信)表項,根據(jù)IMPC表項中的出接口轉(zhuǎn)發(fā)該組播報文。在下發(fā)組播(S,G,V)信息到L3_entry表項時,在一個hash桶被填滿的情況下,如果有新的組播(S,G,V)信息需要下發(fā)到該已填滿的hash桶中,則會由于該hash桶已經(jīng)達到最大容量而導(dǎo)致該組播(S,G,V)信息下發(fā)失敗,進而導(dǎo)致相應(yīng)的組播報文無法轉(zhuǎn)發(fā)。如表1所示,組播(Si,Gl,VI)到(S6,G6,V6),如果它們的hashkey相同,都是keyl,那么在下發(fā)這些(S,G,V)信息到L3_entry表項的時候,將會下發(fā)到hashkey=1的hash桶中,此時這個桶已經(jīng)達到最大容量。當有一個新的組播(S7,G7,V7)信息需要下發(fā)到L3_entry表項中,如果它的hashkey也是keyl,則會由于hash桶1沒有存放空間而導(dǎo)致組播(S7,G7,V7)信息下發(fā)失敗,這種情況稱為hash沖突。hash沖突將導(dǎo)致后續(xù)無法轉(zhuǎn)發(fā)相應(yīng)組播報文,進而影響交換機等組播報文轉(zhuǎn)發(fā)設(shè)備的可用性。
發(fā)明內(nèi)容本發(fā)明提供了一種組播報文轉(zhuǎn)發(fā)方法及其設(shè)備,用以一定程度上解決現(xiàn)有組播報文轉(zhuǎn)發(fā)技術(shù)中因hash沖突導(dǎo)致相應(yīng)組播表項下發(fā)失敗,并進而導(dǎo)致相應(yīng)組播報文轉(zhuǎn)發(fā)失敗的問題。本發(fā)明提供的組播報文轉(zhuǎn)發(fā)方法,應(yīng)用于包含有主控板和接口板的交換設(shè)備,其中,主控板和接口板上均配置有hash表形式的組播表項,該方法包括在接口板上配置組播表項時,將與該接口板上已配置的組播表項發(fā)生hash沖突的組播表項配置到主控板上;當入接口處的接口板接收到組播報文時,從該接口板上配置的組播表項中查找與該組播報文匹配的組播表項,并在查找到匹配的組播表項的情況下,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理;在未查找到匹配的組播表項的情況下,將該組播報文發(fā)送給主控板;所述主控板從其上配置的組播表項中查找與該組播報文匹配的組播表項,并在查找到匹配的組播表項的情況下,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。上述方法中,所述在接口板上配置組播表項時,將與該接口板上已配置的組播表項發(fā)生hash沖突的組播表項配置到主控板上,包括當需要在接口板上配置組播表項時,根據(jù)該組播表項的(S,G,V)信息確定該組播表項對應(yīng)的hash關(guān)鍵字;其中,S表示特定組播源,G表示特定組播組,V表示入口虛擬局域網(wǎng)VLAN;將該組播表項的hash關(guān)鍵字與所述接口板上的L3_entry表項中的用于存儲組播表項的hash桶的hash關(guān)鍵字進行比較,如果該組播表項的hash關(guān)鍵字與L3_entry表項中的hash桶的hash關(guān)鍵字相同、且該hash桶當前已經(jīng)達到最大容量,則在主控板上的L3_entry表項中具有相同hash關(guān)鍵字的hash桶當前未達到最大容量的情況下,將該組播表項的(S,G,V)信息配置到主控板上的L3_entry表項中具有相同hash關(guān)鍵字的hash桶中。上述方法中,還包括在各接口板上配置與所述組播表項的(S,G,V)對應(yīng)的IPMC表項,在主控板上對應(yīng)L3_entry表項配置該IPMC表項的索引。上述方法中,所述主控板從其上配置的組播表項查找到與該組播報文匹配的組播表項時,根據(jù)該匹配的組播表項進行轉(zhuǎn)發(fā)處理,包括所述主控板查找其上配置的L3_entry表項中是否有與所述組播報文的(S,G,V)信息匹配的組播表項,如果有,則將所述組播報文以及與該匹配的組播表項對應(yīng)的IPMC索引復(fù)制到其它接口板;所述其它接口板根據(jù)所述IPMC索引查找到對應(yīng)的IPMC表項,并根據(jù)該IPMC表項中的出接口向下游設(shè)備轉(zhuǎn)發(fā)所述組播報文。上述方法中,還包括當所述主控板未查找到與所述組播報文匹配的組播表項時,將所述組播報文上送到CPU處理。本發(fā)明提供的交換設(shè)備中的主控板,包括表項存儲模塊,為硬件模塊,用于存儲與接口板上已配置的組播表項發(fā)生hash沖突的組播表項;接收模塊,用于接收交換設(shè)備的接口板重定向到該主控板的組播報文;轉(zhuǎn)發(fā)處理模塊,用于從所述表項存儲模塊存儲的組播表項中查找到與該組播報文匹配的組播表項時,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。上述主控板中,所述轉(zhuǎn)發(fā)處理模塊具體用于,查找所述表項存儲模塊中存儲的L3_entry表項中是否有與所述組播報文的地址和VLAN信息匹配的組播表項,如果有,則將所述組播報文以及與該匹配的組播表項對應(yīng)的IPMC索引復(fù)制到各接口板,以使各接口板分別根據(jù)所述IPMC索引查找到對應(yīng)的IPMC表項,并根據(jù)該IPMC表項中的出接口向下游設(shè)備轉(zhuǎn)發(fā)所述組播報文。本發(fā)明提供的交換設(shè)備,包括組播表項下發(fā)模塊、接口板和主控板;其中組播表項下發(fā)模塊,用于在交換設(shè)備的接口板上配置組播表項時,將與該接口板上已配置的組播表項發(fā)生hash沖突的組播表項配置到主控板上;接口板,在作為組播入口接收到組播報文時,從該接口板上配置的組播表項中查找與該組播報文匹配的組播表項,如果查找到匹配的組播表項,則根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理;如果未查找到匹配的組播表項,則將該組播報文發(fā)送給主控板;所述主控板,用于從其上配置的組播表項中查找到與該組播報文匹配的組播表項時,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。上述交換設(shè)備中,所述組播表項下發(fā)模塊具體用于,當需要在交換設(shè)備的接口板上配置組播表項時,根據(jù)該組播表項的(S,G,V)信息確定該組播表項對應(yīng)的hash關(guān)鍵字;將該組播表項的hash關(guān)鍵字與接口板上的L3_entry表項中的各用于存儲組播表項的hash桶的hash關(guān)鍵字進行比較,如果該組播表項的hash關(guān)鍵字與L3_entry表中的hash桶的hash關(guān)鍵字相同、且該hash桶當前已經(jīng)達到最大容量,則在主控板上的L3_entry表項中具有相同hash關(guān)鍵字的hash桶當前未達到最大容量的情況下,將該組播表項的(S,G,V)信息配置到主控板上的L3_entry表項中具有相同hash關(guān)鍵字的hash桶中。上述交換設(shè)備中,所述組播表項下發(fā)模塊還用于,在主控板上配置與各hash桶對應(yīng)的IPMC索引,在各接口板上配置與IPMC索引對應(yīng)的IPMC表項。上述交換設(shè)備中,所述主控板,包括表項存儲模塊,為硬件模塊,用于存儲與接口板上已配置的組播表項發(fā)生hash沖突的組播表項;接收模塊,用于接收交換設(shè)備的接口板重定向到該主控板的組播報文;轉(zhuǎn)發(fā)處理模塊,用于從所述表項存儲模塊存儲的組播表項中查找到與該組播報文匹配的組播表項時,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。上述交換設(shè)備中,所述轉(zhuǎn)發(fā)處理模塊具體用于,查找所述表項存儲模塊中存儲的L3_entry表項中是否有與所述組播報文的地址和VLAN信息匹配的組播表項,如果有,則將所述組播報文以及與該匹配的組播表項對應(yīng)的IPMC索引復(fù)制到各接口板,以使各接口板分別根據(jù)所述IPMC索引查找到對應(yīng)的IPMC表項,并根據(jù)該IPMC表項中的出接口向下游設(shè)備轉(zhuǎn)發(fā)所述組播報文。本發(fā)明的有益技術(shù)效果包括本發(fā)明中,在接口板上配置組播表項時,將與該接口板上已配置的組播表項發(fā)生hash沖突的組播表項配置到主控板上,從而當入接口處的接口板接收到組播報文時,從該接口板上配置的組播表項中查找與該組播報文匹配的組播表項,并在未查找到匹配的組播表項的情況下,將該組播報文發(fā)送給主控板;主控板從其上配置的組播表項中查找與該組播報文匹配的組播表項,并在查找到匹配的組播表項的情況下,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。從而減少了hash沖突的幾率,提高了交換設(shè)備的可用性,一定程度上解決了組播hash沖突的問題,使組播功能的實用性增強。圖1為現(xiàn)有交換設(shè)備轉(zhuǎn)發(fā)組播報文的流程示意圖之一;圖2為現(xiàn)有交換設(shè)備轉(zhuǎn)發(fā)組播報文的流程示意圖之二;圖3為本發(fā)明實施例提供的組播表項下發(fā)流程示意圖;圖4為本發(fā)明實施例提供的組播報文轉(zhuǎn)發(fā)流程示意圖;圖5為本發(fā)明實施例提供的交換設(shè)備轉(zhuǎn)發(fā)組播報文時的整體架構(gòu)示意圖;圖6為本發(fā)明實施例提供的交換設(shè)備中的主控板的結(jié)構(gòu)示意圖;圖7為本發(fā)明實施例提供的交換設(shè)備的結(jié)構(gòu)示意圖。具體實施例方式在交換設(shè)備上與二層或三層轉(zhuǎn)發(fā)相關(guān)的組播表項通??砂↙3_entry表項、IPMC表項等。其中,L3_entry表項固化在交換設(shè)備的硬件中,存放有(S,G,V)信息,每一個(S,G,V)對應(yīng)一個L3_entry表項,每一個L3_entry表項對應(yīng)一個IPMC索引,用于索引對應(yīng)的IPMC表項。IPMC表項中通常記錄有本板所有出接口相關(guān)信息。L3_entry表項中的(S,G,V)信息的存放采用hash表的方式(如表1所示),每個hash桶中可以容納一定數(shù)量的表項,通常為8條表項。如圖1所示,目前在交換設(shè)備上,對于組播轉(zhuǎn)發(fā),在報文的入接口處的接口板上,需要通過報文的(S,G,V)信息查找L3_entry表項得到IPMC索引,通過IPMC索引找到IPMC_table(IPMC表項),通過IPMC_table找到本板所有出接口,然后將報文復(fù)制并從這些出接口轉(zhuǎn)發(fā)出去。對于分布式交換設(shè)備,如圖2所示,在報文的入接口處的接口板上,需要通過報文的(S,G,V)信息查找L3_entry表項得到IPMC索引,通過IPMC索引找到IPMC_table,通過IPMC_table找到本板的所有出接口,將報文復(fù)制并通過本板出接口轉(zhuǎn)發(fā)出去,另外還將組播報文和IPMC索引一起發(fā)送給其它接口板;在目標接口板上通過該IPMC索引再次找到IPMC_table,然后通過IPMC_table找到在各自接口板上的所有出接口,將報文從這些出接口轉(zhuǎn)發(fā)出去,從而完成組播轉(zhuǎn)發(fā)流程。在轉(zhuǎn)發(fā)組播報文的時候,通過比對該組播報文的(源IP地址,目的IP地址,VLAN信息)是否與L3_entry表項中的(S,G,V)信息匹配,從而實現(xiàn)組播報文的轉(zhuǎn)發(fā)??梢钥闯?,L3_entry表項是組播報文轉(zhuǎn)發(fā)的重要依據(jù)。但在向L3_entry表項中添加(S,G,V)信息的時候,由于hash表的固有特點(hash桶容量有限),就有可能會出現(xiàn)hash沖突的問題,從而引起部分表項下發(fā)失敗。從以上現(xiàn)有交換設(shè)備轉(zhuǎn)發(fā)組播報文的流程可以看到,交換設(shè)備上的主控板上并不存在業(yè)務(wù)轉(zhuǎn)發(fā)口,所以實際上主控板的交換芯片并沒有參與組播轉(zhuǎn)發(fā),所以,在現(xiàn)有的組播轉(zhuǎn)發(fā)流程中,主控板是不需要下發(fā)組播表項的。本發(fā)明實施例對此進行了改進,即在交換設(shè)備的主控板上也配置組播表項(如L3_entry表項),該組播表項的結(jié)構(gòu)可與接口板板中的組播表項結(jié)構(gòu)相同,其中存儲的組播表項為與接口板中的組播表項存在hash沖突的組播表項。當入口處的接口板接收到組播報文時,若查找不到與組播報文匹配的組播表項,則使用主控板作為代理,由主控板根據(jù)其自身的組播表項查找匹配的組播表項,并根據(jù)查找到的組播表項進行轉(zhuǎn)發(fā)處理,從而解決hash沖突的問題。下面結(jié)合圖3和圖4,對本發(fā)明實施例提供的組播表項的下發(fā)流程以及基于組播表項轉(zhuǎn)發(fā)組播報文的流程進行詳細描述。參見圖3,為本發(fā)明實施例提供的組播表項下發(fā)流程。當有新的組播(S,G,V)信息需要下發(fā)到組播表項時,以交換設(shè)備中的一塊接口板(表示為接口板A)為例,該流程可包括步驟301,將待下發(fā)的組播表項(S,G,V)信息進行hash運算,得到hashkey。步驟302,根據(jù)該待下發(fā)表項的hashkey判斷該待下發(fā)表項是否與接口板A中已存儲的組播表項沖突,如果沖突,則轉(zhuǎn)入步驟303,否則轉(zhuǎn)入步驟304。具體的,比較該組播表項的hashkey與接口板A的L3_entry表項中各hash桶對應(yīng)的hashkey,如果該待下發(fā)的組播表項的hashkey與L3_entry表中的某個hash桶對應(yīng)的hashkey相同、且該hash桶當前已達到最大容量,即已經(jīng)沒有存儲空間可存儲該待下發(fā)的組播(S,G,V)信息,此種情況即發(fā)生hash沖突,需要轉(zhuǎn)入步驟303。如果未發(fā)生hash沖突,則轉(zhuǎn)入步驟304。步驟303,將該待下發(fā)的組播表項下發(fā)到主控板上。具體的,將該待下發(fā)的組播(S,G,V)信息添加到主控板上的L3_entry表項中與該待下發(fā)組播(S,G,V)信息具有相同hashkey的hash桶中。在接口板上還需要下發(fā)對應(yīng)的IPMC_table。當主控板上L3_entry表項中,與該待下發(fā)的組播(S,G,V)信息的hashkey對應(yīng)的hash桶當前已經(jīng)達到最大容量時,將放棄該組播表項的下發(fā)。步驟304,下發(fā)該待下發(fā)的組播表項到接口板A上。具體的,可按照現(xiàn)有方式下發(fā)組播(S,G,V)信息到本板的L3_entry表項中。其中,如果該待下發(fā)表項與接口板A的L3_entry表中的某個hash桶的hashkey相同、且該hash桶當前還未達到最大容量,則將該待下發(fā)的組播(S,G,V)信息添加到該hash桶中。以上流程僅以交換設(shè)備中的一塊接口板為例描述了組播表項的下發(fā)過程,對于交換設(shè)備中的每塊可作為組播入口的接口板都可進行如上處理,通常情況下,交換設(shè)備中的各接口板都可以作為組播入口。從以上流程可以看出,對于沒有hash沖突、能夠正常下發(fā)組播表項時將按照現(xiàn)有方式下發(fā)到各接口板的L3_entry表項中,如表1所示,組播表項(S1,G1,V1)、(S2,G2,V2)、(S3,G3,V3)等將在所有的接口板下發(fā),但是不向主控板下發(fā);對于在接口板上由于hash沖突下發(fā)失敗的組播表項,則下發(fā)到主控板上,如與接口板L3_entry表項有hash沖突的表項(S7,G7,V7)將下發(fā)到主控板的L3_entry表項中,而不下發(fā)到接口板的L3_entry表項中,只需下發(fā)相應(yīng)的IPMC表項到接口板。這樣就避免了在下發(fā)組播表項的時候出現(xiàn)hash沖突?;谏鲜龇绞较掳l(fā)的組播表項,其組播報文的轉(zhuǎn)發(fā)流程可如圖4或圖5所示,其中,圖4為流程框圖,圖5為組播報文轉(zhuǎn)發(fā)流程的整體架構(gòu)示意圖。當有組播報文流入交換設(shè)備時,以交換設(shè)備中的接口板A為該組播報文入口的接口板為例,該組播報文的轉(zhuǎn)發(fā)流程可包括步驟401,接口板A接收到組播報文后,根據(jù)該組播報文的(S,G,V)信息查詢本地配置的組播表項,如果查詢到與該組播報文的(S,G,V)信息匹配的組播表項,則轉(zhuǎn)入步驟405;否則,轉(zhuǎn)入步驟402。具體的,接口板A在接收到組播報文后,比對該組播報文的(源IP地址,目的IP地址,VLAN信息)是否與L3_entry表項中存儲的(S,G,V)信息匹配,若匹配,則轉(zhuǎn)入步驟405;否則轉(zhuǎn)入步驟402。步驟402,接口板A將該組播報文發(fā)送給主控板。具體的,在接口板A上可預(yù)先設(shè)置ACL(AccessControlList,訪問控制列表),該ACL用于當本板在組播表項匹配失敗時將該組播報文重定向到主控板。步驟403,主控板根據(jù)該組播報文的(S,G,V)信息查找本地配置的組播表項,并在查找到與該組播報文的(S,G,V)信息匹配的組播表項時,根據(jù)該匹配的組播表項進行轉(zhuǎn)發(fā)處理。具體的,主控板比對該組播報文的(源IP地址,目的IP地址,VLAN信息)是否與L3_entry表項中存儲的(S,G,V)信息匹配,如果匹配,則根據(jù)該L3_entry表項得到對應(yīng)的IPMC索引,并將該組播報文和該IPMC索引復(fù)制到各接口板。各目標接口板根據(jù)該IPMC索引查找到對應(yīng)的IPMC_table,根據(jù)該IPMC_table將該組播報文復(fù)制到本板的相應(yīng)出接口發(fā)送出去。步驟404,接口板A根據(jù)查詢到的組播表項對該組播報文進行轉(zhuǎn)發(fā)處理。具體的,接口板A根據(jù)該組播報文查找到L3_entry表項中匹配的(S,G,V)信息后,通過該組播報文的(S,G,V)信息查找L3_entry表項得到IPMC索引,根據(jù)該IPMC索引查找到對應(yīng)的IPMC_table,根據(jù)該IPMC_table將該組播報文復(fù)制到本板上相應(yīng)的出接口發(fā)送出去;另外,還將該組播報文和該IPMC索引復(fù)制該交換設(shè)備的其它接口板上,各目標接口板根據(jù)該IPMC索引查找到對應(yīng)的IPMC_table,根據(jù)該IPMC_table將該組播報文復(fù)制到本板上相應(yīng)的出接口發(fā)送出去。上述流程中,如果主控板未匹配到組播表項,則將該組播報文作為未知組播報文進行處理,如上送CPU進行處理。通過以上流程可以看出,在轉(zhuǎn)發(fā)組播報文時,若根據(jù)組播報文的(S,G,V)信息在接口板匹配到對應(yīng)的組播表項,則按照現(xiàn)有方式進行轉(zhuǎn)發(fā)處理,而一旦在接口板上組播表項匹配失敗,則將該組播報文重定向到主控板,在主控板上通過代理的方式重新查找L3_entry組播表項,如果找到則得到對應(yīng)的IPMC索引,并根據(jù)相應(yīng)的IPMC表項進行轉(zhuǎn)發(fā)處理??梢钥闯?,這樣處理以后,相當于將交換設(shè)備中L3_entry表項的hash桶深增加了一倍,減少了hash沖突的幾率,從而提高了交換設(shè)備的可用性。本發(fā)明實施例通過主控板代理的方法,一定程度上解決了組播hash沖突的問題,使組播功能的實用性大大增強?;谙嗤募夹g(shù)構(gòu)思,本發(fā)明實施例還提供了一種交換設(shè)備中的主控板,以及包含上述主控板的交換設(shè)備。參見圖6,為本發(fā)明實施例提供的交換設(shè)備中的主控板的結(jié)構(gòu)示意圖。如圖所示,該主控板可包括表項存儲模塊61,為硬件模塊,用于存儲與接口板上已配置的組播表項發(fā)生hash沖突的組播表項;接收模塊62,用于接收交換設(shè)備的接口板重定向到該主控板的組播報文;轉(zhuǎn)發(fā)處理模塊63,用于從表項存儲模塊61存儲的組播表項中查找到與該組播報文匹配的組播表項時,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。上述主控板中,轉(zhuǎn)發(fā)處理模塊63在進行轉(zhuǎn)發(fā)處理時,可具體用于查找表項存儲模塊61中存儲的L3_entry表項中是否有與所述組播報文的地址和VLAN信息匹配的組播表項,如果有,則將所述組播報文以及與該匹配的組播表項對應(yīng)的IPMC索引復(fù)制到各接口板,以使各接口板分別根據(jù)所述IPMC索引查找到對應(yīng)的IPMC表項,并根據(jù)該IPMC表項中的出接口向下游設(shè)備轉(zhuǎn)發(fā)所述組播報文。參見圖7,為本發(fā)明實施例提供的交換設(shè)備的結(jié)構(gòu)示意圖,如圖所示,該交換設(shè)備可包括組播表項下發(fā)模塊71、接口板72(接口板可以為多個)和主控板73;其中組播表項下發(fā)模塊71,用于在交換設(shè)備的接口板72上配置組播表項時,將與該接口板72上已配置的組播表項發(fā)生hash沖突的組播表項配置到主控板73上;接口板72,在作為組播入口接收到組播報文時,從該接口板72上配置的組播表項中查找與該組播報文匹配的組播表項,如果查找到匹配的組播表項,則根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理;如果未查找到匹配的組播表項,則將該組播報文發(fā)送給主控板73;主控板73,用于從其上配置的組播表項中查找到與該組播報文匹配的組播表項時,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。上述交換設(shè)備中,組播表項下發(fā)模塊71具體用于當需要在交換設(shè)備的接口板上配置組播表項時,根據(jù)該組播表項的(S,G,V)信息確定該組播表項對應(yīng)的hash關(guān)鍵字;將該組播表項的hash關(guān)鍵字與接口板上的L3_entry表項中的各用于存儲組播表項的hash桶的hash關(guān)鍵字進行比較,如果該組播表項的hash關(guān)鍵字與L3_entry表中的hash桶的hash關(guān)鍵字相同、且該hash桶當前已經(jīng)達到最大容量,則在主控板73上的L3_entry表項中具有相同hash關(guān)鍵字的hash桶當前未達到最大容量的情況下,將該組播表項的(S,G,V)信息配置到主控板73上的L3_entry表項中具有相同hash關(guān)鍵字的hash桶中。上述交換設(shè)備中,組播表項下發(fā)模塊71還用于在主控板73上配置與各hash桶對應(yīng)的IPMC索引,在各接口板72上配置與IPMC索引對應(yīng)的IPMC表項。上述交換設(shè)備中,主控板73可包括表項存儲模塊731,為硬件模塊,用于存儲與接口板上已配置的組播表項發(fā)生hash沖突的組播表項;接收模塊732,用于接收交換設(shè)備的接口板重定向到該主控板的組播報文;轉(zhuǎn)發(fā)處理模塊733,用于從表項存儲模塊731存儲的組播表項中查找到與該組播報文匹配的組播表項時,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。其中,轉(zhuǎn)發(fā)處理模塊733具體用于查找所述表項存儲模塊中存儲的L3_entry表項中是否有與所述組播報文的地址和VLAN信息匹配的組播表項,如果有,則將所述組播報文以及與該匹配的組播表項對應(yīng)的IPMC索引復(fù)制到各接口板,以使各接口板分別根據(jù)所述IPMC索引查找到對應(yīng)的IPMC表項,并根據(jù)該IPMC表項中的出接口向下游設(shè)備轉(zhuǎn)發(fā)所述組播報文。10通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視本發(fā)明的保護范圍。權(quán)利要求1.一種組播報文轉(zhuǎn)發(fā)方法,應(yīng)用于包含有主控板和接口板的交換設(shè)備,其特征在于,主控板和接口板上均配置有hash表形式的組播表項,該方法包括在接口板上配置組播表項時,將與該接口板上已配置的組播表項發(fā)生hash沖突的組播表項配置到主控板上;當入接口處的接口板接收到組播報文時,從該接口板上配置的組播表項中查找與該組播報文匹配的組播表項,并在查找到匹配的組播表項的情況下,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理;在未查找到匹配的組播表項的情況下,將該組播報文發(fā)送給主控板;所述主控板從其上配置的組播表項中查找與該組播報文匹配的組播表項,并在查找到匹配的組播表項的情況下,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。2.如權(quán)利要求1所述的方法,其特征在于,所述在接口板上配置組播表項時,將與該接口板上已配置的組播表項發(fā)生hash沖突的組播表項配置到主控板上,包括當需要在接口板上配置組播表項時,根據(jù)該組播表項的(S,G,V)信息確定該組播表項對應(yīng)的hash關(guān)鍵字;其中,S表示特定組播源,G表示特定組播組,V表示入口虛擬局域網(wǎng)VLAN;將該組播表項的hash關(guān)鍵字與所述接口板上的L3_entry表項中的用于存儲組播表項的hash桶的hash關(guān)鍵字進行比較,如果該組播表項的hash關(guān)鍵字與L3_entry表項中的hash桶的hash關(guān)鍵字相同、且該hash桶當前已經(jīng)達到最大容量,則在主控板上的L3_entry表項中具有相同hash關(guān)鍵字的hash桶當前未達到最大容量的情況下,將該組播表項的(S,G,V)信息配置到主控板上的L3_entry表項中具有相同hash關(guān)鍵字的hash桶中。3.如權(quán)利要求2所述的方法,其特征在于,還包括在各接口板上配置與所述組播表項的(S,G,V)對應(yīng)的IPMC表項,在主控板上對應(yīng)L3_entry表項配置該IPMC表項的索引。4.如權(quán)利要求1-3之一所述的方法,其特征在于,所述主控板從其上配置的組播表項查找到與該組播報文匹配的組播表項時,根據(jù)該匹配的組播表項進行轉(zhuǎn)發(fā)處理,包括所述主控板查找其上配置的L3_entry表項中是否有與所述組播報文的(S,G,V)信息匹配的組播表項,如果有,則將所述組播報文以及與該匹配的組播表項對應(yīng)的IPMC索引復(fù)制到其它接口板;所述其它接口板根據(jù)所述IPMC索引查找到對應(yīng)的IPMC表項,并根據(jù)該IPMC表項中的出接口向下游設(shè)備轉(zhuǎn)發(fā)所述組播報文。5.如權(quán)利要求4所述的方法,其特征在于,還包括當所述主控板未查找到與所述組播報文匹配的組播表項時,將所述組播報文上送到CPU處理。6.一種交換設(shè)備中的主控板,其特征在于,包括表項存儲模塊,為硬件模塊,用于存儲與接口板上已配置的組播表項發(fā)生hash沖突的組播表項;接收模塊,用于接收交換設(shè)備的接口板重定向到該主控板的組播報文;轉(zhuǎn)發(fā)處理模塊,用于從所述表項存儲模塊存儲的組播表項中查找到與該組播報文匹配的組播表項時,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。7.如權(quán)利要求6所述的主控板,其特征在于,所述轉(zhuǎn)發(fā)處理模塊具體用于,查找所述表項存儲模塊中存儲的L3_entry表項中是否有與所述組播報文的地址和VLAN信息匹配的組播表項,如果有,則將所述組播報文以及與該匹配的組播表項對應(yīng)的IPMC索引復(fù)制到各接口板,以使各接口板分別根據(jù)所述IPMC索引查找到對應(yīng)的IPMC表項,并根據(jù)該IPMC表項中的出接口向下游設(shè)備轉(zhuǎn)發(fā)所述組播報文。8.一種交換設(shè)備,其特征在于,包括組播表項下發(fā)模塊、接口板和主控板;其中組播表項下發(fā)模塊,用于在交換設(shè)備的接口板上配置組播表項時,將與該接口板上已配置的組播表項發(fā)生hash沖突的組播表項配置到主控板上;接口板,在作為組播入口接收到組播報文時,從該接口板上配置的組播表項中查找與該組播報文匹配的組播表項,如果查找到匹配的組播表項,則根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理;如果未查找到匹配的組播表項,則將該組播報文發(fā)送給主控板;所述主控板,用于從其上配置的組播表項中查找到與該組播報文匹配的組播表項時,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。9.如權(quán)利要求8所述的交換設(shè)備,其特征在于,所述組播表項下發(fā)模塊具體用于,當需要在交換設(shè)備的接口板上配置組播表項時,根據(jù)該組播表項的(S,G,V)信息確定該組播表項對應(yīng)的hash關(guān)鍵字;將該組播表項的hash關(guān)鍵字與接口板上的L3_entry表項中的各用于存儲組播表項的hash桶的hash關(guān)鍵字進行比較,如果該組播表項的hash關(guān)鍵字與L3_entry表中的hash桶的hash關(guān)鍵字相同、且該hash桶當前已經(jīng)達到最大容量,則在主控板上的L3_entry表項中具有相同hash關(guān)鍵字的hash桶當前未達到最大容量的情況下,將該組播表項的(S,G,V)信息配置到主控板上的L3_entry表項中具有相同hash關(guān)鍵字的hash桶中。10.如權(quán)利要求9所述的交換設(shè)備,其特征在于,所述組播表項下發(fā)模塊還用于,在主控板上配置與各hash桶對應(yīng)的IPMC索引,在各接口板上配置與IPMC索引對應(yīng)的IPMC表項。11.如權(quán)利要求8所述的交換設(shè)備,其特征在于,所述主控板,包括表項存儲模塊,為硬件模塊,用于存儲與接口板上已配置的組播表項發(fā)生hash沖突的組播表項;接收模塊,用于接收交換設(shè)備的接口板重定向到該主控板的組播報文;轉(zhuǎn)發(fā)處理模塊,用于從所述表項存儲模塊存儲的組播表項中查找到與該組播報文匹配的組播表項時,根據(jù)該匹配的組播表項對所述組播報文進行轉(zhuǎn)發(fā)處理。12.如權(quán)利要求11所述的交換設(shè)備,其特征在于,所述轉(zhuǎn)發(fā)處理模塊具體用于,查找所述表項存儲模塊中存儲的L3_entry表項中是否有與所述組播報文的地址和VLAN信息匹配的組播表項,如果有,則將所述組播報文以及與該匹配的組播表項對應(yīng)的IPMC索引復(fù)制到各接口板,以使各接口板分別根據(jù)所述IPMC索引查找到對應(yīng)的IPMC表項,并根據(jù)該IPMC表項中的出接口向下游設(shè)備轉(zhuǎn)發(fā)所述組播報文。全文摘要本發(fā)明公開了一種組播報文轉(zhuǎn)發(fā)方法及其設(shè)備,應(yīng)用于包含有主控板和接口板的交換設(shè)備,主控板和接口板上均配置有hash表形式的組播表項,該方法包括在接口板上配置組播表項時,將與該接口板上已配置的組播表項發(fā)生hash沖突的組播表項配置到主控板上;當入接口處的接口板接收到組播報文時,從該接口板上配置的組播表項中查找與該組播報文匹配的組播表項,并在未查找到的情況下,將該組播報文發(fā)送給主控板;主控板查找與該組播報文匹配的組播表項,并在查找到的情況下,根據(jù)該匹配的組播表項對組播報文進行轉(zhuǎn)發(fā)處理。采用本發(fā)明可一定程度上解決現(xiàn)有組播報文轉(zhuǎn)發(fā)技術(shù)中因hash沖突導(dǎo)致相應(yīng)組播表項下發(fā)失敗,并進而導(dǎo)致相應(yīng)組播報文轉(zhuǎn)發(fā)失敗的問題。文檔編號H04L12/18GK102164084SQ20111010067公開日2011年8月24日申請日期2011年4月21日優(yōu)先權(quán)日2011年4月21日發(fā)明者謝瑞濤申請人:杭州華三通信技術(shù)有限公司