一種onu虛擬局域網標記處理裝置和方法
【技術領域】
[0001] 本發明涉及無源光網絡(Passive Optical Networks, Ρ0Ν)的光網絡單元 (Optical Network Unit, 0NU)領域,尤其涉及一種0NU包處理器及其虛擬局域網標記處理 裝置和方法。
【背景技術】
[0002] 當前無源光網絡技術主要有以太無源光網絡(Ethernet Passive Optical Network,EP0N)和吉比特無源光網絡(Gigabit-Capable Passive Optical Network,GP0N) 等幾種,它們主要差異在于采用了不同的二層技術。ΕΡ0Ν在二層采用以太網協議,將以太網 技術與Ρ0Ν技術完美結合,非常適合IP業務的寬帶接入技術。GP0N在二層采用國際電信聯 盟定義的通用成幀規程對以太網協議、異步傳輸模式、時分復用模式等多種業務進行封裝 映射,具有強大的運行、維護和管理功能。目前市場上ΕΡ0Ν和GP0N并存,都在飛速發展,在 未來的接入網絡市場,具有巨大的商機和非常廣闊的市場前景。
[0003] 根據ΕΡ0Ν和GP0N的技術標準,0NU芯片應該具有對輸入包虛擬局域網(Virtual Local Area Network, VLAN)標記(Tag)域進行處理的功能,必須能夠禁止/允許帶有特定 虛擬局域網標記(VLAN Tag)的用戶接入,也能添加、刪除、透明傳送或修改包所帶的虛擬局 域網標記(VLAN Tag)域。
[0004] 虛擬局域網區分為業務虛擬局域網(Service Provider VLAN, S-VLAN)和用戶虛 擬局域網(Customer VLAN,C-VLAN),S-VLAN是用來區分數據、語音和IPTV業務的,由運行 商提供,C-VLAN是用來區分用戶及其端口的。實際應用中有S-VLAN數據包、C-VLAN數據 包,也有既含S-VLAN也含C-VLAN的數據包。
[0005] 目前業界0NU芯片實現標記處理功能采用內嵌的精簡指令集計算機(Reduced Instruction Set Computer,RISC)或者米用三態內容尋址存儲器(Ternary Content Addressable Memory, TCAM),對數據包進行檢測和解析,根據檢測和解析的結果修改數據 包的虛擬局域網標記。根據ΕΡ0Ν和GP0N的技術標準要求0NU芯片線速處理1到10吉比特 以上的數據包。因此,當采用RISC時,需要多個RISC核結構,因而增加了 0NU芯片的設計 復雜度、面積和功耗;當采用TCAM時,TCAM本身面積和功耗較大,且需向TCAM廠家購買專 用的TCAM核,因而在增加了 0NU芯片的面積、功耗的同時,還將增加0NU芯片的生產成本。
【發明內容】
[0006] 為解決現有存在的技術問題,本發明實施例期望提供一種0NU虛擬局域網標記處 理裝置和方法,它結構簡單,低功耗并且低成本。
[0007] 本發明實施例的技術方案是這樣實現的:
[0008] 本發明實施例提供一種光網絡單元的虛擬局域網標記處理裝置,該裝置包括:標 記變換表模塊、MAC地址、輸入輸出端口號和標記信息提取模塊、標記變換表讀取模塊、標記 變換模塊、基于UNI端口寄存器配置模塊和MAC地址表管理模塊;其中,
[0009] 所述標記變換表模塊,用于存儲標記變換表,所述標記變換表中預設有用戶網絡 接口 UNI端口號和虛擬局域網標記信息與標記變換規則的對應關系;
[0010] 所述MAC地址、輸入輸出端口號和標記信息提取模塊,用于接收數據包包頭,獲取 數據包的源MAC地址、目的MAC地址、輸入/輸出UNI或Ρ0Ν端口號和虛擬局域網標記信 息;
[0011] 所述標記變換表讀取模塊,用于根據所述數據包的輸入/輸出UNI端口號從基于 UNI端口寄存器配置模塊中獲取所述數據包對應的標記信息變換方式之后,再根據所述數 據包的輸入/輸出UNI端口號和虛擬局域網標記信息,讀取所述數據包對應的標記變換表, 獲取所述數據包對應的標記變換規則;
[0012] 標記變換模塊,用于按照所述標記變換規則,對所述數據包的虛擬局域網標記信 息進彳丁變換;
[0013] 所述基于UNI端口寄存器配置模塊,用于配置基于UNI端口的寄存器的值,所述基 于UNI端口寄存器的值中包括UNI端口對應的標記變換方式;
[0014] 所述MAC地址表管理模塊,用于保存數據包的源/目的MAC地址、虛擬局域網標號 VLAN ID和包輸入/輸出端口的對應關系。
[0015] 上述方案中,按照對應的標記信息變換方式,所述標記變換表模塊包括:
[0016] 基于UNI端口號、虛擬局域網標號VLAN ID和標記優先級的標記變換表子模塊,用 于存儲基于UNI端口號、虛擬局域網標號VLAN ID和標記優先級的標記變換表,所述基于 UNI端口號、虛擬局域網標號VLAN ID和標記優先級的標記變換表中預設有UNI端口號、虛 擬局域網標記信息與標記變換規則的對應關系;
[0017] 基于UNI端口號和標記優先級的標記變換表子模塊,用于存儲基于UNI端口號、標 記優先級的標記變換表,所述基于UNI端口號、標記優先級的標記變換表預設有UNI端口 號、標記優先級與標記變換規則的對應關系;
[0018] 基于UNI端口號的單層標記包標記變換表子模塊,用于存儲單層標記包的標記變 換表,所述單層標記包的標記變換表預設有單層標記包UNI端口號與標記變換規則的對應 關系;
[0019] 基于UNI端口號的雙層標記包標記變換表子模塊,用于存儲雙層標記包的標記變 換表,所述雙層標記包的標記變換表預設有雙層標記包UNI端口號與標記變換規則的對應 關系。
[0020] 上述方案中,按照對應的數據包流向,所述標記變換表模塊包括:
[0021] 無源光網絡Ρ0Ν側輸出或UNI環回標記變換表子模塊,用于存儲Ρ0Ν側輸出或UNI 環回標記變換表,所述Ρ0Ν側輸出或UNI環回標記變換表預設有經Ρ0Ν側輸出或UNI環回 的數據包對應的標記變換規則和所述數據包的流編號;
[0022] UNI側輸出標記變換表子模塊,用于存儲UNI側輸出標記變換表,所述UNI側輸出 標記變換表中預設有經UNI側輸出的數據包對應的標記變換方式。
[0023] 上述方案中,所述MAC地址、輸入輸出端口號和標記信息提取模塊包括:
[0024] 標記信息獲取子模塊,用于接收數據包包頭,獲取數據包的虛擬局域網標記信 息;
[0025] 端口號獲取子模塊,用于獲取數據包的源和目的MAC地址、輸入UNI端口號、輸出 UNI或PON端口號。
[0026] 上述方案中,所述端口號獲取子模塊包括:
[0027] 輸入UNI獲取單元,用于獲取UNI側輸入數據包的輸入UNI端口號,并將輸入UNI 端口號發送至MAC地址表管理模塊;
[0028] 源和目的MAC地址獲取單元,用于獲取UNI側輸入或Ρ0Ν側輸入數據包的源MAC 地址和目的MAC地址,并將它們發送到MAC地址管理模塊;
[0029] 輸出UNI/P0N獲取單元,用于獲取UNI側輸入數據包的UNI側或Ρ0Ν側輸出端口 號,或用于獲取Ρ0Ν側輸入數據包的UNI側輸出端口號,對于Ρ0Ν側輸入的數據包,標記信 息獲取模塊將得到的數據包原始外層VLAN ID發送到MAC地址表管理模塊,對于UNI側輸 入的數據包,標記變換模塊將標記變換之后得到的外層VLAN ID發送到MAC地址表管理模 塊,接收地址表管理模塊返回的所述數據包的輸出UNI或Ρ0Ν端口號。
[0030] 上述方案中,所述標記變換表讀取模塊包括:
[0031] 標記信息變換方式獲取子模塊,用于根據所述數據包的輸入/輸出UNI端口號,從 所述基于UNI端口寄存器配置模塊中獲取所述數據包對應的標記信息變換方式;
[0032] 讀地址生成子模塊,用于根據所述標記信息變換方式,以及所述數據包的輸入/ 輸出UNI端口號和虛擬局域網標記信息,分別生成所述數據包對應的標記變換表讀地址;
[0033] 表讀取子模塊,用于根據所述讀地址,讀取所述數據包對應的標記變換表,獲取所 述數據包的標記變換規則。
[0034] 上述方案中,所述讀地址生成子模塊包括:
[0035] 方式1讀地址生成單元,用于當數據包對應的標記信息變換方式中包含方式1時, 根據數據包的輸入/輸出UNI端口號和虛擬局域網標記信息,生成所述數據包對應于基于 UNI端口號、虛擬局域網標號VLAN ID和標記優先級的標記變換表讀地址;
[0036] 方式2讀地址生成單元,用于當數據包對應的標記信息變換方式中包含方式2時, 根據數據包的輸入/輸出UNI端口號和虛擬局域網標記信息,生成所述數據包對應于基于 UNI端口號、虛擬局域網標號VLAN ID和標記優先級的標記變換表讀地址;其中,所述虛擬 局域網標記信息中不包含標記優先級信息;
[0037] 方式3讀地址生成單元,用于當數據包對應的標記信息變換方式中包含方式3時, 根據數據包的輸入/輸出UNI端口號和虛擬局域網標記信息,生成所述數據包對應于基于 UNI端口號和標記優先級的標記變換表讀地址;
[0038] 方式4讀地址生成單元,用于當數據包對應的標記信息變換方式中包含方式4時, 根據數據包的輸入/輸出UNI端口號,對應于單層標記包生成所述數據包基于UNI端口號 的單層標記包的標記變換表讀地址,對應于雙層標記包生成基于UNI端口號的雙層標記包 的標記變換表讀地址。
[0039] 上述方案中,所述表讀取子模塊包括:
[0040] 基于UNI端口號、虛擬局域網標號VLAN ID和標記優先級的標記變換表讀取單元, 用于根據方式1/方式2讀地址生成單元生成的讀地址,讀取基于UNI端口號、虛擬局域網 標號VLAN ID和標記優先級的標記變換表子模塊,獲取所述數據包的標記變換規則;
[0041] 基于UNI端口號和標記優先級的標記變換表讀取單元,用于根據方式3讀地址生 成單元生成的讀地址,讀取基于UNI端口號和標記優先級的標記變換表子模塊,獲取所述 數據包的標記變換規則;
[0042] 基于UNI端口號的單層/雙層標記包標記變換表讀取單元,用于根據方式4讀地 址生成單元生成的讀地址,讀取單層/雙層標記包標記變換表子模塊,獲取所述數據包的 標記變換方式,其中單層標記包讀取基于UNI端口號的單層標記變換表,雙層標記包讀取 基于UNI端口號的雙層標記變換表。
[0043] 本發明實施例還提供一種0NU虛擬局域網標記處理方法,該方法包括:
[0044] 接收數據包包頭,獲取數據包的源MAC地址、目的MAC地址、輸入/輸出UNI或Ρ0Ν 端口號和虛擬局域網標記信息;
[0045] 根據所述數據包的輸入/輸出UNI端口號獲取所述數據包對應的預設的標記信息 變換方式之后,再根據所述數據包的輸入/輸出UNI端口號和/或虛擬局域網標記信息,讀 取所述數據包對應的預設的標記變換表,獲取所述數據包