components/open-fabrics/libibmad/patches/base.patch
branchs11u1-sru
changeset 2586 66a039ce738d
parent 2462 1132a517894c
child 2587 576c01af714c
equal deleted inserted replaced
2583:c6f6cd2a7c87 2586:66a039ce738d
    13  
    13  
    14  uninstall-libLTLIBRARIES:
    14  uninstall-libLTLIBRARIES:
    15 diff -r -u /tmp/libibmad-1.3.7/include/infiniband/mad.h libibmad-1.3.7/include/infiniband/mad.h
    15 diff -r -u /tmp/libibmad-1.3.7/include/infiniband/mad.h libibmad-1.3.7/include/infiniband/mad.h
    16 --- /tmp/libibmad-1.3.7/include/infiniband/mad.h	Wed Feb 16 02:12:53 2011
    16 --- /tmp/libibmad-1.3.7/include/infiniband/mad.h	Wed Feb 16 02:12:53 2011
    17 +++ libibmad-1.3.7/include/infiniband/mad.h	Thu Feb 24 11:27:11 2011
    17 +++ libibmad-1.3.7/include/infiniband/mad.h	Thu Feb 24 11:27:11 2011
    18 @@ -1036,6 +1036,10 @@
    18 @@ -62,6 +62,7 @@
       
    19  #define IB_PC_DATA_SZ		(IB_MAD_SIZE - IB_PC_DATA_OFFS)
       
    20  #define IB_SA_MCM_RECSZ		53
       
    21  #define IB_SA_PR_RECSZ		64
       
    22 +#define IB_SA_NR_RECSZ		108
       
    23  #define IB_BM_DATA_OFFS		64
       
    24  #define IB_BM_DATA_SZ		(IB_MAD_SIZE - IB_BM_DATA_OFFS)
       
    25  #define IB_BM_BKEY_OFFS		24
       
    26 @@ -579,7 +580,8 @@
       
    27  	/*
       
    28  	 * GUIDInfo fields
       
    29  	 */
       
    30 -	IB_GUID_GUID0_F,
       
    31 +	IB_GUID_GUID0_F, /* Obsolete, kept for compatibility
       
    32 +			    Use IB_GI_GUID0_F going forward */
       
    33  
       
    34  	/*
       
    35  	 * ClassPortInfo fields
       
    36 @@ -610,7 +612,8 @@
       
    37  	/*
       
    38  	 * PortXmitDataSL fields
       
    39  	 */
       
    40 -	IB_PC_XMT_DATA_SL_FIRST_F,
       
    41 +	IB_PC_XMT_DATA_SL_FIRST_F, /* for PortSelect and CounterSelect, use IB_P
       
    42 +C_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
    43  	IB_PC_XMT_DATA_SL0_F = IB_PC_XMT_DATA_SL_FIRST_F,
       
    44  	IB_PC_XMT_DATA_SL1_F,
       
    45  	IB_PC_XMT_DATA_SL2_F,
       
    46 @@ -632,7 +635,8 @@
       
    47  	/*
       
    48  	 * PortRcvDataSL fields
       
    49  	 */
       
    50 -	IB_PC_RCV_DATA_SL_FIRST_F,
       
    51 +	IB_PC_RCV_DATA_SL_FIRST_F, /* for PortSelect and CounterSelect, use IB_P
       
    52 +C_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
    53  	IB_PC_RCV_DATA_SL0_F = IB_PC_RCV_DATA_SL_FIRST_F,
       
    54  	IB_PC_RCV_DATA_SL1_F,
       
    55  	IB_PC_RCV_DATA_SL2_F,
       
    56 @@ -654,6 +658,8 @@
       
    57  	/*
       
    58  	 * PortXmitDiscardDetails fields
       
    59  	 */
       
    60 +	/* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_C
       
    61 +OUNTER_SELECT_F */
       
    62  	IB_PC_XMT_INACT_DISC_F,
       
    63  	IB_PC_XMT_NEIGH_MTU_DISC_F,
       
    64  	IB_PC_XMT_SW_LIFE_DISC_F,
       
    65 @@ -663,6 +669,8 @@
       
    66  	/*
       
    67  	 * PortRcvErrorDetails fields
       
    68  	 */
       
    69 +	/* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_C
       
    70 +OUNTER_SELECT_F */
       
    71  	IB_PC_RCV_LOCAL_PHY_ERR_F,
       
    72  	IB_PC_RCV_MALFORMED_PKT_ERR_F,
       
    73  	IB_PC_RCV_BUF_OVR_ERR_F,
       
    74 @@ -706,6 +714,483 @@
       
    75  	IB_PSC_SAMPLES_ONLY_OPT_MASK_F,
       
    76  	IB_PSC_LAST_F,
       
    77  
       
    78 +
       
    79 +	/*
       
    80 +	 * GUIDInfo fields
       
    81 +	 */
       
    82 +	IB_GI_GUID0_F, /* a duplicate of IB_GUID_GUID0_F for backwards
       
    83 +			  compatibility */
       
    84 +	IB_GI_GUID1_F,
       
    85 +	IB_GI_GUID2_F,
       
    86 +	IB_GI_GUID3_F,
       
    87 +	IB_GI_GUID4_F,
       
    88 +	IB_GI_GUID5_F,
       
    89 +	IB_GI_GUID6_F,
       
    90 +	IB_GI_GUID7_F,
       
    91 +
       
    92 +	/*
       
    93 +	 * GUID Info Record
       
    94 +	 */
       
    95 +	IB_SA_GIR_LID_F,
       
    96 +	IB_SA_GIR_BLOCKNUM_F,
       
    97 +	IB_SA_GIR_GUID0_F,
       
    98 +	IB_SA_GIR_GUID1_F,
       
    99 +	IB_SA_GIR_GUID2_F,
       
   100 +	IB_SA_GIR_GUID3_F,
       
   101 +	IB_SA_GIR_GUID4_F,
       
   102 +	IB_SA_GIR_GUID5_F,
       
   103 +	IB_SA_GIR_GUID6_F,
       
   104 +	IB_SA_GIR_GUID7_F,
       
   105 +
       
   106 +	/*
       
   107 +	 * More PortInfo fields
       
   108 +	 */
       
   109 +	IB_PORT_CAPMASK2_F,
       
   110 +	IB_PORT_LINK_SPEED_EXT_ACTIVE_F,
       
   111 +	IB_PORT_LINK_SPEED_EXT_SUPPORTED_F,
       
   112 +	IB_PORT_LINK_SPEED_EXT_ENABLED_F,
       
   113 +	IB_PORT_LINK_SPEED_EXT_LAST_F,
       
   114 +
       
   115 +	/*
       
   116 +	 * PortExtendedSpeedsCounters fields
       
   117 +	 */
       
   118 +	IB_PESC_PORT_SELECT_F,
       
   119 +	IB_PESC_COUNTER_SELECT_F,
       
   120 +	IB_PESC_SYNC_HDR_ERR_CTR_F,
       
   121 +	IB_PESC_UNK_BLOCK_CTR_F,
       
   122 +	IB_PESC_ERR_DET_CTR_LANE0_F,
       
   123 +	IB_PESC_ERR_DET_CTR_LANE1_F,
       
   124 +	IB_PESC_ERR_DET_CTR_LANE2_F,
       
   125 +	IB_PESC_ERR_DET_CTR_LANE3_F,
       
   126 +	IB_PESC_ERR_DET_CTR_LANE4_F,
       
   127 +	IB_PESC_ERR_DET_CTR_LANE5_F,
       
   128 +	IB_PESC_ERR_DET_CTR_LANE6_F,
       
   129 +	IB_PESC_ERR_DET_CTR_LANE7_F,
       
   130 +	IB_PESC_ERR_DET_CTR_LANE8_F,
       
   131 +	IB_PESC_ERR_DET_CTR_LANE9_F,
       
   132 +	IB_PESC_ERR_DET_CTR_LANE10_F,
       
   133 +	IB_PESC_ERR_DET_CTR_LANE11_F,
       
   134 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE0_F,
       
   135 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE1_F,
       
   136 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE2_F,
       
   137 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE3_F,
       
   138 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE4_F,
       
   139 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE5_F,
       
   140 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE6_F,
       
   141 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE7_F,
       
   142 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE8_F,
       
   143 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE9_F,
       
   144 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE10_F,
       
   145 +	IB_PESC_FEC_CORR_BLOCK_CTR_LANE11_F,
       
   146 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE0_F,
       
   147 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE1_F,
       
   148 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE2_F,
       
   149 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE3_F,
       
   150 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE4_F,
       
   151 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE5_F,
       
   152 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE6_F,
       
   153 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE7_F,
       
   154 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE8_F,
       
   155 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE9_F,
       
   156 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE10_F,
       
   157 +	IB_PESC_FEC_UNCORR_BLOCK_CTR_LANE11_F,
       
   158 +	IB_PESC_LAST_F,
       
   159 +
       
   160 +	/*
       
   161 +	 * PortOpRcvCounters fields
       
   162 +	 */
       
   163 +	IB_PC_PORT_OP_RCV_COUNTERS_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   164 +	IB_PC_PORT_OP_RCV_PKTS_F = IB_PC_PORT_OP_RCV_COUNTERS_FIRST_F,
       
   165 +	IB_PC_PORT_OP_RCV_DATA_F,
       
   166 +	IB_PC_PORT_OP_RCV_COUNTERS_LAST_F,
       
   167 +
       
   168 +	/*
       
   169 +	 * PortFlowCtlCounters fields
       
   170 +	 */
       
   171 +	IB_PC_PORT_FLOW_CTL_COUNTERS_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   172 +	IB_PC_PORT_XMIT_FLOW_PKTS_F = IB_PC_PORT_FLOW_CTL_COUNTERS_FIRST_F,
       
   173 +	IB_PC_PORT_RCV_FLOW_PKTS_F,
       
   174 +	IB_PC_PORT_FLOW_CTL_COUNTERS_LAST_F,
       
   175 +
       
   176 +	/*
       
   177 +	 * PortVLOpPackets fields
       
   178 +	 */
       
   179 +	IB_PC_PORT_VL_OP_PACKETS_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   180 +	IB_PC_PORT_VL_OP_PACKETS0_F = IB_PC_PORT_VL_OP_PACKETS_FIRST_F,
       
   181 +	IB_PC_PORT_VL_OP_PACKETS1_F,
       
   182 +	IB_PC_PORT_VL_OP_PACKETS2_F,
       
   183 +	IB_PC_PORT_VL_OP_PACKETS3_F,
       
   184 +	IB_PC_PORT_VL_OP_PACKETS4_F,
       
   185 +	IB_PC_PORT_VL_OP_PACKETS5_F,
       
   186 +	IB_PC_PORT_VL_OP_PACKETS6_F,
       
   187 +	IB_PC_PORT_VL_OP_PACKETS7_F,
       
   188 +	IB_PC_PORT_VL_OP_PACKETS8_F,
       
   189 +	IB_PC_PORT_VL_OP_PACKETS9_F,
       
   190 +	IB_PC_PORT_VL_OP_PACKETS10_F,
       
   191 +	IB_PC_PORT_VL_OP_PACKETS11_F,
       
   192 +	IB_PC_PORT_VL_OP_PACKETS12_F,
       
   193 +	IB_PC_PORT_VL_OP_PACKETS13_F,
       
   194 +	IB_PC_PORT_VL_OP_PACKETS14_F,
       
   195 +	IB_PC_PORT_VL_OP_PACKETS15_F,
       
   196 +	IB_PC_PORT_VL_OP_PACKETS_LAST_F,
       
   197 +
       
   198 +	/*
       
   199 +	 * PortVLOpData fields
       
   200 +	 */
       
   201 +	IB_PC_PORT_VL_OP_DATA_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   202 +	IB_PC_PORT_VL_OP_DATA0_F = IB_PC_PORT_VL_OP_DATA_FIRST_F,
       
   203 +	IB_PC_PORT_VL_OP_DATA1_F,
       
   204 +	IB_PC_PORT_VL_OP_DATA2_F,
       
   205 +	IB_PC_PORT_VL_OP_DATA3_F,
       
   206 +	IB_PC_PORT_VL_OP_DATA4_F,
       
   207 +	IB_PC_PORT_VL_OP_DATA5_F,
       
   208 +	IB_PC_PORT_VL_OP_DATA6_F,
       
   209 +	IB_PC_PORT_VL_OP_DATA7_F,
       
   210 +	IB_PC_PORT_VL_OP_DATA8_F,
       
   211 +	IB_PC_PORT_VL_OP_DATA9_F,
       
   212 +	IB_PC_PORT_VL_OP_DATA10_F,
       
   213 +	IB_PC_PORT_VL_OP_DATA11_F,
       
   214 +	IB_PC_PORT_VL_OP_DATA12_F,
       
   215 +	IB_PC_PORT_VL_OP_DATA13_F,
       
   216 +	IB_PC_PORT_VL_OP_DATA14_F,
       
   217 +	IB_PC_PORT_VL_OP_DATA15_F,
       
   218 +	IB_PC_PORT_VL_OP_DATA_LAST_F,
       
   219 +
       
   220 +	/*
       
   221 +	 * PortVLXmitFlowCtlUpdateErrors fields
       
   222 +	 */
       
   223 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   224 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS0_F = IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS_FIRST_F,
       
   225 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS1_F,
       
   226 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS2_F,
       
   227 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS3_F,
       
   228 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS4_F,
       
   229 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS5_F,
       
   230 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS6_F,
       
   231 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS7_F,
       
   232 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS8_F,
       
   233 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS9_F,
       
   234 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS10_F,
       
   235 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS11_F,
       
   236 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS12_F,
       
   237 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS13_F,
       
   238 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS14_F,
       
   239 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS15_F,
       
   240 +	IB_PC_PORT_VL_XMIT_FLOW_CTL_UPDATE_ERRORS_LAST_F,
       
   241 +
       
   242 +	/*
       
   243 +	 * PortVLXmitWaitCounters fields
       
   244 +	 */
       
   245 +	IB_PC_PORT_VL_XMIT_WAIT_COUNTERS_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   246 +	IB_PC_PORT_VL_XMIT_WAIT0_F = IB_PC_PORT_VL_XMIT_WAIT_COUNTERS_FIRST_F,
       
   247 +	IB_PC_PORT_VL_XMIT_WAIT1_F,
       
   248 +	IB_PC_PORT_VL_XMIT_WAIT2_F,
       
   249 +	IB_PC_PORT_VL_XMIT_WAIT3_F,
       
   250 +	IB_PC_PORT_VL_XMIT_WAIT4_F,
       
   251 +	IB_PC_PORT_VL_XMIT_WAIT5_F,
       
   252 +	IB_PC_PORT_VL_XMIT_WAIT6_F,
       
   253 +	IB_PC_PORT_VL_XMIT_WAIT7_F,
       
   254 +	IB_PC_PORT_VL_XMIT_WAIT8_F,
       
   255 +	IB_PC_PORT_VL_XMIT_WAIT9_F,
       
   256 +	IB_PC_PORT_VL_XMIT_WAIT10_F,
       
   257 +	IB_PC_PORT_VL_XMIT_WAIT11_F,
       
   258 +	IB_PC_PORT_VL_XMIT_WAIT12_F,
       
   259 +	IB_PC_PORT_VL_XMIT_WAIT13_F,
       
   260 +	IB_PC_PORT_VL_XMIT_WAIT14_F,
       
   261 +	IB_PC_PORT_VL_XMIT_WAIT15_F,
       
   262 +	IB_PC_PORT_VL_XMIT_WAIT_COUNTERS_LAST_F,
       
   263 +
       
   264 +	/*
       
   265 +	 * SwPortVLCongestion fields
       
   266 +	 */
       
   267 +	IB_PC_SW_PORT_VL_CONGESTION_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   268 +	IB_PC_SW_PORT_VL_CONGESTION0_F = IB_PC_SW_PORT_VL_CONGESTION_FIRST_F,
       
   269 +	IB_PC_SW_PORT_VL_CONGESTION1_F,
       
   270 +	IB_PC_SW_PORT_VL_CONGESTION2_F,
       
   271 +	IB_PC_SW_PORT_VL_CONGESTION3_F,
       
   272 +	IB_PC_SW_PORT_VL_CONGESTION4_F,
       
   273 +	IB_PC_SW_PORT_VL_CONGESTION5_F,
       
   274 +	IB_PC_SW_PORT_VL_CONGESTION6_F,
       
   275 +	IB_PC_SW_PORT_VL_CONGESTION7_F,
       
   276 +	IB_PC_SW_PORT_VL_CONGESTION8_F,
       
   277 +	IB_PC_SW_PORT_VL_CONGESTION9_F,
       
   278 +	IB_PC_SW_PORT_VL_CONGESTION10_F,
       
   279 +	IB_PC_SW_PORT_VL_CONGESTION11_F,
       
   280 +	IB_PC_SW_PORT_VL_CONGESTION12_F,
       
   281 +	IB_PC_SW_PORT_VL_CONGESTION13_F,
       
   282 +	IB_PC_SW_PORT_VL_CONGESTION14_F,
       
   283 +	IB_PC_SW_PORT_VL_CONGESTION15_F,
       
   284 +	IB_PC_SW_PORT_VL_CONGESTION_LAST_F,
       
   285 +
       
   286 +	/*
       
   287 +	 * PortRcvConCtrl fields
       
   288 +	 */
       
   289 +	IB_PC_RCV_CON_CTRL_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   290 +	IB_PC_RCV_CON_CTRL_PKT_RCV_FECN_F = IB_PC_RCV_CON_CTRL_FIRST_F,
       
   291 +	IB_PC_RCV_CON_CTRL_PKT_RCV_BECN_F,
       
   292 +	IB_PC_RCV_CON_CTRL_LAST_F,
       
   293 +
       
   294 +	/*
       
   295 +	 * PortSLRcvFECN fields
       
   296 +	 */
       
   297 +	IB_PC_SL_RCV_FECN_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   298 +	IB_PC_SL_RCV_FECN0_F = IB_PC_SL_RCV_FECN_FIRST_F,
       
   299 +	IB_PC_SL_RCV_FECN1_F,
       
   300 +	IB_PC_SL_RCV_FECN2_F,
       
   301 +	IB_PC_SL_RCV_FECN3_F,
       
   302 +	IB_PC_SL_RCV_FECN4_F,
       
   303 +	IB_PC_SL_RCV_FECN5_F,
       
   304 +	IB_PC_SL_RCV_FECN6_F,
       
   305 +	IB_PC_SL_RCV_FECN7_F,
       
   306 +	IB_PC_SL_RCV_FECN8_F,
       
   307 +	IB_PC_SL_RCV_FECN9_F,
       
   308 +	IB_PC_SL_RCV_FECN10_F,
       
   309 +	IB_PC_SL_RCV_FECN11_F,
       
   310 +	IB_PC_SL_RCV_FECN12_F,
       
   311 +	IB_PC_SL_RCV_FECN13_F,
       
   312 +	IB_PC_SL_RCV_FECN14_F,
       
   313 +	IB_PC_SL_RCV_FECN15_F,
       
   314 +	IB_PC_SL_RCV_FECN_LAST_F,
       
   315 +
       
   316 +	/*
       
   317 +	 * PortSLRcvBECN fields
       
   318 +	 */
       
   319 +	IB_PC_SL_RCV_BECN_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   320 +	IB_PC_SL_RCV_BECN0_F = IB_PC_SL_RCV_BECN_FIRST_F,
       
   321 +	IB_PC_SL_RCV_BECN1_F,
       
   322 +	IB_PC_SL_RCV_BECN2_F,
       
   323 +	IB_PC_SL_RCV_BECN3_F,
       
   324 +	IB_PC_SL_RCV_BECN4_F,
       
   325 +	IB_PC_SL_RCV_BECN5_F,
       
   326 +	IB_PC_SL_RCV_BECN6_F,
       
   327 +	IB_PC_SL_RCV_BECN7_F,
       
   328 +	IB_PC_SL_RCV_BECN8_F,
       
   329 +	IB_PC_SL_RCV_BECN9_F,
       
   330 +	IB_PC_SL_RCV_BECN10_F,
       
   331 +	IB_PC_SL_RCV_BECN11_F,
       
   332 +	IB_PC_SL_RCV_BECN12_F,
       
   333 +	IB_PC_SL_RCV_BECN13_F,
       
   334 +	IB_PC_SL_RCV_BECN14_F,
       
   335 +	IB_PC_SL_RCV_BECN15_F,
       
   336 +	IB_PC_SL_RCV_BECN_LAST_F,
       
   337 +
       
   338 +	/*
       
   339 +	 * PortXmitConCtrl fields
       
   340 +	 */
       
   341 +	IB_PC_XMIT_CON_CTRL_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   342 +	IB_PC_XMIT_CON_CTRL_TIME_CONG_F = IB_PC_XMIT_CON_CTRL_FIRST_F,
       
   343 +	IB_PC_XMIT_CON_CTRL_LAST_F,
       
   344 +
       
   345 +	/*
       
   346 +	 * PortVLXmitTimeCong fields
       
   347 +	 */
       
   348 +	IB_PC_VL_XMIT_TIME_CONG_FIRST_F, /* for PortSelect and CounterSelect, use IB_PC_PORT_SELECT_F and IB_PC_COUNTER_SELECT_F */
       
   349 +	IB_PC_VL_XMIT_TIME_CONG0_F = IB_PC_VL_XMIT_TIME_CONG_FIRST_F,
       
   350 +	IB_PC_VL_XMIT_TIME_CONG1_F,
       
   351 +	IB_PC_VL_XMIT_TIME_CONG2_F,
       
   352 +	IB_PC_VL_XMIT_TIME_CONG3_F,
       
   353 +	IB_PC_VL_XMIT_TIME_CONG4_F,
       
   354 +	IB_PC_VL_XMIT_TIME_CONG5_F,
       
   355 +	IB_PC_VL_XMIT_TIME_CONG6_F,
       
   356 +	IB_PC_VL_XMIT_TIME_CONG7_F,
       
   357 +	IB_PC_VL_XMIT_TIME_CONG8_F,
       
   358 +	IB_PC_VL_XMIT_TIME_CONG9_F,
       
   359 +	IB_PC_VL_XMIT_TIME_CONG10_F,
       
   360 +	IB_PC_VL_XMIT_TIME_CONG11_F,
       
   361 +	IB_PC_VL_XMIT_TIME_CONG12_F,
       
   362 +	IB_PC_VL_XMIT_TIME_CONG13_F,
       
   363 +	IB_PC_VL_XMIT_TIME_CONG14_F,
       
   364 +	IB_PC_VL_XMIT_TIME_CONG_LAST_F,
       
   365 +
       
   366 +	/*
       
   367 +	 * Mellanox ExtendedPortInfo fields
       
   368 +	 */
       
   369 +	IB_MLNX_EXT_PORT_STATE_CHG_ENABLE_F,
       
   370 +	IB_MLNX_EXT_PORT_LINK_SPEED_SUPPORTED_F,
       
   371 +	IB_MLNX_EXT_PORT_LINK_SPEED_ENABLED_F,
       
   372 +	IB_MLNX_EXT_PORT_LINK_SPEED_ACTIVE_F,
       
   373 +	IB_MLNX_EXT_PORT_LAST_F,
       
   374 +
       
   375 +	/*
       
   376 +	 * Congestion Control Mad fields
       
   377 +	 * bytes 24-31 of congestion control mad
       
   378 +	 */
       
   379 +	IB_CC_CCKEY_F,
       
   380 +
       
   381 +	/*
       
   382 +	 * CongestionInfo fields
       
   383 +	 */
       
   384 +	IB_CC_CONGESTION_INFO_FIRST_F,
       
   385 +	IB_CC_CONGESTION_INFO_F = IB_CC_CONGESTION_INFO_FIRST_F,
       
   386 +	IB_CC_CONGESTION_INFO_CONTROL_TABLE_CAP_F,
       
   387 +	IB_CC_CONGESTION_INFO_LAST_F,
       
   388 +
       
   389 +	/*
       
   390 +	 * CongestionKeyInfo fields
       
   391 +	 */
       
   392 +	IB_CC_CONGESTION_KEY_INFO_FIRST_F,
       
   393 +	IB_CC_CONGESTION_KEY_INFO_CC_KEY_F = IB_CC_CONGESTION_KEY_INFO_FIRST_F,
       
   394 +	IB_CC_CONGESTION_KEY_INFO_CC_KEY_PROTECT_BIT_F,
       
   395 +	IB_CC_CONGESTION_KEY_INFO_CC_KEY_LEASE_PERIOD_F,
       
   396 +	IB_CC_CONGESTION_KEY_INFO_CC_KEY_VIOLATIONS_F,
       
   397 +	IB_CC_CONGESTION_KEY_INFO_LAST_F,
       
   398 +
       
   399 +	/*
       
   400 +	 * CongestionLog (common) fields
       
   401 +	 */
       
   402 +	IB_CC_CONGESTION_LOG_FIRST_F,
       
   403 +	IB_CC_CONGESTION_LOG_LOGTYPE_F = IB_CC_CONGESTION_LOG_FIRST_F,
       
   404 +	IB_CC_CONGESTION_LOG_CONGESTION_FLAGS_F,
       
   405 +	IB_CC_CONGESTION_LOG_LAST_F,
       
   406 +
       
   407 +	/*
       
   408 +	 * CongestionLog (Switch) fields
       
   409 +	 */
       
   410 +	IB_CC_CONGESTION_LOG_SWITCH_FIRST_F,
       
   411 +	IB_CC_CONGESTION_LOG_SWITCH_LOG_EVENTS_COUNTER_F = IB_CC_CONGESTION_LOG_SWITCH_FIRST_F,
       
   412 +	IB_CC_CONGESTION_LOG_SWITCH_CURRENT_TIME_STAMP_F,
       
   413 +	IB_CC_CONGESTION_LOG_SWITCH_PORTMAP_F,
       
   414 +	IB_CC_CONGESTION_LOG_SWITCH_LAST_F,
       
   415 +
       
   416 +	/*
       
   417 +	 * CongestionLogEvent (Switch) fields
       
   418 +	 */
       
   419 +	IB_CC_CONGESTION_LOG_ENTRY_SWITCH_FIRST_F,
       
   420 +	IB_CC_CONGESTION_LOG_ENTRY_SWITCH_SLID_F = IB_CC_CONGESTION_LOG_ENTRY_SWITCH_FIRST_F,
       
   421 +	IB_CC_CONGESTION_LOG_ENTRY_SWITCH_DLID_F,
       
   422 +	IB_CC_CONGESTION_LOG_ENTRY_SWITCH_SL_F,
       
   423 +	IB_CC_CONGESTION_LOG_ENTRY_SWITCH_TIMESTAMP_F,
       
   424 +	IB_CC_CONGESTION_LOG_ENTRY_SWITCH_LAST_F,
       
   425 +
       
   426 +	/*
       
   427 +	 * CongestionLog (CA) fields
       
   428 +	 */
       
   429 +	IB_CC_CONGESTION_LOG_CA_FIRST_F,
       
   430 +	IB_CC_CONGESTION_LOG_CA_THRESHOLD_EVENT_COUNTER_F = IB_CC_CONGESTION_LOG_CA_FIRST_F,
       
   431 +	IB_CC_CONGESTION_LOG_CA_THRESHOLD_CONGESTION_EVENT_MAP_F,
       
   432 +	IB_CC_CONGESTION_LOG_CA_CURRENT_TIMESTAMP_F,
       
   433 +	IB_CC_CONGESTION_LOG_CA_LAST_F,
       
   434 +
       
   435 +	/*
       
   436 +	 * CongestionLogEvent (CA) fields
       
   437 +	 */
       
   438 +	IB_CC_CONGESTION_LOG_ENTRY_CA_FIRST_F,
       
   439 +	IB_CC_CONGESTION_LOG_ENTRY_CA_LOCAL_QP_CN_ENTRY_F = IB_CC_CONGESTION_LOG_ENTRY_CA_FIRST_F,
       
   440 +	IB_CC_CONGESTION_LOG_ENTRY_CA_SL_CN_ENTRY_F,
       
   441 +	IB_CC_CONGESTION_LOG_ENTRY_CA_SERVICE_TYPE_CN_ENTRY_F,
       
   442 +	IB_CC_CONGESTION_LOG_ENTRY_CA_REMOTE_QP_NUMBER_CN_ENTRY_F,
       
   443 +	IB_CC_CONGESTION_LOG_ENTRY_CA_LOCAL_LID_CN_F,
       
   444 +	IB_CC_CONGESTION_LOG_ENTRY_CA_REMOTE_LID_CN_ENTRY_F,
       
   445 +	IB_CC_CONGESTION_LOG_ENTRY_CA_TIMESTAMP_CN_ENTRY_F,
       
   446 +	IB_CC_CONGESTION_LOG_ENTRY_CA_LAST_F,
       
   447 +
       
   448 +	/*
       
   449 +	 * SwitchCongestionSetting fields
       
   450 +	 */
       
   451 +	IB_CC_SWITCH_CONGESTION_SETTING_FIRST_F,
       
   452 +	IB_CC_SWITCH_CONGESTION_SETTING_CONTROL_MAP_F = IB_CC_SWITCH_CONGESTION_SETTING_FIRST_F,
       
   453 +	IB_CC_SWITCH_CONGESTION_SETTING_VICTIM_MASK_F,
       
   454 +	IB_CC_SWITCH_CONGESTION_SETTING_CREDIT_MASK_F,
       
   455 +	IB_CC_SWITCH_CONGESTION_SETTING_THRESHOLD_F,
       
   456 +	IB_CC_SWITCH_CONGESTION_SETTING_PACKET_SIZE_F,
       
   457 +	IB_CC_SWITCH_CONGESTION_SETTING_CS_THRESHOLD_F,
       
   458 +	IB_CC_SWITCH_CONGESTION_SETTING_CS_RETURN_DELAY_F,
       
   459 +	IB_CC_SWITCH_CONGESTION_SETTING_MARKING_RATE_F,
       
   460 +	IB_CC_SWITCH_CONGESTION_SETTING_LAST_F,
       
   461 +
       
   462 +	/*
       
   463 +	 * SwitchPortCongestionSettingElement fields
       
   464 +	 */
       
   465 +	IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_FIRST_F,
       
   466 +	IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_VALID_F = IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_FIRST_F,
       
   467 +	IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_CONTROL_TYPE_F,
       
   468 +	IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_THRESHOLD_F,
       
   469 +	IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_PACKET_SIZE_F,
       
   470 +	IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_CONG_PARM_MARKING_RATE_F,
       
   471 +	IB_CC_SWITCH_PORT_CONGESTION_SETTING_ELEMENT_LAST_F,
       
   472 +
       
   473 +	/*
       
   474 +	 * CACongestionSetting fields
       
   475 +	 */
       
   476 +	IB_CC_CA_CONGESTION_SETTING_FIRST_F,
       
   477 +	IB_CC_CA_CONGESTION_SETTING_PORT_CONTROL_F = IB_CC_CA_CONGESTION_SETTING_FIRST_F,
       
   478 +	IB_CC_CA_CONGESTION_SETTING_CONTROL_MAP_F,
       
   479 +	IB_CC_CA_CONGESTION_SETTING_LAST_F,
       
   480 +
       
   481 +	/*
       
   482 +	 * CACongestionEntry fields
       
   483 +	 */
       
   484 +	IB_CC_CA_CONGESTION_ENTRY_FIRST_F,
       
   485 +	IB_CC_CA_CONGESTION_ENTRY_CCTI_TIMER_F = IB_CC_CA_CONGESTION_ENTRY_FIRST_F,
       
   486 +	IB_CC_CA_CONGESTION_ENTRY_CCTI_INCREASE_F,
       
   487 +	IB_CC_CA_CONGESTION_ENTRY_TRIGGER_THRESHOLD_F,
       
   488 +	IB_CC_CA_CONGESTION_ENTRY_CCTI_MIN_F,
       
   489 +	IB_CC_CA_CONGESTION_ENTRY_LAST_F,
       
   490 +
       
   491 +	/*
       
   492 +	 * CongestionControlTable fields
       
   493 +	 */
       
   494 +	IB_CC_CONGESTION_CONTROL_TABLE_FIRST_F,
       
   495 +	IB_CC_CONGESTION_CONTROL_TABLE_CCTI_LIMIT_F = IB_CC_CONGESTION_CONTROL_TABLE_FIRST_F,
       
   496 +	IB_CC_CONGESTION_CONTROL_TABLE_LAST_F,
       
   497 +
       
   498 +	/*
       
   499 +	 * CongestionControlTableEntry fields
       
   500 +	 */
       
   501 +	IB_CC_CONGESTION_CONTROL_TABLE_ENTRY_FIRST_F,
       
   502 +	IB_CC_CONGESTION_CONTROL_TABLE_ENTRY_CCT_SHIFT_F = IB_CC_CONGESTION_CONTROL_TABLE_ENTRY_FIRST_F,
       
   503 +	IB_CC_CONGESTION_CONTROL_TABLE_ENTRY_CCT_MULTIPLIER_F,
       
   504 +	IB_CC_CONGESTION_CONTROL_TABLE_ENTRY_LAST_F,
       
   505 +
       
   506 +	/*
       
   507 +	 * Timestamp fields
       
   508 +	 */
       
   509 +	IB_CC_TIMESTAMP_FIRST_F,
       
   510 +	IB_CC_TIMESTAMP_F = IB_CC_TIMESTAMP_FIRST_F,
       
   511 +	IB_CC_TIMESTAMP_LAST_F,
       
   512 +
       
   513 +	/*
       
   514 +	 * Node Record
       
   515 +	 */
       
   516 +	IB_SA_NR_FIRST_F,
       
   517 +	IB_SA_NR_LID_F = IB_SA_NR_FIRST_F,
       
   518 +	IB_SA_NR_BASEVER_F,
       
   519 +	IB_SA_NR_CLASSVER_F,
       
   520 +	IB_SA_NR_TYPE_F,
       
   521 +	IB_SA_NR_NPORTS_F,
       
   522 +	IB_SA_NR_SYSTEM_GUID_F,
       
   523 +	IB_SA_NR_GUID_F,
       
   524 +	IB_SA_NR_PORT_GUID_F,
       
   525 +	IB_SA_NR_PARTITION_CAP_F,
       
   526 +	IB_SA_NR_DEVID_F,
       
   527 +	IB_SA_NR_REVISION_F,
       
   528 +	IB_SA_NR_LOCAL_PORT_F,
       
   529 +	IB_SA_NR_VENDORID_F,
       
   530 +	IB_SA_NR_NODEDESC_F,
       
   531 +	IB_SA_NR_LAST_F,
       
   532 +
       
   533 +	/*
       
   534 +	 * PortSamplesResult fields
       
   535 +	 */
       
   536 +	IB_PSR_TAG_F,
       
   537 +	IB_PSR_SAMPLE_STATUS_F,
       
   538 +	IB_PSR_COUNTER0_F,
       
   539 +	IB_PSR_COUNTER1_F,
       
   540 +	IB_PSR_COUNTER2_F,
       
   541 +	IB_PSR_COUNTER3_F,
       
   542 +	IB_PSR_COUNTER4_F,
       
   543 +	IB_PSR_COUNTER5_F,
       
   544 +	IB_PSR_COUNTER6_F,
       
   545 +	IB_PSR_COUNTER7_F,
       
   546 +	IB_PSR_COUNTER8_F,
       
   547 +	IB_PSR_COUNTER9_F,
       
   548 +	IB_PSR_COUNTER10_F,
       
   549 +	IB_PSR_COUNTER11_F,
       
   550 +	IB_PSR_COUNTER12_F,
       
   551 +	IB_PSR_COUNTER13_F,
       
   552 +	IB_PSR_COUNTER14_F,
       
   553 +	IB_PSR_LAST_F,
       
   554 +
       
   555  	IB_FIELD_LAST_		/* must be last */
       
   556  };
       
   557  
       
   558 @@ -974,6 +1459,9 @@
       
   559  				 ibmad_gid_t srcgid, ibmad_gid_t destgid,
       
   560  				 ib_portid_t * sm_id, void *buf);
       
   561  	/* returns lid */
       
   562 +MAD_EXPORT int ib_node_query_via(const struct ibmad_port *srcport,
       
   563 +				 uint64_t guid, ib_portid_t * sm_id,
       
   564 +				 void *buf);
       
   565  
       
   566  /* resolve.c */
       
   567  MAD_EXPORT int ib_resolve_smlid(ib_portid_t * sm_id, int timeout) DEPRECATED;
       
   568 @@ -1036,6 +1524,10 @@
    19  
   569  
    20  extern MAD_EXPORT int ibdebug;
   570  extern MAD_EXPORT int ibdebug;
    21  
   571  
    22 +#if !(defined(__SVR4) && defined(__sun))
   572 +#if !(defined(__SVR4) && defined(__sun))
    23 +#include <endian.h>
   573 +#include <endian.h>
    24 +#include <byteswap.h>
   574 +#include <byteswap.h>
    25 +
   575 +
    26  #if __BYTE_ORDER == __LITTLE_ENDIAN
   576  #if __BYTE_ORDER == __LITTLE_ENDIAN
    27  #ifndef ntohll
   577  #ifndef ntohll
    28  static inline uint64_t ntohll(uint64_t x)
   578  static inline uint64_t ntohll(uint64_t x)
    29 @@ -1063,6 +1067,9 @@
   579 @@ -1063,6 +1555,9 @@
    30  }
   580  }
    31  #endif
   581  #endif
    32  #endif				/* __BYTE_ORDER == __BIG_ENDIAN */
   582  #endif				/* __BYTE_ORDER == __BIG_ENDIAN */
    33 +#else
   583 +#else
    34 +#include <infiniband/ofa_solaris.h>
   584 +#include <infiniband/ofa_solaris.h>
    35 +#endif
   585 +#endif
    36  
   586  
    37  /* Misc. macros: */
   587  /* Misc. macros: */
    38  /** align value \a l to \a size (ceil) */
   588  /** align value \a l to \a size (ceil) */
    39 @@ -1069,14 +1076,14 @@
   589 @@ -1069,14 +1564,14 @@
    40  #define ALIGN(l, size) (((l) + ((size) - 1)) / (size) * (size))
   590  #define ALIGN(l, size) (((l) + ((size) - 1)) / (size) * (size))
    41  
   591  
    42  /** printf style warning MACRO, includes name of function and pid */
   592  /** printf style warning MACRO, includes name of function and pid */
    43 -#define IBWARN(fmt, ...) fprintf(stderr, "ibwarn: [%d] %s: " fmt "\n", getpid(), __func__, ## __VA_ARGS__)
   593 -#define IBWARN(fmt, ...) fprintf(stderr, "ibwarn: [%d] %s: " fmt "\n", getpid(), __func__, ## __VA_ARGS__)
    44 +#define IBWARN(fmt, ...) fprintf(stderr, "ibwarn: [%d] %s: " fmt "\n", (int)getpid(), __func__, ## __VA_ARGS__)
   594 +#define IBWARN(fmt, ...) fprintf(stderr, "ibwarn: [%d] %s: " fmt "\n", (int)getpid(), __func__, ## __VA_ARGS__)
   284  		IBWARN("only lid routes are supported");
   834  		IBWARN("only lid routes are supported");
   285 +		errno = EIO;
   835 +		errno = EIO;
   286  		return NULL;
   836  		return NULL;
   287  	}
   837  	}
   288  
   838  
       
   839 @@ -144,4 +146,48 @@
       
   840  		  void *buf)
       
   841  {
       
   842  	return ib_path_query_via(ibmp, srcgid, destgid, sm_id, buf);
       
   843 +}
       
   844 +
       
   845 +/* NodeRecord */
       
   846 +#define IB_NR_COMPMASK_LID				(1ull<<0)
       
   847 +#define IB_NR_COMPMASK_RESERVED1			(1ull<<1)
       
   848 +#define IB_NR_COMPMASK_BASEVERSION			(1ull<<2)
       
   849 +#define IB_NR_COMPMASK_CLASSVERSION			(1ull<<3)
       
   850 +#define IB_NR_COMPMASK_NODETYPE				(1ull<<4)
       
   851 +#define IB_NR_COMPMASK_NUMPORTS				(1ull<<5)
       
   852 +#define IB_NR_COMPMASK_SYSIMAGEGUID			(1ull<<6)
       
   853 +#define IB_NR_COMPMASK_NODEGUID				(1ull<<7)
       
   854 +#define IB_NR_COMPMASK_PORTGUID				(1ull<<8)
       
   855 +#define IB_NR_COMPMASK_PARTCAP				(1ull<<9)
       
   856 +#define IB_NR_COMPMASK_DEVID				(1ull<<10)
       
   857 +#define IB_NR_COMPMASK_REV				(1ull<<11)
       
   858 +#define IB_NR_COMPMASK_PORTNUM				(1ull<<12)
       
   859 +#define IB_NR_COMPMASK_VENDID				(1ull<<13)
       
   860 +#define IB_NR_COMPMASK_NODEDESC				(1ull<<14)
       
   861 +
       
   862 +#define IB_NR_DEF_MASK IB_NR_COMPMASK_PORTGUID
       
   863 +
       
   864 +int ib_node_query_via(const struct ibmad_port *srcport, uint64_t guid,
       
   865 +		      ib_portid_t * sm_id, void *buf)
       
   866 +{
       
   867 +	ib_sa_call_t sa = { 0 };
       
   868 +	uint8_t *p;
       
   869 +
       
   870 +	memset(&sa, 0, sizeof sa);
       
   871 +	sa.method = IB_MAD_METHOD_GET;
       
   872 +	sa.attrid = IB_SA_ATTR_NODERECORD;
       
   873 +	sa.mask = IB_NR_DEF_MASK;
       
   874 +	sa.trid = mad_trid();
       
   875 +
       
   876 +	memset(buf, 0, IB_SA_NR_RECSZ);
       
   877 +
       
   878 +	mad_encode_field(buf, IB_SA_NR_PORT_GUID_F, &guid);
       
   879 +
       
   880 +	p = sa_rpc_call(srcport, buf, sm_id, &sa, 0);
       
   881 +	if (!p) {
       
   882 +		IBWARN("sa call node_query failed");
       
   883 +		return -1;
       
   884 +	}
       
   885 +
       
   886 +	return 0;
       
   887  }
       
   888 diff -r -u /tmp/libibmad-1.3.7/src/libibmad.map libibmad-1.3.7/src/libibmad.map
       
   889 --- /tmp/libibmad-1.3.7/src/libibmad.map	Wed Feb 16 02:12:53 2011
       
   890 +++ libibmad-1.3.7/src/libibmad.map	Tue Apr  2 12:15:13 2013
       
   891 @@ -102,6 +102,7 @@
       
   892  		ib_vendor_call_via;
       
   893  		smp_query_via;
       
   894  		smp_set_via;
       
   895 +		ib_node_query_via;
       
   896  		ib_path_query_via;
       
   897  		ib_resolve_smlid_via;
       
   898  		ib_resolve_guid_via;
   289 diff -r -u /tmp/libibmad-1.3.7/src/rpc.c libibmad-1.3.7/src/rpc.c
   899 diff -r -u /tmp/libibmad-1.3.7/src/rpc.c libibmad-1.3.7/src/rpc.c
   290 --- /tmp/libibmad-1.3.7/src/rpc.c	Wed Feb 16 02:12:53 2011
   900 --- /tmp/libibmad-1.3.7/src/rpc.c	Wed Feb 16 02:12:53 2011
   291 +++ libibmad-1.3.7/src/rpc.c	Thu Feb 24 11:27:14 2011
   901 +++ libibmad-1.3.7/src/rpc.c	Thu Feb 24 11:27:14 2011
   292 @@ -152,7 +152,7 @@
   902 @@ -152,7 +152,7 @@
   293  
   903