根据用(yòng)户反映,现有(yǒu)的FAST通用(yòng)输出引擎模块(GOE.v)在某种情况下无法有(yǒu)效处理(lǐ)Metadata0中定义的discard位(第61位)。目前该bug已经修复,新(xīn)版本GOE代码(GOE-v1-1.0.v)已经上传网站(www.fastswitch.org),请正在使用(yòng)FAST流水線(xiàn)的用(yòng)户及时更新(xīn)GOE-v1-1.1.v代码。
附:GOE模块代码升级说明
FAST 平台的流水線(xiàn)通过UM实现,FAST 的UM主要由5部分(fēn)组成,包含用(yòng)户定义解析(UDP),用(yòng)户定义关键字提取(UKE),通用(yòng)查表引擎(GME),用(yòng)户定义动作(UDA)和通用(yòng)输出引擎(GOE)5个流水線(xiàn)模块,如图1所示。
图1 GOE模块
此次对FAST流水線(xiàn)UM中的GOE模块进行了升级,GOE模块之前主要是完成数据的转发功能(néng),即输入的数据直接转发输出。目前GOE模块实现了根据Metadata的丢弃位丢弃报文(wén)分(fēn)组的功能(néng),即当丢弃位為(wèi)1时,丢弃此报文(wén)分(fēn)组;丢弃位為(wèi)0时,转发报文(wén)分(fēn)组。Metadata定义如下表所示。
表1列車(chē)数据类型与TSN数据类型映射表
信号名称 |
宽度 |
功能(néng) |
使用(yòng)情况 |
TTL |
[127:124] |
初始為(wèi)每经过一模块减1 |
未使用(yòng) |
IngressPort |
[123:120] |
分(fēn)组的原始输入端口号 |
在CDP、Nmac_ctrl、UM、Cpu_ctrl模块中都有(yǒu)处理(lǐ) |
Length |
[119:108] |
分(fēn)组長(cháng)度,包含MetaData,最長(cháng)為(wèi)4K,最短為(wèi)60字节(去掉CRC域的最小(xiǎo)以太网帧長(cháng)度) |
在CDP、Cpu_ctrl、Nmac_ctrl模块中的很(hěn)多(duō)子模块中都有(yǒu)做处理(lǐ);例如:增加删减两拍Metadata时。 |
SrcModuleID |
[107:100] |
报文(wén)通信时,源功能(néng)模块的ID |
在mux_4stream子模块中将来自端口的报文(wén),该值都置為(wèi)0。 |
DstModuleID |
[99:92] |
1来自端口,5来自CPU
|
|
Seq_Num |
[91:80] |
报文(wén)接收序号,由FPGA OS在分(fēn)组接收时标记,每个输入接口维护一个独立的序列号 |
未使用(yòng) |
EgressPort |
63 |
分(fēn)组的最终输出端口号 |
在CDP、Nmac_ctrl、Cpu_ctrl、UM模块中都有(yǒu)处理(lǐ);例如在dmux_4stream子模块中,根据该值决定其转发端口
|
Pkt_Src |
63 |
表示进入硬件流水線(xiàn)的分(fēn)组来源,0:来自网络接口,1:来自cpu |
未使用(yòng) |
Pkt_Dst |
62 |
表示分(fēn)组离开硬件流水線(xiàn)的目的,0:送网络接口发出;1:送cpu处理(lǐ) |
在trans_ctrl模块中,根据其值确定报文(wén)的转发方向 |
Discard |
61 |
1:指示GOE模块丢弃该分(fēn)组;0:GOE模块正常转发该分(fēn)组 |
在GOE模块中,根据其值进行报文(wén)弃丢或转发处理(lǐ) |
Priority |
[60:58] |
分(fēn)组优先级,默认最低优先级(000) |
未使用(yòng) |
FlowID |
[57:44] |
分(fēn)组属于的流ID,最大16K |
未使用(yòng) |
TimeStamp |
[43:0] |
报文(wén)接收时间戳,由FPGA OS在分(fēn)组接收时标记 |
在CDP模块中有(yǒu)提取处理(lǐ) |