新四季網

路由器中採用IPv6頭封裝IPv4包的隧道轉發系統的製作方法

2023-05-20 00:17:41

專利名稱:路由器中採用IPv6頭封裝IPv4包的隧道轉發系統的製作方法
技術領域:
路由器中採用IPv6頭封裝IPv4包的隧道轉發系統屬於下一代網際網路IPv6高性能 核心路由器技術領域。
背景技術:
IPv6協議解決了 IPv4協議地址枯竭、安全性不足以及移動性差等問題。從IPv4 過渡到IPv6是一個漸進而漫長的過程,兩者將共存相當長時間。隨著IPv6的大規模發 展,出現純IPv6主幹網絡,IPv6上引入大量業務。因為IPv6與IPv4協議的不兼容性, 已有的網絡用戶遷移到純IPv6網絡後,將無法與資源豐富的IPv4網絡互聯。這使得原 IPv4網絡的用戶和資源遷移到IPv6網絡的過程十分緩慢,導致已建成的純IPv6網絡使 用率不高。為了推動IPv4-IPv6網絡的過渡,急需一種可以實現IPv4和IPv6網絡互訪, IPv4數據包經IPv6網絡傳輸的隧道技術或者協議轉換技術。 目前採用IPv4協議封裝IPv6報文的隧道技術應用較廣,也較成熟,而IPv6協議 封裝IPv4報文的隧道技術則不夠成熟,目前採用IPv6頭封裝IPv4報文的隧道技術還沒有 統一的國際標準,市場上一些採用IPv6頭封裝IPv4報文的隧道技術大部分是用軟體實現 的,封裝的體系結構各不相同,速度低,不能滿足高速網絡的實際應用需要。
本發明實現路由器中採用IPv6頭封裝IPv4包的隧道轉發,解決IPv4網絡通過純 IPv6主幹網絡實現互聯的問題,方法簡單、高效,達到3.2Gbit/s的封裝和轉發速度。
FPGA(Field Programmable Gate Array)是上世紀80年代末開始使用的大規模可編 程數字集成電路器件。它充分利用計算機輔助設計技術進行器件的開發與應用。用戶借 助於計算機不僅能自行設計專用集成電路晶片,還可在計算機上進行功能仿真和實時仿 真,及時發現問題,調整電路,改進設計方案。這樣,設計者不必動手搭接電路、調試 驗證,只須在計算機上操作很短的時間,即可設計出與實際系統相差無幾的理想電路。 而且,FPGA器件採用標準化結構,體積小、集成度高、功耗低、速度快,可無限次反覆 編程,因此,成為科研產品開發及其小型化的首選器件,其應用極為廣泛。
CAM(ContentAddressable Memory)是一種特殊的存儲器,它將輸入數據與CAM 中存儲的所有數據項同時進行並行比較,迅速判斷輸入數據是否與CAM中存儲的數據項 匹配,並給出數據項對應地址和匹配信息。CAM是目前使用最多的實現快速路由查找的 器件,CAM能夠在有限的幾個硬體時鐘周期內完成關鍵字的精確匹配查找,如果採用流 水線操作,每個時鐘周期輸入一個查找的關鍵字,則CAM能在每個硬體時鐘周期流水輸 出一個查找結果。 TCAM(Ternary Content Addressable Memory)也是一種CAM,但它的每個存儲位 有三種狀態0、 1或X(不關心),每一個表項都包含數值比特串和掩碼比特串,因此可 以用來確定最長前綴匹配。

