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

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

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

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

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