/////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 1998, Microsoft Corp. All rights reserved. // // FILE // // schema.cpp // // SYNOPSIS // // Defines the schema for the PerfMon DLL. // // MODIFICATION HISTORY // // 09/09/1998 Original version. // 11/30/1998 "No Record" and "Accounting Reponse" were reversed. // 09/14/1999 Same as previous for per-client counters. // 02/18/2000 Added support for proxy counters. // /////////////////////////////////////////////////////////////////////////////// #include #include #include ////////// // Callbacks used for populating the performance data. ////////// VOID WINAPI AuthServerDataSource(PerfObjectType& sink); VOID WINAPI AuthClientDataSource(PerfObjectType& sink); VOID WINAPI AcctServerDataSource(PerfObjectType& sink); VOID WINAPI AcctClientDataSource(PerfObjectType& sink); VOID WINAPI AuthProxyDataSource(PerfObjectType& sink); VOID WINAPI AcctProxyDataSource(PerfObjectType& sink); VOID WINAPI AuthRemoteServerDataSource(PerfObjectType& sink); VOID WINAPI AcctRemoteServerDataSource(PerfObjectType& sink); ////////// // Computes the number of elements in an array. ////////// #define ARRAY_ELEMENTS(a) (sizeof(a)/sizeof((a)[0])) PerfCounterDef AUTH_SERVER_COUNTERS[] = { { RADIUS_SRV_UP_TIME, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_SRV_RESET_TIME, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_SRV_INVALID_CLIENT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_SRV_INVALID_CLIENT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_DUP_ACCESS_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_ACCEPT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_REJECT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_CHALLENGE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_SENT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_DUP_ACCESS_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_ACCEPT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_REJECT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_CHALLENGE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_SENT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE } }; PerfCounterDef AUTH_CLIENT_COUNTERS[] = { { RADIUS_MALFORMED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_DUP_ACCESS_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_ACCEPT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_REJECT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_CHALLENGE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_SENT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_DUP_ACCESS_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_ACCEPT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_REJECT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_AUTH_ACCESS_CHALLENGE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_SENT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE } }; PerfCounterDef ACCT_SERVER_COUNTERS[] = { { RADIUS_SRV_UP_TIME, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_SRV_RESET_TIME, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_SRV_INVALID_CLIENT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_SRV_INVALID_CLIENT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_DUP_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_NO_RECORD, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_RESPONSE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_SENT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_DUP_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_NO_RECORD_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_RESPONSE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_SENT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE } }; PerfCounterDef ACCT_CLIENT_COUNTERS[] = { { RADIUS_MALFORMED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_DUP_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_NO_RECORD, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_RESPONSE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_SENT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_DUP_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_NO_RECORD_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_ACCT_RESPONSE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_SENT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE } }; PerfCounterDef AUTH_PROXY_COUNTERS[] = { { PROXY_INVALID_ADDRESS, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_INVALID_ADDRESS_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_RETRANSMISSION, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_ACCEPT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_REJECT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_CHALLENGE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_TIMEOUT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_PENDING, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_RETRANSMISSION_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_ACCEPT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_REJECT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_CHALLENGE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_TIMEOUT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE } }; PerfCounterDef ACCT_PROXY_COUNTERS[] = { { PROXY_INVALID_ADDRESS, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_INVALID_ADDRESS_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_ACCT_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_RETRANSMISSION, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_ACCT_RESPONSE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_TIMEOUT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_PENDING, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_ACCT_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_RETRANSMISSION_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_ACCT_RESPONSE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_TIMEOUT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE } }; PerfCounterDef REMOTE_AUTH_SRV_COUNTERS[] = { { PROXY_REMSRV_PORT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_REMSRV_ROUND_TRIP, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_RETRANSMISSION, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_ACCEPT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_REJECT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_CHALLENGE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_TIMEOUT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_PENDING, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_RETRANSMISSION_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_ACCEPT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_REJECT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_AUTH_ACCESS_CHALLENGE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_TIMEOUT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE } }; PerfCounterDef REMOTE_ACCT_SRV_COUNTERS[] = { { PROXY_REMSRV_PORT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_REMSRV_ROUND_TRIP, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_ACCT_REQUEST, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_RETRANSMISSION, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_ACCT_RESPONSE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_TIMEOUT, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_PENDING, PERF_COUNTER_RAWCOUNT, 0, PERF_DETAIL_NOVICE }, { PROXY_ACCT_REQUEST_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_RETRANSMISSION_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_ACCT_RESPONSE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_UNKNOWN_TYPE_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_MALFORMED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_BAD_AUTHENTICATOR_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_DROPPED_PACKET_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { PROXY_TIMEOUT_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE }, { RADIUS_PACKETS_RECEIVED_RATE, PERF_COUNTER_COUNTER, 0, PERF_DETAIL_NOVICE } }; PerfObjectTypeDef PERF_OBJECTS[] = { { RADIUS_AUTH_SERVER_OBJECT, ARRAY_ELEMENTS(AUTH_SERVER_COUNTERS), AUTH_SERVER_COUNTERS, AuthServerDataSource, FALSE, -1 }, { RADIUS_AUTH_CLIENT_OBJECT, ARRAY_ELEMENTS(AUTH_CLIENT_COUNTERS), AUTH_CLIENT_COUNTERS, AuthClientDataSource, TRUE, -1 }, { RADIUS_ACCT_SERVER_OBJECT, ARRAY_ELEMENTS(ACCT_SERVER_COUNTERS), ACCT_SERVER_COUNTERS, AcctServerDataSource, FALSE, -1 }, { RADIUS_ACCT_CLIENT_OBJECT, ARRAY_ELEMENTS(ACCT_CLIENT_COUNTERS), ACCT_CLIENT_COUNTERS, AcctClientDataSource, TRUE, -1 }, { PROXY_AUTH_PROXY_OBJECT, ARRAY_ELEMENTS(AUTH_PROXY_COUNTERS), AUTH_PROXY_COUNTERS, AuthProxyDataSource, FALSE, -1 }, { PROXY_AUTH_REMSRV_OBJECT, ARRAY_ELEMENTS(REMOTE_AUTH_SRV_COUNTERS), REMOTE_AUTH_SRV_COUNTERS, AuthRemoteServerDataSource, TRUE, -1 }, { PROXY_ACCT_PROXY_OBJECT, ARRAY_ELEMENTS(ACCT_PROXY_COUNTERS), ACCT_PROXY_COUNTERS, AcctProxyDataSource, FALSE, -1 }, { PROXY_ACCT_REMSRV_OBJECT, ARRAY_ELEMENTS(REMOTE_ACCT_SRV_COUNTERS), REMOTE_ACCT_SRV_COUNTERS, AcctRemoteServerDataSource, TRUE, -1 } }; PerfCollectorDef PERF_SCHEMA = { L"IAS", ARRAY_ELEMENTS(PERF_OBJECTS), PERF_OBJECTS };