發明內容
本發明目的在於提供一種路由器中採用IPv6頭封裝IPv4包的隧道轉發系統,具 體實現採用FPGA和CAM技術。採用本發明的路由器可以連接IPv6主幹網和IPv4孤 島,實現IPv4孤島之間通過IPv6主幹網的透明傳輸。
本發明的特徵 含有 一個集成於FPGA晶片上的隧道處理電路、SRAM單埠存儲器、SRAM 雙埠存儲器、CAM內容可尋址存儲器以及CPU控制單元,其中 所述的隧道處理電路,含有IP包輸入接口電路、包過濾電路、包輸入隊列存 儲器FIFO、 IPv6協議封裝電路、IPv6包隊列存儲器FIFO、包相關信息提取電路、檢索 指令隊列存儲器FIFO、 CAM控制電路、檢索結果隊列存儲器FIFO、 IPv6數據包相關信 息隊列存儲器FIFO、 IPv6數據包存儲器RAM、包發送電路、CAM維護指令隊列存儲器 FIFO、第0個上交包隊列存儲器FIFO、第1個上交包隊列存儲器FIFO、上交包發送電 路、以及CPU接口電路,其中 IP包輸入接口電路,輸入端接收上級物理和數據鏈路層處理電路輸出的數據就 緒信號和數據總線信號,輸出讀信號給上級物理和數據鏈路層處理電路,所述IP包輸入 接口電路數據輸出端和包過濾電路的輸入端相連,對輸入輸出的IPv4和IPv6包頭信號和 包尾信號分別進行計數,將包頭包尾計數輸出信號發送給CPU接口電路,並接收CPU接 口電路輸入的復位信號和計數器清零信號; 包過濾電路,輸入端和IP包輸入接口電路相連,還分別和第O個上交包隊列存 儲器FIFO、包輸入隊列存儲器FIFO輸出快滿信號相連,輸出端分別和第O個上交包隊列 存儲器FIFO的輸入端、包輸入隊列存儲器FIFO的輸入端相連,對輸入輸出的包頭信號 和包尾信號進行計數,並發送給CPU接口電路,同時接收CPU接口電路輸入的復位信號 和計數器清零信號; 包輸入隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為36位,輸入 端與上述包過濾電路的IP包輸出端相連,讀信號來自IPv6協議封裝電路,復位信號來自 CPU接口電路; IPv6協議封裝電路,輸入端和所述包輸入隊列存儲器FIFO相連,輸出端和IPv6 包隊列存儲器FIFO相連,此外輸入端還接收IPv6包隊列存儲器FIFO輸出的快滿信號, IPv6協議封裝電路對輸入輸出的包頭信號和包尾信號進行計數,並發送給CPU接口電 路,同時接收CPU接口電路輸入的復位信號和計數器清零信號; IPv6包隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為40位,數 據輸入端與上述IPv6協議封裝電路相連,讀輸入信號和包相關信息提取電路的讀輸出相 連,輸出端和包相關信息提取電路相連,復位信號來自CPU接口電路;
包相關信息提取電路,輸入端和IPv6包隊列存儲器的輸出端相連,輸出端分別 和檢索指令隊列存儲FIFO、 IPv6數據包存儲器RAM、 IPv6數據包相關信息隊列存儲器 FIFO相連,對輸入輸出的包頭信號和包尾信號進行計數,並發送給CPU接口電路,同時 接收CPU接口電路輸入的復位信號和計數器清零信號; 檢索指令隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為100位, 數據輸入端與上述包相關信息提取電路相連,讀輸入信號和CAM控制電路的讀輸出相連,數據輸出端和CAM控制電路相連; CAM控制電路,輸入端分別和檢索指令隊列存儲器FIFO輸出端、CAM維護指 令隊列存儲器FIFO輸出端相連,CAM控制電路輸出的CAM存儲器讀寫控制命令總線信 號以及雙向數據請求總線REQDATA信號和CAM存儲器相連,CAM控制電路和SRAM 單埠存儲器的數據總線相連,CAM控制電路輸入端還和CAM存儲器輸出的讀確認信 號、查找匹配信號、查找輸出有效信號相連,CAM控制電路輸出的檢索信息輸出端和 檢索結果隊列存儲器FIFO相連,此外CAM控制電路的讀信號分別和檢索指令隊列存儲 器FIFO的讀輸入端、CAM維護指令隊列存儲器FIFO讀輸入端相連,CAM控制電路輸 出端和CPU接口電路相連,將路由表保存的表項發送給CPU接口電路,CAM控制電路 對IPv6路由查詢次數和查詢命中的信息進行計數,將這些信息作為查詢狀態信息發送給 CPU接口電路,並接收CPU接口電路輸入的復位信號和計數器清零信號;
檢索結果隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為148位, 數據輸入端與CAM控制電路的輸出相連,讀輸入信號和包發送電路的讀輸出相連,數據 輸出端和包發送電路的輸入端相連; IPv6數據包相關信息隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度 為60位,數據輸入端與上述包相關信息提取電路相連,讀輸入信號和包發送電路的讀輸 出相連,數據輸出端和包發送電路相連; CAM維護指令隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為90 位,數據輸入端和CPU接口電路相連,讀輸入信號和CAM控制電路輸出的讀信號相連, 數據輸出端和CAM控制電路的數據輸入端相連; 包發送電路,分別向檢索結果隊列存儲器FIFO、 IPv6數據包相關信息隊列存 儲器FIFO發出讀信號,並和檢索結果隊列存儲器FIFO、 IPv6數據包相關信息隊列存儲 器FIFO的輸出端相連,包發送電路輸出的讀信號、讀地址和IPv6數據包存儲器RAM相 連,IPv6數據包存儲器RAM的數據輸出端和包發送電路相連,包發送電路的輸出還和第 l個上交包隊列存儲器FIFO以及FPGA片外的上行FIFO相連,包發送電路對輸入輸出的 IPv4、 IPv6包頭信號和包尾信號分別進行計數,並發送給CPU接口電路,同時接收CPU 接口電路輸入的復位信號和計數器清零信號; IPv6數據包存儲器RAM是一個雙埠的FPGA片內讀寫存儲器,有一個數據寫 入埠和一個數據輸出埠,數據寫入埠和包相關信息提取電路的IPv6數據輸出端相 連,讀埠的所有信號和包發送電路相連,IPv6數據包存儲器RAM數據寬度為36位, 讀寫埠分別有14根地址線; 第0個上交包隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為36 位,數據輸入端與上述包過濾電路相連,讀輸入信號和上交包發送電路的讀輸出相連, 數據輸出端和上交包發送電路相連; 第l個上交包隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為36 位,數據輸入端與包發送電路相連,讀輸入信號和上交包發送電路的讀輸出相連,數據 輸出端和上交包發送電路相連; 上交包發送電路,輸入端和第0個上交包隊列存儲器FIFO、第1個上交包隊列 存儲器FIFO相連,數據輸出端和SRAM雙埠存儲器的數據輸入端相連,上交包發送電
10路發送的CPU中斷信號、SRAM雙埠存儲器數據起始地址和終止地址、SRAM雙埠 存儲器中待傳送數據的長度信號輸出端和CPU接口電路相連,CPU接口電路將CPU響應 信號輸出給上交包發送電路的輸入端,上交包發送電路對輸入輸出的IPv4、 IPv6包頭信 號和包尾信號分別進行計數,並發送給CPU接口電路,同時接收CPU接口電路輸入的復 位信號和計數器清零信號; CPU接口電路,和由FPGA實現的隧道處理電路內部各個電路相連,接收各個 電路輸入的IPv4、 IPv6輸入輸出包頭信號和包尾信號計數,以及CAM控制電路的查詢 狀態計數,CPU接口電路與FPGA片外CPU控制單元的CPU地址總線、數據總線、讀 寫控制信號相連,輸出的中斷信號和CPU控制單元的中斷輸入相連,CPU接口電路還和 SRAM雙埠存儲器數據輸出埠的地址總線、數據總線、讀寫控制信號相連,CPU接 口電路接收CPU控制單元輸入的復位信號,並將復位信號傳送給FPGA內的其它各個電 路,將清零信號傳送給IP包輸入接口電路、包過濾電路、IPv6協議封裝電路、包相關信 息提取電路、CAM控制電路、上交包發送電路、包發送電路,CPU接口電路還和CAM 維護指令隊列存儲器FIFO的數據輸入端相連,接收CAM控制電路輸出的路由表表項數 據,接收上交包發送電路輸出的SRAM雙埠存儲器數據起始地址和終止地址、SRAM 雙埠存儲器中待傳送數據的長度以及中斷請求信息,也向上交包發送電路發送CPU中 斷響應指示信號; 所述包過濾電路是一個電路組件,其中輸入IP包數據寄存器,輸入端和IP包 輸入接口電路的輸出端相連;輸入IP包數據寄存器的輸出端分別和IPv4數據包寄存器、 IPv6數據包寄存器相連;IPv4數據包寄存器的輸出端分別和IPv4數據包延遲寄存器組、 IPv4包頭校驗和寄存器、生存時間寄存器、包類型寄存器、狀態控制機的輸入端相連, 同時也接收狀態控制機的輸出;IPv4數據包延遲寄存器組的輸出端和數據選擇器A的輸 入端相連;IPv4數據包頭校驗和生成器的輸入端分別和IPv4頭校驗和寄存器輸出、生存 時間更新寄存器輸出相連;生存時間寄存器的輸出端和減一減法器A的輸入端以及狀態 控制機的輸入端相連,減一減法器A的輸出端和生存時間更新寄存器的輸入端相連,生 存時間更新寄存器的輸出端分別和IPv4數據包頭校驗和生成器、狀態控制機相連;數據 選擇器A的輸入端又分別和IPv4數據包延遲寄存器組的輸出端、IPv4數據包頭校驗和生 成器的輸出端以及狀態控制機的輸出端相連,數據選擇器A的輸出端和更新後的IPv4數 據包寄存器輸入端相連; IPv6數據包寄存器的輸出端分別和IPv6數據包延遲寄存器組、跳數寄存器、下 一個頭寄存器、IPv6目的地址寄存器、狀態控制機的輸入端相連,同時也接收狀態控制 機的輸出;跳數寄存器的輸出端和減一減法器B的輸入端相連以及狀態控制機相連,跳 數更新寄存器的輸出端還和狀態控制機相連;減一減法器B的輸出端和跳數更新寄存器 的輸入端相連;數據選擇器B的輸入端分別和IPv6數據包延遲寄存器組、跳數更新寄存 器、狀態控制機的輸出端相連,數據選擇器B的輸出端和更新後的IPv6數據包寄存器輸 入端相連;下一個頭寄存器的輸入端和IPv6數據包寄存器的輸出端相連,輸出端和狀態 控制機相連;IPv6目的地址寄存器的輸出端和比較器的輸入端相連,比較器的另一個輸 入端和本路由器IPv6地址寄存器輸出端相連;比較器的輸出端和狀態控制機的輸入端相 連;本路由器IPv6地址寄存器輸入端和CPU接口電路的輸出相連;
數據選擇器C的輸入端分別和更新後的IPv4數據包寄存器、更新後的IPv6數據 包寄存器的輸出端相連、狀態控制機以及包輸入隊列存儲器FIFO的快滿信號相連,數據 選擇器C的輸出端分別和第0個上交包隊列存儲器FIFO、包輸入隊列存儲器FIFO相連, 同時數據選擇器C的包頭信號和包尾信號輸出端也和計數器的輸入端相連;計數器接收 CPU接口電路輸出的計數器清零信號,並將包頭包尾信號計數信號傳送給CPU接口電路 的輸入端; 所述IPv6協議封裝電路是一個電路組件,其中包輸入隊列存儲器FIFO接口電 路,數據輸入端和包輸入隊列存儲器FIFO的數據輸出端相連,輸出的讀信號和包輸入隊 列存儲器FIFO的讀輸入信號相連,控制輸入輸出端和狀態控制機電路相連;IPv4包頭數 據寄存器,輸入端和包輸入隊列存儲器FIFO接口電路輸出端以及狀態控制機電路輸出端 相連, 一個輸出端和IPv4包頭轉IPv6隧道包頭電路相連,另一個輸出端和多路數據選擇 器電路輸入端相連;IPv4負載數據寄存器,輸入端和包輸入隊列存儲器FIFO接口電路輸 出端相連,輸出端和多路數據選擇器電路輸入端相連;IPv6數據寄存器,輸入端和包輸 入隊列存儲器FIFO接口電路的輸出端相連,輸出端和多路數據選擇器電路輸入端相連; IPv6隧道包頭數據寄存器,輸入端和IPv4包頭轉IPv6隧道包頭電路以及狀態控制機電路 相連,輸出端和多路數據選擇器電路相連;多路數據選擇器電路的輸出端和IPv6包隊列 存儲器FIFO的輸入端相連;包輸入隊列存儲器FIFO接口電路將接收的數據包頭信號和 尾信號發送給計數器電路,多路數據選擇器電路也把輸出的數據包頭、包尾信號傳送給 計數器電路,計數器電路輸出的輸入輸出包頭包尾信號計數和CPU接口電路的狀態計數 器值輸入端相連,同時接收CPU接口電路輸入的計數器清零信號; 所述包相關信息提取電路是一個電路組件,由一系列的電路組成IPv6包隊列 存儲器接口電路,所述數據輸入端和IPv6包隊列存儲器FIFO相連,輸出的讀信號和IPv6 包隊列存儲器FIFO的讀輸入信號相連,控制輸入輸出端和狀態控制機電路相連,輸出 端和包上交標識寄存器、包優先級寄存器、包源埠編號寄存器、包起始地址寄存器、 包終止地址寄存器、包序列號寄存器、包目的地址寄存器、隧道標識寄存器以及包寫入 RAM電路相連;IPv6包信息發送電路的輸入端和所述包上交標識寄存器、包優先級寄存 器、包起始地址寄存器、包源埠編號寄存器、包終止地址寄存器、包序列號寄存器相 連,控制信息來自於狀態控制機,輸出端接IPv6數據包相關信息隊列存儲器FIFO;檢索 指令發送電路的輸入端和包序列號寄存器、包目的地址寄存器、隧道標識寄存器相連, 輸出端和檢索指令隊列存儲器FIFO相連,控制輸入端和狀態控制機相連;包寫入RAM 電路的輸出端和IPv6數據包存儲器RAM相連,它的控制輸入端和狀態控制機相連;計 數器的輸入端分別和IPv6包隊列存儲器FIFO接口電路的輸入包頭信號以及輸入包尾信號 相連,還和包寫入RAM電路輸出的包頭信號和包尾信號相連,同時也和CPU接口電路輸 入的計數器清零信號相連,輸出的包頭尾信號計數和CPU接口電路相連;
所述CAM控制電路是一個電路組件,由一系列的電路組成檢索指令隊列存儲 器FIFO接口電路的數據輸入端和檢索指令隊列存儲器FIFO輸出端相連,輸出的讀信號 和檢索指令隊列存儲器FIFO的讀信號相連,並且輸出端也和狀態控制機互連,接收狀態 控制機輸出的控制信號;CAM寫入數據寄存器的輸入端和檢索指令隊列存儲器FIFO接 口電路、以及CAM維護指令隊列存儲器FIFO接口電路的輸出端相連,輸出端和CAM數據總線讀寫控制電路相連;CAM操作指令發送電路的輸入端和檢索指令隊列存儲器 FIFO接口電路的輸出端、CAM維護指令隊列存儲器FIFO接口電路的輸出端相連,輸出 端直接和CAM存儲器的命令總線INST、 LTIN、 SEGSEL、 GMASK、 CRB和請求選通信 號REQSTB相連;SRAM寫入數據寄存器的輸入端和CAM維護指令隊列存儲器FIFO接 口電路輸出端,以及檢索指令隊列存儲器FIFO接口電路的輸出端相連,輸出端和SRAM 數據總線讀寫控制電路輸入端相連;SRAM數據總線讀寫控制電路的輸出端和SRAM讀 出數據寄存器、檢索結果寄存器以及SRAM單埠存儲器相連,控制信號輸入端和狀態 機輸出相連;CPU讀出數據寄存器的輸入端和CAM讀出數據寄存器的輸出端、SRAM讀 出數據寄存器的輸出端相連,輸出端和CPU接口電路相連;檢索結果寄存器的輸入端和 數據包序列號寄存器的輸出端相連,輸出端和檢索結果隊列存儲器FIFO相連;數據包序 列號寄存器的輸入端和檢索指令隊列存儲器FIFO接口電路的輸出端以及狀態控制機的輸 出端相連;計數器的輸入端和檢索結果寄存器的輸出端相連,還和CPU接口電路輸入的 計算器清零信號相連,它輸出的查詢狀態計數輸出和CPU接口電路相連;
所述包發送電路是一個電路組件,由一系列的電路組成IPv6數據包相關信息 隊列存儲器FIFO接口電路,數據輸入端和IPv6數據包相關信息隊列存儲器FIFO的輸出 端相連,控制輸入和輸出端與狀態機控制電路相連,輸出的讀信號和IPv6數據包相關信 息隊列存儲器FIFO讀輸入端相連,輸出端分別和包存儲起始地址寄存器、包存儲終止地 址寄存器、包長度寄存器、包優先級寄存器、源埠編號寄存器、包序列號寄存器A的 輸入端相連;檢索結果隊列存儲器FIFO接口電路,數據輸入端和檢索結果隊列存儲器 FIFO的輸出相連,控制輸入和輸出端與狀態機控制電路相連,輸出端分別和包序列號寄 存器B、目的埠編號寄存器、目的線卡編號寄存器、下一跳IPv6地址寄存器、下一跳 IPv4地址寄存器、隧道IPv6目的地址寄存器的輸入端相連;位寬為36位的附加數據寄存 器組的輸入端分別和包優先級寄存器、包長度寄存器、源埠編號寄存器、源線卡編號 寄存器、目的埠編號寄存器、目的線卡編號寄存器、下一跳IPv6地址寄存器、下一跳 IPv4地址寄存器、隧道IPv6目的地址寄存器的數據輸出端相連;源線卡編號寄存器的輸 入來自CPU接口電路;增10加法器,輸入端和包存儲起始地址的輸出相連,輸出端與地
址寄存器A相連;地址寄存器B的輸入端和包存儲起始地址的輸出相連;增l加法器的 輸出端分別和IPv6數據包存儲器讀地址寄存器的輸出端、地址寄存器C的輸入端相連; 多路數據選擇器A,輸入端分別和地址寄存器A、地址寄存器B、地址寄存器C相連,控 制輸入端和狀態機控制電路的輸出相連,輸出端和IPv6數據包存儲器讀地址寄存器的輸 入端相連;數據比較器A,輸入端和包存儲終止地址寄存器的輸出端以及IPv6數據包存 儲器讀地址寄存器的輸出端相連,輸出端和狀態機控制電路的輸入端相連;位寬為36位 的IP數據寄存器,輸入端和IPv6數據包存儲器RAM的數據輸出端相連,輸出端和多路 數據選擇器B的輸入端相連;多路數據選擇器B,數據輸入端分別和位寬為36位的附加 數據寄存器組的輸出端、位寬為36位的IP數據寄存器的輸出端相連,輸出端和上交數據 包寄存器、帶附加數據的IPv4或IPv6數據包寄存器的輸入端相連;上交數據包寄存器的 輸出端和第1個上交包隊列存儲器FIFO的輸入端相連;帶附加數據的IPv4或IPv6包寄 存器的輸出端發往與FPGA相連的上行FIFO ;帶附加數據的IPv4或IPv6包寄存器的還 將發送的數據包頭信號和包尾信號分別傳送給計數器,計數器還和CPU接口電路輸入的計數器清零信號相連,計數器輸出的包頭包尾信號計數信號發送給CPU接口電路;
所述CAM存儲器,是系統的FPGA片外存儲器,讀寫控制命令總線信號以及數 據請求總線REQDATA信號來自CAM控制電路,輸出的地址總線信號和讀寫信號分別與 SRAM單埠存儲器的地址總線和讀寫信號相連,輸出的讀確認信號、查找匹配信號、 查找輸出有效信號和CAM控制電路輸入端相連; 所述SRAM單埠存儲器,是系統的FPGA片外靜態SRAM存儲器,讀寫輸入 信號和地址信號來自CAM存儲器的輸出,數據輸入輸出端和CAM控制電路相連;
所述SRAM雙埠存儲器,是系統的FPGA片外靜態雙埠 SRAM存儲器, 分為數據寫入埠和數據輸出埠 ,數據寫入埠的雙向數據總線和上交包發送電路相 連,數據寫入埠的讀寫信號線、地址總線和上交包發送電路的輸出端相連,數據輸出 埠的雙向數據總線和CPU接口電路相連,數據輸出埠的讀寫信號線、地址總線和 CPU接口電路的輸出端相連。 通過上述方法構建的路由器中採用IPv6頭封裝IPv4包的隧道轉發系統,由一片 FPGA晶片EP1S25F780、兩片IDT75k62100(TCAM)、兩片IDT71T75602(SRAM)、 一片 CY7C1300A(SRAM雙埠存儲器)晶片構成,FPGA和外圍晶片採用同一個時鐘進行工 作。 FPGA只有一個主時鐘CLK,該時鐘頻率為100MHZ時,上述所有模塊的復位 信號來自於CPU接口電路,CPU接口電路的復位信號來自於CPU控制單元,上述所有模 塊的時鐘都為CLK,但在上面為避免重複,沒有提,路由器中採用IPv6頭封裝IPv4包的 隧道轉發系統達到的性能指標為 IDT75k62100和FPGA共用一個主時鐘100MHZ CLK,兩片IDT71T75602的工 作頻率為50MHZ,該50MHZ和主100MHZ的時鐘源相同,是100MHZ CLK主時鐘經二 分頻得到的; 通過利用CAM系統構造的查找表,支持表項條數的動態分配,支持IPv6包的 IPv6路由查找,系統能保證以3.2Gbit/s線速收發數據包。 通過上述方法,使用一片EPlS25780和級聯兩片IDT75k62100構建的路由查找 器最大支持64K*288bits的IPv6路由表項。 該隧道傳輸處理系統可以處理IPv6隧道數據包、IPv4數據包和IPv6非隧道數據 包,最大處理32k字節數據包。系統能保證3.2Gbit/s線速收發數據包,如果超過3.2Gbit/ s會丟包,但沒有丟的包能正確傳送,如果包速率又回到3.2Gbit/s,仍然不會丟包。
支持上交包整包緩存。 通過CPU對FPGA內的各電路模塊及CAM系統進行控制和維護。


