0731-84728105
15116127200
代码更新通告[2018.4.24]
发布时间:2018-04-24
     根据用户反映,现有的FAST通用输出引擎模块(GOE.v)在某种情况下无法有效处理Metadata0中定义的discard位(第61位)。目前该bug已经修复,新版本GOE代码(GOE-v1-1.0.v)已经上传网站(www.fastswitch.org),请正在使用FAST流水线的用户及时更新GOE-v1-1.1.v代码。
     附:GOE模块代码升级说明
FAST 平台的流水线通过UM实现,FAST 的UM主要由5部分组成,包含用户定义解析(UDP),用户定义关键字提取(UKE),通用查表引擎(GME),用户定义动作(UDA)和通用输出引擎(GOE)5个流水线模块,如图1所示。

图1 GOE模块
     此次对FAST流水线UM中的GOE模块进行了升级,GOE模块之前主要是完成数据的转发功能,即输入的数据直接转发输出。目前GOE模块实现了根据Metadata的丢弃位丢弃报文分组的功能,即当丢弃位为1时,丢弃此报文分组;丢弃位为0时,转发报文分组。Metadata定义如下表所示。
表1列车数据类型与TSN数据类型映射表
信号名称 宽度 功能 使用情况
TTL [127:124] 初始为每经过一模块减1 未使用
IngressPort [123:120] 分组的原始输入端口号 在CDP、Nmac_ctrl、UM、Cpu_ctrl模块中都有处理
Length [119:108] 分组长度,包含MetaData,最长为4K,最短为60字节(去掉CRC域的最小以太网帧长度) 在CDP、Cpu_ctrl、Nmac_ctrl模块中的很多子模块中都有做处理;例如:增加删减两拍Metadata时。
SrcModuleID [107:100] 报文通信时,源功能模块的ID 在mux_4stream子模块中将来自端口的报文,该值都置为0。
DstModuleID [99:92] 1来自端口,5来自CPU
Seq_Num [91:80] 报文接收序号,由FPGA OS在分组接收时标记,每个输入接口维护一个独立的序列号 未使用
EgressPort 63 分组的最终输出端口号 在CDP、Nmac_ctrl、Cpu_ctrl、UM模块中都有处理;例如在dmux_4stream子模块中,根据该值决定其转发端口
Pkt_Src 63 表示进入硬件流水线的分组来源,0:来自网络接口,1:来自cpu 未使用
Pkt_Dst 62 表示分组离开硬件流水线的目的,0:送网络接口发出;1:送cpu处理 在trans_ctrl模块中,根据其值确定报文的转发方向
Discard 61 1:指示GOE模块丢弃该分组;0:GOE模块正常转发该分组 在GOE模块中,根据其值进行报文弃丢或转发处理
Priority [60:58] 分组优先级,默认最低优先级(000) 未使用
FlowID [57:44] 分组属于的流ID,最大16K 未使用
TimeStamp [43:0] 报文接收时间戳,由FPGA OS在分组接收时标记 在CDP模块中有提取处理