專利名稱:一種vlan id收斂轉換的解決方法
技術領域:
本發(fā)明涉及EP0N系統(tǒng)中提供以太網(wǎng)接口的MDU型ONU的VLANID(Virtual Local Area Network Identifier,虛擬局域網(wǎng)標識符)轉換,所說的MDU型ONU尤指在用戶側具 有多個以太網(wǎng)接口的MDU型0NU,具體的說是一種VLAN ID收斂轉換的解決方法。
背景技術:
基于以太網(wǎng)方式的EPON系統(tǒng)(Ethernet Passive OpticalSystem,以太無源光 網(wǎng)絡)是一種采用點到多點結構的單纖雙向光接入網(wǎng)絡,具有很高的性價比,能夠在以太 網(wǎng)之上提供多種業(yè)務,并為終端用戶提供高達1Gbit/s的上下行帶寬。EPON系統(tǒng)由局側 的光線路終端OLT (Optical Line Terminal)、用戶側的光網(wǎng)絡單元ONU (Optical Network Unit)和光分配網(wǎng)絡ODN (Optical DistributionNetwork)組成。根據(jù)目前EPON設備的應 用場景,用戶側的光網(wǎng)絡單元ONU可以劃分為多種類型,多住戶單元MDU (Multi-Dwelling Unit)就是其中的一種。MDU具有多個用戶側接口,包括以太網(wǎng)接口、第二代非對稱數(shù)字 用戶線路ADSL2+接口 (Asymmetric Digital SubscriberLine 2+)或甚高速數(shù)字用戶環(huán) 路VDSL2接口 (Very-high-bit-rateDigital Subscriber loop),提供以太網(wǎng)/IP業(yè)務、可 以支持VoIP(Voice Over Internet Protocol, IP語音)業(yè)務,例如內(nèi)置IAD(Integrated Access Device,綜合接入設備),CATV (Co匪nityAnte麗Television,有線電視)業(yè)務, 主要應用于FTTB(Fiber ToThe Building,光纖到樓宇)/FTTC(Fiber To The Curb,光纖到 路邊)/FTTCab (Fiber To The Cabinet,光纖到交換箱)的場合。 VLAN(Virtual Local Area Network,虛擬局域網(wǎng))是為解決以太網(wǎng)的廣播問題 和安全性而提出的一種協(xié)議,它在以太網(wǎng)幀的基礎上增加了 VLAN頭,采用VLANID把用戶 劃分為更小的工作組,限制不同工作組間的用戶二層互訪,每個工作組就是一個虛擬局域 網(wǎng)。VLAN規(guī)劃是運營商組網(wǎng)應用時重點關注的問題之一,除了能夠保證用戶信息的安全隔 離,VLAN在很多情況下還起著區(qū)分標識業(yè)務類型的作用。對于多業(yè)務接入場景,運營商通 常采用不同的VLAN ID來分別標識不同的業(yè)務類型,例如普通上網(wǎng)業(yè)務,IPTV(Interactive PersonalityTV,交互式網(wǎng)絡電視)業(yè)務,VOIP業(yè)務等等。 由于接入網(wǎng)的用戶規(guī)模不斷擴大,網(wǎng)絡的運營、維護和管理工作量也逐步上升,因 此要求對終端設備特別是面向最終用戶的終端設備的配置盡可能的簡單。 一種典型的應用 場景就是ONU的用戶端口下接家庭網(wǎng)關,家庭網(wǎng)關基于不同的業(yè)務類型劃分不同的VLAN,
運營商為了便于維護,通常要求家庭網(wǎng)關的配置完全相同,即不同的家庭網(wǎng)關按照業(yè)務劃 分的VLAN全部相同,由ONU執(zhí)行VLAN轉換操作。上行轉換為網(wǎng)絡側VLAN ID,而在下行方 向上則還原成用戶側VLAN ID。對于ONU的一個用戶端口而言,有三種基本的VLAN轉換模
式i : i模式、n : i模式和i : N模式,本說明書僅對i : i模式和n : i模式進行了圖
示描述。以圖1、2為例,圖中0NU的用戶端口均為以太網(wǎng)端口,如圖i所示,i : i模式的 VLAN轉換是將用戶側不同的VLAN ID轉換成對應的網(wǎng)絡側不同的VLAN ID,如圖1所示的 拓撲結構下,OLT下連接多個0NU,每個ONU下的多個以太網(wǎng)端口都連接家庭網(wǎng)關,每個家庭網(wǎng)關均配置有3個VLAN,VLANID分別為1、2、3,上行經(jīng)過0NU的用戶端口 l(以太網(wǎng)端口 1) 分別轉換為101、102、103,經(jīng)過用戶端口 2(以太網(wǎng)端口 2)則分別轉換為201、202、203,…, 以此類推;如圖2所示,N : 1模式的VLAN轉換(收斂轉換)則是將用戶側不同的VLAN ID 轉換成對應的網(wǎng)絡側相同的VLAN ID,如圖2所示的拓撲結構下,0LT下連接多個0NU,每個 ONU下的多個以太網(wǎng)端口都連接家庭網(wǎng)關,每個家庭網(wǎng)關均配置有3個VLAN, VLAN ID分別 為1、2、3,上行經(jīng)過0NU的用戶端口 l(以太網(wǎng)端口 1)收斂轉換為101、經(jīng)過用戶端口2(以 太網(wǎng)端口2)收斂轉換為102、…,以此類推。1 : 1模式的VLAN轉換目前可以直接由以太 網(wǎng)交換芯片的硬件來實現(xiàn)。而在一些應用場景,例如需要依據(jù)用戶VLANID來進行認證或者 網(wǎng)絡側VLAN ID的數(shù)目不夠時就需要使用N : 1的VLAN轉換模式。
目前已經(jīng)存在的解決VLAN ID N : 1轉換的方法主要有下面幾種
1.靜態(tài)配置法 靜態(tài)配置方法在上行方向上與1 : 1VLAN轉換的處理方式相同,依據(jù)規(guī)則或者其 它方法將來自同一個用戶端口的用戶側不同的VLANID直接轉換成網(wǎng)絡側相同的VLAN ID; 而在下行方向上需要配置以太網(wǎng)交換芯片的靜態(tài)規(guī)則,例如可以根據(jù)MAC(Medium Access Control,媒質訪問控制)地址、以太網(wǎng)類型、以太網(wǎng)優(yōu)先級、IP(InternetProtocol,因特網(wǎng) 協(xié)議)地址以及TCP (Transmission ControlProtocol,傳輸控制協(xié)議)/UDP (User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議)端口號等區(qū)分業(yè)務流,依據(jù)這些特征對數(shù)據(jù)報文進行分類,從 而使數(shù)據(jù)報文網(wǎng)絡側相同的VLAN ID依據(jù)這些不同的特征轉換為用戶側不同的VLAN ID。
2.虛擬端口法 虛擬端口法將以太網(wǎng)交換芯片的物理端口,包括用戶側和網(wǎng)絡側的以太網(wǎng)端口按 照不同的VLAN ID劃分為多個不同的虛擬端口,硬件以虛擬端口為單位進行二層或者三層 的轉發(fā),同時建立物理端口與虛擬端口的映射表。這樣就可以將N : IVLAN收斂轉換的模 式轉變成為l : IVLAN轉換的模式。
3. Super VLAN (VLAN聚合) Super VLAN是一個三層的概念,涉及到VLAN間路由的問題。 現(xiàn)有這些技術中,靜態(tài)配置法的缺點是配置起來太過繁瑣,而且無法保證網(wǎng)絡側 的數(shù)據(jù)流就一定能夠按照靜態(tài)配置的規(guī)則來進行分類,此外也無法勝任動態(tài)改變的實際應 用場景;虛擬端口法的缺點是設計實現(xiàn)復雜,并且硬件成本昂貴,目前還很少有相應的以太 網(wǎng)交換芯片支持;Super VLAN則需要以太網(wǎng)交換芯片支持三層功能。從這三種方法的分析 來看,目前還沒有一種簡單有效而且成本低廉的VLANID N : l收斂轉換方法。
發(fā)明內(nèi)容
針對現(xiàn)有技術中存在的缺陷,本發(fā)明的目的在于提供一種VLANID收斂轉換的解
決方法,能夠簡單、方便的將下行方向上的同一個網(wǎng)絡側VLAN ID還原成多個不同的用戶側
VLAN ID,對下行部分目的MAC地址為廣播的數(shù)據(jù)流的VLAN ID也給出了轉換的解決方法,
對硬件要求較低,實現(xiàn)簡單,開發(fā)周期短并且成本低。 為達到以上目的,本發(fā)明采取的技術方案是 —種VLAN ID收斂轉換的解決方法,其特征在于包括以下步驟 步驟l,ONU上電初始化ONU上電啟動后,CPU調(diào)用初始化模塊,初始化以太網(wǎng)交換芯片硬件,從而初始化以太網(wǎng)交換芯片地址學習表;CPU同時初始化VLAN ID轉換配置表、 單個用戶端口表TT、多個用戶端口表TG的表項為空;表TT和表TG的表項結構是相同的, 但是表項的數(shù)目不同,其中表TT為針對一個用戶端口臨時存儲的表項,表TG為針對所有用 戶端口而存儲的全局表項; 步驟2,更新、分析VLAN ID轉換配置表確定VLAN ID轉換模式初始化完成后,CPU 調(diào)用配置處理模塊執(zhí)行更新操作,逐一獲取每一個用戶端口的用戶側VLAN ID和網(wǎng)絡側 VLAN ID,寫入VLAN ID轉換配置表;更新操作完成后,配置處理模塊根據(jù)分析條件對VLAN ID轉換配置表中所有用戶端口的用戶側VLAN ID和網(wǎng)絡側VLAN ID進行如下的分析操作 按照用戶側VLAN ID是否相同以及網(wǎng)絡側VLAN ID是否相同,將VLAN ID轉換模式劃分為
三種基本情形i : i、n : i和i : n,每種模式需要同時滿足與其對應的兩個分析條件,具
體的分析條件是 1 : 1模式: (1)同一個用戶端口的用戶側VLAN ID各不相同;
(2)同一個用戶端口的網(wǎng)絡側VLAN ID各不相同;
N : 1模式 (1)同一個用戶端口的用戶側VLAN ID各不相同;
(2)同一個用戶端口的網(wǎng)絡側VLAN ID均相同;
1 : N模式 (1)同一個用戶端口的用戶側VLAN ID均相同;
(2)同一個用戶端口的網(wǎng)絡側VLAN ID各不相同; 當VLAN ID轉換模式為1 : 1模式時,CPU直接通過管理控制接口完成以太網(wǎng)交 換芯片的VLAN轉換配置,實現(xiàn)用戶側VLAN ID和網(wǎng)絡側VLAN ID間的一對一的轉換;
當VLAN ID轉換模式為1 : N模式時,CPU通過管理控制接口靜態(tài)配置以太網(wǎng)交 換芯片的規(guī)則,實現(xiàn)用戶側VLAN ID和網(wǎng)絡側VLAN ID間的轉換; 當VLAN ID轉換模式為N : 1模式時,對于上行用戶側VLAN ID到網(wǎng)絡側VLAN ID 的轉換,CPU通過管理控制接口靜態(tài)配置以太網(wǎng)交換芯片的上行規(guī)則,實現(xiàn)用戶側VLAN ID 到網(wǎng)絡側VLAN ID的轉換;所述上行規(guī)則與VLAN ID轉換配置表中用戶端口 i的每一條轉 換記錄一一對應,上行規(guī)則的具體內(nèi)容 條件(l)源端口號二用戶端口編號i且(2)源VLAN ID二用戶側VLAN ID[i,j], 動作將用戶側VLAN ID[i, j]轉換為網(wǎng)絡側VLAN ID[i]; 對于下行網(wǎng)絡側VLAN ID到用戶側VLAN ID的轉換,則執(zhí)行步驟3 ; 步驟3,根據(jù)VLAN ID轉換配置表的分析結果執(zhí)行下行單播報文收斂轉換處理和
廣播報文收斂轉換處理CPU同時運行單播處理模塊和廣播處理模塊,當用戶端口的VLAN
ID轉換模式為N : l時,CPU調(diào)用單播處理模塊以l秒的間隔定期執(zhí)行下行單播報文收斂
轉換處理,同時CPU通過管理控制接口向以太網(wǎng)交換芯片增加一條規(guī)則,將該用戶端口下
行方向上的ARP (Address Resolution Protocol ,地址解析協(xié)議)廣播報文和DHCP (Dynamic
Host ConfigurationProtocol,動態(tài)主機分配協(xié)議)廣播報文重定向到CPU ;CPU調(diào)用廣播
處理模塊執(zhí)行廣播報文收斂轉換處理。 在上述技術方案的基礎上,步驟3中所說的CPU調(diào)用單播處理模塊執(zhí)行下行單播報文收斂轉換處理包括以下步驟 步驟31,單播處理模塊清空每一個用戶端口 i(i = 1,2,3,……)所對應的單個 用戶端口表TT的表項,從用戶端口 1開始依次執(zhí)行以下各步驟; 步驟32,以太網(wǎng)交換芯片實時的學習用戶端口 i用戶側的MAC地址和VLAN ID 并存儲于以太網(wǎng)交換芯片地址學習表中,CPU定期的讀取以太網(wǎng)交換芯片地址學習表中的 MAC地址和VLAN ID并執(zhí)行步驟33 ;CPU通過管理控制接口讀取以太網(wǎng)交換芯片地址學習 表中的記錄,以i表示用戶端口號,以j表示以太網(wǎng)交換芯片地址學習表中用戶端口 i的第 j條記錄,用戶端口 i所學習到的用戶側的MAC地址和VLANID分別為MAC地址二 MAC[i, j], VLAN ID = VLAN ID[i, j]; 步驟33, CPU按照下面的條件篩選以太網(wǎng)交換芯片地址學習表的記錄
當"以太網(wǎng)交換芯片地址學習表中的用戶端口號=VLAN ID轉換配置表中的用戶 端口號"并且"以太網(wǎng)交換芯片地址學習表中的VLANID = VLAN ID轉換配置表中用戶側 VLAN ID"時,將篩選出來的以太網(wǎng)交換芯片地址學習表的記錄存儲到該用戶端口 i所對應 的表TT中,內(nèi)容如下 用戶端口號=i, MAC地址二以太網(wǎng)交換芯片地址學習表中的MAC地址二 MAC[i, j],VLAN ID =以太網(wǎng)交換芯片地址學習表中的VLANID = VLAN ID[i, j],占用標記=l,表 TT中的以太網(wǎng)交換芯片規(guī)則編號在步驟35時才寫入; 步驟34,按照下面的步驟比較表TT的記錄和表TG中對應該用戶端口 i的記錄,判 斷用戶端口 i的MAC地址MAC[i, j]是否發(fā)生了變化并記錄相應的變化標記;
步驟34. l,對表TT中的每個表項,如果其占用標記為l,則將其變化標記置為 "Add"; 步驟34. 2,對表TG中對應該用戶端口 i的每條記錄,如果其占用標記為l,則將其 變化標記置為"Delete"; 步驟34. 3,對表TT中的每個占用標記為1的記錄,判斷MAC[i, j]和VLAN ID[i, j]是否在表TG中用戶端口號為i的記錄中存在,判斷條件為 表TG中用戶端口 i =表17中用戶端口 i,表TG中MAC地址MAC[i, j]=表TT中 MAC地址MAC[i, j],表TG中VLAN ID VLANID [i, j]=表TT中VLAN ID VLAN ID[i, j],表 TG中的占用標記二 1 ; 如果存在,則將表TT和表TG對應記錄的變化標記均置為"NotChanged"并執(zhí)行步 驟35,如果不存在,則直接執(zhí)行步驟35 ; 步驟35,對表TT的每條記錄,如果其變化標記為"Add",則將該條記錄所對應的 MAC[i, j]、VLAN ID[i, j]、以太網(wǎng)交換芯片的上聯(lián)端口號PORTuplink和VLAN ID轉換配置 表中該用戶端口 i對應的網(wǎng)絡側VLAN ID VLAN ID[i]按照下面的條件寫入到以太網(wǎng)交換 芯片的規(guī)則表中,同時獲取返回的規(guī)則編號RULE[i, j]: 條件目的MAC地址二表TT中的MAC[i, j]、源端口號二 PORTuplink、源VLAN ID =VLAN ID轉換配置表中的網(wǎng)絡側VLAN ID[i], 動作(1)將VLAN ID轉換配置表中的網(wǎng)絡側VLAN ID[i]轉換為表TT中的VLAN ID[i, j], (2)將下行單播報文重定向到用戶端口 i,防止下行報文的洪泛;
將返回的規(guī)則編號RULE[i, j]填寫到表TT中該條記錄的以太網(wǎng)交換芯片規(guī)則編 號內(nèi),同時找到表TG對應用戶端口 i的一個空表項,按以下步驟將TT表項中的內(nèi)容復制到 其中 步驟35. l,搜索表TG中對應用戶端口 i的并且"占用標記"為0的第一條記錄,其 序號記為k,如果表TG中沒有搜索到滿足條件的記錄,則說明表TG對應用戶端口 i的記錄 已經(jīng)全部被占用了 ,不能再添加新的記錄,此時提示出錯,并轉至下一個周期繼續(xù)執(zhí)行步驟 31 37 ; 步驟35. 2,將表TT的該條記錄復制到表TG對應用戶端口 i的第k條記錄中,內(nèi)容 如下 表TG用戶端口號二 i,表TG MAC地址二表TT MAC地址二MAC[i, j],表TG VLAN ID 二表TT VLAN ID = VLAN ID[i, j],表TG以太網(wǎng)交換芯片規(guī)則編號=表TT以太網(wǎng)交換 芯片規(guī)則編號=RULE[i, j],表TG占用標記=1 ; 表TG初始化時為空,第一次執(zhí)行至步驟35時,會將表TT的內(nèi)容復制到表TG內(nèi), 完成表TG中記錄的添加,在后續(xù)的執(zhí)行周期中,表TG會根據(jù)與表TT項的比較情況執(zhí)行步 驟35的動態(tài)添加或步驟36的動態(tài)刪除;對表TT中變化標記為"NotChanged"的記錄則不 做操作; 步驟36,對表TG對應用戶端口 i的每條記錄,如果其變化標記為"Delete",則以 該條記錄所對應的以太網(wǎng)交換芯片規(guī)則編號為參數(shù)將規(guī)則從以太網(wǎng)交換芯片上刪除,并且 清空表TG中的該條記錄,即將其占用標記置為O,變化標記置為"NotChanged",以太網(wǎng)交換 芯片規(guī)則編號,MAC地址,VLAN ID都置為初始值空,如果其變化標記為"NotChanged",則不 做操作; 步驟37,轉至步驟31進行下一個用戶端口的處理,直至所有的用戶端口處理完 畢,至此一個檢測周期完成。 在上述技術方案的基礎上,步驟3中所說的CPU調(diào)用廣播處理模塊執(zhí)行廣播報文 收斂轉換處理包括以下步驟 步驟41 , CPU對接收到的下行廣播報文類型進行解析,如果是DHCP廣播報文,則完
成下面的步驟42 44 ;如果是ARP廣播報文,則完成下面的步驟45 46 ; 步驟42,解析DHCP報文攜帶的VLAN ID和凈荷中的CLIENT MAC數(shù)據(jù); 步驟43,從VLAN ID轉換配置表中篩選出用戶側VLAN ID,篩選條件是報文攜帶的VLAN ID = VLAN ID轉換配置表中的網(wǎng)絡側VLAN ID ; 如果篩選出的條目數(shù)=0,則不修改報文直接由以太網(wǎng)交換芯片轉發(fā)至用戶端口 ,
該DHCP廣播報文的處理結束; 如果篩選出的條目數(shù)> 0,則執(zhí)行步驟44 ; 步驟44,從表TG中按照下面的條件篩選出相應的數(shù)據(jù) MAC地址=CLIENT MAC并且VLAN ID =步驟43篩選出的用戶側VLAN ID,并且記 錄篩選出的對應記錄的用戶端口號;如果篩選出的條目數(shù)> O,則將DHCP報文攜帶的VLAN ID替換成本次步驟篩選出的用戶側VLAN ID并由CPU發(fā)送至該用戶端口 ;如果篩選出的條 目數(shù)=O,則不做替換直接將報文在所在的VLAN內(nèi)廣播; 步驟45,解析下行ARP報文攜帶的VLAN ID,并按照下面的條件從VLAN ID轉換配置表中篩選出用戶側VLAN ID: 報文攜帶的VLAN ID = VLAN ID轉換配置表網(wǎng)絡側VLAN ID ; 如果篩選出的條目數(shù)=0,則不修改報文直接由以太網(wǎng)交換芯片轉發(fā)至用戶端口 ,
該ARP廣播報文的處理結束; 如果篩選出的條目數(shù)> O,則記錄篩選出的VLAN ID轉換配置表中用戶側的VLAN ID和用戶端口號并執(zhí)行步驟46 ; 步驟46,復制ARP報文,每個ARP報文攜帶步驟45篩選出來的用戶側VLAN ID發(fā) 送至相應的用戶端口。 本發(fā)明所述的VLAN ID收斂轉換的解決方法,能夠簡單、方便的將下行方向上的同 一個網(wǎng)絡側VLAN ID還原成多個不同的用戶側VLANID,對下行部分目的MAC地址為廣播的 數(shù)據(jù)流的VLAN ID也給出了轉換的解決方法,對硬件要求較低,實現(xiàn)簡單,開發(fā)周期短并且 成本低。
本發(fā)明有如下附圖 圖1. EPON系統(tǒng)中ONU進行VLAN ID 1 : 1轉換的應用場景 圖2. EPON系統(tǒng)中ONU進行VLAN ID N : 1收斂轉換的應用場景 圖3. MDU型ONU的硬件結構示意圖 圖4. MDU型ONU的軟件模塊示意圖 圖5.圖2應用場景下的VLAN ID轉換配置表 圖6.通用情況下的VLAN ID轉換配置表 圖7.以太網(wǎng)交換芯片地址學習表 圖8.單個用戶端口表TT 圖9.多個用戶端口表TG 圖10.單播報文的處理流程圖 圖11. DHCP廣播報文的處理流程圖 圖12. ARP廣播報文的處理流程圖
具體實施例方式
以下結合附圖對本發(fā)明作進一步詳細說明。 圖3為本發(fā)明涉及的用于實現(xiàn)VLAN ID收斂轉換的MDU型ONU的硬件結構示意圖, ONU包含三個硬件模塊以太網(wǎng)交換芯片、CPU和EPON芯片。以太網(wǎng)交換芯片的上聯(lián)端口與 EPON芯片以太網(wǎng)側接口相連,以太網(wǎng)交換芯片的管理控制接口與CPU相連,用戶端口 1 用 戶端口 16則分別與家庭網(wǎng)關相連,需要說明的是,本發(fā)明為了清楚、完整的描述技術方案, 文中均用具有16個用戶端口的0NU為例進行闡述,用戶端口的具體數(shù)量并不必然是16個, 不同的MDU型ONU的用戶端口數(shù)量是不同的,均適用本發(fā)明所述方法,不能將16個用戶端 口視為對本發(fā)明所述技術方案的限定。通常情況下,數(shù)據(jù)的轉發(fā)由以太網(wǎng)交換芯片來完成, 以太網(wǎng)交換芯片的控制和管理則由CPU完成,CPU不參與數(shù)據(jù)的轉發(fā)。在特別情況下,例如 以太網(wǎng)交換芯片將部分報文重定向到CPU處理時,CPU需要參與數(shù)據(jù)的轉發(fā)。在本發(fā)明中,以太網(wǎng)交換芯片完成地址的學習、數(shù)據(jù)的轉發(fā)以及依據(jù)相應的規(guī)則完成VLAN ID的轉換,而 CPU完成對以太網(wǎng)交換芯片所學習到的地址的輪詢,控制以太網(wǎng)交換芯片規(guī)則的創(chuàng)建和刪 除,同時轉發(fā)部分廣播報文。 圖4為本發(fā)明涉及的用于實現(xiàn)VLAN ID收斂轉換的MDU型0NU的軟件模塊示意 圖。該軟件劃分為四個模塊,初始化模塊、配置處理模塊、單播處理模塊以及廣播處理模塊。 這些模塊均在圖3所示的CPU上運行,并且獨立于CPU上運行的其它軟件模塊。初始化模 塊完成以太網(wǎng)交換芯片硬件的初始化,從而完成圖7所示的以太網(wǎng)交換芯片地址學習表的 初始化,同時完成圖6、圖8和圖9所示的軟件表項的初始化。配置處理模塊完成圖6所示 VLAN ID轉換配置表的表項的記錄、分析和更新。單播處理模塊和廣播處理模塊則完成實際 的VLAN ID收斂轉換。 圖5和圖6為本發(fā)明涉及的VLAN ID轉換配置表,其中圖6是對圖5的概括,圖5 是針對圖2所示的N : 1VLAN收斂轉換場景的配置表,圖6是針對通用情況的轉換配置表。 轉換配置表中的一條記錄標識一個用戶端口的一條VLAN ID轉換業(yè)務。圖5中,以用戶端 口 1為例,該表表示在上行方向上將用戶側VLAN ID 1 16收斂成網(wǎng)絡側VLAN ID IOI,而 在下行方向上需要將網(wǎng)絡側VLAN ID 101還原成用戶側VLAN ID 1 16 ;以用戶端口 2為 例,該表表示在上行方向上將用戶側VLAN ID 1 16收斂成網(wǎng)絡側VLAN ID 102,而在下行 方向上需要將網(wǎng)絡側VLAN ID 102還原成用戶側VLAN ID 1 16,……,以此類推。該表 的各條記錄可以根據(jù)實際組網(wǎng)情況配置成不同的數(shù)值。為方便后面的描述,采用圖6來表 示更為一般的VLAN ID轉換配置表,即對應用戶端口 i,用戶側VLAN ID分別為VLAN ID[i, 1]、VLANID[i,2]、…、VLAN ID[i, j]、…、VLAN ID[i, 15] 、 VLAN ID[i, 16],上行方向上都 收斂成網(wǎng)絡側VLAN ID[i],而下行方向上需要將網(wǎng)絡側VLAN ID[i]分別還原成用戶側VLAN ID[i,l]、VLAN ID[i,2]、…、VLAN ID[i,j]、…、VLAN ID[i, 15] 、VLAN ID[i,16]。圖6所 示為一個用戶端口配置至多16條VLAN ID收斂轉換配置記錄,實際可以根據(jù)需要以及以太 網(wǎng)交換芯片的規(guī)則條目數(shù)進行裁剪或者擴展。 圖7為本發(fā)明涉及的以太網(wǎng)交換芯片地址學習表。該表由以太網(wǎng)交換芯片維護, 表中的記錄以MAC地址+VLAN ID為索弓I ,本發(fā)明僅涉及用戶側MAC地址和用戶側VLAN ID。通常情況下,以太網(wǎng)交換芯片學習到新的地址時會向以太網(wǎng)交換芯片地址學習表中添 加一條記錄,地址老化時則會刪除相應記錄。CPU通過以太網(wǎng)交換芯片的管理控制接口獲 取該表,例如用戶端口 1從用戶側學習到的一個地址表項為MAC地址二 MAC[l,l], VLAN ID = VLANID[l,l];再例如用戶端口 1還學習到的一個地址表項為MAC地址二 MAC[1,2],
VLANID = VLAN ID[1,2],......,圖7中用戶端口 1共計學到16個MAC地址和16個VLAN
ID,……,以此類推。圖7所示為每一個用戶端口從用戶側學習了 16條地址,一共有16個 用戶端口 ,故共有256條記錄。以太網(wǎng)交換芯片用戶側地址學習的記錄條目數(shù)不限于此,由 于圖8所示的表TT的條目數(shù)為了舉例方便而限制為16條,即由圖7按照條件進行篩選時 每個端口的條目數(shù)受限于16條,因此圖7僅對每個端口列出了 16條地址學習記錄。
由于本發(fā)明通過動態(tài)檢測以太網(wǎng)交換芯片上行用戶端口所學習的用戶側的MAC 地址和VLAN ID來生成其在下行方向上網(wǎng)絡側VLAN ID轉換的規(guī)則,因此上行學習到的用 戶側VLAN ID需要匹配圖6中用戶側VLAN ID而不是網(wǎng)絡側VLAN ID。由此決定了 N : 1 模式下VLAN ID的上行VLAN ID轉換需要在以太網(wǎng)交換芯片地址學習和轉發(fā)之后完成。對于本發(fā)明所涉及的MDU硬件結構中以太網(wǎng)交換芯片而言,上行存在兩種VLAN ID轉換方法
(1)在用戶側即用戶端口的入端直接使用VLAN TO VLAN表進行轉換;
(2)在網(wǎng)絡側即上聯(lián)端口的出端通過規(guī)則使用FLOW VLAN表進行轉換。
其中方法(1)是在以太網(wǎng)交換芯片的入端口完成,上行方向上首先經(jīng)過VLAN TO VLAN表進行VLAN ID轉換,然后進行二層或者三層的學習和轉發(fā),因此以太網(wǎng)交換芯片地 址學習到的VLAN ID是經(jīng)過VLAN TO VLAN表轉換之后的VLAN ID ;方法(2)首先進行二層 或者三層的學習轉發(fā),然后依據(jù)規(guī)則在以太網(wǎng)交換芯片上聯(lián)端口完成VLANID轉換。因此地 址學習到的VLANID是未經(jīng)過VLAN TO VLAN表轉換的VLAN ID。為了實現(xiàn)N : 1VLAN ID收 斂轉換,上行方向上需要靜態(tài)配置規(guī)則并使用FLOW VLAN表來實現(xiàn)VLAN ID轉換,即采用方 法(2)。 圖8和圖9為本發(fā)明涉及的VLAN ID收斂轉換處理流程中使用的表。兩者的表項 結構是相同的,但是針對的對象不同,圖8針對單個用戶端口,圖9針對多個用戶端口。
圖8和圖9表項中的主要參數(shù)具體說明如下 MAC地址、VLAN ID :上行方向上以太網(wǎng)交換芯片學習到的用戶側的MAC地址和
VLAN ID,該VLAN ID需要是圖6中所配置的對應端口的用戶側VLAN ID。 以太網(wǎng)交換芯片規(guī)則編號以太網(wǎng)交換芯片在下行方向上將網(wǎng)絡側VLAN ID還
原成用戶側各個VLAN ID的規(guī)則編號。其格式可以如圖8、9所示也可以采用其他格式,
RULE[i,l]、……、RULE[i,16]中的i代表用戶端口號,后面的數(shù)字1 16代表第幾條規(guī)則。 占用標記位標記本條記錄是否有效,置成1表示有效,置成0表示無效。
變化標記位標記本條記錄是添加"Add"、刪除"Delete"還是無變化 "NotChanged"。且圖8所示的表TT中只能出現(xiàn)Add和NotChanged,圖9所示的表TG中只 能出現(xiàn)Delete和NotChanged。 本發(fā)明公開了一種VLAN ID收斂轉換的解決方法,包括以下步驟
步驟l,ONU上電初始化ONU上電啟動后,CPU調(diào)用初始化模塊,初始化以太網(wǎng)交換 芯片硬件,從而初始化以太網(wǎng)交換芯片地址學習表;CPU同時初始化VLAN ID轉換配置表、 單個用戶端口表TT、多個用戶端口表TG的表項為空;表TT和表TG的表項結構是相同的, 但是表項的數(shù)目不同,其中表TT為針對一個用戶端口臨時存儲的表項,表TG為針對所有用 戶端口而存儲的全局表項; 步驟2,更新、分析VLAN ID轉換配置表確定VLAN ID轉換模式初始化完成后,CPU 調(diào)用配置處理模塊執(zhí)行更新操作,逐一獲取每一個用戶端口的用戶側VLAN ID和網(wǎng)絡側 VLAN ID,寫入VLAN ID轉換配置表;更新操作完成后,配置處理模塊根據(jù)分析條件對VLAN ID轉換配置表中所有用戶端口的用戶側VLAN ID和網(wǎng)絡側VLAN ID進行如下的分析操作 按照用戶側VLAN ID是否相同以及網(wǎng)絡側VLAN ID是否相同,將VLAN ID轉換模式劃分為
三種基本情形i : i、n : i和i : n,每種模式需要同時滿足與其對應的兩個分析條件,具
體的分析條件是 1 : l模式 (1)同一個用戶端口的用戶側VLAN ID各不相同;
(2)同一個用戶端口的網(wǎng)絡側VLAN ID各不相同;
N : 1模式 (1)同一個用戶端口的用戶側VLAN ID各不相同;
(2)同一個用戶端口的網(wǎng)絡側VLAN ID均相同;
1 : N模式 (1)同一個用戶端口的用戶側VLAN ID均相同;
(2)同一個用戶端口的網(wǎng)絡側VLAN ID各不相同; 當VLAN ID轉換模式為1 : l模式時,CPU直接通過管理控制接口完成以太網(wǎng)交 換芯片的VLAN轉換配置,實現(xiàn)用戶側VLAN ID和網(wǎng)絡側VLAN ID間的一對一的轉換;
當VLAN ID轉換模式為1 : N模式時,CPU通過管理控制接口靜態(tài)配置以太網(wǎng)交 換芯片的規(guī)則,實現(xiàn)用戶側VLAN ID和網(wǎng)絡側VLAN ID間的轉換; 當VLAN ID轉換模式為N : 1模式時,對于上行用戶側VLAN ID到網(wǎng)絡側VLAN ID 的轉換,CPU通過管理控制接口靜態(tài)配置以太網(wǎng)交換芯片的上行規(guī)則,實現(xiàn)用戶側VLAN ID 到網(wǎng)絡側VLAN ID的轉換;所述上行規(guī)則與VLAN ID轉換配置表中用戶端口 i的每一條轉 換記錄一一對應,上行規(guī)則的具體內(nèi)容為 條件(l)源端口號二用戶端口編號i且(2)源VLAN ID二用戶側VLAN ID[i,j],動作將用戶側VLAN ID[i, j]轉換為網(wǎng)絡側VLAN ID[i];對于下行網(wǎng)絡側VLAN ID到用戶側VLAN ID的轉換,執(zhí)行步驟3 ; 步驟3,根據(jù)VLAN ID轉換配置表的分析結果執(zhí)行下行單播報文收斂轉換處理和
廣播報文收斂轉換處理CPU同時運行單播處理模塊和廣播處理模塊,當用戶端口的VLAN
ID轉換模式為N : 1時,CPU調(diào)用單播處理模塊以l秒的間隔定期執(zhí)行下行單播報文收斂
轉換處理,同時CPU通過管理控制接口向以太網(wǎng)交換芯片增加一條規(guī)則,將該用戶端口下
行方向上的ARP廣播報文和DHCP廣播報文重定向到CPU ;CPU調(diào)用廣播處理模塊執(zhí)行廣播
報文收斂轉換處理。 在上述技術方案的基礎上,如圖10所示,步驟3中所說的CPU調(diào)用單播處理模塊 執(zhí)行下行單播報文收斂轉換處理包括以下步驟 步驟31,單播處理模塊清空每一個用戶端口 i(i = 1,2,3,……)所對應的單個 用戶端口表TT的表項,從用戶端口 1開始依次執(zhí)行以下各步驟; 步驟32,以太網(wǎng)交換芯片實時的學習用戶端口 i用戶側的MAC地址和VLAN ID 并存儲于以太網(wǎng)交換芯片地址學習表中,CPU定期的讀取以太網(wǎng)交換芯片地址學習表中的 MAC地址和VLAN ID并執(zhí)行步驟33 ;CPU通過管理控制接口讀取以太網(wǎng)交換芯片地址學習 表中的記錄,以i表示用戶端口號,以j表示以太網(wǎng)交換芯片地址學習表中用戶端口 i的第 j條記錄,用戶端口 i所學習到的用戶側的MAC地址和VLANID分別為MAC地址=MAC[i, j], VLAN ID = VLANID[i, j]; 步驟33, CPU按照下面的條件篩選以太網(wǎng)交換芯片地址學習表的記錄
當"以太網(wǎng)交換芯片地址學習表中的用戶端口號=VLAN ID轉換配置表中的用戶 端口號"并且"以太網(wǎng)交換芯片地址學習表中的VLANID = VLAN ID轉換配置表中用戶側 VLAN ID"時,將篩選出來的以太網(wǎng)交換芯片地址學習表的記錄存儲到該用戶端口 i所對應 的表TT中,內(nèi)容如下 用戶端口號=i, MAC地址二以太網(wǎng)交換芯片地址學習表中的MAC地址二MAC[i,j],VLAN ID =以太網(wǎng)交換芯片地址學習表中的VLANID = VLAN ID[i, j],占用標記=l,表 TT中的以太網(wǎng)交換芯片規(guī)則編號在步驟35時才寫入; 步驟34,按照下面的步驟比較表TT的記錄和表TG中對應該用戶端口 i的記錄,判 斷用戶端口 i的MAC地址MAC[i, j]是否發(fā)生了變化并記錄相應的變化標記;
步驟34. l,對表TT中的每個表項,如果其占用標記為l,則將其變化標記置為 "Add"; 步驟34. 2,對表TG中對應該用戶端口 i的每條記錄,如果其占用標記為l,則將其 變化標記置為"Delete"; 步驟34. 3,對表TT中的每個占用標記為1的記錄,判斷MAC[i, j]和VLAN ID[i, j]是否在表TG中用戶端口號為i的記錄中存在,判斷條件為 表TG中用戶端口 i =表17中用戶端口 i,表TG中MAC地址MAC[i, j]=表TT中 MAC地址MAC[i, j],表TG中VLAN ID VLANID[i, j]=表TT中VLAN ID VLAN ID[i, j],表 TG中的占用標記二 1 ; 如果存在,則將表TT和表TG對應記錄的變化標記均置為"NotChanged"并執(zhí)行步 驟35,如果不存在,則直接執(zhí)行步驟35 ; 步驟35,對表TT的每條記錄,如果其變化標記為"Add",則將該條記錄所對應的 MAC[i, j]、VLAN ID[i, j]、以太網(wǎng)交換芯片的上聯(lián)端口號PORTuplink和VLAN ID轉換配置 表中該用戶端口 i對應的網(wǎng)絡側VLAN ID VLAN ID[i]按照下面的條件寫入到以太網(wǎng)交換 芯片的規(guī)則表中,同時獲取返回的規(guī)則編號RULE[i, j]: 條件目的MAC地址二表TT中的MAC[i, j]、源端口號二 PORTuplink、源VLAN ID =VLAN ID轉換配置表中的網(wǎng)絡側VLAN ID[i], 動作(1)將VLAN ID轉換配置表中的網(wǎng)絡側VLAN ID[i]轉換為表TT中的VLAN ID[i, j], (2)將下行單播報文重定向到用戶端口 i,防止下行報文的洪泛;
將返回的規(guī)則編號RULE[i, j]填寫到表TT中該條記錄的以太網(wǎng)交換芯片規(guī)則編 號內(nèi),同時找到表TG對應用戶端口 i的一個空表項,按以下步驟將TT表項中的內(nèi)容復制到 其中 步驟35. l,搜索表TG中對應用戶端口 i的并且"占用標記"為0的第一條記錄,其 序號記為k,如果表TG中沒有搜索到滿足條件的記錄,則說明表TG對應用戶端口 i的記錄 已經(jīng)全部被占用了 ,不能再添加新的記錄,此時提示出錯,并轉至下一個周期繼續(xù)執(zhí)行步驟 31 37 ; 步驟35.2,將表TT的該條記錄復制到表TG對應用戶端口 i的第k條記錄中,內(nèi)容 如下 表TG用戶端口號二 i,表TG MAC地址二表TT MAC地址二MAC[i, j],表TG VLAN ID 二表TT VLAN ID = VLAN ID[i, j],表TG以太網(wǎng)交換芯片規(guī)則編號=表TT以太網(wǎng)交換 芯片規(guī)則編號=RULE[i, j],表TG占用標記=1 ; 表TG初始化時為空,第一次執(zhí)行至步驟35時,會將表TT的內(nèi)容復制到表TG內(nèi), 完成表TG中記錄的添加,在后續(xù)的執(zhí)行周期中,表TG會根據(jù)與表TT項的比較情況執(zhí)行步 驟35的動態(tài)添加或步驟36的動態(tài)刪除;對表TT中變化標記為"NotChanged"的記錄則不做操作; 步驟36,對表TG對應用戶端口 i的每條記錄,如果其變化標記為"Delete",則以 該條記錄所對應的以太網(wǎng)交換芯片規(guī)則編號為參數(shù)將規(guī)則從以太網(wǎng)交換芯片上刪除,并且 清空表TG中的該條記錄,即將其占用標記置為O,變化標記置為"NotChanged",以太網(wǎng)交換 芯片規(guī)則編號,MAC地址,VLAN ID都置為初始值空,如果其變化標記為"NotChanged",則不 做操作; 步驟37,轉至步驟31進行下一個用戶端口的處理,直至所有的用戶端口處理完 畢,至此一個檢測周期完成。 在上述技術方案的基礎上,如圖11、12所示,步驟3中所說的CPU調(diào)用廣播處理模 塊執(zhí)行廣播報文收斂轉換處理包括以下步驟 步驟41 , CPU對接收到的下行廣播報文類型進行解析,如果是DHCP廣播報文,則完
成下面的步驟42 44 ;如果是ARP廣播報文,則完成下面的步驟45 46 ; 步驟42,解析DHCP報文攜帶的VLAN ID和凈荷中的CLIENT MAC數(shù)據(jù); 步驟43,從VLAN ID轉換配置表中篩選出用戶側VLAN ID,篩選條件是報文攜帶的VLAN ID = VLAN ID轉換配置表中的網(wǎng)絡側VLAN ID ; 如果篩選出的條目數(shù)=0,則不修改報文直接由以太網(wǎng)交換芯片轉發(fā)至用戶端口 ,
該DHCP廣播報文的處理結束; 如果篩選出的條目數(shù)> O,則執(zhí)行步驟44 ; 步驟44,從表TG中按照下面的條件篩選出相應的數(shù)據(jù) MAC地址=CLIENT MAC并且VLAN ID =步驟43篩選出的用戶側VLAN ID,并且記 錄篩選出的對應記錄的用戶端口號;如果篩選出的條目數(shù)> O,則將DHCP報文攜帶的VLAN ID替換成本次步驟篩選出的用戶側VLAN ID并由CPU發(fā)送至該用戶端口 ;如果篩選出的條 目數(shù)=O,則不做替換直接將報文在所在的VLAN內(nèi)廣播; 步驟45,解析下行ARP報文攜帶的VLAN ID,并按照下面的條件從VLAN ID轉換配 置表中篩選出用戶側VLAN ID:報文攜帶的VLAN ID = VLAN ID轉換配置表網(wǎng)絡側VLAN ID ; 如果篩選出的條目數(shù)=0,則不修改報文直接由以太網(wǎng)交換芯片轉發(fā)至用戶端口 ,
該ARP廣播報文的處理結束; 如果篩選出的條目數(shù)> O,則記錄篩選出的VLAN ID轉換配置表中用戶側的VLAN ID和用戶端口號并執(zhí)行步驟46 ; 步驟46,復制ARP報文,每個ARP報文攜帶步驟45篩選出來的用戶側VLAN ID發(fā) 送至相應的用戶端口。 本發(fā)明在上行方向上采用靜態(tài)規(guī)則實現(xiàn)用戶側VLAN ID到網(wǎng)絡側VLAN ID的收斂 轉換,在下行方向上分別針對單播報文、DHCP廣播和ARP廣播報文說明了網(wǎng)絡側VLAN ID到 用戶側VLAN ID的還原。對于下行單播報文,軟件模塊動態(tài)檢測以太網(wǎng)交換芯片上行方向 上用戶側端口所學習的MAC地址和VLAN ID,以此MAC地址作為下行的目的MAC地址進行流 分類,以此VLAN ID作為用戶側VLAN ID,同時結合VLANID轉換配置表中對應該用戶端口的 網(wǎng)絡側VLAN ID來生成以太網(wǎng)交換芯片下行方向上網(wǎng)絡側VLAN ID轉換規(guī)則,并能通過檢 測地址學習的變化來實時更新相應的規(guī)則。對于下行廣播報文,本發(fā)明選取了具有代表性并且使用較多的DHCP廣播報文和ARP廣播報文進行說明,其它廣播報文可以此作為參考。
該方法不局限于一個用戶端口上行方向上多個不同的用戶側VLAN ID僅收斂成相 同的一個網(wǎng)絡側VLAN ID的情況,對于一個用戶端口存在多組收斂的VLAN ID仍然適用。 例如對于用戶端口 l,用戶側的VLAN ID 1 8收斂成網(wǎng)絡側的VLAN ID IOOI,而用戶側的 VLANID 9 16收斂成網(wǎng)絡側的VLAN ID 1002等。 簡而言之,本發(fā)明實現(xiàn)起來極為簡單,通過軟件來定期動態(tài)檢測用戶側的所學習 的MAC地址和VLAN ID來寫入硬件的規(guī)則表從而讓硬件來在下行方向上匹配相應的規(guī)則或 者重定向相關報文到CPU進行VLAN ID的還原處理。對硬件的要求很低,僅需要硬件支持相 應的規(guī)則并且硬件能夠支持VLAN ID的轉換的基本操作就行??梢院芎玫倪m用于當前EPON 系統(tǒng)承載多業(yè)務并降低ONU成本的實際需要。 以上所述僅為本發(fā)明的較佳實施例,并不用于限制本發(fā)明,凡在本發(fā)明精神和原 則之內(nèi)所做的任何修改、等同替換和改進等,均含于本發(fā)明的保護范圍之內(nèi)。
權利要求
一種VLAN ID收斂轉換的解決方法,其特征在于包括以下步驟步驟1,ONU上電初始化ONU上電啟動后,CPU調(diào)用初始化模塊,初始化以太網(wǎng)交換芯片硬件,從而初始化以太網(wǎng)交換芯片地址學習表;CPU同時初始化VLAN ID轉換配置表、單個用戶端口表TT、多個用戶端口表TG的表項為空;表TT和表TG的表項結構是相同的,但是表項的數(shù)目不同,其中表TT為針對一個用戶端口臨時存儲的表項,表TG為針對所有用戶端口而存儲的全局表項;步驟2,更新、分析VLAN ID轉換配置表確定VLAN ID轉換模式初始化完成后,CPU調(diào)用配置處理模塊執(zhí)行更新操作,逐一獲取每一個用戶端口的用戶側VLAN ID和網(wǎng)絡側VLAN ID,寫入VLAN ID轉換配置表;更新操作完成后,配置處理模塊根據(jù)分析條件對VLAN ID轉換配置表中所有用戶端口的用戶側VLAN ID和網(wǎng)絡側VLAN ID進行如下的分析操作按照用戶側VLAN ID是否相同以及網(wǎng)絡側VLAN ID是否相同,將VLAN ID轉換模式劃分為三種基本情形1:1、N:1和1:N,每種模式需要同時滿足與其對應的兩個分析條件,具體的分析條件是1:1模式(1)同一個用戶端口的用戶側VLAN ID各不相同;(2)同一個用戶端口的網(wǎng)絡側VLAN ID各不相同;N:1模式(1)同一個用戶端口的用戶側VLAN ID各不相同;(2)同一個用戶端口的網(wǎng)絡側VLAN ID均相同;1:N模式(1)同一個用戶端口的用戶側VLAN ID均相同;(2)同一個用戶端口的網(wǎng)絡側VLAN ID各不相同;當VLANID轉換模式為1:1模式時,CPU直接通過管理控制接口完成以太網(wǎng)交換芯片的VLAN轉換配置,實現(xiàn)用戶側VLAN ID和網(wǎng)絡側VLAN ID間的一對一的轉換;當VLAN ID轉換模式為1:N模式時,CPU通過管理控制接口靜態(tài)配置以太網(wǎng)交換芯片的規(guī)則,實現(xiàn)用戶側VLAN ID和網(wǎng)絡側VLAN ID間的轉換;當VLAN ID轉換模式為N:1模式時,對于上行用戶側VLAN ID到網(wǎng)絡側VLAN ID的轉換,CPU通過管理控制接口靜態(tài)配置以太網(wǎng)交換芯片的上行規(guī)則,實現(xiàn)用戶側VLAN ID到網(wǎng)絡側VLAN ID的轉換;所述上行規(guī)則與VLAN ID轉換配置表中用戶端口i的每一條轉換記錄一一對應,上行規(guī)則的具體內(nèi)容為條件(1)源端口號=用戶端口編號i且(2)源VLAN ID=用戶側VLAN ID[i,j],動作將用戶側VLAN ID[i,j]轉換為網(wǎng)絡側VLAN ID[i];對于下行網(wǎng)絡側VLAN ID到用戶側VLAN ID的轉換,則執(zhí)行步驟3;步驟3,根據(jù)VLAN ID轉換配置表的分析結果執(zhí)行下行單播報文收斂轉換處理和廣播報文收斂轉換處理CPU同時運行單播處理模塊和廣播處理模塊,當用戶端口的VLAN ID轉換模式為N:1時,CPU調(diào)用單播處理模塊以1秒的間隔定期執(zhí)行下行單播報文收斂轉換處理,同時CPU通過管理控制接口向以太網(wǎng)交換芯片增加一條規(guī)則,將該用戶端口下行方向上的ARP廣播報文和DHCP廣播報文重定向到CPU;CPU調(diào)用廣播處理模塊執(zhí)行廣播報文收斂轉換處理。
2.如權利要求1所述的VLAN ID收斂轉換的解決方法,其特征在于步驟3中所說的 CPU調(diào)用單播處理模塊執(zhí)行下行單播報文收斂轉換處理包括以下步驟步驟31,單播處理模塊清空每一個用戶端口 i(i = 1,2,3,……)所對應的單個用戶 端口表TT的表項,從用戶端口 1開始依次執(zhí)行以下各步驟;步驟32,以太網(wǎng)交換芯片實時的學習用戶端口 i用戶側的MAC地址和VLAN ID并存儲 于以太網(wǎng)交換芯片地址學習表中,CPU定期的讀取以太網(wǎng)交換芯片地址學習表中的MAC地 址和VLAN ID并執(zhí)行步驟33 ;CPU通過管理控制接口讀取以太網(wǎng)交換芯片地址學習表中的 記錄,以i表示用戶端口號,以j表示以太網(wǎng)交換芯片地址學習表中用戶端口 i的第j條記 錄,用戶端口 i所學習到的用戶側的MAC地址和VLANID分別為MAC地址=MAC [i , j] , VLAN ID = VLAN ID[i, j];步驟33, CPU按照下面的條件篩選以太網(wǎng)交換芯片地址學習表的記錄當"以太網(wǎng)交換芯片地址學習表中的用戶端口號=VLAN ID轉換配置表中的用戶端口 號"并且"以太網(wǎng)交換芯片地址學習表中的VLANID = VLAN ID轉換配置表中用戶側VLAN ID"時,將篩選出來的以太網(wǎng)交換芯片地址學習表的記錄存儲到該用戶端口 i所對應的表 TT中,內(nèi)容如下用戶端口號=i, MAC地址二以太網(wǎng)交換芯片地址學習表中的MAC地址二 MAC[i, j], VLAN ID =以太網(wǎng)交換芯片地址學習表中的VLANID = VLAN ID[i, j],占用標記=l,表TT 中的以太網(wǎng)交換芯片規(guī)則編號在步驟35時才寫入;步驟34,按照下面的步驟比較表TT的記錄和表TG中對應該用戶端口 i的記錄,判斷用 戶端口 i的MAC地址MAC[i, j]是否發(fā)生了變化并記錄相應的變化標記;步驟34. l,對表TT中的每個表項,如果其占用標記為l,則將其變化標記置為"Add";步驟34. 2,對表TG中對應該用戶端口 i的每條記錄,如果其占用標記為l,則將其變化 標記置為"Delete";步驟34. 3,對表TT中的每個占用標記為1的記錄,判斷MAC[i,j]和VLAN ID[i,j]是 否在表TG中用戶端口號為i的記錄中存在,判斷條件為表TG中用戶端口 i 二表TT中用戶端口 i,表TG中MAC地址MAC[i, j] 二表TT中MAC 地址MAC [i , j],表TG中VLAN ID VLANID [i,j] 二表TT中VLAN ID VLAN ID[i,j],表TG中 的占用標記=1 ;如果存在,則將表TT和表TG對應記錄的變化標記均置為"NotChanged"并執(zhí)行步驟 35,如果不存在,則直接執(zhí)行步驟35 ;步驟35,對表TT的每條記錄,如果其變化標記為"Add",則將該條記錄所對應的MAC [i , j]、VLAN ID[i, j]、以太網(wǎng)交換芯片的上聯(lián)端口號PORTuplink和VLAN ID轉換配置表中該 用戶端口 i對應的網(wǎng)絡側VLAN ID VLAN ID[i]按照下面的條件寫入到以太網(wǎng)交換芯片的 規(guī)則表中,同時獲取返回的規(guī)則編號RULE[i, j]:條件目的MAC地址二表TT中的MAC[i, j]、源端口號=PORTuplink、源VLAN ID = VLAN ID轉換配置表中的網(wǎng)絡側VLAN ID[i],動作(1)將VLAN ID轉換配置表中的網(wǎng)絡側VLAN ID[i]轉換為表TT中的VLAN ID[i,j],(2)將下行單播報文重定向到用戶端口 i,防止下行報文的洪泛;將返回的規(guī)則編號RULE[i,j]填寫到表TT中該條記錄的以太網(wǎng)交換芯片規(guī)則編號內(nèi), 同時找到表TG對應用戶端口 i的一個空表項,按以下步驟將TT表項中的內(nèi)容復制到其中步驟35. l,搜索表TG中對應用戶端口 i的并且"占用標記"為O的第一條記錄,其序 號記為k,如果表TG中沒有搜索到滿足條件的記錄,則說明表TG對應用戶端口 i的記錄 已經(jīng)全部被占用了 ,不能再添加新的記錄,此時提示出錯,并轉至下一個周期繼續(xù)執(zhí)行步驟 31 37 ;步驟35.2,將表TT的該條記錄復制到表TG對應用戶端口 i的第k條記錄中,內(nèi)容如下表TG用戶端口號二 i,表TG MAC地址二表TT MAC地址二 MAC[i, j],表TG VLAN ID = 表TT VLAN ID = VLAN ID[i, j],表TG以太網(wǎng)交換芯片規(guī)則編號=表TT以太網(wǎng)交換芯片 規(guī)則編號=RULE[i, j],表TG占用標記=1 ;表TG初始化時為空,第一次執(zhí)行至步驟35時,會將表TT的內(nèi)容復制到表TG內(nèi),完成表 TG中記錄的添加,在后續(xù)的執(zhí)行周期中,表TG會根據(jù)與表TT項的比較情況執(zhí)行步驟35的 動態(tài)添加或步驟36的動態(tài)刪除;對表TT中變化標記為"NotChanged"的記錄則不做操作;步驟36,對表TG對應用戶端口 i的每條記錄,如果其變化標記為"Delete",則以該條 記錄所對應的以太網(wǎng)交換芯片規(guī)則編號為參數(shù)將規(guī)則從以太網(wǎng)交換芯片上刪除,并且清空 表TG中的該條記錄,即將其占用標記置為O,變化標記置為"NotChanged",以太網(wǎng)交換芯片 規(guī)則編號,MAC地址,VLAN ID都置為初始值空,如果其變化標記為"NotChanged",則不做操 作;步驟37,轉至步驟31進行下一個用戶端口的處理,直至所有的用戶端口處理完畢,至 此一個檢測周期完成。
3.如權利要求1所述的VLAN ID收斂轉換的解決方法,其特征在于步驟3中所說的 CPU調(diào)用廣播處理模塊執(zhí)行廣播報文收斂轉換處理包括以下步驟步驟41 , CPU對接收到的下行廣播報文類型進行解析,如果是DHCP廣播報文,則完成下 面的步驟42 44 ;如果是ARP廣播報文,則完成下面的步驟45 46 ;步驟42,解析DHCP報文攜帶的VLAN ID和凈荷中的CLIENT MAC數(shù)據(jù);步驟43,從VLAN ID轉換配置表中篩選出用戶側VLAN ID,篩選條件是報文攜帶的VLAN ID = VLAN ID轉換配置表中的網(wǎng)絡側VLAN ID ;如果篩選出的條目數(shù)=O,則不修改報文直接由以太網(wǎng)交換芯片轉發(fā)至用戶端口,該 DHCP廣播報文的處理結束;如果篩選出的條目數(shù)> 0,則執(zhí)行步驟44 ;步驟44,從表TG中按照下面的條件篩選出相應的數(shù)據(jù)MAC地址=CLIENT MAC并且VLAN ID =步驟43篩選出的用戶側VLAN ID,并且記錄篩 選出的對應記錄的用戶端口號;如果篩選出的條目數(shù)X),則將DHCP報文攜帶的VLAN ID替 換成本次步驟篩選出的用戶側VLAN ID并由CPU發(fā)送至該用戶端口 ;如果篩選出的條目數(shù) =O,則不做替換直接將報文在所在的VLAN內(nèi)廣播;步驟45,解析下行ARP報文攜帶的VLAN ID,并按照下面的條件從VLAN ID轉換配置表 中篩選出用戶側VLAN ID :報文攜帶的VLAN ID = VLAN ID轉換配置表網(wǎng)絡側VLAN ID ;如果篩選出的條目數(shù)=O,則不修改報文直接由以太網(wǎng)交換芯片轉發(fā)至用戶端口,該ARP廣播報文的處理結束;如果篩選出的條目數(shù)X),則記錄篩選出的VLAN ID轉換配置表中用戶側的VLAN ID和 用戶端口號并執(zhí)行步驟46 ;步驟46,復制ARP報文,每個ARP報文攜帶步驟45篩選出來的用戶側VLAN ID發(fā)送至 相應的用戶端口。
全文摘要
一種VLAN ID收斂轉換的解決方法,涉及EPON系統(tǒng)中提供以太網(wǎng)接口的MDU型ONU的VLAN ID轉換,其特征在于包括以下步驟步驟1.ONU上電初始化;步驟2.更新、分析VLAN ID轉換配置表確定VLAN ID轉換模式;步驟3.根據(jù)VLAN ID轉換配置表的分析結果執(zhí)行下行單播報文收斂轉換處理和廣播報文收斂轉換處理。本發(fā)明所述的解決方法,能夠簡單、方便的將下行方向上的同一個網(wǎng)絡側VLAN ID還原成多個不同的用戶側VLAN ID,對下行部分目的MAC地址為廣播的數(shù)據(jù)流的VLAN ID也給出了轉換的解決方法,對硬件要求較低,實現(xiàn)簡單,開發(fā)周期短并且成本低。
文檔編號H04L29/12GK101697555SQ200910211100
公開日2010年4月21日 申請日期2009年11月12日 優(yōu)先權日2009年11月12日
發(fā)明者尹寶清, 曾顏, 楊曉 申請人:烽火通信科技股份有限公司;