使用賽靈思 FPGA加速包處理
隨著 10Gb 以太網發展趨于成熟,且業界甚至已開始期待 40GbE 和 100GbE 以太網的出現,新一代網絡基礎架構方興未艾。融合型網絡在流量處理方面向可擴展開放式平臺提出了全新的挑戰。新一代融合型基礎設施底板通常由高性能兆兆位 (TB) 交換結構和可編程內容處理器構成,能夠在復雜性不斷增長且層出不窮的各類應用中處理應用層高達數 10 Gb 的流量。CloudShield 已創建了一系列全新的可編程包處理器,能夠對包進行檢測、分類、修改以及復制,融合與應用層的動態交互。
本文引用地址:http://www.104case.com/article/190095.htm我們的流程加速子系統 (FAST) 采用 Xilinx? Virtex?-class FPGA 來完成為 CloudShield 深度包處理與修改 (CloudShield Deep Packet Processing and Modification) 刀片的包預處理。這些 FPGA 包含 10Gb 以太網 MAC,并為每個端口配備了用于分類及密鑰提取的入口處理器 (ingress processor)、用于包修改的出口處理器 (egress processor)、使用四倍數據速率 (QDR) SRAM的包隊列、基于賽靈思 Aurora 的消息傳輸通道以及基于三態內容可尋址存儲器 (TCAM) 的搜索引擎。我們的 FPGA 芯片組能夠以最少的 CPU 參與來完成包的高速緩存及處理,可實現每秒高達 40Gb 的高性能處理能力。其采用 2 至 7 層字段查詢法,能夠根據動態可重配置規則在線速條件下以靈活和可確定的方式進行包修改。
FAST 包處理器的核心功能
我們當前部署的深度包處理刀片采用兩個刀片存取控制器 FPGA 和一個包交換 FPGA,所有這些都通過 LX110T Virtex-5 FPGA 來實施。每個刀片存取控制器都具備使用兩個賽靈思10GbE MAC/PHY 內核實現的數據層連接功能、基于賽靈思 ChipSyncTM 技術的芯片間接口以及使用賽靈思 IP 核的包處理功能。包交換 PFGA 使用標準的賽靈思 SPI-4.2 IP 核來實現與我們的網絡處理器 (NPU) 及我們的 IP 核搜索引擎接口相連。
為了將片上系統的設計重點集中在包處理功能上,我們盡可能使用標準的賽靈思 IP 核。我們選用賽靈思 10Gb 以太網 MAC 內核配合雙 GTP 收發器來實施 4 x 3.125-Gbps 的 XAUI 物理層接口。針對 NPU 接口,我們使用了帶動態相位對準與 ChipSync 技術且支持每 LVDS 差分對高達 1Gbps 速率的賽靈思 SPI-4 Phase 2 內核。我們主要的包處理 IP 核如下:
? FAST 包處理器:FPP 的入口包處理器 (FIPP) 負責第一層包解析、密鑰與數據流 ID 的散列生成以及按端口進行的第 3 層至第 4 層校驗和驗證。FPP 的出口包處理器 (FEPP) 可執行出口包修改并重新計算第 3 層至第 4 層的校驗和。
? FAST 搜索引擎:我們 FSE 在 TCAM 和 QDR SRAM 中維護著一個流數據庫,可用于決定需要在入口包上執行的處理任務。該 FSE 可從每個端口的 FIPP 處接受密鑰消息,決定針對該包需要執行的處理任務,然后將結果消息返還給原始發出消息的隊列。
? FAST 數據隊列:我們的數據隊列 (FDQ) 可在“無序”保持緩沖器中存儲傳送進來的包。當入口包被寫入到 QDR SRAM 時,該隊列將密鑰消息從 FIPP 發送至 FAST 搜索引擎。該 FSE 將使用這一密鑰來決定如何處理此包,然后將結果消息返還給 FDQ。根據該結果消息,隊列可對每個緩沖的包進行轉發、復制或丟棄處理。此外,該隊列還可對已轉發或已復制的包獨立進行包修改。
數據流的輸入與輸出
圖 1 顯示了流經我們流量加速子系統的數據流。核心 FPGA 功能以綠色表示,包數據流為黃色,控制消息為藍色,外部器件則為灰色。
首先,我們可從 10GbE 網絡端口所接收到的包來識別客戶數據流的開始。每個端口上的包都會進入 FAST 入口包處理器進行包解析與分析(圖中的 1 號)。在對協議和封包進行分類之后,FIPP 可定位第 2、3 以及 4 層的報頭偏移量。接下來是數據流散列與密鑰抽?。〝祿鬟x擇查找規則,如使用源 IP 地址、目的地 IP 地址、源和目的地端口和協議的五元組法 (5-tuple))。
此時,我們的隊列管理器緩沖器負責接收包,以釋放外部 QDR SRAM 的存儲器頁面。在此階段接收到的包都被認為是無序的。在等待 FAST 調度的同時,我們將它們置于外部 QDR SRAM 中。FAST 數據隊列(圖中的 2 號)分配包 ID,并向 FAST 搜索引擎(圖中的 3 號)分派密鑰消息。FAST 搜索引擎使用該密鑰來識別數據流。外部 TCAM 中匹配的數據流條目可在關聯的 SRAM 中向數據流任務表 (Flow Action Table) 提供索引。匹配的數據流任務根據客戶配置的應用訂閱進行確定。
FAST 搜索引擎向 FDQ(圖中的 4 號)發送結果消息進行回復,然后由任務調度程序根據其指定的任務將包分配給某個輸出隊列。然后我們從包隊列中將包解至專用的目的地輸出端口(圖中的 5 號),其中我們的 FAST 出口包處理器(圖中的 6 號)可根據指定任務的要求按數據流修改表 (Flow Modification Table) 中的規則處理包修改。
評論