BlueField3(CX7) RoCE Adaptive Routing Configuration(adaptive_routing_forced_en) Issue

Hi Yaniv,

Thank you for your response.

I’ve followed your suggestion and reset the BF3 with the following command:

sudo mlxconfig -d 40:00.0 -y reset

After cold rebooting the machine, I can confirm that the ROCE_ADAPTIVE_ROUTING_EN configuration has been reset to its default value (False):

sudo mlxconfig -d /dev/mst/mt41692_pciconf0 -e q | grep -i ADAPTIVE
        ROCE_ADAPTIVE_ROUTING_EN                    False(0)             False(0)             False(0)

Then I set LINK_TYPE_P1andLINK_TYPE_P2 to ETH and cold reboot my machine again.

After that, I tried to enable adaptive routing using mlxreg:

root:/home/ubuntu# sudo mlxreg -d 40:00.0 --reg_name ROCE_ACCL --set "adaptive_routing_forced_en=0x1"
You are about to send access register: ROCE_ACCL with the following data:
Field Name                                     | Data    
============================================================
roce_adp_retrans_field_select                  | 0x00000001
roce_tx_window_field_select                    | 0x00000001
roce_slow_restart_field_select                 | 0x00000001
roce_slow_restart_idle_field_select            | 0x00000001
min_ack_timeout_limit_disabled_field_select    | 0x00000001
adaptive_routing_forced_en_field_select        | 0x00000000
selective_repeat_forced_en_field_select        | 0x00000001
dc_half_handshake_en_field_select              | 0x00000000
ack_dscp_force_field_select                    | 0x00000001
roce_adp_retrans_en                            | 0x00000001
roce_tx_window_en                              | 0x00000000
roce_slow_restart_en                           | 0x00000001
roce_slow_restart_idle_en                      | 0x00000000
min_ack_timeout_limit_disabled                 | 0x00000000
adaptive_routing_forced_en                     | 0x00000001
selective_repeat_forced_en                     | 0x00000000
dc_half_handshake_en                           | 0x00000000
ack_dscp_force                                 | 0x00000000
ack_dscp                                       | 0x00000000
============================================================

 Do you want to continue ? (y/n) [n] : y
 Sending access register...
root:/home/ubuntu# sudo mlxreg -d 40:00.0 --get --reg_name ROCE_ACCL
Sending access register...

Field Name                                     | Data    
============================================================
roce_adp_retrans_field_select                  | 0x00000001
roce_tx_window_field_select                    | 0x00000001
roce_slow_restart_field_select                 | 0x00000001
roce_slow_restart_idle_field_select            | 0x00000001
min_ack_timeout_limit_disabled_field_select    | 0x00000001
adaptive_routing_forced_en_field_select        | 0x00000000
selective_repeat_forced_en_field_select        | 0x00000001
dc_half_handshake_en_field_select              | 0x00000000
ack_dscp_force_field_select                    | 0x00000001
roce_adp_retrans_en                            | 0x00000001
roce_tx_window_en                              | 0x00000000
roce_slow_restart_en                           | 0x00000001
roce_slow_restart_idle_en                      | 0x00000000
min_ack_timeout_limit_disabled                 | 0x00000000
adaptive_routing_forced_en                     | 0x00000000
selective_repeat_forced_en                     | 0x00000000
dc_half_handshake_en                           | 0x00000000
ack_dscp_force                                 | 0x00000000
ack_dscp                                       | 0x00000000
============================================================

But I found that adaptive_routing_forced_en is still 0x00000000.

Now my BF3 is connected to a SN2700 switch. May I clarify if you mean that Adaptive Routing is offically exclusively supported with Spectrum-X solutions, and that my BF3 detects the model of the switch it’s connected to, preventing the Adaptive Routing feature from being enabled if the switch is not a Spectrum-X series.

Thanks so much for taking the time to respond.

Regards,
Xiangzhou