0731-84728105
15116127200
FAST入門(3)軟硬協同分(fēn)組處理模型之一(yī)
發布時間:2018-06-29
    &n商大bsp;軟硬件協同的分(fēn)組處理是FAST區别其他數據平面資對開(kāi)源項目的最重要的特點。模塊(Module)是FA上東ST平台中(zhōng)交換功能定義、資(服錢zī)源分(fēn)配以及代碼重用的基本單元,特定分(fēn)組處理坐器功能到軟硬件模塊的映射也是FAST軟硬件又資協同分(fēn)組處理的關鍵。
一(yī)、FAST模塊簡介
  &nbs放黃p;  FAST中(zhōng)的模塊是能夠實現特定網絡處我下理功能的,具有唯一(yī)标識的,相對獨立的一(yī)個軟件程習做序(UA)或FAST流水線中(zhōng)的硬件邏計錢輯塊。FAST模塊能夠按需連接,組成上下(的村xià)遊關系,實現分(fēn)組處理的流水線。FAST高理模塊具有一(yī)些共有的屬性:
   (1)章議用戶可見
     模塊的用行視戶可見是在交換功能設計時,模塊實現的功能錢在是用戶可以感知(zhī)到并且關注的功能。如FPGA實現的分(fēn)組北舞協議解析邏輯塊、輸出調度邏輯塊、IEEE 15用通88端節點的時鍾同步功能塊以及操作系統内核中(zhōng)的TCP/火窗IP協議棧等。這些功能都與用戶實現的分(fēn)組交換目風問标密切關聯。FPGA OS和操作系統内核中(zhōn少離g)用戶不可見且不關心的功能實現不能稱爲模塊,例如FP生師GA中(zhōng)的DMA引擎、DDR接口控制器以及操作系統中(zhō月子ng)的FAST驅動程序等。
   (2)獨立可重用在來
    大業 模塊間是相互獨立的,在功能實現上沒有明确的功能依賴或調用關風道系。模塊之間隻存在上下(xià)遊關系,不存在厭要父模塊和子模塊關系。不同的模塊可能來自不同的開算票(kāi)發人員(yuán),這些模塊在不同的設計廠來中(zhōng)可以重用,用戶通過不同模塊的組合紅電實現不同的分(fēn)組交換功能。因此硬件模塊也外的設計必須遵循FAST流水線規範中(zhōng)對模塊接口信号語法語喝有義的要求,FAST軟件UA模塊設計必須基于FAST API,風吧不能對其上遊或下(xià)遊模塊的實現方法提出任書這何假設。
   (3)唯一(雪林yī)标識
    理刀; FAST平台中(zhōng)每明就個模塊都用被稱爲MID的8比特ID唯一(yī行下)标識,因此平台中(zhōng)最多支持256個模從員塊。FAST規定0-127爲FAST流水線中(zhōng舞的)硬件模塊的MID标識,128-255爲FAST軟術市件模塊的标識。硬件模塊在實例化時通過外(wài)部連線獲取MID,軟件UA在水計初始化注冊時獲取自己的MID。在軟硬件協同分(制文fēn)組處理中(zhōng),對分(f大不ēn)組目的模塊号(DMID)的設置是實現分(fēn)組處理路經控制的重員慢要手段。
   &nb紅外sp; FAST開(kāi)源項目爲用舊房戶提供了經過測試可直接使用的通用軟硬件模塊。其中(zhōng)FAS件秒T流水線中(zhōng)的通用硬件模塊包括: 裡妹
    &nbs畫裡p;通用分(fēn)組解析模塊(GPP),實現以太網、ARP、IPv4、IPv年國6、ICMP/ICMPv6,TCP和UDP等協議的月務解析功能;
  &nbs線美p;  通用關鍵字提取模塊(GKE),實現I影來Pv4/IPv6分(fēn)組的多元組(五元組+輸入端口号等)信息跳雜的提取和查表關鍵字的生(shēng)成;
    金生; 通用查表模塊(GME),實現T自舞CAM查表功能,将GKE提取的五元組信息映射爲14位的Fl老會owID。
   &友舊nbsp; 通用動作模塊(GAC),根靜跳據FlowID查找動作表,獲取分(fēn)組的目的輸愛是出接口或UA的MID(如果需要将分(fēn)組定向到我工軟件處理)。
    &玩子nbsp;通用輸出引擎(GOE),實現基于令新劇牌桶的輸出分(fēn)組Meter,丢棄分都的(fēn)組計數等功能;
     通用頻兵的軟件模塊包括:
    廠下 OpenFlow通道UA(OXFP),會商在FAST硬件流水線與源端SDN控制器之間建立OpenFlow 1.3協長道議通道的連接,實現packet-in/packet-out分(水做fēn)組交換以及FlowMOD等消息的解析執行操作。
   &nb見唱sp; 不同用戶根據自身需求,已開(kāi)發的FAST流水器科線模塊還包括IEEE 1588 PTP協議解析模塊、DDOS前端弟弟檢測模塊、TCP代理模塊、Lisp協議封裝/解封裝模塊、假冒源IPv6地址檢測醫跳模塊、測量分(fēn)組定時發送模塊及傳輸協議跳變模塊等。實現的軟件UA包括I就麗Pv6路經MTU發現模塊、DDOS檢測控制模塊、狀科高态防火(huǒ)牆模塊及LISP映射管理代理模塊等。
     廠大;上述用戶自定義模塊與FAST提供的基本音志軟硬件模塊組合,即可在标準OpenFlow交換基礎上,擴充更多商現的用戶定制功能,實現有狀态的數據平面處理。
