From patchwork Thu Jul 14 18:23:21 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hal Rosenstock X-Patchwork-Id: 975542 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter2.kernel.org (8.14.4/8.14.4) with ESMTP id p6EINToE002736 for ; Thu, 14 Jul 2011 18:23:29 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755508Ab1GNSX2 (ORCPT ); Thu, 14 Jul 2011 14:23:28 -0400 Received: from mail-wy0-f174.google.com ([74.125.82.174]:55718 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755400Ab1GNSX1 (ORCPT ); Thu, 14 Jul 2011 14:23:27 -0400 Received: by wyg8 with SMTP id 8so334693wyg.19 for ; Thu, 14 Jul 2011 11:23:26 -0700 (PDT) Received: by 10.216.158.77 with SMTP id p55mr6473165wek.26.1310667805906; Thu, 14 Jul 2011 11:23:25 -0700 (PDT) Received: from [192.168.1.100] (c-71-192-10-85.hsd1.ma.comcast.net [71.192.10.85]) by mx.google.com with ESMTPS id gg16sm427096wbb.51.2011.07.14.11.23.23 (version=SSLv3 cipher=OTHER); Thu, 14 Jul 2011 11:23:25 -0700 (PDT) Message-ID: <4E1F3419.3010508@dev.mellanox.co.il> Date: Thu, 14 Jul 2011 14:23:21 -0400 From: Hal Rosenstock User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Ira Weiny CC: Liran Liss , "linux-rdma@vger.kernel.org" Subject: [PATCH] libibmad: Support for Mellanox vendor specific ExtendedPortInfo SM class MAD Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter2.kernel.org [140.211.167.43]); Thu, 14 Jul 2011 18:23:29 +0000 (UTC) for FDR10 operation Signed-off-by: Hal Rosenstock --- -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/include/infiniband/mad.h b/include/infiniband/mad.h index f00bf7a..8175704 100644 --- a/include/infiniband/mad.h +++ b/include/infiniband/mad.h @@ -141,7 +141,9 @@ enum SMI_ATTR_ID { IB_ATTR_VENDORMADSTBL = 0x1d, IB_ATTR_SMINFO = 0x20, - IB_ATTR_LAST + IB_ATTR_LAST, + + IB_ATTR_MLNX_EXT_PORT_INFO = 0xff90, }; enum SA_ATTR_ID { @@ -805,6 +807,15 @@ enum MAD_FIELDS { IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE11_F, IB_PESC_LAST_F, + /* + * Mellanox ExtendedPortInfo + */ + IB_MLNX_EXT_PORT_STATE_CHG_ENABLE_F, + IB_MLNX_EXT_PORT_LINK_SPEED_SUPPORTED_F, + IB_MLNX_EXT_PORT_LINK_SPEED_ENABLED_F, + IB_MLNX_EXT_PORT_LINK_SPEED_ACTIVE_F, + IB_MLNX_EXT_PORT_LAST_F, + IB_FIELD_LAST_ /* must be last */ }; @@ -1137,7 +1148,8 @@ MAD_EXPORT ib_mad_dump_fn mad_dump_switchinfo, mad_dump_perfcounters, mad_dump_perfcounters_ext, mad_dump_perfcounters_xmt_sl, mad_dump_perfcounters_rcv_sl, mad_dump_perfcounters_xmt_disc, mad_dump_perfcounters_rcv_err, - mad_dump_portsamples_control, mad_dump_port_ext_speeds_counters; + mad_dump_portsamples_control, mad_dump_port_ext_speeds_counters, + mad_dump_mlnx_ext_port_info; MAD_EXPORT void mad_dump_fields(char *buf, int bufsz, void *val, int valsz, int start, int end); diff --git a/src/dump.c b/src/dump.c index 4b4279d..76987ff 100644 --- a/src/dump.c +++ b/src/dump.c @@ -836,6 +836,12 @@ void mad_dump_port_ext_speeds_counters(char *buf, int bufsz, void *val, int vals _dump_fields(buf, bufsz, val, IB_PESC_PORT_SELECT_F, IB_PESC_LAST_F); } +void mad_dump_mlnx_ext_port_info(char *buf, int bufsz, void *val, int valsz) +{ + _dump_fields(buf, bufsz, val, IB_MLNX_EXT_PORT_STATE_CHG_ENABLE_F, + IB_MLNX_EXT_PORT_LAST_F); +} + void xdump(FILE * file, char *msg, void *p, int size) { #define HEX(x) ((x) < 10 ? '0' + (x) : 'a' + ((x) -10)) diff --git a/src/fields.c b/src/fields.c index 8039882..665797b 100644 --- a/src/fields.c +++ b/src/fields.c @@ -578,6 +578,12 @@ static const ib_field_t ib_mad_f[] = { {992, 32, "FECUncorrectableBlockCtrLane11", mad_dump_uint}, {0, 0}, /* IB_PESC_LAST_F */ + {BITSOFFS(24, 8), "StateChangeEnable", mad_dump_hex}, + {BITSOFFS(56, 8), "LinkSpeedSupported", mad_dump_hex}, + {BITSOFFS(88, 8), "LinkSpeedEnabled", mad_dump_hex}, + {BITSOFFS(120, 8), "LinkSpeedActive", mad_dump_hex}, + {0, 0}, /* IB_MLNX_EXT_PORT_LAST_F */ + {0, 0} /* IB_FIELD_LAST_ */ }; diff --git a/src/libibmad.map b/src/libibmad.map index 457ec86..ebeaf48 100644 --- a/src/libibmad.map +++ b/src/libibmad.map @@ -116,5 +116,6 @@ IBMAD_1.3 { mad_field_name; bm_call_via; mad_dump_port_ext_speeds_counters; + mad_dump_mlnx_ext_port_info; local: *; };