国产午夜视频免费_精品午夜国产_国产欧洲av,寡妇高潮的味道,特级全黄久久久久久久久,久久久亚洲高清

0731-84728105
15116127200
FAST入門(8)FAST平臺軟件實現原理之一
發布時間:2018-08-10
     軟硬件協同是FAST平臺分組處理的特色。FAST平臺軟件主要實現FAST硬件流水線與FAST用戶應用(UA)間數據通路和控制通路的信息交互,為UA編程提供函數庫,是支撐UA運行的基礎。FAST平臺軟件主要由Linux內核中的FAST驅動和FAST內核以及用戶空間的FAST編程庫組成。
一、FAST UA的通信模式
     FAST UA運行時與FPGA以及網絡接口有多種通信需求,包括FAST分組收發、對FPGA的配置管理以及與遠端主機進行標準的Socket通信等。
   (1)FAST分組收發
     UA從FAST流水線接收FAST分組以及向FAST流水線發出自己產生或者轉發的FAST分組。當UA實現middlebox處理功能時,如防火墻功能,使用FAST分組收發的方式與底層FPGA進行通信。這些分組遵循元數據加以太網幀的FAST分組格式定義。FAST分組格式定義將在FAST編程 API介紹時給出。
   (2)對FPGA的配置管理
     UA對FPGA的配置管理包括對FAST流水線的配置管理以及對FPGA OS的配置管理。典型的對FAST流水線配置管理操作包括配置GAC模塊中的Action表,讀取GOE模塊中的計數器等;典型的對FPGA OS的配置管理包括讀取端口接收發送計數器,配置FPGA OS提供的匹配協處理器得流表項等。
   (3)與遠程設備的Socket通信
     FAST UA還可使用標準Socket()機制通過內核協議棧與遠程的網絡設備進行通信。根據目的IP地址,內核協議棧確定該通信是通過掛接到CPU上標準以太網接口進行,還是通過掛接到FPGA上的網絡接口進行。如果是前者,協議棧將會以sk_buff的格式與標準以太網驅動交換收發的分組;如果是后者,協議棧將會把分組送FAST內核,由FAST內核將分組封裝成FAST格式,通過FAST驅動向FPGA中的流水線發出。
     需要注意的是,FAST UA可能同時使用多種通信模式。例如OpenFlow通道代理(OXFP)UA既要通過Socket機制與遠端的SDN控制器通信,實現packet-in/packet-out/flowmod等OpenFlow消息的交互,又要與FAST流水線進行FAST分組的交互。由于上述通過Linux內核的通信都是阻塞式的,因此需要為不同的通信創建不同的線程。
二、FAST平臺軟件的實現
     FAST平臺軟件實現示意如下圖所示,其中包含FAST驅動、FAST內核、FAST編程庫以及兩個UA、UAx和UAy。FAST內核維護的Netlink端口映射表NPMT(Netlink Port Mapping Table)是FAST平臺軟件中的核心數據結構,主要存放UA的MID與NetLink端口號之間的映射關系。
     FAST平臺軟件實現時在用戶空間并不存在一個集中的UA管理程序。每個UA在啟動時都獨立地通過FAST庫函數向FAST內核注冊,獲取MID以及與NetLink端口號的映射關系。NPMT中也保存了各種用于管理維護的各種計數器信息,例如某個UA接收和發送分組的個數等。
     FAST編程庫為UA設計提供FAST分組收發的API函數,這些函數通過Netlink機制與Linux內核中的FAST內核通信。Netlink是一種基于Socket緩存隊列的,內核與用戶態應用之間傳遞的消息的異步通信機制。FAST編程庫會在UA實現時編譯到UA地址空間中,為防止不同UA訪問FAST內核中共享數據結構存在競爭,FAST編程庫在設計時考慮了對NetLink映射表等共享資源訪問的互斥機制。
      FAST內核維護NPMT數據結構。每個UA啟動時,會通過FAST編程庫提供的初始化函數向FAST內核注冊,由用戶顯式地為UA分配一個唯一的MID編號。FAST內核對分組處理的操作如下表所示。
     因此FAST內核根據FAST分組的DMID實現了FAST流水線,多個FAST UA以及協議棧之間的分組交換。從協議棧角度看,FAST內核是一個特殊的網絡接口,在內核中的地位與標準的網絡接口驅動基本一致。由于協議棧發出的分組無分組的輸出接口信息,該分組進入FAST流水線后需要通過正常的轉發獲取輸出接口的信息。
     FAST驅動負責控制與FPGA的DMA通信,FAST驅動與硬件平臺密切相關,針對不同實現平臺,DMA可以是輪詢方式,也可以是中斷方式。不同平臺中硬件DMA寄存器的地址也有所差異,因此FAST驅動移植是FAST平臺軟件移植的關鍵。由于FAST UA編程基于FAST編程API和Linux標準系統調用,因此不同的硬件平臺對UA編程是完全透明的。