圖1路由器中採用IPv6頭封裝IPv4包的隧道轉發系統在核心路由器線卡中的位 置以及和周圍器件的關係 圖2路由器中採用IPv6頭封裝IPv4包的隧道轉發系統的晶片之間連接關係
圖3路由器中採用IPv6頭封裝IPv4包的隧道轉發系統FPGA內部的各個子電路 之間的關係
圖4包過濾電路
圖5IPv 6協議封裝電路
圖6包相關信息提取電路
圖7CAM控制電路
圖8包發送電路 圖9CAM存儲器存儲的表項數據結構 說明目的IPv6地址128位(127 0),隧道標識佔1位,保留位置0。
圖10SRAM單埠存儲器存儲的表項數據結構 說明標識(bit71 69) : 000——IPv4轉發;001——上交;010——丟棄,
011——普通IPv6轉發;100——IPv6隧道轉發; 目的線卡編號bit71 68 ;目的埠編號bit67 64。 IPv6隧道目的地址共128位,由SRAM單埠存儲器第三個和第四個表項的 bit63 0構成。
保留位置0。
圖11IP包輸入接口電路接收的經過上級電路處理的PPP包數據結構
圖12包輸入隊列存儲器FIFO中的數據結構 說明(1)bit35 34為包的頭尾指示10——數據包開始,00——數據包中間 數據,01——數據包結束,11——數據包錯誤。bit33 32為MOD域,最後一個32位有 效字節指示,只有在包尾時才有意義00——最後四個字節都有效,01——最後四個字 節中三個字節有效(bit31 8), 10——最後四個字節中兩個字節有效(bit31 16), 11—— 最後四個字節中一個字節有效(bit31 24);無效位用0填充。bit31 31,數據包的具 體內容。 圖13IPv6數據包相關信息隊列存儲器FIFO中的數據結構
圖14檢索指令隊列存儲器FIFO中的數據結構
圖15CAM維護指令隊列存儲器FIFO數據結構
圖16檢索結果隊列存儲器FIFO中的數據結構
圖17發送給上行FIFO的數據結構 說明(1)bit35 34為包的頭尾指示10——數據包開始,00——數據包中間 數據,01——數據包結束,11——數據包錯誤。bit33 32為MOD域,最後一個32位有 效字節指示,只有在包尾時才有意義00——最後四個字節都有效,01——最後四個字 節中三個字節有效(bit31 8), 10——最後四個字節中兩個字節有效(bit31 16), 11—— 最後四個字節中一個字節有效(bit31 24);無效位用0填充。bit31 31,數據包的具 體內容。 (2)源位置編號bitl5 8,共8位,其中bitll 8標識源埠編號,bitl5 12標識源線卡編號。 (3)目的埠編號bitl9 8,共12位,但目前只用了 bitll 8,其它位置0,
用來指明數據包到達目標線卡後的輸出埠。
圖18上交數據結構 說明bit35 34為包的頭尾指示10——數據包開始,00——數據包中間數據,01——數據包結束,11——數據包錯誤。bit33 32為MOD域,最後一個32位有 效字節指示,只有在包尾時才有意義00——最後四個字節都有效,01——最後四個字 節中三個字節有效(bit31 8), 10——最後四個字節中兩個字節有效(bit31 16), 11—— 最後四個字節中一個字節有效(bit31 24);無效位用0填充。bit31 31,數據包的具 體內容。 圖19採用IPv6頭封裝IPv4報文的隧道數據包的數據結構
具體實施例方式
路由器中採用IPv6頭封裝IPv4包的隧道轉發系統用在線路接口卡上,解決IPv4 網絡通過純IPv6主幹網絡實現互聯的問題,具體實現採用FPGA技術。它由隧道處理電 路和外部SRAM雙埠存儲器晶片、SRAM單埠存儲器晶片、CAM存儲器晶片、CPU 控制單元實現,隧道處理電路由一片FPGA實現。該系統在高性能核心路由器中的位置 見附圖1,構成該系統的晶片之間連接關係如圖2所示。 由圖可知,路由器中採用IPv6頭封裝IPv4包的隧道轉發系統從物理和數據鏈 路層處理電路接收按照PPP協議封裝的數據包,該數據包只含有協議域、信息域和填充 域,隧道傳輸處理系統根據協議域標識提取其中的純IPv6數據報文和IPv4數據報文。 對IPv4數據報文進行封裝,加上IPv6數據包頭,成為IPv6隧道數據包;對IPv6數據報 文的目的地址和跳數進行檢查,將目的地址為本路由器的IPv6數據包直接上交給CPU控 制單元進行處理。對於目的地址不為本路由器的IPv6數據包,從中提取路由查找信息, 並將查找信息提交給CAM查找系統(CAM+SRAM)進行查找,由FPGA構成的隧道處理 電路,根據查找返回的結果,決定對IPv6數據包是進行普通IPv6轉發、採用IPv6頭封 裝IPv4包的隧道轉發、IPv4轉發、丟棄還是上交給CPU進行處理。轉發的包通過上行 FIFO存儲器發送給後續的交換結構協處理器和交換結構進行處理。 隧道傳輸處理系統上電後,CPU控制單元通過CPU接口電路對整個系統進行初 始化,將CAM配置成288位查找模式,並配置SRAM表項。初始化完成後,系統才可 以正常工作。 系統使用的CAM單個表項的存儲位寬為72位,所以支持的表項長度是72bit的 整數倍,由於IPv6包的目的地址是128位,因此至少需要2個CAM表項來存儲IPv6包 的目的地址。IPv4包進入路由器之後,離開路由器時,如果採用IPv6頭封裝IPv4包的隧 道轉發,系統除了要提供隧道末端出口的IPv6地址外,還需要提供隧道包離開當前路由 器後途經的下一跳路由器IPv6地址,這樣提供查找結果的SRAM至少需要256位。系統 使用的SRAM單埠存儲器支持的表項長度是72bit的整數倍,這樣以來,實際上SRAM 提供的存儲容量為288位,對應SRAM有4個存儲單元。288位SRAM必須要有288位 CAM配對,才能在時序上匹配,所以系統採用4個CAM表項共288位來表示一個路由表 項。第一個表項的bit71 69位取100,說明是IPv6表項,bit68如果取1 ,說明查的是 用IPv6封裝的隧道包的路由,bit68如果取0,說明查的是普通IPv6包的路由,bit67 64位保留不用,bit63 0對應IPv6目的地址的高64位。第二個表項的bit71 64位保 留不用,bit63 0對應IPv6目的地址的低64位。還有2個表項保留不用,置0,如圖 9所示。
系統使用的SRAM單埠存儲器支持的每個路由表項結構如圖10所示第一個 表項的bit71 69構成路由查找結果的標識位,用於表示查找結果的類型IPv4轉發、 普通IPv6轉發、IPv6隧道轉發、丟棄、數據上交給CPU控制單元;目的線卡編號由第二 個表項的bit71 68構成,共4位,用於表示數據包通過交換結構將要到達的目的線卡; 目的埠編號由bit67 64構成,共4位,用於表示轉發的數據包經過交換結構到達目的 線卡後,通過線卡的哪一個埠發送出去;第一個表項和第二個表項的bit63 0裡存儲 的是下一跳目的地址,如果是普通IPv6轉發,則下一跳的IP位址是128位,如果是IPv4 轉發,則下一跳的IP位址是32位,此時只有第二個表項的bit31 0位有效;標識位等 於OOO時,數據包以IPv4轉發,等於001時,數據包被丟棄,等於010時,數據包被上 交給CPU控制單元,等於011時,數據包以普通IPv6轉發,等於100時,數據包以IPv6 隧道轉發;SRAM第三和第四個表項的bit63 0裡存儲的是IPv4數據包以IPv6隧道方 式轉發時,IPv6隧道末端出口路由器的128位IPv6目的地址。
整個系統的工作流程如下 l)IP包輸入接口電路從物理和數據鏈路層處理電路讀取經過處理的PPP協議數 據包和數據源埠編號,經過處理的PPP協議數據包只含有協議域、信息域和填充域, PPP數據包的其它部分已經在上級電路被剔除了。根據PPP包的16位協議編號,提取其 中的純IPv6或IPv4數據包,將去掉PPP 16位協議域和填充域的純IPv6報文或IPv4報文 發送到包過濾電路。 2)包過濾電路接收IPv4和IPv6數據包,如果接收的是單播IPv4數據包,則對 IPv4包的生存時間TTL域進行檢查,如果其TTL為O,則將該IPv4數據包丟棄;如果 TTL大於1,則對IPv4數據包的TTL域進行減l操作,如果減1後,TTL等於O,則將該 IPv4數據包發送給第0個上交包隊列存儲器FIFO ;如果接收的IPv4數據包是多播數據, 也發送給第0個上交包隊列存儲器FIFO ;如果接收的單播IPv4包的TTL不為0, TTL進 行減1操作後得到的TTL也不為0,則讓該IPv4包完成TTL減1操作,重新生成新的首 部校驗和後讓該包通過,發送給下一級包輸入隊列存儲器FIFO。 包過濾電路接收的IPv6數據包分三種單播、多播、任播。在後續的處理中, 本系統對任播的處理和單播一樣,所有對單播的處理方式也同時應用於任播,但不再說 明。 包過濾電路接收到IPv6包後,首先查看包的跳數限制,如果它的跳數限制為 0,就將該IPv6包丟棄;如果它的跳數限制大於或等於l,則將跳數限制進行減l操作, 如果減1後,跳數為0,則將該IPv6數據包發送給第O個上交包隊列存儲器FIFO;如果 跳數減1後,跳數仍然不為0,包過濾電路就對該IPv6包目的地址進行檢查;如果是多播 包就發送給第0個上交包隊列存儲器FIFO。 如果接收的IPv6數據包的目的地址是本路由器,分兩種情況,第一種是情況 該數據包不是IPv6隧道包,則發送給第0個上交包隊列存儲器FIFO;第二種是情況該 數據包是隧道包,那麼小於61位元組的包都丟棄,不小於61位元組的就發送給下一級包輸入 隊列存儲器FIFO。 如果接收的IPv6數據包的目的地址不是本路由器,也分兩種情況第一種情況 是該數據包是IPv6隧道包,那麼小於61位元組的包都丟棄,不小於61位元組的就發送給下一級包輸入隊列存儲器FIFO;第二種情況是該數據包不是IPv6隧道數據包,則對數據包 的大小不進行檢查直接發送給下一級包輸入隊列存儲器FIFO。 3)IPv6協議封裝電路通過包輸入隊列存儲器FIFO接口電路讀取數據包,根據IP 數據的版本號,包輸入隊列存儲器FIFO接口電路知道讀入的數據是IPv4數據包還是IPv6
數據包。 如果是IPv4數據,在狀態控制機電路的控制下,包輸入隊列存儲器FIFO接口電 路讀取IPv4包頭數據,並將其保存在IPv4包頭數據寄存器中,IPv4包頭數據寄存器中的 數據又輸出給IPv4包頭轉IPv6隧道包頭電路。IPv4包頭轉IPv6隧道包頭電路對應每一 個IPv4包頭,生成一個IPv6封裝包頭IPv6包頭的源地址就是本路由器的IPv6地址, 包頭目的地址最高96位bitl27 32置0,最低32位就是當前處理的IPv4數據包的目的 地址,包頭下一個首部域設置為十進位的101,跳數限制設為十進位的64,包的流量類 別設置為0,流標號置0。生成的IPv6包頭髮送到IPv6隧道包頭數據寄存器中。多路數 據選擇器將保存在IPv6隧道包頭數據寄存器中的IPv6包頭和保存在IPv4包頭數據寄存器 中的數據依次選通發送到下一級的IPv6包隊列存儲器FIFO中,與此同時包輸入隊列存儲 器FIFO接口電路繼續讀取IPv4數據包的負載部分,並將它們保存在IPv4負載數據寄存 器中,在發送完IPv4包頭數據寄存器中的數據後,多路數據選擇器立即選通IPv4負載數 據寄存器的輸出,這樣IPv6隧道包就像流水一樣不斷線地發送到下一級的IPv6包隊列存 儲器FIFO中。 如果是IPv6隧道包,包輸入隊列存儲器FIFO接口電路讀取IPv6頭,並將IPv6 頭丟棄,緊接著讀取IPv6隧道包的IPv4包頭數據,並將其保存在IPv4包頭數據寄存器 中,IPv4包頭數據寄存器中的數據又輸出給IPv4包頭轉IPv6隧道包頭電路。在狀態控 制機電路的控制下,IPv4包頭轉IPv6隧道包頭電路對應每一個IPv4包頭,又生成一個 IPv6封裝包頭IPv6包頭的源地址就是本路由器的IPv6地址,包頭目的地址最高96位 bitl27 32置0,最低32位就是當前處理的IPv4數據包的目的地址,包頭下一個首部域 設置為十進位的101,跳數限制設為十進位的2,包的流量類別設置為0,流標號置0。 生成的IPv6包頭髮送到IPv6隧道包頭數據寄存器中。多路數據選擇器將保存在IPv6隧 道包頭數據寄存器中的IPv6包頭和保存在IPv4包頭數據寄存器中的數據依次選通發送到 下一級的IPv6包隊列存儲器FIFO中,與此同時包輸入隊列存儲器FIFO接口電路繼續讀 取IPv6隧道包的IPv4數據負載部分,並將它們保存在IPv4負載數據寄存器中,在發送 完IPv4包頭數據寄存器中的數據後,多路數據選擇器立即選通IPv4負載數據寄存器的輸 出,這樣已經更新的IPv6隧道包就像流水一樣不斷線地發送到下一級的IPv6包隊列存儲 器FIFO中。 包輸入隊列存儲器FIFO接口電路讀取的IPv6數據包如果不是隧道包,則不對 IPv6數據包進行任何處理,只將它暫存在IPv6數據寄存器中,通過多路數據選擇器,直 接將它傳送到下一級的IPv6包隊列存儲器FIFO。 4)包相關信息提取電路通過IPv6包隊列存儲器FIFO接口電路從IPv6包隊列存 儲器FIFO中讀取IPv6數據包,每一個節拍讀40位,其中8位是邊帶信息,32位是IP數 據包。IPv6包隊列存儲器FIFO接口電路中有一個節拍計算器、 一個包計算器,節拍計 算器記錄接收的數據包節拍數,每個節拍含32位IP數據,包計算器記錄接收的數據包個數。系統初始化時,節拍計算器和包計算器被清O。 IPv6包隊列存儲器FIFO接口電路 接收一個數據包時,該數據包第一節拍數據對應的節拍計算器值,就是該IPv6數據包在 IPv6存儲器RAM中保存的起始地址,數據包最後一節拍數據對應的計算器值,就是該數 據包在IPv6存儲器RAM中保存的終止地址。每接收一節拍數據後,計算器值加l。數 據包的起始地址和終止地址被輸出,分別保存在包起始地址寄存器、包終止地址寄存器 中。相應地,接收一個數據包時,該數據包第一節拍數據對應的包計算器值,就是該數 據包對應的序列號,該序列號被輸出給包序列號寄存器保存。每接收完一個數據包,包 計算器值加1,包計算器加1是在接收數據包的最後一個節拍之後發生的。
在狀態控制機電路的作用下,IPv6包隊列存儲器FIFO接口電路通過包寫入 RAM電路,將接收的IPv6包發送到與包相關信息提取電路相連的IPv6數據包存儲器 RAM, IPv6數據包存儲器RAM是一個讀寫與時鐘同步的雙埠 RAM存儲器, 一個埠 專門用來寫數據, 一個埠專門用來讀數據。 在狀態控制機電路的作用下,IPv6包隊列存儲器FIFO接口電路提取數據包的源 埠編號,並將源埠編號發送到源埠編號寄存器。對於接收的IPv6數據包,如果它 的下一個首部域是0,則置上交標識,並將該上交標識輸出給包上交標識寄存器,在該寄 存器中進行保存。 在狀態控制機電路的作用下,IPv6包隊列存儲器FIFO接口電路提取包的流量類 別保存在包優先級寄存器中。如果IPv6包是隧道包,就將隧道標識寄存器置l,否則置 0。 包上交標識寄存器、包優先級寄存器、包源埠號寄存器、包終止地址寄存 器、包起始地址寄存器、包序列號寄存器的值輸出給IPv6包信息發送電路,IPv6信息發 送電路在狀態控制機電路控制下,將數據發送給與包相關信息提取電路相連的IPv6數據 包相關信息隊列存儲器FIFO。 CAM工作受它的命令總線和請求數據總線控制,檢索指令發送電路生成CAM 命令總線控制數據請求選通信號REQSTB、操作指令類型信號INST、查找類型信號 LTIN、段選信號SEGSEL、掩碼寄存器選擇信號GMASK, CAM命令總線控制數據由檢 索指令發送電路發送到檢索指令隊列存儲器FIFO。 包序列號寄存器、隧道標識寄存器和包目的地址寄存器經檢索指令發送電路發 送給與包相關信息提取電路相連的檢索指令隊列存儲器FIFO,其中隧道標識寄存器和包 目的地址寄存器保存的數據對應CAM數據總線輸入的72位寬度REQDATA數據,用來 進行CAM查找。 5)CAM控制電路內部的檢索指令隊列存儲器FIFO接口電路從檢索指令隊列存 儲器FIFO中讀取檢索指令,並將REQDATA數據寫入CAM寫入數據寄存器。CAM 存儲器的操作受命令總線的控制,因此讀取的總線控制命令REQSTB、 INST、 LTIN、 SEGSEL、 GMASK寫入CAM操作指令發送電路。檢索指令隊列存儲器FIFO接口電路 還將檢索指令對應的數據包序列號保存到數據包序列號存儲器中。 CAM表項和SRAM表項初始化完成後,在CAM運行的過程中,作業系統要不 斷地對CAM表項和SRAM表項進行刪除、添加等操作,這些操作是CPU通過CPU接 口電路向CAM維護指令隊列存儲器FIFO發送CAM維護指令來完成的。CAM控制電路通過CAM維護指令隊列存儲器FIFO接口電路讀取CAM維護指令隊列存儲器FIFO的 CAM維護指令,並將REQDATA數據寫入CAM寫入數據寄存器,讀取的總線控制命令 REQSTB、 INST、 LTIN、 SEGSEL、 GMASK寫入CAM操作指令發送電路。CAM維護 指令隊列存儲器FIFO接口電路還將需要寫的SRAM表項保存在SRAM寫入數據寄存器 中。 在狀態控制機電路的作用下,CAM數據總線讀寫控制電路和SRAM讀寫數據總 線控制電路把對應的表項寫入CAM和SRAM存儲器中,或將查找的結果輸出給CAM讀 出數據寄存器、SRAM讀出數據寄存器。如果是對CAM進行維護操作,CPU讀出數據寄 存器將讀取的CAM和SRAM數據發送給CPU接口電路,通過CPU接口電路上交CPU。 如果對CAM進行操作的指令來自檢索指令隊列存儲器FIFO接口電路,則將SRAM檢索 的結果以及數據包序列號寄存器保存的序列號輸出到檢索結果寄存器,通過檢索結果寄 存器發送到與CAM控制電路相連的檢索結果隊列存儲器FIFO。 6)包發送電路通過IPv6數據包相關信息隊列存儲器FIFO接口電路,讀取包在 IPv6數據包存儲器RAM中存儲的起始地址、終止地址、上交標識以及數據包序列號, 並將終止地址保存在終止地址寄存器中。檢索結果隊列存儲器FIFO接口電路,讀取檢 索結果隊列存儲器FIFO,根據標識位和IPv6數據包相關信息隊列存儲器FIFO接口電路 得到的上交標識位,狀態機控制電路知道包發送電路對數據包進行處理方式要麼是按照 IPv4轉發,要麼是將數據包上交,要麼是將數據包丟棄,要麼是按照普通IPv6轉發該數 據包,要麼是按照IPv6隧道方式轉發該數據包。此外如果經由IPv6數據包相關信息隊列 存儲器FIFO接口電路和檢索結果隊列存儲器FIFO接口電路得到的數據包序列號分別保 存到4位的包序列號寄存器A和包序列號寄存器B,包序列號寄存器A和包序列號寄存 器B中的數據輸入到數據比較器B,如果比較的結果是兩個數據不相等,說明系統出現錯 誤,數據比較器B向CPU接口電路發送指示信號,通過CPU接口電路對整個系統進行復 位。復位之後按照上面的方法對系統進行初始化。 IPv6數據包相關信息隊列存儲器FIFO接口電路從IPv6數據包相關信息隊列存 儲器FIFO讀取數據包長度、包優先級、源埠編號,並將其分別保存在數據包長度寄存 器、包優先級寄存器、源埠編號寄存器中。檢索結果隊列存儲器FIFO接口電路讀取目 的埠編號、目的線卡編號、下一跳IPv6或IPv4地址、隧道IPv6目的地址,分別將它們 保存在目的埠編號寄存器、目的線卡編號寄存器、下一跳IPv6寄存器或IPv4地址寄存 器、隧道IPv6目的地址寄存器中。 如果數據按照IPv4轉發,則將包長度寄存器、包優先級寄存器、源線卡編號寄 存器、源埠編號寄存器、目的埠編號寄存器、目的線卡編號寄存器、下一跳IPv4寄 存器輸出的值,保存在3個位寬為36位的附加數據寄存器組中。在狀態控制機的作用 下,多路選擇器B分3拍將3個位寬為36位的附加數據寄存器組中的數據發送出去,這 些數據作為IPv4數據包的附加數據頭,添加在IPv4數據包的前面,發送給上行FIFO。
緊接IPv4附加數據頭的就是IPv4數據包,在狀態控制機電路的作用下,增10加 法器從輸入端接收包存儲起始地址,對該地址值實現加10操作,並將結果輸出給地址寄 存器A進行保存,多路數據選擇器A選擇地址寄存器A中的數據輸出給IPv6數據包存儲 器RAM讀地址寄存器,讀地址寄存器將讀地址發送給IPv6數據包存儲器RAM讀埠的讀地址總線。IPv6數據包存儲器RAM將讀得的數據發送給位寬為36位的IP數據寄存 器,多路選擇器B選通位寬為36位的IP數據寄存器,這樣IPv4數據包第一拍數據就緊 隨IPv4的附加數據頭髮送給上行FIFO。 在狀態控制機電路的作用下,增1加法器讀取IPv6數據包存儲器RAM讀地址寄 存器的值,對該地址進行加1運算後提交給地址寄存器C。多路數據選擇器A選通地址 寄存器C中的數據,將該數據交給IPv6數據包存儲器RAM讀地址寄存器。此後系統運 行的過程和發送IPv4數據包第一拍數據時一樣。 每個時鐘周期,數據比較器A將輸入的IPv6數據包存儲器RAM讀地址寄存器 值和輸入的包存儲終止地址寄存器的值進行比較,如果兩者相等,說明該數據包的數據 已經全部輸出。如果包存儲器電路中還有別的數據,在狀態控制機的作用下,包發送電 路對後續的數據包也進行同樣的處理。 如果數據按照普通IPv6轉發,包發送電路的工作過程和轉發IPv4數據包的工作 過程總體相似,只有小部分不一樣。不一樣的部分是 (1)如果數據按照普通IPv6轉發,則將包長度寄存器、包優先級寄存器、源線 卡編號寄存器、源埠編號寄存器、目的埠編號寄存器、目的線卡編號寄存器、下一 跳IPv6寄存器輸出的值,保存在6個位寬為36位的附加數據寄存器組中。在狀態控制 機的作用下,多路選擇器B分6拍將6個位寬為36位附加數據寄存器組中的東西發送出 去,這些數據作為IPv6數據包的附加數據頭,添加在IPv6數據包的前面,交給下一級上 行FIFO。 (2)IPv6數據包的第一拍數據的地址是通過包存儲起始地址發送給地址寄存器 B,再通過多路數據選擇器A發送給IPv6數據包存儲器RAM讀地址寄存器,不能通過增 IO加法器進行加IO操作。 如果數據按照IPv6隧道轉發,包發送電路的工作過程和轉發IPv6數據包的工作 過程總體相似,只有小部分不一樣。不一樣的部分是如果數據按照IPv6轉發,則將 包長度寄存器、包優先級寄存器、源線卡編號寄存器、源埠編號寄存器、目的埠編 號寄存器、目的線卡編號寄存器、下一跳IPv6寄存器、隧道IPv6目的地址寄存器輸出的 值,保存在10個位寬為36位的附加數據寄存器組中;在狀態控制機的作用下,在發送隧 道IPv6數據包時,隧道包128位的IPv6目的地址,來自於IPv6協議封裝電路,在這裡 要用位寬為36位附加數據寄存器組中保存的通過CAM查表得到的隧道IPv6目的地址取 代。 如果數據不進行IPv4、普通IPv6轉發、IPv6隧道轉發,還是進行上交,包發送 電路的工作過程和轉發IPv6數據包的工作過程總體相似,只有小部分不一樣。不一樣的 地方是 (1)IPv6數據包的上交時,IPv6數據包的附加數據只有一拍,附加數據只含有源 線卡編號和源埠編號。不足36位的其它數據用0來填充。 (2)通過多路數據選擇器B選擇的數據發送給上交數據包寄存器,通過上交數據 包寄存器發送給第1個上交包隊列存儲器FIFO。 如果數據不進行IPv4、普通IPv6轉發、IPv6隧道轉發,也不需要上交,還是丟 棄,在狀態控制機電路的作用下,包發送電路不再對IPv6數據包存儲器RAM進行任何操作。多路數據選擇器A和多路數據選擇器B也不進行任何操作。 跟在被丟棄數據包後面如果還有別的數據包,則狀態控制機電路指示IPv6數 據包相關信息隊列存儲器FIFO接口電路和檢索結果隊列存儲器FIFO接口電路提取下一 個數據包的轉發信息,根據轉發信息的標識按照上面所說的方式進行數據包的轉發、上 交、丟棄處理。 7)只要第0個上交包隊列存儲器FIFO或第1個上交包隊列存儲器FIFO不空, 上交包發送電路就能輪流從不空的第0個上交包隊列存儲器FIFO和第1個上交包隊列存 儲器FIFO中讀取數據包發送給SRAM雙埠存儲器,當SRAM雙埠存儲器中存儲的 上交數據包字節數達到一定門檻值,或接收一個數據包後一段時間內沒有收到新數據包 時,上交包發送電路就向CPU接口電路發送中斷信號,並將上交數據包在雙埠存儲器 RAM中存儲的起始地址、終止地址以及待傳送數據的長度傳送給CPU接口電路,CPU接 口電路將中斷信號傳送給CPU,如果CPU不忙,就對中斷請求進行相應,啟動上交包數 據傳送,CPU接口電路將上交數據包從SRAM雙埠存儲器中讀出來,再發送給CPU進 行處理。
權利要求
路由器中採用IPv6頭封裝IPv4包的隧道轉發系統,其特徵在於,含有一個集成於FPGA晶片上的隧道處理電路、SRAM單埠存儲器、SRAM雙埠存儲器、CAM內容可尋址存儲器以及CPU控制單元,其中所述的隧道處理電路,含有IP包輸入接口電路、包過濾電路、包輸入隊列存儲器FIFO、IPv6協議封裝電路、IPv6包隊列存儲器FIFO、包相關信息提取電路、檢索指令隊列存儲器FIFO、CAM控制電路、檢索結果隊列存儲器FIFO、IPv6數據包相關信息隊列存儲器FIFO、IPv6數據包存儲器RAM、包發送電路、CAM維護指令隊列存儲器FIFO、第0個上交包隊列存儲器FIFO、第1個上交包隊列存儲器FIFO、上交包發送電路、以及CPU接口電路,其中IP包輸入接口電路,輸入端接收上級物理和數據鏈路層處理電路輸出的數據就緒信號和數據總線信號,輸出讀信號給上級物理和數據鏈路層處理電路,所述IP包輸入接口電路數據輸出端和包過濾電路的輸入端相連,對輸入輸出的IPv4和IPv6包頭信號和包尾信號分別進行計數,將包頭包尾計數輸出信號發送給CPU接口電路,並接收CPU接口電路輸入的復位信號和計數器清零信號;包過濾電路,輸入端和IP包輸入接口電路相連,還分別和第0個上交包隊列存儲器FIFO、包輸入隊列存儲器FIFO輸出快滿信號相連,輸出端分別和第0個上交包隊列存儲器FIFO的輸入端、包輸入隊列存儲器FIFO的輸入端相連,對輸入輸出的包頭信號和包尾信號進行計數,並發送給CPU接口電路,同時接收CPU接口電路輸入的復位信號和計數器清零信號;包輸入隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為36位,輸入端與上述包過濾電路的IP包輸出端相連,讀信號來自IPv6協議封裝電路,復位信號來自CPU接口電路;IPv6協議封裝電路,輸入端和所述包輸入隊列存儲器FIFO相連,輸出端和IPv6包隊列存儲器FIFO相連,此外輸入端還接收IPv6包隊列存儲器FIFO輸出的快滿信號,IPv6協議封裝電路對輸入輸出的包頭信號和包尾信號進行計數,並發送給CPU接口電路,同時接收CPU接口電路輸入的復位信號和計數器清零信號;IPv6包隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為40位,數據輸入端與上述IPv6協議封裝電路相連,讀輸入信號和包相關信息提取電路的讀輸出相連,輸出端和包相關信息提取電路相連,復位信號來自CPU接口電路;包相關信息提取電路,輸入端和IPv6包隊列存儲器的輸出端相連,輸出端分別和檢索指令隊列存儲FIFO、IPv6數據包存儲器RAM、IPv6數據包相關信息隊列存儲器FIFO相連,對輸入輸出的包頭信號和包尾信號進行計數,並發送給CPU接口電路,同時接收CPU接口電路輸入的復位信號和計數器清零信號;檢索指令隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為100位,數據輸入端與上述包相關信息提取電路相連,讀輸入信號和CAM控制電路的讀輸出相連,數據輸出端和CAM控制電路相連;CAM控制電路,輸入端分別和檢索指令隊列存儲器FIFO輸出端、CAM維護指令隊列存儲器FIFO輸出端相連,CAM控制電路輸出的CAM存儲器讀寫控制命令總線信號以及雙向數據請求總線REQDATA信號和CAM存儲器相連,CAM控制電路和SRAM單埠存儲器的數據總線相連,CAM控制電路輸入端還和CAM存儲器輸出的讀確認信號、查找匹配信號、查找輸出有效信號相連,CAM控制電路輸出的檢索信息輸出端和檢索結果隊列存儲器FIFO相連,此外CAM控制電路的讀信號分別和檢索指令隊列存儲器FIFO的讀輸入端、CAM維護指令隊列存儲器FIFO讀輸入端相連,CAM控制電路輸出端和CPU接口電路相連,將路由表保存的表項發送給CPU接口電路,CAM控制電路對IPv6路由查詢次數和查詢命中的信息進行計數,將這些信息作為查詢狀態信息發送給CPU接口電路,並接收CPU接口電路輸入的復位信號和計數器清零信號;檢索結果隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為148位,數據輸入端與CAM控制電路的輸出相連,讀輸入信號和包發送電路的讀輸出相連,數據輸出端和包發送電路的輸入端相連;IPv6數據包相關信息隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為60位,數據輸入端與上述包相關信息提取電路相連,讀輸入信號和包發送電路的讀輸出相連,數據輸出端和包發送電路相連;CAM維護指令隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為90位,數據輸入端和CPU接口電路相連,讀輸入信號和CAM控制電路輸出的讀信號相連,數據輸出端和CAM控制電路的數據輸入端相連;包發送電路,分別向檢索結果隊列存儲器FIFO、IPv6數據包相關信息隊列存儲器FIFO發出讀信號,並和檢索結果隊列存儲器FIFO、IPv6數據包相關信息隊列存儲器FIFO的輸出端相連,包發送電路輸出的讀信號、讀地址和IPv6數據包存儲器RAM相連,IPv6數據包存儲器RAM的數據輸出端和包發送電路相連,包發送電路的輸出還和第1個上交包隊列存儲器FIFO以及FPGA片外的上行FIFO相連,包發送電路對輸入輸出的IPv4、IPv6包頭信號和包尾信號分別進行計數,並發送給CPU接口電路,同時接收CPU接口電路輸入的復位信號和計數器清零信號;IPv6數據包存儲器RAM是一個雙埠的FPGA片內讀寫存儲器,有一個數據寫入埠和一個數據輸出埠,數據寫入埠和包相關信息提取電路的IPv6數據輸出端相連,讀埠的所有信號和包發送電路相連,IPv6數據包存儲器RAM數據寬度為36位,讀寫埠分別有14根地址線;第0個上交包隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為36位,數據輸入端與上述包過濾電路相連,讀輸入信號和上交包發送電路的讀輸出相連,數據輸出端和上交包發送電路相連;第1個上交包隊列存儲器FIFO,是一個先進先出隊列存儲器,數據寬度為36位,數據輸入端與包發送電路相連,讀輸入信號和上交包發送電路的讀輸出相連,數據輸出端和上交包發送電路相連;上交包發送電路,輸入端和第0個上交包隊列存儲器FIFO、第1個上交包隊列存儲器FIFO相連,數據輸出端和SRAM雙埠存儲器的數據輸入端相連,上交包發送電路發送的CPU中斷信號、SRAM雙埠存儲器數據起始地址和終止地址、SRAM雙埠存儲器中待傳送數據的長度信號輸出端和CPU接口電路相連,CPU接口電路將CPU響應信號輸出給上交包發送電路的輸入端,上交包發送電路對輸入輸出的IPv4、IPv6包頭信號和包尾信號分別進行計數,並發送給CPU接口電路,同時接收CPU接口電路輸入的復位信號和計數器清零信號;CPU接口電路,和由FPGA實現的隧道處理電路內部各個電路相連,接收各個電路輸入的IPv4、IPv6輸入輸出包頭信號和包尾信號計數,以及CAM控制電路的查詢狀態計數,CPU接口電路與FPGA片外CPU控制單元的CPU地址總線、數據總線、讀寫控制信號相連,輸出的中斷信號和CPU控制單元的中斷輸入相連,CPU接口電路還和SRAM雙埠存儲器數據輸出埠的地址總線、數據總線、讀寫控制信號相連,CPU接口電路接收CPU控制單元輸入的復位信號,並將復位信號傳送給FPGA內的其它各個電路,將清零信號傳送給IP包輸入接口電路、包過濾電路、IPv6協議封裝電路、包相關信息提取電路、CAM控制電路、上交包發送電路、包發送電路,CPU接口電路還和CAM維護指令隊列存儲器FIFO的數據輸入端相連,接收CAM控制電路輸出的路由表表項數據,接收上交包發送電路輸出的SRAM雙埠存儲器數據起始地址和終止地址、SRAM雙埠存儲器中待傳送數據的長度以及中斷請求信息,也向上交包發送電路發送CPU中斷響應指示信號;所述包過濾電路是一個電路組件,其中輸入IP包數據寄存器,輸入端和IP包輸入接口電路的輸出端相連;輸入IP包數據寄存器的輸出端分別和IPv4數據包寄存器、IPv6數據包寄存器相連;IPv4數據包寄存器的輸出端分別和IPv4數據包延遲寄存器組、IPv4包頭校驗和寄存器、生存時間寄存器、包類型寄存器、狀態控制機的輸入端相連,同時也接收狀態控制機的輸出;IPv4數據包延遲寄存器組的輸出端和數據選擇器A的輸入端相連;IPv4數據包頭校驗和生成器的輸入端分別和IPv4頭校驗和寄存器輸出、生存時間更新寄存器輸出相連;生存時間寄存器的輸出端和減一減法器A的輸入端以及狀態控制機的輸入端相連,減一減法器A的輸出端和生存時間更新寄存器的輸入端相連,生存時間更新寄存器的輸出端分別和IPv4數據包頭校驗和生成器、狀態控制機相連;數據選擇器A的輸入端又分別和IPv4數據包延遲寄存器組的輸出端、IPv4數據包頭校驗和生成器的輸出端以及狀態控制機的輸出端相連,數據選擇器A的輸出端和更新後的IPv4數據包寄存器輸入端相連;IPv6數據包寄存器的輸出端分別和IPv6數據包延遲寄存器組、跳數寄存器、下一個頭寄存器、IPv6目的地址寄存器、狀態控制機的輸入端相連,同時也接收狀態控制機的輸出;跳數寄存器的輸出端和減一減法器B的輸入端相連以及狀態控制機相連,跳數更新寄存器的輸出端還和狀態控制機相連;減一減法器B的輸出端和跳數更新寄存器的輸入端相連;數據選擇器B的輸入端分別和IPv6數據包延遲寄存器組、跳數更新寄存器、狀態控制機的輸出端相連,數據選擇器B的輸出端和更新後的IPv6數據包寄存器輸入端相連;下一個頭寄存器的輸入端和IPv6數據包寄存器的輸出端相連,輸出端和狀態控制機相連;IPv6目的地址寄存器的輸出端和比較器的輸入端相連,比較器的另一個輸入端和本路由器IPv6地址寄存器輸出端相連;比較器的輸出端和狀態控制機的輸入端相連;本路由器IPv6地址寄存器輸入端和CPU接口電路的輸出相連;數據選擇器C的輸入端分別和更新後的IPv4數據包寄存器、更新後的IPv6數據包寄存器的輸出端相連、狀態控制機以及包輸入隊列存儲器FIFO的快滿信號相連,數據選擇器C的輸出端分別和第0個上交包隊列存儲器FIFO、包輸入隊列存儲器FIFO相連,同時數據選擇器C的包頭信號和包尾信號輸出端也和計數器的輸入端相連;計數器接收CPU接口電路輸出的計數器清零信號,並將包頭包尾信號計數信號傳送給CPU接口電路的輸入端;所述IPv6協議封裝電路是一個電路組件,其中包輸入隊列存儲器FIFO接口電路,數據輸入端和包輸入隊列存儲器FIFO的數據輸出端相連,輸出的讀信號和包輸入隊列存儲器FIFO的讀輸入信號相連,控制輸入輸出端和狀態控制機電路相連;IPv4包頭數據寄存器,輸入端和包輸入隊列存儲器FIFO接口電路輸出端以及狀態控制機電路輸出端相連,一個輸出端和IPv4包頭轉IPv6隧道包頭電路相連,另一個輸出端和多路數據選擇器電路輸入端相連;IPv4負載數據寄存器,輸入端和包輸入隊列存儲器FIFO接口電路輸出端相連,輸出端和多路數據選擇器電路輸入端相連;IPv6數據寄存器,輸入端和包輸入隊列存儲器FIFO接口電路的輸出端相連,輸出端和多路數據選擇器電路輸入端相連;IPv6隧道包頭數據寄存器,輸入端和IPv4包頭轉IPv6隧道包頭電路以及狀態控制機電路相連,輸出端和多路數據選擇器電路相連;多路數據選擇器電路的輸出端和IPv6包隊列存儲器FIFO的輸入端相連;包輸入隊列存儲器FIFO接口電路將接收的數據包頭信號和尾信號發送給計數器電路,多路數據選擇器電路也把輸出的數據包頭、包尾信號傳送給計數器電路,計數器電路輸出的輸入輸出包頭包尾信號計數和CPU接口電路的狀態計數器值輸入端相連,同時接收CPU接口電路輸入的計數器清零信號;所述包相關信息提取電路是一個電路組件,由一系列的電路組成IPv6包隊列存儲器接口電路,所述數據輸入端和IPv6包隊列存儲器FIFO相連,輸出的讀信號和IPv6包隊列存儲器FIFO的讀輸入信號相連,控制輸入輸出端和狀態控制機電路相連,輸出端和包上交標識寄存器、包優先級寄存器、包源埠編號寄存器、包起始地址寄存器、包終止地址寄存器、包序列號寄存器、包目的地址寄存器、隧道標識寄存器以及包寫入RAM電路相連;IPv6包信息發送電路的輸入端和所述包上交標識寄存器、包優先級寄存器、包起始地址寄存器、包源埠編號寄存器、包終止地址寄存器、包序列號寄存器相連,控制信息來自於狀態控制機,輸出端接IPv6數據包相關信息隊列存儲器FIFO;檢索指令發送電路的輸入端和包序列號寄存器、包目的地址寄存器、隧道標識寄存器相連,輸出端和檢索指令隊列存儲器FIFO相連,控制輸入端和狀態控制機相連;包寫入RAM電路的輸出端和IPv6數據包存儲器RAM相連,它的控制輸入端和狀態控制機相連;計數器的輸入端分別和IPv6包隊列存儲器FIFO接口電路的輸入包頭信號以及輸入包尾信號相連,還和包寫入RAM電路輸出的包頭信號和包尾信號相連,同時也和CPU接口電路輸入的計數器清零信號相連,輸出的包頭尾信號計數和CPU接口電路相連;所述CAM控制電路是一個電路組件,由一系列的電路組成檢索指令隊列存儲器FIFO接口電路的數據輸入端和檢索指令隊列存儲器FIFO輸出端相連,輸出的讀信號和檢索指令隊列存儲器FIFO的讀信號相連,並且輸出端也和狀態控制機互連,接收狀態控制機輸出的控制信號;CAM寫入數據寄存器的輸入端和檢索指令隊列存儲器FIFO接口電路、以及CAM維護指令隊列存儲器FIFO接口電路的輸出端相連,輸出端和CAM數據總線讀寫控制電路相連;CAM操作指令發送電路的輸入端和檢索指令隊列存儲器FIFO接口電路的輸出端、CAM維護指令隊列存儲器FIFO接口電路的輸出端相連,輸出端直接和CAM存儲器的命令總線INST、LTIN、SEGSEL、GMASK、CRB和請求選通信號REQSTB相連;SRAM寫入數據寄存器的輸入端和CAM維護指令隊列存儲器FIFO接口電路輸出端,以及檢索指令隊列存儲器FIFO接口電路的輸出端相連,輸出端和SRAM數據總線讀寫控制電路輸入端相連;SRAM數據總線讀寫控制電路的輸出端和SRAM讀出數據寄存器、檢索結果寄存器以及SRAM單埠存儲器相連,控制信號輸入端和狀態機輸出相連;CPU讀出數據寄存器的輸入端和CAM讀出數據寄存器的輸出端、SRAM讀出數據寄存器的輸出端相連,輸出端和CPU接口電路相連;檢索結果寄存器的輸入端和數據包序列號寄存器的輸出端相連,輸出端和檢索結果隊列存儲器FIFO相連;數據包序列號寄存器的輸入端和檢索指令隊列存儲器FIFO接口電路的輸出端以及狀態控制機的輸出端相連;計數器的輸入端和檢索結果寄存器的輸出端相連,還和CPU接口電路輸入的計算器清零信號相連,它輸出的查詢狀態計數輸出和CPU接口電路相連;所述包發送電路是一個電路組件,由一系列的電路組成IPv6數據包相關信息隊列存儲器FIFO接口電路,數據輸入端和IPv6數據包相關信息隊列存儲器FIFO的輸出端相連,控制輸入和輸出端與狀態機控制電路相連,輸出的讀信號和IPv6數據包相關信息隊列存儲器FIFO讀輸入端相連,輸出端分別和包存儲起始地址寄存器、包存儲終止地址寄存器、包長度寄存器、包優先級寄存器、源埠編號寄存器、包序列號寄存器A的輸入端相連;檢索結果隊列存儲器FIFO接口電路,數據輸入端和檢索結果隊列存儲器FIFO的輸出相連,控制輸入和輸出端與狀態機控制電路相連,輸出端分別和包序列號寄存器B、目的埠編號寄存器、目的線卡編號寄存器、下一跳IPv6地址寄存器、下一跳IPv4地址寄存器、隧道IPv6目的地址寄存器的輸入端相連;位寬為36位的附加數據寄存器組的輸入端分別和包優先級寄存器、包長度寄存器、源埠編號寄存器、源線卡編號寄存器、目的埠編號寄存器、目的線卡編號寄存器、下一跳IPv6地址寄存器、下一跳IPv4地址寄存器、隧道IPv6目的地址寄存器的數據輸出端相連;源線卡編號寄存器的輸入來自CPU接口電路;增10加法器,輸入端和包存儲起始地址的輸出相連,輸出端與地址寄存器A相連;地址寄存器B的輸入端和包存儲起始地址的輸出相連;增1加法器的輸出端分別和IPv6數據包存儲器讀地址寄存器的輸出端、地址寄存器C的輸入端相連;多路數據選擇器A,輸入端分別和地址寄存器A、地址寄存器B、地址寄存器C相連,控制輸入端和狀態機控制電路的輸出相連,輸出端和IPv6數據包存儲器讀地址寄存器的輸入端相連;數據比較器A,輸入端和包存儲終止地址寄存器的輸出端以及IPv6數據包存儲器讀地址寄存器的輸出端相連,輸出端和狀態機控制電路的輸入端相連;位寬為36位的IP數據寄存器,輸入端和IPv6數據包存儲器RAM的數據輸出端相連,輸出端和多路數據選擇器B的輸入端相連;多路數據選擇器B,數據輸入端分別和位寬為36位的附加數據寄存器組的輸出端、位寬為36位的IP數據寄存器的輸出端相連,輸出端和上交數據包寄存器、帶附加數據的IPv4或IPv6數據包寄存器的輸入端相連;上交數據包寄存器的輸出端和第1個上交包隊列存儲器FIFO的輸入端相連;帶附加數據的IPv4或IPv6包寄存器的輸出端發往與FPGA相連的上行FIFO;帶附加數據的IPv4或IPv6包寄存器的還將發送的數據包頭信號和包尾信號分別傳送給計數器,計數器還和CPU接口電路輸入的計數器清零信號相連,計數器輸出的包頭包尾信號計數信號發送給CPU接口電路;所述CAM存儲器,是系統的FPGA片外存儲器,讀寫控制命令總線信號以及數據請求總線REQDATA信號來自CAM控制電路,輸出的地址總線信號和讀寫信號分別與SRAM單埠存儲器的地址總線和讀寫信號相連,輸出的讀確認信號、查找匹配信號、查找輸出有效信號和CAM控制電路輸入端相連;所述SRAM單埠存儲器,是系統的FPGA片外靜態SRAM存儲器,讀寫輸入信號和地址信號來自CAM存儲器的輸出,數據輸入輸出端和CAM控制電路相連;所述SRAM雙埠存儲器,是系統的FPGA片外靜態雙埠SRAM存儲器,分為數據寫入埠和數據輸出埠,數據寫入埠的雙向數據總線和上交包發送電路相連,數據寫入埠的讀寫信號線、地址總線和上交包發送電路的輸出端相連,數據輸出埠的雙向數據總線和CPU接口電路相連,數據輸出埠的讀寫信號線、地址總線和CPU接口電路的輸出端相連。
2. 根據權利要求1所述的路由器中採用IPv6頭封裝IPv4包的隧道轉發系統,其 特徵在於所述的CAM由兩片IDT75k62100晶片構成,SRAM單埠存儲器由兩片 IDT71T75602晶片構成。
3. 根據權利要求1所述的路由器中採用IPv6頭封裝IPv4包的隧道轉發系統,其特徵 在於FPGA和片外的CPU控制單元相連。
4. 根據權利要求1所述的路由器中採用IPv6頭封裝IPv4包的隧道轉發系統,SRAM 雙埠存儲器由一片CY7C1300A晶片構成。
5. 根據權利要求1所述的路由器中採用IPv6頭封裝IPv4包的隧道轉發系統,FPGA 和外圍晶片採用同一個主時鐘CLK進行工作,IDT75k62100和FPGA共用一個主時鐘 CLK,兩片IDT71T75602的工作頻率為CLK/2,該CLK/2和主CLK的時鐘源相同,是 CLK主時鐘經二分頻得到的。
全文摘要
路由器中採用IPv6頭封裝IPv4包的隧道轉發系統屬於IPv6路由器技術領域,其特徵在於,它由一片FPGA實現的隧道處理電路和兩片級聯的CAM、兩片單埠SRAM和一片雙埠SRAM及CPU控制單元構成,最大支持64K*288bits的V6路由表項,時鐘頻率為100MHZ時,保證3.2Gbit/s的線速轉發。利用CAM構造路由查找表,支持表項條數的動態分配,同時還負責路由表讀寫及維護。系統接收的IP數據包若是V4包,給V4包加一個V6包頭成為V6隧道包;若是V6數據包,就不轉換。然後提取包的查找信息,進行路由查找,根據返回的結果,對包進行處理按照V4或V6轉發、上交CPU處理、丟棄。
文檔編號H04L12/46GK101692647SQ20091009353
公開日2010年4月7日 申請日期2009年10月12日 優先權日2009年10月12日
發明者全成斌, 徐明偉, 楊珂, 趙有健, 陳文龍 申請人:清華大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