Enhanced switch port 0 can support CC (indicated in CC ClassPortInfo:CapabilityMask.EnhancedPort0CC).
portnum 0 is a valid port number and offsets should be calculated based on port 0 rather than port 1. Also, fix some error messages to indicate switch port congestion setting rather then switch congestion setting failure. Signed-off-by: Hal Rosenstock <h...@mellanox.com> --- diff --git a/src/ibccquery.c b/src/ibccquery.c index ac8bca2..39e45b7 100644 --- a/src/ibccquery.c +++ b/src/ibccquery.c @@ -224,11 +224,11 @@ static char *switch_port_congestion_setting(ib_portid_t * dest, char **argv, int memset(data, '\0', sizeof data); if (!cc_query_status_via(data, dest, IB_CC_ATTR_SWITCH_PORT_CONGESTION_SETTING, - (portnum - 1) / 32, 0, NULL, srcport, cckey)) - return "switch congestion setting query failed"; + portnum / 32, 0, NULL, srcport, cckey)) + return "switch port congestion setting query failed"; mad_dump_cc_switchportcongestionsettingelement(buf, sizeof buf, - data + (((portnum % 32) - 1) * 4), + data + ((portnum % 32) * 4), 4); printf("%s", buf); return NULL; @@ -236,16 +236,16 @@ static char *switch_port_congestion_setting(ib_portid_t * dest, char **argv, int /* else get all port info */ - maxblocks = ((numports - 1) / 32) + 1; + maxblocks = numports / 32 + 1; for (i = 0; i < maxblocks; i++) { memset(data, '\0', sizeof data); if (!cc_query_status_via(data, dest, IB_CC_ATTR_SWITCH_PORT_CONGESTION_SETTING, i, 0, NULL, srcport, cckey)) - return "switch congestion setting query failed"; + return "switch port congestion setting query failed"; - for (j = 0; j < 32 && outputcount < numports; j++) { - printf("Port:............................%u\n", i * 32 + j + 1); + for (j = 0; j < 32 && outputcount <= numports; j++) { + printf("Port:............................%u\n", i * 32 + j); mad_dump_cc_switchportcongestionsettingelement(buf, sizeof buf, data + j * 4, 4); -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html