diff options
Diffstat (limited to 'src/pmdas/infiniband/ibpmda.h')
-rw-r--r-- | src/pmdas/infiniband/ibpmda.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/src/pmdas/infiniband/ibpmda.h b/src/pmdas/infiniband/ibpmda.h new file mode 100644 index 0000000..a9bbafa --- /dev/null +++ b/src/pmdas/infiniband/ibpmda.h @@ -0,0 +1,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 */ |