FAST入門(mén)(2):FAST交換平台簡介
發布時(shí)間:2018-06-25
一、FAST交換平台的組成
FAST是基于多核CPU和(hé)FPGA的開(kāi)源可重構分組交換平台。通常對(duì)處理(lǐ)性能(néng)要求較高(gāo)的分組處理(lǐ)功能(néng)由FPGA實現(xiàn),對(duì)處理(lǐ)性能(néng)要求較低(dī),實現(xiàn)複雜(zá)的功能(néng)可由CPU實現(xiàn)。用(yòng)戶既可通過擴展FPGA硬件流水(shuǐ)線功能(néng)也(yě)可以通過CPU上(shàng)編程實現(xiàn)對(duì)分組交換功能(néng)的擴充。
802.1Q規範沒有明(míng)确定義流量測量的粒度,無法對(duì)進入網絡的流量進行細粒度的測量和(hé)管控。雖然支持多種輸出調度算(suàn)法,但(dàn)更多是保證輸出調度的優先級,或者按照預先确定的權值分配不同優先級隊列占用(yòng)的輸出帶寬,在調度中沒有利用(yòng)全局時(shí)間信息,無法實現(xiàn)确定性的延時(shí)控制。軟件定義網絡技術的應用(yòng)可以簡化交換流程,将生成樹管理(lǐ)以及地址學習功能(néng)上(shàng)載到(dào)控制器上(shàng)實現(xiàn),可以針對(duì)每條細粒度的流定義交換行爲,但(dàn)也(yě)難以實現(xiàn)确定性的延時(shí)控制。
FAST交換的實現(xiàn)不依賴特定的CPU與FPGA型号,但(dàn)爲了(le)更好(hǎo)地提供交換功能(néng)擴充能(néng)力,保證軟硬件協同分組處理(lǐ)的基本性能(néng),FAST的交換平台必須具有如下(xià)兩個特點:
(1)所有網絡接口連接到(dào)FPGA上(shàng)
進入交換平台的分組首先送FPGA處理(lǐ),離開(kāi)交換平台的分組最後由FPGA發出。這(zhè)樣有兩個優點。一是交換平台可精确獲取分組接收時(shí)間以及控制發送時(shí)間,實現(xiàn)類似1588透明(míng)時(shí)鐘(zhōng)的控制,支持時(shí)間敏感交換;二是平台可以支持各種新型的分組格式,支持内容中心網絡(ICN)等非IP交換。
(2)FPGA通過高(gāo)帶寬總線與CPU連接
與傳統交換芯片通過低(dī)帶寬的SPI總線、以太網或是單Lane的PCIE總線與控制CPU連接不同,FAST平台中FPGA通過高(gāo)帶寬的總線與CPU連接,提升軟硬件協同分組處理(lǐ)的性能(néng),支持通過CPU軟件對(duì)數據平面處理(lǐ)功能(néng)進行擴展。
FAST交換平台的實現(xiàn)架構如下(xià)圖所示。FPGA邏輯分爲平台相關的FPGAOS(類似微軟數據中心加速FPGA中的Shell)和(hé)FAST流水(shuǐ)線兩部分。FPGA OS主要實現(xiàn)平台相關,交換功能(néng)無關的分組處理(lǐ),如網絡接口的接收與發送、CPU的DMA引擎以及FPGA片外(wài)或片内實現(xiàn)的TCAM查表功能(néng)等。FAST 流水(shuǐ)線實現(xiàn)交換相關的網絡功能(néng),如分組解析、關鍵字提取、轉發查表、動作(zuò)執行和(hé)輸出控制等。用(yòng)戶可通過擴展流水(shuǐ)線實現(xiàn)不同的交換功能(néng)。
FAST流水(shuǐ)線可将特定類型的分組定向發往CPU進行處理(lǐ)。CPU上(shàng)FPGA接口驅動稱爲FAST驅動,該驅動識别FAST分組,根據分組攜帶Metadata中的内容将分組交協議(yì)棧或FAST内核處理(lǐ)。如果分組交協議(yì)棧(例如發往本地控制平面的分組),則分組格式要首先轉換成爲skb-buf的格式。FAST内核實現(xiàn)Linux用(yòng)戶空(kōng)間中不同的FAST應用(yòng)程序(UA)以及FAST硬件流水(shuǐ)線之間FAST格式分組的交換。FAST UA通過FAST 編程庫提供的API與FAST硬件流水(shuǐ)線或其他(tā)UA交換FAST分組以及管理(lǐ)配置FAST流水(shuǐ)線。
圖1 FAST交換平台的組成
FAST UA實現(xiàn)用(yòng)戶定義的分組處理(lǐ)功能(néng),如與外(wài)部SDN控制器連接的OpenFlow通道(dào),軟件實現(xiàn)的新型轉發交換(如LISP、段路由等)以及各類有狀态Middlebox功能(néng)等。FAST流水(shuǐ)線中的硬件模塊可以通過查表決定直接轉發分組或者把分組重新定向到(dào)特定的軟件UA上(shàng)。
二、支持FAST的網絡平台
爲支持基于FAST的教學與科研,FAST開(kāi)源社區(qū)聯合湖南尚錦網絡科技有限公司推出多款FAST交換平台,支持Intel/ARM CPU,以及Altera/Xilinx公司的多個型号的FPGA。
OpenBox-S4
采用(yòng)Zynq-7000 SOC芯片,内嵌雙核Cortex-A9 處理(lǐ)器,512MB DDR3内存;支持4路千兆以太網數據接口及一路千兆管理(lǐ)以太網接口。适合基于FAST的計(jì)算(suàn)機網絡教學和(hé)新型網絡交換機制的驗證。
圖2 OpenBox-S4z
OpenBox-S4z平台支持NetEXP教學案例,可用(yòng)于研究生和(hé)本科生的計(jì)算(suàn)機網絡實驗教學。高(gāo)校教師與研究人員可免費申請(qǐng)試用(yòng)OpenBox-S4z平台。
OpenBox-S28
基于Intel Atom CPU和(hé)Altera Arria V FPGA實現(xiàn),支持8個千兆以太網和(hé)2個萬兆以太網接口,以及一個千兆管理(lǐ)以太網接口。适合中等端口密度的實驗網組網和(hé)新型網絡設備原型驗證。
圖3 OpenBox-S28
OpenBox-S56
采用(yòng)Zynq-7000 SOC芯片,内嵌雙核Cortex-A9 處理(lǐ)器,1GB DDR3内存;支持16個千兆以太網接口和(hé)4個萬兆接口,适合高(gāo)端口密度的試驗網組網和(hé)新型網絡設備原型驗證。
圖4 OpenBox-S56
FAST開(kāi)源社區(qū)爲所有OpenBox系列設備提供:
(1)平台無關的FAST硬件流水(shuǐ)線,FAST内核,FAST編程庫以及OpenFlow通道(dào)等典型UA的源代碼;
(2)平台相關的FPGA OS以及FAST驅動的執行代碼;
(3)基于OpenBox平台的用(yòng)戶需求定制與技術培訓服務。