fpgasystems / fpga-network-stack

Scalable Network Stack for FPGAs (TCP/IP, RoCEv2)
BSD 3-Clause "New" or "Revised" License
737 stars 263 forks source link

RoCEv2 ICRC issue #33

Open Gabriele-bot opened 8 months ago

Gabriele-bot commented 8 months ago

Your fields mask for the computation of the ICRC is wrong. I believe that the ICRC masked fields these are related to the RoCEv1 specification [1]. In fact here we can find the masked field for the GRH (traffic class, flow label and hop limit). RoCEv2 ICRC specification can be found here [2].

The computation itself cannot run at 100 Gbps, in fact the unrolled loop cannot be pipelined efficiently, implementing the RoCEv2 IP with the ICRC enabled will cause a WNS of ~60 ns (10 times the clock period).

[1] InfiniBand Architecture Specification Volume 1 Release 1.4 Pg. 1913 (RoCEv1), Pg. 218 (Infiniband ICRC) [2] InfiniBand Architecture Specification Volume 1 Release 1.4 Pg. 1935-1936