根據用戶反映,現有的(de)FAST通用輸出(chū)引擎模塊(GOE.v)在(zài)某種情況下無法有效處理Metadata0中定義的(de)discard位(第61位)。目前該bug已經修複,新版本GOE代碼(GOE-v1-1.0.v)已經上(shàng)傳網站(www.fastswitch.org),請正在(zài)使用FAST流水線的(de)用戶及時(shí)更新GOE-v1-1.1.v代碼。
附:GOE模塊代碼升級說(shuō)明
FAST 平台的(de)流水線通過UM實現,FAST 的(de)UM主要(yào / yāo)由5部分組成,包含用戶定義解析(UDP),用戶定義關鍵字提取(UKE),通用查表引擎(GME),用戶定義動作(UDA)和(hé / huò)通用輸出(chū)引擎(GOE)5個(gè)流水線模塊,如圖1所示。

圖1 GOE模塊
此次對FAST流水線UM中的(de)GOE模塊進行了(le/liǎo)升級,GOE模塊之(zhī)前主要(yào / yāo)是(shì)完成數據的(de)轉發功能,即輸入的(de)數據直接轉發輸出(chū)。目前GOE模塊實現了(le/liǎo)根據Metadata的(de)丢棄位丢棄報文分組的(de)功能,即當丢棄位爲(wéi / wèi)1時(shí),丢棄此報文分組;丢棄位爲(wéi / wèi)0時(shí),轉發報文分組。Metadata定義如下表所示。
表1列車數據類型與TSN數據類型映射表
信号名稱 |
寬度 |
功能 |
使用情況 |
TTL |
[127:124] |
初始爲(wéi / wèi)每經過一模塊減1 |
未使用 |
IngressPort |
[123:120] |
分組的(de)原始輸入端口号 |
在(zài)CDP、Nmac_ctrl、UM、Cpu_ctrl模塊中都有處理 |
Length |
[119:108] |
分組長度,包含MetaData,最長爲(wéi / wèi)4K,最短爲(wéi / wèi)60字節(去掉CRC域的(de)最小以(yǐ)太網幀長度) |
在(zài)CDP、Cpu_ctrl、Nmac_ctrl模塊中的(de)很多子(zǐ)模塊中都有做處理;例如:增加删減兩拍Metadata時(shí)。 |
SrcModuleID |
[107:100] |
報文通信時(shí),源功能模塊的(de)ID |
在(zài)mux_4stream子(zǐ)模塊中将來(lái)自端口的(de)報文,該值都置爲(wéi / wèi)0。 |
DstModuleID |
[99:92] |
1來(lái)自端口,5來(lái)自CPU
|
|
Seq_Num |
[91:80] |
報文接收序号,由FPGA OS在(zài)分組接收時(shí)标記,每個(gè)輸入接口維護一個(gè)獨立的(de)序列号 |
未使用 |
EgressPort |
63 |
分組的(de)最終輸出(chū)端口号 |
在(zài)CDP、Nmac_ctrl、Cpu_ctrl、UM模塊中都有處理;例如在(zài)dmux_4stream子(zǐ)模塊中,根據該值決定其轉發端口
|
Pkt_Src |
63 |
表示進入硬件流水線的(de)分組來(lái)源,0:來(lái)自網絡接口,1:來(lái)自cpu |
未使用 |
Pkt_Dst |
62 |
表示分組離開硬件流水線的(de)目的(de),0:送網絡接口發出(chū);1:送cpu處理 |
在(zài)trans_ctrl模塊中,根據其值确定報文的(de)轉發方向 |
Discard |
61 |
1:指示GOE模塊丢棄該分組;0:GOE模塊正常轉發該分組 |
在(zài)GOE模塊中,根據其值進行報文棄丢或轉發處理 |
Priority |
[60:58] |
分組優先級,默認最低優先級(000) |
未使用 |
FlowID |
[57:44] |
分組屬于(yú)的(de)流ID,最大(dà)16K |
未使用 |
TimeStamp |
[43:0] |
報文接收時(shí)間戳,由FPGA OS在(zài)分組接收時(shí)标記 |
在(zài)CDP模塊中有提取處理 |