二、模塊的組織與交換功能實現
    工新 不失一(yī)般性,FAST平台中(zhōng)包含n個硬件服信模塊和m個軟件模塊(n>0,m>0)。n個硬件模塊組成硬件流水線,到達分(f和如ēn)組依次由硬件流水線的第1級(模塊X1),第2級(模塊X2)…第n級事你(模塊Xn)進行處理。m個軟件模塊(UA)連接到FAST内核上草遠,通過FAST API與其他軟件模塊和F黑還AST硬件流水線進行分(fēn)組交換。 歌土
     F麗睡AST模塊間交換的信息包括分(fēn)組信息(P)以及保留中(zhōng)市開間處理結果的元數據(MD)。元數據中(zhōng)包含了處理分(fēn)化地組的目的模塊MID(DMID)、上一(yī)個處山頻理該分(fēn)組的源模塊MID(SMID)、以及分(fē林事n)組接收端口号、接收時間戳等信息。FPGA煙多 OS需要爲網絡端口輸入的分(fēn)組初始化其MD字是低段,例如填寫接收端口号,标記接收時間戳等。
     說男; 分(fēn)組在FAST平台中(zhōng)處理遠制的路經控制主要由MD中(zhōng)的D放舊MID和SMID字段控制。例如FAST内核基于MD中(zhōng)的DMID和近有SMID實現分(fēn)組在不同軟件UA與硬件流水線之間的交換。而現懂SMID在路經選擇中(zhōng)使用主要是爲了靈活的實現分(fēn)組處理票林流程的編排。
  &nbs門老p;  基于上圖所示的模塊組織方法,FAST平台可将已有開資照(kāi)源模塊連接起來實現通用分(fēn)組交換功能。黑道例如,當FAST流水線由GPP、GKE、GME、GAC和GOE從弟五個模塊依次連接組成,軟件加載OpenFlow通道UA(森上OXFP)時,平台即可支持基本的OpenFlow1.3功能。 坐身
    &n歌間bsp;用戶可以通過在已有的模塊處理架構中樂器(zhōng)插入新的模塊實現功能擴展。例如當需要在特定接口上(例如連商得接外(wài)部網絡的端口0上)實現針對TC文習P的狀态防火(huǒ)牆(SFW)功能時,一(yī)種對務方法是軟件擴展,在linux用戶空間編寫SFW功能的UA,通過配置GME弟事的規則,将0号口進出的TCP分(fēn)組定向到SFW年鐵 UA進行處理,這種方法實現快速,不需要改動現有的硬件;另一(yī她要)種方法是硬件擴展,直接在FAST流水線中(zh化遠ōng)插入SFW硬件模塊,這種方法處理性能高話通,适合熟悉硬件設計的研究人員(yuán)。
     如何基林器于DMID和SMID實現分(fēn)組處睡市理路經控制,如何選取合适的功能擴展方式以及功能擴展的實現細做妹節将在後續文章中(zhōng)逐步介紹。 間們