/////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 1997, Microsoft Corp. All rights reserved. // // FILE // // iasinfo.h // // SYNOPSIS // // This file describes the structs that are placed in shared memory // to expose server information to the outside world. // // MODIFICATION HISTORY // // 09/09/1997 Original version. // 09/08/1998 Conform to latest rev. of ietf draft. // 02/16/2000 Added proxy counters. // /////////////////////////////////////////////////////////////////////////////// #ifndef _IASINFO_H_ #define _IASINFO_H_ ////////// // Counters that are global to the RADIUS server. ////////// typedef enum _RadiusServerCounter { radiusAuthServTotalInvalidRequests, radiusAccServTotalInvalidRequests, NUM_RADIUS_SERVER_COUNTERS } RadiusServerCounter; ////////// // Counters that are maintained per RADIUS client. ////////// typedef enum _RadiusClientCounter { radiusAuthServMalformedAccessRequests, radiusAuthServBadAuthenticators, radiusAuthServPacketsDropped, radiusAuthServUnknownType, radiusAuthServAccessRequests, radiusAuthServDupAccessRequests, radiusAuthServAccessAccepts, radiusAuthServAccessRejects, radiusAuthServAccessChallenges, radiusAccServMalformedRequests, radiusAccServBadAuthenticators, radiusAccServPacketsDropped, radiusAccServUnknownType, radiusAccServRequests, radiusAccServDupRequests, radiusAccServNoRecord, radiusAccServResponses, NUM_RADIUS_CLIENT_COUNTERS } RadiusClientCounter; ////////// // Struct used to represents a single entry in the client table. ////////// typedef struct _RadiusClientEntry { DWORD dwAddress; // Client IP address in network order. DWORD dwCounters[NUM_RADIUS_CLIENT_COUNTERS]; } RadiusClientEntry; ////////// // Struct used to represent the server. ////////// typedef struct _RadiusServerEntry { LARGE_INTEGER liStartTime; LARGE_INTEGER liResetTime; DWORD dwCounters[NUM_RADIUS_SERVER_COUNTERS]; } RadiusServerEntry; ////////// // Struct used to represent all shared statistics. ////////// typedef struct _RadiusStatistics { RadiusServerEntry seServer; DWORD dwNumClients; RadiusClientEntry ceClients[1]; } RadiusStatistics; ////////// // Counters that are global to the RADIUS proxy. ////////// typedef enum _RadiusProxyCounter { radiusAuthClientInvalidAddresses, radiusAccClientInvalidAddresses, NUM_RADIUS_PROXY_COUNTERS } RadiusProxyCounter; ////////// // Counters that are maintained per remote RADIUS server. ////////// typedef enum _RadiusRemoteServerCounter { radiusAuthClientServerPortNumber, radiusAuthClientRoundTripTime, radiusAuthClientAccessRequests, radiusAuthClientAccessRetransmissions, radiusAuthClientAccessAccepts, radiusAuthClientAccessRejects, radiusAuthClientAccessChallenges, radiusAuthClientUnknownTypes, radiusAuthClientMalformedAccessResponses, radiusAuthClientBadAuthenticators, radiusAuthClientPacketsDropped, radiusAuthClientTimeouts, radiusAccClientServerPortNumber, radiusAccClientRoundTripTime, radiusAccClientRequests, radiusAccClientRetransmissions, radiusAccClientResponses, radiusAccClientUnknownTypes, radiusAccClientMalformedResponses, radiusAccClientBadAuthenticators, radiusAccClientPacketsDropped, radiusAccClientTimeouts, NUM_RADIUS_REMOTE_SERVER_COUNTERS } RadiusRemoteServerCounter; ////////// // Struct used to represents a single entry in the remote servers table. ////////// typedef struct _RadiusRemoteServerEntry { DWORD dwAddress; // Server IP address in network order. DWORD dwCounters[NUM_RADIUS_REMOTE_SERVER_COUNTERS]; } RadiusRemoteServerEntry; ////////// // Struct used to represent the proxy. ////////// typedef struct _RadiusProxyEntry { DWORD dwCounters[NUM_RADIUS_PROXY_COUNTERS]; } RadiusProxyEntry; ////////// // Struct used to represent all shared proxy statistics. ////////// typedef struct _RadiusProxyStatistics { RadiusProxyEntry peProxy; DWORD dwNumRemoteServers; RadiusRemoteServerEntry rseRemoteServers[1]; } RadiusProxyStatistics; ////////// // Name of the shared memory mappings. ////////// #define RadiusStatisticsName L"{A5B99A4C-2959-11D1-BAC8-00C04FC2E20D}" #define RadiusProxyStatisticsName L"{A5B99A4E-2959-11D1-BAC8-00C04FC2E20D}" ////////// // Name of the mutex controlling access. ////////// #define RadiusStatisticsMutex L"{A5B99A4D-2959-11D1-BAC8-00C04FC2E20D}" #endif // _IASINFO_H_