&n海時bsp; 為(wèi)了支持更加靈活的用戶邏輯定制,以及基線高于集中緩存的交換輸出調度,解決目前TSN交換開(kāi)發過程中遇到的用戶計我邏輯定制複雜等問題,經讨論和征求現有用戶意見,FAST流水線模型由3.0版遠會本升級到3.1版本。
一、3.0版本存在的問題
&n劇唱bsp; FAST3.0流水線模型如(rú)圖1所示。身科其主要特點是增加了Pre-Ingress流水線段,避免GPP(火學通(tōng)用分組解析)将IEEE1588v2的PTP協可雪議幀定向到軟件處理或丢棄,同時(shí)将GOE(通這相(tōng)用輸出引擎)直接與UDO(用戶定義輸出)連接,取消了UDO到GOE來低的反壓流控信号,避免了分組輸出延時(shí)的不(bù)秒爸确定性,為(wèi)基于FAST架構的T樂看SN交換實現奠定了基礎。
圖1 FAST流水線3.0版本的結構
 微朋; 然而,FAST用戶在TSN機算交換功能開(kāi)發時(shí)也面臨了兩個問題。一紅舞是基于FIFO結構的PBuf(分組緩存)隻支舞輛持先來先服務的輸出調度算法,限制了其他(tā)輸出調度去舊算法的應用;二是Pbuf的寫入和讀出邏輯分别與GPP和GAC了道(通(tōng)用轉發動作)模塊綁定,強制用紙朋戶必須同時(shí)使用PBuf緩存管理和GPP/GAC的功能,限制了用呢玩戶自定義邏輯的靈活性。
二、3.1版本簡介
&nb通技sp; FAST流水線3.1版本模型如(rú)圖制睡2所示,對比3.0版本主要有三個主要變化。
(1)基于BID的Pbuf管理
&nbs她我p;Pbuf按照RAM的方式組織,内部存儲被劃分為(wèi)個討多個分組緩沖區,每個緩沖區使用體格BID(緩沖區ID)表示。每個到達流看放水線的分組都會(huì)被分配一個BID,河紙BID嵌入分組的元數據在流水線中傳遞。當流水線需要從Pbu做低f讀出分組時(shí),根據分組的BID向Pbuf發出讀年黃出請求。由于BID機制可以支持非FIFO的分組讀出順序,因此畫吃可以支持流水線采用更加複雜的分組輸出調度策略。歌信
(2)Pbuf管理與G內制PP和GAC解耦
&nbs好又p; FAST流水線3.0版本及以前均将Pbuf和寫窗森入和讀出邏輯分别嵌入GPP和GAC模塊,因此使用Pbuf時(shí)默認樹體需要流水線配置GPP和GAC模塊,這給用有放戶邏輯定制帶來不(bù)便。例如(rú)很多用戶交兒自換場景(例如(rú)二層TSN交換)并不(bù)需要對I美線P的解析,而GPP包含了IPv4/IPv6以及傳輸層協議的解析,默認土如使用GPP使得(de)用戶的邏輯難以簡化。
圖2 FAST 3.1的流水線擴展模型
術放
 請們; 在FAST流水新算線3.1版本中,Ingress流水線的第一個模塊固話離定為(wèi)IBM(Ingress緩存管筆飛理),IBM從CBM(集中緩存管理)獲取一個雜些空閑的BID,将分組寫入該BID,并将BID嵌入分組元數據中要請。在Egress流水線中嵌入EBM(Egress緩存管理)模塊機女,負責根據從上遊接收到的分組元數據中德BID雪什從CBM中讀取分組,向下遊模塊發出。
&和光nbsp; CBM負責Pbuf中空閑緩沖區BID的維護費湖,IBM每接收一個分組就分配一個BID,EBM沒讀取一個分組就回收一個又愛BID。
 放西; 由于流水線元數據中需要攜帶BID信息,因此需要将原有FAS哥林T架構中的元數據定義進行修改,主要是取消元數據中的SeqNu我唱m序列号字段和縮短(duǎn)分組長(cháng)度字段花雨,詳細見《FAST元數據格式規範》。
(3)模塊店月的顔色标注
醫能 為(wèi)了進一步區分模塊的屬性,支持用戶利用現有成熟模塊進行快速原型實為業現以及完全定制自己的模塊,FAST模塊引入顔色标注機制。鐘裡
表1列車(chē)數據類型與TS光視N數據類型映射表
顔色 |
類型 |
知識産權屬性 |
知識産權屬性 |
綠色 |
要求基于FAST開(kāi)發必須使用的基礎模塊 |
任意使用,無知識産權問題 |
IBM、CBM、EBM |
黃色 |
推薦基于FAST開(kāi)發的用戶使用的通(tōng)用模塊 |
任意使用,無知識産權問題 |
GPP,GKE,GME,GAC,GOE |
白色 |
用戶自定義的模塊 |
開(kāi)發者擁有知識産權 |
1588-GAC,1588-UDO等 |
FAST社區會(huì)嚴格測試保證綠色和黃色模塊的質量,房紅并提供文檔和技術支持。白色模塊質量有開(kā子筆i)發用戶負責。經用戶授權和FAST社區測試,白色模塊也會(商音huì)變成黃色模塊。
附:FAST流水線版本曆史
版本 |
時(shí)間 |
改動 |
1.0 |
2016.12 |
初始的FAST流水線版本,主要特點包括:
(1)标準的五級流水線(用戶定愛報義的解析、關鍵字提取,查表,轉發action,輸出引擎);
(2)用戶通(tōng)過擴充标業雪準五級流水線模塊功能,實現定制邏輯
車愛 |
2.0 |
2018.6 |
(1)支持用戶通(tōng男北)過插入自己的模塊擴展流水線的處理功能,而無需修改已有的五房笑級流水線邏輯
|
3.0 |
2019.1 |
在2.0版本基礎上:
(1)增加了Pre-Ingress流水線段,視家支持對GPP不(bù)支持的協議幀進行解銀喝析和處理
(2)将GOE直接與UD什什O連接,避免了分組輸出延時(shí)的不(bù)确定性,為(wè話吃i)支持TSN提供保證 |
3.1 |
2019.3 |
在3.0版本基礎上:
(1)将分組緩沖區(PB)由單FIFO隊列模式改為(wèi)基月站于RAM的随機存取的方式,支持有優先級區别的分組緩存和輸出調度算法;
(2)将分組寫入PB的邏輯從GPP模塊中獨立出來,将從PB讀出分組的邏輯從GA討月C模塊分離出來,有助于用戶邏輯定制時(shí),使用流水線算動提供的分組緩存管理機制,而定制自己的分組解析和轉發動作邏輯。
(3)修改相應的元數據格式定義;
(4)FAST流水線模塊的顔色标注機制; |