Files
2026-07-30 11:19:44 +05:30

366 lines
14 KiB
C

/* dot1xMibLib.h - 802.1X MIB API to SNMP Agent header file */
/* Copyright 2002-2005 Wind River Systems, Inc. */
#include "copyright_wrs.h"
/*
modification history
--------------------
01d,22sep05,eja Add new structure to allow for IDE based module binding
01c,05jul05,eja Add support for supplicant MIB
01b,06jun02,myz changed name UINT64 to UINT64_S
01a,15Jan02,myz written
*/
#ifndef __INCdot1xMibLibh
#define __INCdot1xMibLibh
#ifdef __cplusplus
extern "C" {
#endif
/**** MIB variable IDs ****/
#define D1XM_VAR_PaeSystemAuth 0x10
/* Group IDs */
#define D1XM_VAR_PORT_ENTRY 0x100
#define D1XM_VAR_AUTH_CFG_ENTRY 0x200
#define D1XM_VAR_AUTH_STATS_ENTRY 0x300
#define D1XM_VAR_AUTH_DIAG_ENTRY 0x400
#define D1XM_VAR_AUTH_SESSION_ENTRY 0x500
#define D1XM_VAR_SUPP_CFG_ENTRY 0x600
#define D1XM_VAR_SUPP_STATS_ENTRY 0x700
/* PAE Port Variables */
#define D1XM_VAR_PaePortNumber 0x110
#define D1XM_VAR_PaePortProtocolVersion 0x120
#define D1XM_VAR_PaePortCapabilities 0x130
#define D1XM_VAR_PaePortInitialize 0x140
#define D1XM_VAR_PaePortReauthenticate 0x150
/* Authenticator Configuration variables */
#define D1XM_VAR_AuthPaeState 0x210
#define D1XM_VAR_AuthBackendAuthState 0x220
#define D1XM_VAR_AuthAdminControlledDirections 0x230
#define D1XM_VAR_AuthOperControlledDirections 0x240
#define D1XM_VAR_AuthAuthControlledPortStatus 0x250
#define D1XM_VAR_AuthControlledPortControl 0x260
#define D1XM_VAR_AuthQuietPeriod 0x270
#define D1XM_VAR_AuthTxPeriod 0x280
#define D1XM_VAR_AuthSuppTimeout 0x290
#define D1XM_VAR_AuthServerTimeout 0x2A0
#define D1XM_VAR_AuthMaxReq 0x2B0
#define D1XM_VAR_AuthReauthPeriod 0x2C0
#define D1XM_VAR_AuthReauthEnabled 0x2D0
#define D1XM_VAR_AuthKeyTxEnabled 0x2E0
/* Authenticator Stats Variables */
#define D1XM_VAR_AuthEapolFramesRx 0x310
#define D1XM_VAR_AuthEapolFramesTx 0x320
#define D1XM_VAR_AuthEapolStartFramesRx 0x330
#define D1XM_VAR_AuthEapolLogoffFramesRx 0x340
#define D1XM_VAR_AuthEapolRespIdFramesRx 0x350
#define D1XM_VAR_AuthEapolRespFramesRx 0x360
#define D1XM_VAR_AuthEapolReqIdFramesTx 0x370
#define D1XM_VAR_AuthEapolReqFramesTx 0x380
#define D1XM_VAR_AuthInvalidEapolFramesRx 0x390
#define D1XM_VAR_AuthEapLengthErrorFramesRx 0x3A0
#define D1XM_VAR_AuthLastEapolFrameVersion 0x3B0
#define D1XM_VAR_AuthLastEapolFrameSource 0x3C0
/* Authenticator Diagnostic Variables */
#define D1XM_VAR_AuthEntersConnecting 0x410
#define D1XM_VAR_AuthEapLogoffsWhileConnecting 0x420
#define D1XM_VAR_AuthEntersAuthenticating 0x430
#define D1XM_VAR_AuthAuthSuccessWhileAuthenticating 0x440
#define D1XM_VAR_AuthAuthTimeoutsWhileAuthenticating 0x450
#define D1XM_VAR_AuthAuthFailWhileAuthenticating 0x460
#define D1XM_VAR_AuthAuthReauthsWhileAuthenticating 0x470
#define D1XM_VAR_AuthAuthEapStartsWhileAuthenticating 0x480
#define D1XM_VAR_AuthAuthEapLogoffWhileAuthenticating 0x490
#define D1XM_VAR_AuthAuthReauthsWhileAuthenticated 0x4A0
#define D1XM_VAR_AuthAuthEapStartsWhileAuthenticated 0x4B0
#define D1XM_VAR_AuthAuthEapLogoffWhileAuthenticated 0x4C0
#define D1XM_VAR_AuthBackendResponses 0x4D0
#define D1XM_VAR_AuthBackendAccessChallenges 0x4E0
#define D1XM_VAR_AuthBackendOtherRequestsToSupplicant 0x4E2
#define D1XM_VAR_AuthBackendNonNakResponsesFromSupplicant 0x4E4
#define D1XM_VAR_AuthBackendAuthSuccesses 0x4E6
#define D1XM_VAR_AuthBackendAuthFails 0x4E8
/* Authenticator Session Stats Variables */
#define D1XM_VAR_AuthSessionOctetsRx 0x510
#define D1XM_VAR_AuthSessionOctetsTx 0x520
#define D1XM_VAR_AuthSessionFramesRx 0x530
#define D1XM_VAR_AuthSessionFramesTx 0x540
#define D1XM_VAR_AuthSessionId 0x550
#define D1XM_VAR_AuthSessionAuthenticMethod 0x560
#define D1XM_VAR_AuthSessionTime 0x570
#define D1XM_VAR_AuthSessionTerminateCause 0x580
#define D1XM_VAR_AuthSessionUserName 0x590
/* Supplicant Configuration Varibles */
#define D1XM_VAR_SuppPaeState 0x610
#define D1XM_VAR_SuppHeldPeriod 0x620
#define D1XM_VAR_SuppAuthPeriod 0x630
#define D1XM_VAR_SuppStartPeriod 0x640
#define D1XM_VAR_SuppMaxStart 0x650
/* Supplicant Statistics Varibles */
#define D1XM_VAR_SuppEapolFramesRx 0x710
#define D1XM_VAR_SuppEapolFramesTx 0x720
#define D1XM_VAR_SuppEapolStartFramesTx 0x730
#define D1XM_VAR_SuppEapolLogoffFramesTx 0x740
#define D1XM_VAR_SuppEapolRespIdFramesTx 0x750
#define D1XM_VAR_SuppEapolRespFramesTx 0x760
#define D1XM_VAR_SuppEapolReqIdFramesRx 0x770
#define D1XM_VAR_SuppEapolReqFramesRx 0x780
#define D1XM_VAR_SuppInvalidEapolFramesRx 0x790
#define D1XM_VAR_SuppEapLengthErrorFramesRx 0x7A0
#define D1XM_VAR_SuppLastEapolFrameVersion 0x7B0
#define D1XM_VAR_SuppLastEapolFrameSource 0x7C0
/* simple type used for imitating 64 bit integers */
typedef struct
{
UINT32 high;
UINT32 low;
} UINT64_S;
/* SystemAuthControl */
typedef UINT32 D1XM_SYSTEM_AUTH_CONTROL;
/* dot1xPaePortTable 9.6.1 System Configuration */
typedef enum {
D1XM_dot1xPaePortAuthCapable=0,
D1XM_dot1xPaePortSuppCapable
} D1XM_PORT_CAP_TYPE;
typedef struct {
UINT32 paePortNumber; /* port number */
UINT32 paePortProtocolVersion; /*Protocol version */
UINT8 paePortCapabilities[1]; /*PAE capabilities */
UINT8 padding[3];
UINT32 paePortInitialize; /* Initialize Port */
UINT32 paePortReauthenticate;
} D1XM_PAE_PORT_ENTRY;
/* dot1xAuthConfigTable 9.4.1 Authenticator Configuration */
typedef struct {
UINT32 paePortNumber; /* port number */
UINT32 authPaeState; /* Authenticator PAE State */
UINT32 authBackendAuthState; /* Backend Authentication State */
UINT32 authAdminControlledDirections; /* AdminControlledDirections */
UINT32 authOperControlledDirections; /* OperControlledDirections */
UINT32 authAuthControlledPortStatus; /* AuthControlledPortStatus */
UINT32 authAuthControlledPortControl; /* AuthControlledPortControl */
UINT32 authQuietPeriod; /* quietPeriod */
UINT32 authTxPeriod; /* txPeriod */
UINT32 authSuppTimeout; /* suppTimeout */
UINT32 authServerTimeout; /* serverTimeout */
UINT32 authMaxReq; /* maxReq */
UINT32 authReAuthPeriod; /* reAuthPeriod */
UINT32 authReAuthEnabled; /* reAuthEnabled */
UINT32 authKeyTxEnabled; /* KeyTransmissionEnabled */
UINT32 PaePortReauthenticate; /* Reauthenticate */
} D1XM_AUTH_CONFIG_ENTRY;
/* dot1xAuthStatsTable 9.4.2 Authenticator Statistics */
typedef struct {
UINT32 paePortNumber; /* port number */
UINT32 authEapolFramesRx; /* EAPOL frames received */
UINT32 authEapolFramesTx; /* EAPOL frames transmitted */
UINT32 authEapolStartFramesRx; /* EAPOL Start frames received */
UINT32 authEapolLogoffFramesRx; /* EAPOL Logoff frames received */
UINT32 authEapolRespIdFramesRx; /* EAP Resp/Id frames received */
UINT32 authEapolRespFramesRx; /* EAP Response frames received */
UINT32 authEapolReqIdFramesTx; /* EAP Req/Id frames transmitted */
UINT32 authEapolReqFramesTx; /* EAP Request frames transmitted */
UINT32 authInvalidEapolFramesRx; /* Invalid EAPOL frames received */
UINT32 authEapLengthErrorFramesRx; /* EAP length error frames received */
UINT32 authLastEapolFrameVersion; /* Last EAPOL frame version */
UINT8 authLastEapolFrameSource[6]; /* Last EAPOL frame source */
} D1XM_AUTH_STATS_ENTRY;
/* dot1xAuthDiagTable 9.4.3 Authenticator Diagnostics */
typedef struct {
UINT32 paePortNumber; /* port number */
UINT32 authEntersConnecting;
UINT32 authEapLogoffsWhileConnecting;
UINT32 authEntersAuthenticating;
UINT32 authAuthSuccessWhileAuthenticating;
UINT32 authAuthTimeoutsWhileAuthenticating;
UINT32 authAuthFailWhileAuthenticating;
UINT32 authAuthReauthsWhileAuthenticating;
UINT32 authAuthEapStartsWhileAuthenticating;
UINT32 authAuthEapLogoffWhileAuthenticating;
UINT32 authAuthReauthsWhileAuthenticated;
UINT32 authAuthEapStartsWhileAuthenticated;
UINT32 authAuthEapLogoffWhileAuthenticated;
UINT32 authBackendResponses;
UINT32 authBackendAccessChallenges;
UINT32 authBackendOtherRequestsToSupplicant;
UINT32 authBackendNonNakResponsesFromSupplicant;
UINT32 authBackendAuthSuccesses;
UINT32 authBackendAuthFails;
} D1XM_AUTH_DIAG_ENTRY;
/* dot1xAuthSessionStatsTable 9.4.4 Authenticator Session Statistics */
typedef struct {
UINT32 paePortNumber; /* port number */
UINT64_S authSessionOctetsRx; /* Session Octets Received */
UINT64_S authSessionOctetsTx; /* Session Octets Transmitted */
UINT32 authSessionFramesRx; /* Session Frames Received */
UINT32 authSessionFramesTx; /* Session Frames Transmitted */
char * authSessionId; /* Session Identifier */
UINT32 authSessionAuthenticMethod; /* Session Authentication Method */
UINT32 authSessionTime; /* Session Time */
UINT32 authSessionTerminateCause; /* Session Terminate Cause */
char * authSessionUserName; /* Session User Name */
} D1XM_AUTH_SESSION_STATS_ENTRY;
/* dot1xSuppConfigTable 9.5.1 Supplicant Configuration */
typedef struct {
UINT32 paePortNumber; /* port number */
UINT32 suppPaeState; /* Supplicant PAE State */
UINT32 suppHeldPeriod; /* heldPeriod */
UINT32 suppAuthPeriod; /* authPeriod */
UINT32 suppStartPeriod; /* startPeriod */
UINT32 suppMaxStart; /* maxStart */
} D1XM_SUPP_CONFIG_ENTRY;
/* dot1xSuppStatsTable 9.5.2 Supplicant Statistics */
typedef struct {
UINT32 paePortNumber; /* port number */
UINT32 suppEapolFramesRx; /* EAPOL frames received */
UINT32 suppEapolFramesTx; /* EAPOL frames transmitted */
UINT32 suppEapolStartFramesTx; /* EAPOL Start frames transmitted */
UINT32 suppEapolLogoffFramesTx; /* EAPOL Logoff frames transmitted */
UINT32 suppEapolRespIdFramesTx; /* EAP Resp/Id frames transmitted */
UINT32 suppEapolRespFramesTx; /* EAP Response frames transmitted */
UINT32 suppEapolReqIdFramesRx; /* EAP Req/Id frames received */
UINT32 suppEapolReqFramesRx; /* EAP Request frames received */
UINT32 suppInvalidEapolFramesRx; /* Invalid EAPOL frames received */
UINT32 suppEapLengthErrorFramesRx; /* EAP length error frames received */
UINT32 suppLastEapolFrameVersion; /* Last EAPOL frame version */
UINT8 suppLastEapolFrameSource[6]; /* Last EAPOL frame source */
} D1XM_SUPP_STATS_ENTRY;
/* dot1xPaeSystem group */
typedef struct {
D1XM_SYSTEM_AUTH_CONTROL authControl;
D1XM_PAE_PORT_ENTRY portTable;
} D1XM_PAE_SYSTEM_GROUP;
/* dot1xPaeAuthenticator group */
typedef struct {
D1XM_AUTH_CONFIG_ENTRY cfgTbl; /* configuration table */
D1XM_AUTH_STATS_ENTRY statsTbl; /* STATS table */
D1XM_AUTH_DIAG_ENTRY diagTbl; /* diagnostics table */
D1XM_AUTH_SESSION_STATS_ENTRY sessionTbl; /* authenticator session stats*/
} D1XM_PAE_AUTHENTICATOR_GROUP;
/* dot1xPaeSupplicant Group */
typedef struct {
D1XM_SUPP_CONFIG_ENTRY cfgTbl; /* supplicant configuration table */
D1XM_SUPP_STATS_ENTRY statsTbl; /* supplicant stats table */
} D1XM_PAE_SUPPLICANT_GROUP;
typedef struct {
D1XM_PAE_PORT_ENTRY portGrp;
D1XM_PAE_AUTHENTICATOR_GROUP authGrp;
D1XM_PAE_SUPPLICANT_GROUP suppGrp;
} D1XM_PORT_ENTRY;
/* MIB handler type */
typedef enum
{
DOT1X_AUTH_BINDING = 0, /* authenticator MIB */
DOT1X_SUPP_BINDING /* supplicant MIB */
} DOT1X_MIB_BIND;
/* MIB module attachment */
typedef struct
{
STATUS (*pInstallHandler)();
STATUS (*pRemoveHandler)();
} DOT1X_MIB_MODULE_BINDING;
/* MIB handler structure */
typedef struct
{
int (*get)(); /* get method */
int (*next)(); /* next method */
int (*set)(); /* set method */
} DOT1X_MIB_FUNC_TABLE;
/* authenticator and supplicant MIB handlers */
typedef struct
{
DOT1X_MIB_FUNC_TABLE *authHandler; /* authenticator table */
DOT1X_MIB_FUNC_TABLE *suppHandler; /* supplicant table */
} DOT1X_MIB_HANDLER;
/* function declarations */
#if defined(__STDC__) || defined(__cplusplus)
STATUS dot1xMibVarGet (UINT32, int, void*, int);
STATUS dot1xMibVarSet (UINT32, int, void*, int);
STATUS dot1xMibNewPortAdded (UINT32,D1XM_AUTH_CONFIG_ENTRY *);
STATUS dot1xMibPortRemoved (UINT32);
STATUS dot1xMibSnmpEntryGet (UINT32, int, void*, int);
STATUS dot1xMibSnmpNextEntryGet (UINT32 *, int, void*, int);
STATUS dot1xMibSnmpVarSet (UINT32, UINT32, UINT32);
STATUS dot1xMibNextPortVarGet (UINT32*, int, void*, int);
STATUS dot1xMibLibInit(void);
STATUS dot1xMibHandlerInstall(void *, int);
STATUS dot1xMibHandlerRemove(void *, int);
STATUS dot1xMibAdd(void);
#else /* __STDC__ */
STATUS dot1xMibVarGet ();
STATUS dot1xMibVarSet ();
STATUS dot1xMibNewPortAdded ();
STATUS dot1xMibPortRemoved ();
STATUS dot1xMibSnmpEntryGet ();
STATUS dot1xMibSnmpNextEntryGet ();
STATUS dot1xMibSnmpVarSet ();
STATUS dot1xMibNextPortVarGet ();
STATUS dot1xMibLibInit();
STATUS dot1xMibHandlerInstall();
STATUS dot1xMibHandlerRemove();
STATUS dot1xMibAdd();
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif
#endif /* __INCdot1xMibLibh */