Pon系統(tǒng)中組播級聯(lián)的適配系統(tǒng)和方法
【技術領域】
[0001] 本發(fā)明涉及P0N(PassiveOpticalSystem,無源光網(wǎng)絡)系統(tǒng)的組播級聯(lián)領域,具 體來講涉及P0N系統(tǒng)中組播級聯(lián)的適配系統(tǒng)和方法。
【背景技術】
[0002] IGMP(InternetGroupManagementProtocol,互聯(lián)網(wǎng)組管理協(xié)議)協(xié)議是TCP/ IP(TransferControlProtocol/InternetProtocol,傳輸控制協(xié)議 / 網(wǎng)際協(xié)議)協(xié)議族 中負責IP組播成員管理的協(xié)議,它用來在IP主機和與其直接相鄰的組播路由器之間建立、 維護組播組成員關系。P0N系統(tǒng)中主要實現(xiàn)IGMPSnooping、IGMPProxy等二層組播協(xié)議, 通過IGMPReport/Leave/Query消息來實現(xiàn)組播組成員的動態(tài)加入、退出和維持。
[0003]IGMPSnooping的實現(xiàn)機理是:設備偵聽并攔截用戶主機向上級路由器的IGMP請 求,形成組播地址和設備接口的映射表。設備在收到組播數(shù)據(jù)包后,根據(jù)映射表向相應的組 成員接口轉發(fā)數(shù)據(jù)包。
[0004]IGMPProxy與IGMPSnooping實現(xiàn)功能相同但機理相異:IGMPSnooping只是通 過偵聽IGMP的消息來獲取有關信息,而IGMPProxy則攔截了用戶的IGMP請求并進行相關 處理后,再將它轉發(fā)給上層路由器。
[0005] 隨著寬帶技術的發(fā)展,P0N接入設備覆蓋的用戶數(shù)目越來越多,單個板卡的芯片組 成結構也越來越復雜,各種類型的芯片也在板卡內(nèi)部級聯(lián)起來。在此情況下,當單板需要支 持組播功能時,其上的多個芯片通常也需要同時支持組播。按照現(xiàn)有的實現(xiàn)方式,需要組播 協(xié)議模塊感知芯片的級聯(lián)方式,一般每個芯片都運行一個組播協(xié)議模塊,每個芯片都可能 有其獨立的組播適配模塊,導致組播協(xié)議模塊和組播適配模塊都比較復雜而且無法通用。
[0006] 在現(xiàn)有技術下,同一廠家的以太網(wǎng)交換芯片一般可配置級聯(lián)端口,通過級聯(lián)端口 連接的多個芯片的所有端口的處理方式都完全相同,就象所有端口都處于同一個芯片上一 樣。例如部分廠家的以太網(wǎng)交換芯片提供的Hig端口級聯(lián)方式。但是如果芯片不支持級 聯(lián)模式、或者相應的端口不支持配置為級聯(lián)模式、或者級聯(lián)的芯片是功能完全不同的芯片 (例如一個是P0N芯片,另一個是以太網(wǎng)交換芯片等)、或者級聯(lián)的芯片是不同廠家的芯片, 則均無法直接使用芯片提供的級聯(lián)功能。
【發(fā)明內(nèi)容】
[0007] 針對現(xiàn)有技術中存在的缺陷,本發(fā)明的目的在于提供一種P0N系統(tǒng)中組播級聯(lián)的 適配系統(tǒng)和方法,適應多種以及多個芯片級聯(lián)時的場景,屏蔽芯片級聯(lián)信息以及各個芯片 級聯(lián)方式的差異,在邏輯上使組播協(xié)議模塊完全運行在一個統(tǒng)一的芯片上。
[0008] 為達到以上目的,本發(fā)明采取一種P0N系統(tǒng)中組播級聯(lián)的適配系統(tǒng),其特征在于, 包括一個組播協(xié)議模塊、一個組播適配模塊和多個芯片驅動模塊,所述組播協(xié)議模塊用于 按照組播協(xié)議要求處理組播協(xié)議報文;每個芯片驅動模塊用于驅動一個芯片;所述組播適 配模塊用于處理組播協(xié)議模塊和芯片驅動模塊之間的適配,屏蔽組播協(xié)議模塊對于多個芯 片級聯(lián)的感知;所述組播適配模塊中存儲第一端口信息表,包括所有端口信息,用于在添加 /刪除表項適配處理時對端口的通用處理;所述組播協(xié)議模塊中存儲第二端口信息表,包 括去除第一端口信息表中所記錄的級聯(lián)端口后剩余的端口信息,用于組播協(xié)議模塊對組播 協(xié)議報文的源端口、目的端口以及端口組播表項的控制;所述適配系統(tǒng)還包括一個注冊接 口信息表,包括組播二層轉發(fā)表項注冊接口和組播協(xié)議報文收發(fā)注冊接口兩部分。
[0009] 在上述技術方案的基礎上,所述第一端口信息表中,每一條記錄項標識一個端口 的信息,至少包括端口編號、端口上下行屬性、端口級聯(lián)屬性、關聯(lián)端口編號,其中端口上下 行屬性表示端口是上行接口還是下行接口,端口級聯(lián)屬性表示端口是否為級聯(lián)端口;關聯(lián) 端口編號中,如果該端口為級聯(lián)端口,則關聯(lián)端口編號為該級聯(lián)端口所關聯(lián)的另一個芯片 的端口編號,如果端口為非級聯(lián)端口,則關聯(lián)端口編號為空。
[0010] 在上述技術方案的基礎上,所示第二端口信息表中,每一條記錄項標識一個端口 的信息,至少包括端口編號、端口上下行屬性,端口上下行屬性表示端口是上行接口還是下 行接口。
[0011] 在上述技術方案的基礎上,所述組播二層轉發(fā)表項注冊接口細分為添加組播表項 注冊接口、刪除組播表項注冊接口;組播協(xié)議報文收發(fā)注冊接口細分為報文發(fā)送注冊接口、 報文接收注冊接口;其中報文接收注冊接口由組播適配模塊向芯片驅動模塊注冊,其余注 冊接口均由組播適配模塊向組播協(xié)議模塊注冊。
[0012] 本發(fā)明還提供一種P0N系統(tǒng)中組播級聯(lián)適配方法,包括步驟:
[0013]S1.將芯片驅動模塊、組播適配模塊、組播協(xié)議模塊依次初始化;
[0014]S2.組播適配模塊分別向組播協(xié)議模塊、多個芯片驅動模塊注冊所述注冊接口信 息表中的接口;
[0015]S3.芯片驅動模塊接收組播協(xié)議報文,處理并獲取組播協(xié)議報文的來源端口信息, 處理后的組播協(xié)議報文發(fā)送組播適配模塊;
[0016]S4.組播適配模塊接收組播協(xié)議報文,再次處理后發(fā)送給組播協(xié)議模塊;
[0017]S5.組播協(xié)議模塊接收并處理來自組播適配模塊的組播協(xié)議報文,根據(jù)組播協(xié)議 報文的類型,通過組播適配模塊向組播協(xié)議模塊注冊的接口,調(diào)用相應的適配處理接口;包 括添加表項適配、刪除表項適配、報文發(fā)送適配;
[0018]S6.組播適配模塊調(diào)用芯片驅動模塊的接口完成添加表項、刪除表項、報文發(fā)送的 功能;進入下一個周期,轉入S3。
[0019] 在上述技術方案的基礎上,所述S5的詳細流程為:
[0020]S51.組播協(xié)議模塊解析接收到的組播協(xié)議報文類型,如果是成員報告報文,進入S52;如果是離開報文,進入S54;如果是查詢報文,進入S53;
[0021]S52.組播協(xié)議模塊調(diào)用組播適配模塊,完成添加表項的適配處理,進入S58;
[0022] S53.組播協(xié)議模塊根據(jù)報文的內(nèi)容,判斷是否為特定查詢,若是,進入S54 ;若否, 進入S57;
[0023]S54.組播協(xié)議模塊做特定查詢處理,進入S55;
[0024]S55.組播協(xié)議模塊判斷有效時間內(nèi)是否收到源端口的成員報告報文,若是,結束; 若否,進入S56;
[0025]S56.組播協(xié)議模塊調(diào)用組播適配模塊,做刪除表項適配處理,進入S58;
[0026]S57.組播協(xié)議模塊做通用查詢處理,進入S58;
[0027]S58.組播協(xié)議模塊調(diào)用組播適配模塊進行報文發(fā)送的適配處理,結束。
[0028] 在上述技術方案的基礎上,組播協(xié)議模塊通過注冊接口傳遞至組播適配模塊參 數(shù),包括端口編號、組播組地址、VLAN值;S52中添加表項的適配處理具體為:
[0029]S521.組播適配模塊判斷該端口的上下行屬性是否為上行,若是,結束,若否,進入 S522;
[0030]S522.調(diào)用對應的芯片驅動模塊接口,將對應的端口編號、組播組地址、VLAN值添 加到組播二層轉發(fā)表中的表項;
[0031]S523.由第一端口信息表獲取對應芯片的上行端口,并獲取該上行端口的關聯(lián)端 P;
[0032]S524.判斷關聯(lián)端口是否為空,若否,進入S525;若是,結束;
[0033]S525.調(diào)用對應的芯片驅動模塊的接口,將關聯(lián)端口的端口號、組播組地址、VLAN 值添加到組播二層轉發(fā)表中的表項;
[0034]S526?關聯(lián)端口的引用計數(shù)增加1;
[0035]S527.將關聯(lián)端口賦值到S521中的端口后,轉入S521。
[0036] 在上述技術方案的基礎上,組播協(xié)議模塊通過注冊接口傳遞至組播適配模塊參 數(shù),包括端口編號、組播組地址、VLAN值;S56中刪除表項的適配處理具體為:
[0037]S561.判斷該端口的上下行屬性是否為上行,若是,結束,若否,進入S562;
[0038]S562.調(diào)用對應的芯片驅動模塊的接口,將對應的端口編號、組播組地址、VLAN值 的組播表項刪除;
[0039]S563.通過第一端口信息表獲取對應芯片的上行端口,并獲取上行端口的關聯(lián)端 P;
[0040]S564.判斷關聯(lián)端口是否為空,若否,進入S565;若是,結束;
[0041]S565.將關聯(lián)端口的引用計數(shù)減去1;
[0042]S566.判斷引用計數(shù)是否為0,若是,進入S567;若否,進入S568;
[0043]S567.調(diào)用關聯(lián)端口對應的芯片驅動模塊接口,將關聯(lián)端口的端口編號、組播組地 址、VLAN值的組播表刪除;
[0044]S568.將關聯(lián)端口的端口值賦值到S561中的端口后,轉入S561。
[0045] 本發(fā)明的有益效果在于:解決