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).
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