1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
/*
* Copyright (C) 2013 Red Hat.
* Copyright (C) 2007,2008 Silicon Graphics, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/
#ifndef _IBPMDA_H
#define _IBPMDA_H
#include <pcp/pmapi.h>
#include <pcp/impl.h>
#include <pcp/pmda.h>
#include "domain.h"
#ifdef HAVE_PORT_PERFORMANCE_QUERY_VIA
#define port_perf_query(data, dst, port, timeout, srcport) \
port_performance_query_via(data, dst, port, timeout, srcport)
#define port_perf_reset(data, dst, port, mask, timeout, srcport) \
port_performance_reset_via(data, dst, port, mask, timeout, srcport)
#else
#define port_perf_query(data, dst, port, timeout, srcport) \
pma_query_via(data, dst, port, timeout, IB_GSI_PORT_COUNTERS, srcport)
#define port_perf_reset(data, dst, port, mask, timeout, srcport) \
performance_reset_via(data, dst, port, mask, timeout, IB_GSI_PORT_COUNTERS, srcport)
#endif
void ibpmda_init (const char *configpath, int, pmdaInterface *);
int ib_fetch_val(pmdaMetric *, unsigned int, pmAtomValue *);
int ib_load_config(const char *, int, pmdaIndom *, unsigned int);
void ib_rearm_for_update(void *);
void ib_reset_perfcounters (void *);
int ib_store(pmResult *, pmdaExt *);
#define IB_HCA_INDOM 0
#define IB_PORT_INDOM 1
#define IB_CNT_INDOM 2
#define IB_PORTINFO_UPDATE 0x1
#define IB_HCA_PERF_UPDATE 0x2
#define IB_SWITCH_PERF_UPDATE 0x8
#define ARRAYSZ(a) (sizeof(a)/sizeof(a[0]))
#define METRIC_ib_hca_type 0
#define METRIC_ib_hca_ca_type 1
#define METRIC_ib_hca_numports 2
#define METRIC_ib_hca_fw_ver 3
#define METRIC_ib_hca_hw_ver 4
#define METRIC_ib_hca_node_guid 5
#define METRIC_ib_hca_system_guid 6
#define METRIC_ib_port_guid 7
#define METRIC_ib_port_gid_prefix 8
#define METRIC_ib_port_lid 9
#define METRIC_ib_port_state 10
#define METRIC_ib_port_phystate 11
#define METRIC_ib_port_rate 12
#define METRIC_ib_port_capabilities 13
#define METRIC_ib_port_linkspeed 14
#define METRIC_ib_port_linkwidth 15
/* Per-port performance counters, cluster #1 */
#define METRIC_ib_port_in_bytes 0
#define METRIC_ib_port_in_packets 1
#define METRIC_ib_port_out_bytes 2
#define METRIC_ib_port_out_packets 3
#define METRIC_ib_port_in_errors_drop 4
#define METRIC_ib_port_out_errors_drop 5
#define METRIC_ib_port_total_bytes 6
#define METRIC_ib_port_total_packets 7
#define METRIC_ib_port_total_errors_drop 8
#define METRIC_ib_port_in_errors_filter 9
#define METRIC_ib_port_in_errors_local 10
#define METRIC_ib_port_in_errors_remote 11
#define METRIC_ib_port_out_errors_filter 12
#define METRIC_ib_port_total_errors_filter 13
#define METRIC_ib_port_total_errors_link 14
#define METRIC_ib_port_total_errors_recover 15
#define METRIC_ib_port_total_errors_integrity 16
#define METRIC_ib_port_total_errors_vl15 17
#define METRIC_ib_port_total_errors_overrun 18
#define METRIC_ib_port_total_errors_symbol 19
/* Control metrics */
#define METRIC_ib_control_query_timeout 0
#define METRIC_ib_control_hiwat 1
/* Per-port switch performance counters, cluster #3 */
#define METRIC_ib_port_switch_in_bytes 0
#define METRIC_ib_port_switch_in_packets 1
#define METRIC_ib_port_switch_out_bytes 2
#define METRIC_ib_port_switch_out_packets 3
#define METRIC_ib_port_switch_total_bytes 4
#define METRIC_ib_port_switch_total_packets 5
enum ibpmd_cndid {
IBPMDA_ERR_SYM = 0,
IBPMDA_LINK_RECOVERS,
IBPMDA_LINK_DOWNED,
IBPMDA_ERR_RCV,
IBPMDA_ERR_PHYSRCV,
IBPMDA_ERR_SWITCH_REL,
IBPMDA_XMT_DISCARDS,
IBPMDA_ERR_XMTCONSTR,
IBPMDA_ERR_RCVCONSTR,
IBPMDA_ERR_LOCALINTEG,
IBPMDA_ERR_EXCESS_OVR,
IBPMDA_VL15_DROPPED,
IBPMDA_XMT_BYTES,
IBPMDA_RCV_BYTES,
IBPMDA_XMT_PKTS,
IBPMDA_RCV_PKTS
};
#endif /* _IBPMDA_H */
|