@@ -114,6 +114,10 @@ extern char *ibd_nd_format;
#define IB_PORT_EXT_LOW_LATENCY_RS_FEC_MODE_ACTIVE (CL_HTON16(0x0003))
#endif
+#ifndef IB_PORT_EXT_RS_FEC2_MODE_ACTIVE
+#define IB_PORT_EXT_RS_FEC2_MODE_ACTIVE (CL_HTON16(0x0004))
+#endif
+
/* SM PortInfoExtended CapabilityMask Bits */
#ifndef IB_PORT_EXT_CAP_IS_FEC_MODE_SUPPORTED
#define IB_PORT_EXT_CAP_IS_FEC_MODE_SUPPORTED (CL_HTON32(0x00000001))
@@ -571,7 +571,8 @@ static uint8_t is_rsfec_mode_active(ib_portid_t * portid, int port,
&fec_mode_active);
if((pie_capmask &
CL_NTOH32(IB_PORT_EXT_CAP_IS_FEC_MODE_SUPPORTED)) &&
- (CL_NTOH16(IB_PORT_EXT_RS_FEC_MODE_ACTIVE) == (fec_mode_active & 0xffff)))
+ ((CL_NTOH16(IB_PORT_EXT_RS_FEC_MODE_ACTIVE) == (fec_mode_active & 0xffff)) ||
+ (CL_NTOH16(IB_PORT_EXT_RS_FEC2_MODE_ACTIVE) == (fec_mode_active & 0xffff))))
return 1;
}
HDR uses different RS-FEC. Original RS-FEC is RS(528,514) and is bit 2 in FECMode fields and value 2 in FECModeActive field. HDR uses RS(544,514) which is bit 4 in HDRFECMode fields and value 4 in FECModeActive field. Per MgtWG comments #9367 and #9368 Signed-off-by: Hal Rosenstock <hal@mellanox.com> --- include/ibdiag_common.h | 4 ++++ src/perfquery.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-)