How to detect ROCEv2 iCRC errors?

Hi,

I have a peer-to-peer connection between a host with Connect-X6 and another host. From another host I send a ROCEv2 packet without establishing a connection, just a UDP packet with destination port number 4791. I have 2 questions. In the first case I calculate iCRC of the ROCEv2 packet in the correct way. In the second one, I just put some random number as the iCRC.

  1. Are there any counters to determine that some ROCEv2 packet has been arrived on the port?
  2. Are there any counters to determine that some ROCEv2 packet with invalid iCRC value has been arrived on the port?

I’m aware about counters and hw_counters under /sys/class/infiniband/, but in both cases they are empty.

I’ve set ROCE_CONTROL parameter to ROCE_ENABLE and LINK_TYPE_P1 and LINK_TYPE_P2 to eth.

ibv_devinfo output:

        transport:                      InfiniBand (0)
        fw_ver:                         20.39.3004
        node_guid:                      b83f:d203:0072:1a66
        sys_image_guid:                 b83f:d203:0072:1a66
        vendor_id:                      0x02c9
        vendor_part_id:                 4123
        hw_ver:                         0x0
        board_id:                       MT_0000000225
        phys_port_cnt:                  1
                port:   1
                        state:                  PORT_ACTIVE (4)
                        max_mtu:                4096 (5)
                        active_mtu:             4096 (5)
                        sm_lid:                 0
                        port_lid:               0
                        port_lmc:               0x00
                        link_layer:             Ethernet

hca_id: mlx5_1
        transport:                      InfiniBand (0)
        fw_ver:                         20.39.3004
        node_guid:                      b83f:d203:0072:1a67
        sys_image_guid:                 b83f:d203:0072:1a66
        vendor_id:                      0x02c9
        vendor_part_id:                 4123
        hw_ver:                         0x0
        board_id:                       MT_0000000225
        phys_port_cnt:                  1
                port:   1
                        state:                  PORT_ACTIVE (4)
                        max_mtu:                4096 (5)
                        active_mtu:             1024 (3)
                        sm_lid:                 0
                        port_lid:               0
                        port_lmc:               0x00
                        link_layer:             Ethernet

MLX OFED version: MLNX_OFED_LINUX-23.10-2.1.3.1-ubuntu22.04-x86_64.iso

To ensure that the link is up I start dpdk-testpmd application on the connect-x6 host.

if icrc error, package will drop. In your case, counter empty means your ROCE communication not work.

What does it mean - “ROCE communication not work”? Could you please provide me with details on how I can check if the connection is working?

I’ve solved my issue. I installed an older version of fw: 20.36.1010.