[PATCH v2 infiniband-diags] ibdiag_common.c: Disambiguate link speed when QDR and could be FDR10

Hal Rosenstock
2016-12-19T22:25:11Z

Rather than printing "Could be FDR10", print
"Could be FDR10 (Found link at QDR but expected speed is FDR10)"
for this case.

Confusion is with words "Could be" and fact that both
QDR and FDR10 are both 10.0 Gbps.

Signed-off-by: Hal Rosenstock <hal-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
Change since v1:
Preserved original "Could be FDR10" so can grep for "Could be"
along with adding new language.

src/ibdiag_common.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/ibdiag_common.c b/src/ibdiag_common.c
index f74eed4..ad8551f 100644
--- a/src/ibdiag_common.c
+++ b/src/ibdiag_common.c
@@ -814,8 +814,14 @@ check_ext_speed:

check_fdr10_active:
if ((mad_get_field(port->ext_info, 0,
- IB_MLNX_EXT_PORT_LINK_SPEED_ACTIVE_F) & FDR10) == 0)
- snprintf(speed_msg, msg_size, "Could be FDR10");
+ IB_MLNX_EXT_PORT_LINK_SPEED_ACTIVE_F) & FDR10) == 0) {
+ /* Special case QDR to try to avoid confusion with FDR10 */
+ if (mad_get_field(port->info, 0, IB_PORT_LINK_SPEED_ACTIVE_F) == 4)
+ snprintf(speed_msg, msg_size,
+ "Could be FDR10 (Found link at QDR but expected speed is FDR10)");
+ else
+ snprintf(speed_msg, msg_size, "Could be FDR10");
+ }
}

int vsnprint_field(char *buf, size_t n, enum MAD_FIELDS f, int spacing,