libibverbs: Extend support of NDR rates

NDR(106.25 Gbps) support exposed new data rates:
800 Gbps - NDR 8x.
1200 Gbps - NDR 12x.

Utility methods were updated to support the new rates mentioned above:
1) Rate to mult - Convert the IB rate enum to a multiple of 2.5 Gbps.
2) Rate to mbps - Convert IB rate enum to the mbps value.

In addition, speed_str() of ibv_devinfo was updated to consider the new
NDR rate.

Reference:      IB Spec Release 1.5
PR:             285305
MFC after:      1 week
Sponsored by:   NVidia networking

Change-Id: I77541e406f700585fbfeddc162d5a0e7b79a1c11
Signed-off-by: Slava Shwartsman <slavash@nvidia.com>
This commit is contained in:
Slava Shwartsman 2025-03-12 10:49:37 +02:00 committed by Konstantin Belousov
parent b82d789759
commit 5963423232
3 changed files with 11 additions and 0 deletions

View file

@ -145,6 +145,7 @@ static const char *speed_str(uint8_t speed)
case 16: return "14.0 Gbps";
case 32: return "25.0 Gbps";
case 64: return "50.0 Gbps";
case 128: return "100.0 Gbps";
default: return "invalid speed";
}
}

View file

@ -115,6 +115,8 @@ int __attribute__((const)) ibv_rate_to_mult(enum ibv_rate rate)
case IBV_RATE_50_GBPS: return 20;
case IBV_RATE_400_GBPS: return 160;
case IBV_RATE_600_GBPS: return 240;
case IBV_RATE_800_GBPS: return 320;
case IBV_RATE_1200_GBPS: return 480;
default: return -1;
}
}
@ -135,6 +137,8 @@ enum ibv_rate __attribute__((const)) mult_to_ibv_rate(int mult)
case 20: return IBV_RATE_50_GBPS;
case 160: return IBV_RATE_400_GBPS;
case 240: return IBV_RATE_600_GBPS;
case 320: return IBV_RATE_800_GBPS;
case 480: return IBV_RATE_1200_GBPS;
default: return IBV_RATE_MAX;
}
}
@ -163,6 +167,8 @@ int __attribute__((const)) ibv_rate_to_mbps(enum ibv_rate rate)
case IBV_RATE_50_GBPS: return 53125;
case IBV_RATE_400_GBPS: return 425000;
case IBV_RATE_600_GBPS: return 637500;
case IBV_RATE_800_GBPS: return 850000;
case IBV_RATE_1200_GBPS: return 1275000;
default: return -1;
}
}
@ -191,6 +197,8 @@ enum ibv_rate __attribute__((const)) mbps_to_ibv_rate(int mbps)
case 53125: return IBV_RATE_50_GBPS;
case 425000: return IBV_RATE_400_GBPS;
case 637500: return IBV_RATE_600_GBPS;
case 850000: return IBV_RATE_800_GBPS;
case 1275000: return IBV_RATE_1200_GBPS;
default: return IBV_RATE_MAX;
}
}

View file

@ -595,6 +595,8 @@ enum ibv_rate {
IBV_RATE_50_GBPS = 20,
IBV_RATE_400_GBPS = 21,
IBV_RATE_600_GBPS = 22,
IBV_RATE_800_GBPS = 23,
IBV_RATE_1200_GBPS = 24,
};
/**