0731-84728105
15116127200
FAST入門(2):FAST交換平台簡介
發布時間:2018-06-25
一(yī)、FAST交換平台的(de)組成
      FAST是基于多核CPU和(hé)FPGA的(de)開源可(kě)重構分組交換平台。通常對處理(lǐ)性能要求較高(gāo)的(de)分組處理(lǐ)功能由FPGA實現,對處理(lǐ)性能要求較低(dī),實現複雜的(de)功能可(kě)由CPU實現。用戶既可(kě)通過擴展FPGA硬件流水線功能也可(kě)以通過CPU上編程實現對分組交換功能的(de)擴充。
     802.1Q規範沒有(yǒu)明确定義流量測量的(de)粒度,無法對進入網絡的(de)流量進行(xíng)細粒度的(de)測量和(hé)管控。雖然支持多種輸出調度算法,但更多是保證輸出調度的(de)優先級,或者按照預先确定的(de)權值分配不同優先級隊列占用的(de)輸出帶寬,在調度中沒有(yǒu)利用全局時間信息,無法實現确定性的(de)延時控制。軟件定義網絡技術的(de)應用可(kě)以簡化交換流程,将生成樹管理(lǐ)以及地(dì)址學(xué)習功能上載到控制器上實現,可(kě)以針對每條細粒度的(de)流定義交換行(xíng)為(wèi),但也難以實現确定性的(de)延時控制。
     FAST交換的(de)實現不依賴特定的(de)CPU與FPGA型号,但為(wèi)了更好地(dì)提供交換功能擴充能力,保證軟硬件協同分組處理(lǐ)的(de)基本性能,FAST的(de)交換平台必須具有(yǒu)如(rú)下兩個特點:
   (1)所有(yǒu)網絡接口連接到FPGA上
     進入交換平台的(de)分組首先送FPGA處理(lǐ),離(lí)開交換平台的(de)分組最後由FPGA發出。這樣有(yǒu)兩個優點。一(yī)是交換平台可(kě)精确獲取分組接收時間以及控制發送時間,實現類似1588透明時鍾的(de)控制,支持時間敏感交換;二是平台可(kě)以支持各種新型的(de)分組格式,支持內(nèi)容中心網絡(ICN)等非IP交換。
   (2)FPGA通過高(gāo)帶寬總線與CPU連接
     與傳統交換芯片通過低(dī)帶寬的(de)SPI總線、以太網或是單Lane的(de)PCIE總線與控制CPU連接不同,FAST平台中FPGA通過高(gāo)帶寬的(de)總線與CPU連接,提升軟硬件協同分組處理(lǐ)的(de)性能,支持通過CPU軟件對數據平面處理(lǐ)功能進行(xíng)擴展。
     FAST交換平台的(de)實現架構如(rú)下圖所示。FPGA邏輯分為(wèi)平台相關的(de)FPGAOS(類似微軟數據中心加速FPGA中的(de)Shell)和(hé)FAST流水線兩部分。FPGA OS主要實現平台相關,交換功能無關的(de)分組處理(lǐ),如(rú)網絡接口的(de)接收與發送、CPU的(de)DMA引擎以及FPGA片外或片內(nèi)實現的(de)TCAM查表功能等。FAST 流水線實現交換相關的(de)網絡功能,如(rú)分組解析、關鍵字提取、轉發查表、動作執行(xíng)和(hé)輸出控制等。用戶可(kě)通過擴展流水線實現不同的(de)交換功能。
     FAST流水線可(kě)将特定類型的(de)分組定向發往CPU進行(xíng)處理(lǐ)。CPU上FPGA接口驅動稱為(wèi)FAST驅動,該驅動識别FAST分組,根據分組攜帶Metadata中的(de)內(nèi)容将分組交協議棧或FAST內(nèi)核處理(lǐ)。如(rú)果分組交協議棧(例如(rú)發往本地(dì)控制平面的(de)分組),則分組格式要首先轉換成為(wèi)skb-buf的(de)格式。FAST內(nèi)核實現Linux用戶空間中不同的(de)FAST應用程序(UA)以及FAST硬件流水線之間FAST格式分組的(de)交換。FAST UA通過FAST 編程庫提供的(de)API與FAST硬件流水線或其他UA交換FAST分組以及管理(lǐ)配置FAST流水線。

圖1 FAST交換平台的(de)組成
     FAST UA實現用戶定義的(de)分組處理(lǐ)功能,如(rú)與外部SDN控制器連接的(de)OpenFlow通道(dào),軟件實現的(de)新型轉發交換(如(rú)LISP、段路由等)以及各類有(yǒu)狀态Middlebox功能等。FAST流水線中的(de)硬件模塊可(kě)以通過查表決定直接轉發分組或者把分組重新定向到特定的(de)軟件UA上。
二、支持FAST的(de)網絡平台
     為(wèi)支持基于FAST的(de)教學(xué)與科(kē)研,FAST開源社區聯合湖南新實網絡科(kē)技有(yǒu)限公司推出多款FAST交換平台,支持Intel/ARM CPU,以及Altera/Xilinx公司的(de)多個型号的(de)FPGA。
     采用Zynq-7000 SOC芯片,內(nèi)嵌雙核Cortex-A9 處理(lǐ)器,512MB DDR3內(nèi)存;支持4路千兆以太網數據接口及一(yī)路千兆管理(lǐ)以太網接口。适合基于FAST的(de)計算機(jī)網絡教學(xué)和(hé)新型網絡交換機(jī)制的(de)驗證。

圖2 OpenBox-S4z
     OpenBox-S4z平台支持NetEXP教學(xué)案例,可(kě)用于研究生和(hé)本科(kē)生的(de)計算機(jī)網絡實驗教學(xué)。高(gāo)校教師與研究人員可(kě)免費申請試用OpenBox-S4z平台。
     基于Intel Atom CPU和(hé)Altera Arria V FPGA實現,支持8個千兆以太網和(hé)2個萬兆以太網接口,以及一(yī)個千兆管理(lǐ)以太網接口。适合中等端口密度的(de)實驗網組網和(hé)新型網絡設備原型驗證。

圖3 OpenBox-S28
     采用Zynq-7000 SOC芯片,內(nèi)嵌雙核Cortex-A9 處理(lǐ)器,1GB DDR3內(nèi)存;支持16個千兆以太網接口和(hé)4個萬兆接口,适合高(gāo)端口密度的(de)試驗網組網和(hé)新型網絡設備原型驗證。

圖4 OpenBox-S56
  FAST開源社區為(wèi)所有(yǒu)OpenBox系列設備提供:
     (1)平台無關的(de)FAST硬件流水線,FAST內(nèi)核,FAST編程庫以及OpenFlow通道(dào)等典型UA的(de)源代碼;
     (2)平台相關的(de)FPGA OS以及FAST驅動的(de)執行(xíng)代碼;
     (3)基于OpenBox平台的(de)用戶需求定制與技術培訓服務。