天天看點

netFPGA開源項目調研

作者:徐丹的寫作空間
netFPGA開源項目調研

在平時的搜尋中發現有個netFPGA平台,它是斯坦福大學的開源平台,比較早了,大概零幾年就有,有官網https://netfpga.org ,還在不斷更新,感覺主要是學生在用,适應SDN(軟體定義網絡,這個概念之前比較火,最近幾年不太火了),新的資料不是太多。在csdn上有找到一些資料,比較詳細的一個文檔是NetFPGA-10GOpenFlowSwitch,拿來研讀了一些。

NetFPGA 是一個低成本、可重用硬體平台。它的出現使研究人員可以在硬體級别的開發環境上搭建 Gb/s 級高性能網絡系統模型,進而進行網絡系統的研究和測試。NetFPGA平台的軟體系統包括作業系統、作為軟體接口的驅動程式、實作各種硬體功能的邏輯代碼、執行控制功能的軟體程式、系統測試的腳本程式,以及計算機輔助設計軟體工具。

netFPGA的開發包括硬體和軟體的開發,硬體部分是邏輯設計,軟體部分是驅動的開發和軟體的開發,在前人的基礎上可以搭建自己的系統,不需要重複搭建外圍子產品、開發驅動和GUI,隻需要添加自己的子產品。

netFPGA開源項目調研

NetFPGA概述性的資料如下:

1.NetFPGA設計與架構

NetFPGA平台由四部分組成:硬體開發闆、軟體驅動程式、開發套件和社群支援。硬體開發闆基于Xilinx Virtex-4 FX FPGA,擁有四個千兆以太網端口和一個PCI接口,可以用于設計和測試各種網絡應用程式。軟體驅動程式提供網絡接口和傳輸控制協定/網際網路協定(TCP/IP)協定棧等功能,使應用程式能夠直接通路網絡硬體。開發套件則為使用者提供了一套完整的開發工具鍊,包括RTL語言編譯器、仿真器、調試器和應用程式模闆等。最後,NetFPGA社群支援提供了豐富的資源和文檔,幫助使用者更好地了解和使用NetFPGA平台。

基于Linux核心的裝置驅動程式是NetFPGA開發闆與主機作業系統的軟體接口。首先,驅動程式對NetFPGA的四個千兆以太網口進行配置,在系統内添加了四個命名為nf2c0、nf2c1、nf2c2、nf2c3的網絡連接配接,進而使得PC主機上的使用者空間軟體可以通過NetFPGA開發闆上的以太網端口來收發資料分組,就像使用普通的以太網口一樣。其次,驅動程式給安裝在主機上的每個NetFPGA闆子預留了128MB的主機記憶體空間,開發闆的片上寄存器、SRAM、DRAM被映射到記憶體中,應用程式通過對這些寄存器映像進行讀寫,進而控制NetFPGA的運作模式,監視資料通道的分組處理狀态。再者,驅動程式使主機和NetFPGA之間按照DMA方式傳送這個以太網幀,進而使主機在I/O進行的同時能夠并行運算而不必等待I/O結束。

實作各種硬體功能的邏輯代碼是由Verilog硬體設計語言編寫的,這些代碼通過仿真來測試和改進邏輯功能,之後生成bit檔案下載下傳到FPGA中,執行相應的硬體功能。NetFPGA作為一個開放平台,其研究者們已經貢獻出了很多Verilog子產品,這為我們的研究開發提供了很大的便捷。

完成控制功能的軟體程式主要是由C語言編寫,包括讀寫寄存器、網絡協定的執行等功能。為了使操作簡單和便捷,NetFPGA平台還提供了Java程式開發的圖形使用者界面(Java GUI)。

此外,Linux作業系統下的Shell腳本程式,可以用來調用C語言程式,進而對系統進行測試,評估其網絡性能等。這些腳本程式通常是在Shell終端裡,以指令行的方式運作的。

用于NetFPGA平台開發的計算機輔助設計(CAD)工具,對硬體設計進行仿真和調試。設計方案通過Mentor Graphics ModelSim來仿真,確定邏輯能夠正确地執行。

netFPGA開源項目調研

2.NetFPGA應用領域

NetFPGA平台可以應用于多個領域,如網絡安全、網絡測量、網絡處理和資料中心等。其中,網絡安全是一個重要的應用領域。利用NetFPGA平台,可以設計和實作高效、靈活和可定制的網絡安全系統,如入侵檢測系統、入侵防禦系統和流量監控等。此外,NetFPGA平台還可以用于研究和開發新型網絡協定和技術,如軟體定義網絡(SDN)和網絡功能虛拟化(NFV)等。

3.NetFPGA社群貢獻

NetFPGA平台的成功離不開全球各地的開發者和使用者的積極參與和貢獻。NetFPGA社群提供了豐富的資源和文檔,為使用者提供了良好的交流平台。同時,NetFPGA平台也得到了衆多學術機構和産業界的支援和認可。如今,NetFPGA已經成為一種廣泛應用的網絡硬體創新平台,并在網絡技術和應用領域取得了巨大的成功。

netFPGA開源項目調研