/* * 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 #include #include #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 */