0731-84728105
15116127200
FAST流水線推出3.1版本
發布時間:2019-03-27
     為(wèi)了支持更加靈活的(de)用戶邏輯定制,以及基于集中緩存的(de)交換輸出調度,解決目前TSN交換開發過程中遇到的(de)用戶邏輯定制複雜等問題,經讨論和(hé)征求現有(yǒu)用戶意見,FAST流水線模型由3.0版本升級到3.1版本。
一(yī)、3.0版本存在的(de)問題
      FAST3.0流水線模型如(rú)圖1所示。其主要特點是增加了Pre-Ingress流水線段,避免GPP(通用分組解析)将IEEE1588v2的(de)PTP協議幀定向到軟件處理(lǐ)或丢棄,同時将GOE(通用輸出引擎)直接與UDO(用戶定義輸出)連接,取消了UDO到GOE的(de)反壓流控信号,避免了分組輸出延時的(de)不确定性,為(wèi)基于FAST架構的(de)TSN交換實現奠定了基礎。

圖1 FAST流水線3.0版本的(de)結構
     然而,FAST用戶在TSN交換功能開發時也面臨了兩個問題。一(yī)是基于FIFO結構的(de)PBuf(分組緩存)隻支持先來先服務的(de)輸出調度算法,限制了其他輸出調度算法的(de)應用;二是Pbuf的(de)寫入和(hé)讀出邏輯分别與GPP和(hé)GAC(通用轉發動作)模塊綁定,強制用戶必須同時使用PBuf緩存管理(lǐ)和(hé)GPP/GAC的(de)功能,限制了用戶自(zì)定義邏輯的(de)靈活性。
二、3.1版本簡介
     FAST流水線3.1版本模型如(rú)圖2所示,對比3.0版本主要有(yǒu)三個主要變化。
  (1)基于BID的(de)Pbuf管理(lǐ)
     Pbuf按照RAM的(de)方式組織,內(nèi)部存儲被劃分為(wèi)多個分組緩沖區,每個緩沖區使用體格BID(緩沖區ID)表示。每個到達流水線的(de)分組都會被分配一(yī)個BID,BID嵌入分組的(de)元數據在流水線中傳遞。當流水線需要從Pbuf讀出分組時,根據分組的(de)BID向Pbuf發出讀出請求。由于BID機(jī)制可(kě)以支持非FIFO的(de)分組讀出順序,因此可(kě)以支持流水線采用更加複雜的(de)分組輸出調度策略。
  (2)Pbuf管理(lǐ)與GPP和(hé)GAC解耦
      FAST流水線3.0版本及以前均将Pbuf和(hé)寫入和(hé)讀出邏輯分别嵌入GPP和(hé)GAC模塊,因此使用Pbuf時默認需要流水線配置GPP和(hé)GAC模塊,這給用戶邏輯定制帶來不便。例如(rú)很多用戶交換場景(例如(rú)二層TSN交換)并不需要對IP的(de)解析,而GPP包含了IPv4/IPv6以及傳輸層協議的(de)解析,默認使用GPP使得用戶的(de)邏輯難以簡化。

圖2 FAST 3.1的(de)流水線擴展模型
      在FAST流水線3.1版本中,Ingress流水線的(de)第一(yī)個模塊固定為(wèi)IBM(Ingress緩存管理(lǐ)),IBM從CBM(集中緩存管理(lǐ))獲取一(yī)個空閑的(de)BID,将分組寫入該BID,并将BID嵌入分組元數據中。在Egress流水線中嵌入EBM(Egress緩存管理(lǐ))模塊,負責根據從上遊接收到的(de)分組元數據中德BID從CBM中讀取分組,向下遊模塊發出。
      CBM負責Pbuf中空閑緩沖區BID的(de)維護,IBM每接收一(yī)個分組就分配一(yī)個BID,EBM沒讀取一(yī)個分組就回收一(yī)個BID。
      由于流水線元數據中需要攜帶BID信息,因此需要将原有(yǒu)FAST架構中的(de)元數據定義進行(xíng)修改,主要是取消元數據中的(de)SeqNum序列号字段和(hé)縮短(duǎn)分組長(cháng)度字段,詳細見《FAST元數據格式規範》。
  (3)模塊的(de)顔色标注
      為(wèi)了進一(yī)步區分模塊的(de)屬性,支持用戶利用現有(yǒu)成熟模塊進行(xíng)快速原型實現以及完全定制自(zì)己的(de)模塊,FAST模塊引入顔色标注機(jī)制。
表1列車數據類型與TSN數據類型映射表
顔色 類型 知識産權屬性 知識産權屬性
綠(lǜ)色 要求基于FAST開發必須使用的(de)基礎模塊 任意使用,無知識産權問題 IBM、CBM、EBM
黃色 推薦基于FAST開發的(de)用戶使用的(de)通用模塊 任意使用,無知識産權問題 GPP,GKE,GME,GAC,GOE
白色 用戶自(zì)定義的(de)模塊 開發者擁有(yǒu)知識産權 1588-GAC,1588-UDO等
FAST社區會嚴格測試保證綠(lǜ)色和(hé)黃色模塊的(de)質量,并提供文檔和(hé)技術支持。白色模塊質量有(yǒu)開發用戶負責。經用戶授權和(hé)FAST社區測試,白色模塊也會變成黃色模塊。
附:FAST流水線版本曆史
版本 時間 改動
1.0 2016.12 初始的(de)FAST流水線版本,主要特點包括:
(1)标準的(de)五級流水線(用戶定義的(de)解析、關鍵字提取,查表,轉發action,輸出引擎);
(2)用戶通過擴充标準五級流水線模塊功能,實現定制邏輯
2.0 2018.6 (1)支持用戶通過插入自(zì)己的(de)模塊擴展流水線的(de)處理(lǐ)功能,而無需修改已有(yǒu)的(de)五級流水線邏輯
3.0 2019.1 在2.0版本基礎上:
(1)增加了Pre-Ingress流水線段,支持對GPP不支持的(de)協議幀進行(xíng)解析和(hé)處理(lǐ)
(2)将GOE直接與UDO連接,避免了分組輸出延時的(de)不确定性,為(wèi)支持TSN提供保證
3.1 2019.3 在3.0版本基礎上:
(1)将分組緩沖區(PB)由單FIFO隊列模式改為(wèi)基于RAM的(de)随機(jī)存取的(de)方式,支持有(yǒu)優先級區别的(de)分組緩存和(hé)輸出調度算法;
(2)将分組寫入PB的(de)邏輯從GPP模塊中獨立出來,将從PB讀出分組的(de)邏輯從GAC模塊分離(lí)出來,有(yǒu)助于用戶邏輯定制時,使用流水線提供的(de)分組緩存管理(lǐ)機(jī)制,而定制自(zì)己的(de)分組解析和(hé)轉發動作邏輯。
(3)修改相應的(de)元數據格式定義;
(4)FAST流水線模塊的(de)顔色标注機(jī)制;