diff options
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_mad.h')
-rw-r--r-- | drivers/infiniband/hw/qib/qib_mad.h | 143 |
1 files changed, 3 insertions, 140 deletions
diff --git a/drivers/infiniband/hw/qib/qib_mad.h b/drivers/infiniband/hw/qib/qib_mad.h index 7840ab593bcf..ecc416cdbaaa 100644 --- a/drivers/infiniband/hw/qib/qib_mad.h +++ b/drivers/infiniband/hw/qib/qib_mad.h | |||
@@ -32,6 +32,8 @@ | |||
32 | * SOFTWARE. | 32 | * SOFTWARE. |
33 | */ | 33 | */ |
34 | 34 | ||
35 | #include <rdma/ib_pma.h> | ||
36 | |||
35 | #define IB_SMP_UNSUP_VERSION cpu_to_be16(0x0004) | 37 | #define IB_SMP_UNSUP_VERSION cpu_to_be16(0x0004) |
36 | #define IB_SMP_UNSUP_METHOD cpu_to_be16(0x0008) | 38 | #define IB_SMP_UNSUP_METHOD cpu_to_be16(0x0008) |
37 | #define IB_SMP_UNSUP_METH_ATTR cpu_to_be16(0x000C) | 39 | #define IB_SMP_UNSUP_METH_ATTR cpu_to_be16(0x000C) |
@@ -180,109 +182,8 @@ struct ib_vl_weight_elem { | |||
180 | #define IB_VLARB_HIGHPRI_0_31 3 | 182 | #define IB_VLARB_HIGHPRI_0_31 3 |
181 | #define IB_VLARB_HIGHPRI_32_63 4 | 183 | #define IB_VLARB_HIGHPRI_32_63 4 |
182 | 184 | ||
183 | /* | ||
184 | * PMA class portinfo capability mask bits | ||
185 | */ | ||
186 | #define IB_PMA_CLASS_CAP_ALLPORTSELECT cpu_to_be16(1 << 8) | ||
187 | #define IB_PMA_CLASS_CAP_EXT_WIDTH cpu_to_be16(1 << 9) | ||
188 | #define IB_PMA_CLASS_CAP_XMIT_WAIT cpu_to_be16(1 << 12) | ||
189 | |||
190 | #define IB_PMA_CLASS_PORT_INFO cpu_to_be16(0x0001) | ||
191 | #define IB_PMA_PORT_SAMPLES_CONTROL cpu_to_be16(0x0010) | ||
192 | #define IB_PMA_PORT_SAMPLES_RESULT cpu_to_be16(0x0011) | ||
193 | #define IB_PMA_PORT_COUNTERS cpu_to_be16(0x0012) | ||
194 | #define IB_PMA_PORT_COUNTERS_EXT cpu_to_be16(0x001D) | ||
195 | #define IB_PMA_PORT_SAMPLES_RESULT_EXT cpu_to_be16(0x001E) | ||
196 | #define IB_PMA_PORT_COUNTERS_CONG cpu_to_be16(0xFF00) | 185 | #define IB_PMA_PORT_COUNTERS_CONG cpu_to_be16(0xFF00) |
197 | 186 | ||
198 | struct ib_perf { | ||
199 | u8 base_version; | ||
200 | u8 mgmt_class; | ||
201 | u8 class_version; | ||
202 | u8 method; | ||
203 | __be16 status; | ||
204 | __be16 unused; | ||
205 | __be64 tid; | ||
206 | __be16 attr_id; | ||
207 | __be16 resv; | ||
208 | __be32 attr_mod; | ||
209 | u8 reserved[40]; | ||
210 | u8 data[192]; | ||
211 | } __attribute__ ((packed)); | ||
212 | |||
213 | struct ib_pma_classportinfo { | ||
214 | u8 base_version; | ||
215 | u8 class_version; | ||
216 | __be16 cap_mask; | ||
217 | u8 reserved[3]; | ||
218 | u8 resp_time_value; /* only lower 5 bits */ | ||
219 | union ib_gid redirect_gid; | ||
220 | __be32 redirect_tc_sl_fl; /* 8, 4, 20 bits respectively */ | ||
221 | __be16 redirect_lid; | ||
222 | __be16 redirect_pkey; | ||
223 | __be32 redirect_qp; /* only lower 24 bits */ | ||
224 | __be32 redirect_qkey; | ||
225 | union ib_gid trap_gid; | ||
226 | __be32 trap_tc_sl_fl; /* 8, 4, 20 bits respectively */ | ||
227 | __be16 trap_lid; | ||
228 | __be16 trap_pkey; | ||
229 | __be32 trap_hl_qp; /* 8, 24 bits respectively */ | ||
230 | __be32 trap_qkey; | ||
231 | } __attribute__ ((packed)); | ||
232 | |||
233 | struct ib_pma_portsamplescontrol { | ||
234 | u8 opcode; | ||
235 | u8 port_select; | ||
236 | u8 tick; | ||
237 | u8 counter_width; /* only lower 3 bits */ | ||
238 | __be32 counter_mask0_9; /* 2, 10 * 3, bits */ | ||
239 | __be16 counter_mask10_14; /* 1, 5 * 3, bits */ | ||
240 | u8 sample_mechanisms; | ||
241 | u8 sample_status; /* only lower 2 bits */ | ||
242 | __be64 option_mask; | ||
243 | __be64 vendor_mask; | ||
244 | __be32 sample_start; | ||
245 | __be32 sample_interval; | ||
246 | __be16 tag; | ||
247 | __be16 counter_select[15]; | ||
248 | } __attribute__ ((packed)); | ||
249 | |||
250 | struct ib_pma_portsamplesresult { | ||
251 | __be16 tag; | ||
252 | __be16 sample_status; /* only lower 2 bits */ | ||
253 | __be32 counter[15]; | ||
254 | } __attribute__ ((packed)); | ||
255 | |||
256 | struct ib_pma_portsamplesresult_ext { | ||
257 | __be16 tag; | ||
258 | __be16 sample_status; /* only lower 2 bits */ | ||
259 | __be32 extended_width; /* only upper 2 bits */ | ||
260 | __be64 counter[15]; | ||
261 | } __attribute__ ((packed)); | ||
262 | |||
263 | struct ib_pma_portcounters { | ||
264 | u8 reserved; | ||
265 | u8 port_select; | ||
266 | __be16 counter_select; | ||
267 | __be16 symbol_error_counter; | ||
268 | u8 link_error_recovery_counter; | ||
269 | u8 link_downed_counter; | ||
270 | __be16 port_rcv_errors; | ||
271 | __be16 port_rcv_remphys_errors; | ||
272 | __be16 port_rcv_switch_relay_errors; | ||
273 | __be16 port_xmit_discards; | ||
274 | u8 port_xmit_constraint_errors; | ||
275 | u8 port_rcv_constraint_errors; | ||
276 | u8 reserved1; | ||
277 | u8 lli_ebor_errors; /* 4, 4, bits */ | ||
278 | __be16 reserved2; | ||
279 | __be16 vl15_dropped; | ||
280 | __be32 port_xmit_data; | ||
281 | __be32 port_rcv_data; | ||
282 | __be32 port_xmit_packets; | ||
283 | __be32 port_rcv_packets; | ||
284 | } __attribute__ ((packed)); | ||
285 | |||
286 | struct ib_pma_portcounters_cong { | 187 | struct ib_pma_portcounters_cong { |
287 | u8 reserved; | 188 | u8 reserved; |
288 | u8 reserved1; | 189 | u8 reserved1; |
@@ -297,7 +198,7 @@ struct ib_pma_portcounters_cong { | |||
297 | u8 port_xmit_constraint_errors; | 198 | u8 port_xmit_constraint_errors; |
298 | u8 port_rcv_constraint_errors; | 199 | u8 port_rcv_constraint_errors; |
299 | u8 reserved2; | 200 | u8 reserved2; |
300 | u8 lli_ebor_errors; /* 4, 4, bits */ | 201 | u8 link_overrun_errors; /* LocalLink: 7:4, BufferOverrun: 3:0 */ |
301 | __be16 reserved3; | 202 | __be16 reserved3; |
302 | __be16 vl15_dropped; | 203 | __be16 vl15_dropped; |
303 | __be64 port_xmit_data; | 204 | __be64 port_xmit_data; |
@@ -316,49 +217,11 @@ struct ib_pma_portcounters_cong { | |||
316 | /* number of 4nsec cycles equaling 2secs */ | 217 | /* number of 4nsec cycles equaling 2secs */ |
317 | #define QIB_CONG_TIMER_PSINTERVAL 0x1DCD64EC | 218 | #define QIB_CONG_TIMER_PSINTERVAL 0x1DCD64EC |
318 | 219 | ||
319 | #define IB_PMA_SEL_SYMBOL_ERROR cpu_to_be16(0x0001) | ||
320 | #define IB_PMA_SEL_LINK_ERROR_RECOVERY cpu_to_be16(0x0002) | ||
321 | #define IB_PMA_SEL_LINK_DOWNED cpu_to_be16(0x0004) | ||
322 | #define IB_PMA_SEL_PORT_RCV_ERRORS cpu_to_be16(0x0008) | ||
323 | #define IB_PMA_SEL_PORT_RCV_REMPHYS_ERRORS cpu_to_be16(0x0010) | ||
324 | #define IB_PMA_SEL_PORT_XMIT_DISCARDS cpu_to_be16(0x0040) | ||
325 | #define IB_PMA_SEL_LOCAL_LINK_INTEGRITY_ERRORS cpu_to_be16(0x0200) | ||
326 | #define IB_PMA_SEL_EXCESSIVE_BUFFER_OVERRUNS cpu_to_be16(0x0400) | ||
327 | #define IB_PMA_SEL_PORT_VL15_DROPPED cpu_to_be16(0x0800) | ||
328 | #define IB_PMA_SEL_PORT_XMIT_DATA cpu_to_be16(0x1000) | ||
329 | #define IB_PMA_SEL_PORT_RCV_DATA cpu_to_be16(0x2000) | ||
330 | #define IB_PMA_SEL_PORT_XMIT_PACKETS cpu_to_be16(0x4000) | ||
331 | #define IB_PMA_SEL_PORT_RCV_PACKETS cpu_to_be16(0x8000) | ||
332 | |||
333 | #define IB_PMA_SEL_CONG_ALL 0x01 | 220 | #define IB_PMA_SEL_CONG_ALL 0x01 |
334 | #define IB_PMA_SEL_CONG_PORT_DATA 0x02 | 221 | #define IB_PMA_SEL_CONG_PORT_DATA 0x02 |
335 | #define IB_PMA_SEL_CONG_XMIT 0x04 | 222 | #define IB_PMA_SEL_CONG_XMIT 0x04 |
336 | #define IB_PMA_SEL_CONG_ROUTING 0x08 | 223 | #define IB_PMA_SEL_CONG_ROUTING 0x08 |
337 | 224 | ||
338 | struct ib_pma_portcounters_ext { | ||
339 | u8 reserved; | ||
340 | u8 port_select; | ||
341 | __be16 counter_select; | ||
342 | __be32 reserved1; | ||
343 | __be64 port_xmit_data; | ||
344 | __be64 port_rcv_data; | ||
345 | __be64 port_xmit_packets; | ||
346 | __be64 port_rcv_packets; | ||
347 | __be64 port_unicast_xmit_packets; | ||
348 | __be64 port_unicast_rcv_packets; | ||
349 | __be64 port_multicast_xmit_packets; | ||
350 | __be64 port_multicast_rcv_packets; | ||
351 | } __attribute__ ((packed)); | ||
352 | |||
353 | #define IB_PMA_SELX_PORT_XMIT_DATA cpu_to_be16(0x0001) | ||
354 | #define IB_PMA_SELX_PORT_RCV_DATA cpu_to_be16(0x0002) | ||
355 | #define IB_PMA_SELX_PORT_XMIT_PACKETS cpu_to_be16(0x0004) | ||
356 | #define IB_PMA_SELX_PORT_RCV_PACKETS cpu_to_be16(0x0008) | ||
357 | #define IB_PMA_SELX_PORT_UNI_XMIT_PACKETS cpu_to_be16(0x0010) | ||
358 | #define IB_PMA_SELX_PORT_UNI_RCV_PACKETS cpu_to_be16(0x0020) | ||
359 | #define IB_PMA_SELX_PORT_MULTI_XMIT_PACKETS cpu_to_be16(0x0040) | ||
360 | #define IB_PMA_SELX_PORT_MULTI_RCV_PACKETS cpu_to_be16(0x0080) | ||
361 | |||
362 | /* | 225 | /* |
363 | * The PortSamplesControl.CounterMasks field is an array of 3 bit fields | 226 | * The PortSamplesControl.CounterMasks field is an array of 3 bit fields |
364 | * which specify the N'th counter's capabilities. See ch. 16.1.3.2. | 227 | * which specify the N'th counter's capabilities. See ch. 16.1.3.2. |