视频国产一区二区三区-久精品视频在线-HD免费看片,欧美一级少妇,闺房里的呻吟h玉势,tai9国产一区二区

0731-84728105
15116127200
FAST入門(3)軟硬協(xié)同分組處理模型之一
發(fā)布時間:2018-06-29
     軟硬件協(xié)同的分組處理是FAST區(qū)別其他數(shù)據(jù)平面開源項目的最重要的特點。模塊(Module)是FAST平臺中交換功能定義、資源分配以及代碼重用的基本單元,特定分組處理功能到軟硬件模塊的映射也是FAST軟硬件協(xié)同分組處理的關鍵。
一、FAST模塊簡介
     FAST中的模塊是能夠實現(xiàn)特定網(wǎng)絡處理功能的,具有唯一標識的,相對獨立的一個軟件程序(UA)或FAST流水線中的硬件邏輯塊。FAST模塊能夠按需連接,組成上下游關系,實現(xiàn)分組處理的流水線。FAST模塊具有一些共有的屬性:
   (1)用戶可見
     模塊的用戶可見是在交換功能設計時,模塊實現(xiàn)的功能是用戶可以感知到并且關注的功能。如FPGA實現(xiàn)的分組協(xié)議解析邏輯塊、輸出調度邏輯塊、IEEE 1588端節(jié)點的時鐘同步功能塊以及操作系統(tǒng)內核中的TCP/IP協(xié)議棧等。這些功能都與用戶實現(xiàn)的分組交換目標密切關聯(lián)。FPGA OS和操作系統(tǒng)內核中用戶不可見且不關心的功能實現(xiàn)不能稱為模塊,例如FPGA中的DMA引擎、DDR接口控制器以及操作系統(tǒng)中的FAST驅動程序等。
   (2)獨立可重用
     模塊間是相互獨立的,在功能實現(xiàn)上沒有明確的功能依賴或調用關系。模塊之間只存在上下游關系,不存在父模塊和子模塊關系。不同的模塊可能來自不同的開發(fā)人員,這些模塊在不同的設計中可以重用,用戶通過不同模塊的組合實現(xiàn)不同的分組交換功能。因此硬件模塊的設計必須遵循FAST流水線規(guī)范中對模塊接口信號語法語義的要求,F(xiàn)AST軟件UA模塊設計必須基于FAST API,不能對其上游或下游模塊的實現(xiàn)方法提出任何假設。
   (3)唯一標識
     FAST平臺中每個模塊都用被稱為MID的8比特ID唯一標識,因此平臺中最多支持256個模塊。FAST規(guī)定0-127為FAST流水線中硬件模塊的MID標識,128-255為FAST軟件模塊的標識。硬件模塊在實例化時通過外部連線獲取MID,軟件UA在初始化注冊時獲取自己的MID。在軟硬件協(xié)同分組處理中,對分組目的模塊號(DMID)的設置是實現(xiàn)分組處理路經(jīng)控制的重要手段。
     FAST開源項目為用戶提供了經(jīng)過測試可直接使用的通用軟硬件模塊。其中FAST流水線中的通用硬件模塊包括:
     通用分組解析模塊(GPP),實現(xiàn)以太網(wǎng)、ARP、IPv4、IPv6、ICMP/ICMPv6,TCP和UDP等協(xié)議的解析功能;
     通用關鍵字提取模塊(GKE),實現(xiàn)IPv4/IPv6分組的多元組(五元組+輸入端口號等)信息的提取和查表關鍵字的生成;
     通用查表模塊(GME),實現(xiàn)TCAM查表功能,將GKE提取的五元組信息映射為14位的FlowID。
     通用動作模塊(GAC),根據(jù)FlowID查找動作表,獲取分組的目的輸出接口或UA的MID(如果需要將分組定向到軟件處理)。
     通用輸出引擎(GOE),實現(xiàn)基于令牌桶的輸出分組Meter,丟棄分組計數(shù)等功能;
     通用的軟件模塊包括:
     OpenFlow通道UA(OXFP),在FAST硬件流水線與源端SDN控制器之間建立OpenFlow 1.3協(xié)議通道的連接,實現(xiàn)packet-in/packet-out分組交換以及FlowMOD等消息的解析執(zhí)行操作。
     不同用戶根據(jù)自身需求,已開發(fā)的FAST流水線模塊還包括IEEE 1588 PTP協(xié)議解析模塊、DDOS前端檢測模塊、TCP代理模塊、Lisp協(xié)議封裝/解封裝模塊、假冒源IPv6地址檢測模塊、測量分組定時發(fā)送模塊及傳輸協(xié)議跳變模塊等。實現(xiàn)的軟件UA包括IPv6路經(jīng)MTU發(fā)現(xiàn)模塊、DDOS檢測控制模塊、狀態(tài)防火墻模塊及LISP映射管理代理模塊等。
     上述用戶自定義模塊與FAST提供的基本軟硬件模塊組合,即可在標準OpenFlow交換基礎上,擴充更多的用戶定制功能,實現(xiàn)有狀態(tài)的數(shù)據(jù)平面處理。
二、模塊的組織與交換功能實現(xiàn)
     不失一般性,F(xiàn)AST平臺中包含n個硬件模塊和m個軟件模塊(n>0,m>0)。n個硬件模塊組成硬件流水線,到達分組依次由硬件流水線的第1級(模塊X1),第2級(模塊X2)…第n級(模塊Xn)進行處理。m個軟件模塊(UA)連接到FAST內核上,通過FAST API與其他軟件模塊和FAST硬件流水線進行分組交換。
     FAST模塊間交換的信息包括分組信息(P)以及保留中間處理結果的元數(shù)據(jù)(MD)。元數(shù)據(jù)中包含了處理分組的目的模塊MID(DMID)、上一個處理該分組的源模塊MID(SMID)、以及分組接收端口號、接收時間戳等信息。FPGA OS需要為網(wǎng)絡端口輸入的分組初始化其MD字段,例如填寫接收端口號,標記接收時間戳等。
      分組在FAST平臺中處理的路經(jīng)控制主要由MD中的DMID和SMID字段控制。例如FAST內核基于MD中的DMID和SMID實現(xiàn)分組在不同軟件UA與硬件流水線之間的交換。而SMID在路經(jīng)選擇中使用主要是為了靈活的實現(xiàn)分組處理流程的編排。
     基于上圖所示的模塊組織方法,F(xiàn)AST平臺可將已有開源模塊連接起來實現(xiàn)通用分組交換功能。例如,當FAST流水線由GPP、GKE、GME、GAC和GOE五個模塊依次連接組成,軟件加載OpenFlow通道UA(OXFP)時,平臺即可支持基本的OpenFlow1.3功能。
     用戶可以通過在已有的模塊處理架構中插入新的模塊實現(xiàn)功能擴展。例如當需要在特定接口上(例如連接外部網(wǎng)絡的端口0上)實現(xiàn)針對TCP的狀態(tài)防火墻(SFW)功能時,一種方法是軟件擴展,在linux用戶空間編寫SFW功能的UA,通過配置GME的規(guī)則,將0號口進出的TCP分組定向到SFW UA進行處理,這種方法實現(xiàn)快速,不需要改動現(xiàn)有的硬件;另一種方法是硬件擴展,直接在FAST流水線中插入SFW硬件模塊,這種方法處理性能高,適合熟悉硬件設計的研究人員。
     如何基于DMID和SMID實現(xiàn)分組處理路經(jīng)控制,如何選取合適的功能擴展方式以及功能擴展的實現(xiàn)細節(jié)將在后續(xù)文章中逐步介紹。