31 #ifndef __EAP1X_PEER_HEADER__ 32 #define __EAP1X_PEER_HEADER__ 37 #if defined(__ENABLE_MOCANA_EAP_PEER__) 39 #define EAP1X_DEFAULT_START_TIME (30) 40 #define EAP1X_DEFAULT_HELD_TIME (60) 41 #define EAP1X_DEFAULT_MAX_START (3) 44 typedef struct eap1xPeerSessionCfg_s
46 eap1xPortMode portControl;
52 MSTATUS (*funcPtrEAPIndication)(ubyte *appHdl,ubyte *eapSession,eap1XIndication indType);
53 MSTATUS (*funcPtrEAPOLCallback)(ubyte *appHdl,ubyte *pEapPkt,ubyte2 pktLen,ubyte4 pktType);
55 } eap1xPeerSessionCfg;
59 typedef struct eap1xPeerStats_s
61 ubyte4 suppEntersAuthenticating;
62 ubyte4 suppEntersConnecting;
63 ubyte4 suppSuccessesWhileAuthenticating;
64 ubyte4 suppTimeoutsWhileAuthenticating;
65 ubyte4 suppFailWhileAuthenticating;
66 ubyte4 suppEapRecvWhileAuthenticated;
67 ubyte4 suppEapolFramesRx;
68 ubyte4 suppEapolFramesTx;
69 ubyte4 suppEapolStartFramesTx;
70 ubyte4 suppEapolLogoffFramesTx;
71 ubyte4 suppEapolInvalidFramesRx;
72 ubyte4 suppEapolInvalidLengthFramesRx;
73 ubyte4 suppEapolLastFrameVersion;
78 typedef enum eap1XPeerState_e
80 EAP1X_PEER_STATE_NONE,
81 EAP1X_PEER_STATE_LOGOFF,
82 EAP1X_PEER_STATE_DISCONNECTED,
83 EAP1X_PEER_STATE_RESTART,
84 EAP1X_PEER_STATE_CONNECTING,
85 EAP1X_PEER_STATE_AUTHENTICATING,
86 EAP1X_PEER_STATE_AUTHENTICATED,
87 EAP1X_PEER_STATE_HELD,
88 EAP1X_PEER_STATE_FORCE_AUTH,
89 EAP1X_PEER_STATE_FORCE_UNAUTH,
418 MOC_EXTERN MSTATUS
EAP1X_sendEAPOLStart (ubyte* session,ubyte** ppPkt, ubyte4 *pPktLen,ubyte4 headRoom);
457 MOC_EXTERN MSTATUS
EAP1X_sendEAPOLLogoff (ubyte* session,ubyte** ppPkt, ubyte4 *pPktLen,ubyte4 headRoom);
543 ubyte **ppPkt,ubyte2 *pPktLen);
MOC_EXTERN MSTATUS EAP1X_sendEAPOLStart(ubyte *session, ubyte **ppPkt, ubyte4 *pPktLen, ubyte4 headRoom)
Build an EAPOL-Start message.
MOC_EXTERN MSTATUS EAP1X_peerInit()
Start the EAP1X state machine and initialize the EAP1X stack and timers.
MOC_EXTERN MSTATUS EAP1X_sendEAPOLLogoff(ubyte *session, ubyte **ppPkt, ubyte4 *pPktLen, ubyte4 headRoom)
Build an EAPOL-Logoff message.
MOC_EXTERN MSTATUS EAP1X_peerGetSesssionState(ubyte *session, eap1XPeerState_t *state)
Get an EAP1X session's current state.
MOC_EXTERN MSTATUS EAP1X_peerGetSesssionStats(ubyte *session, eap1xPeerStats *stats)
Get an EAP1X session's current statistics.
MOC_EXTERN MSTATUS EAP1X_peerUpdateSetState(ubyte *session, ubyte4 stateInfo)
Set an EAP1X session's state parameters (which in turn control the EAP state machine).
MOC_EXTERN MSTATUS EAP1X_peerdeinit()
Destroy EAP1X timers.
MOC_EXTERN MSTATUS EAP1X_peerCheckTimers()
Call expired timers' callbacks.
MOC_EXTERN MSTATUS EAP1X_peerSessionDelete(ubyte *appHdl, ubyte *session)
Delete an EAP1X peer session.
MOC_EXTERN MSTATUS EAP1X_peerReceivePkt(ubyte *session, ubyte *pPkt, ubyte4 pktLen)
Send the received EAP1X packets to the EAP1X layer.
MOC_EXTERN MSTATUS EAP1X_peerUpdateUnsetState(ubyte *session, ubyte4 stateInfo)
Clear (unset) an EAP1X session's state parameters (which in turn control the EAP state machine)...
MOC_EXTERN MSTATUS EAP1X_peerSessionCreate(ubyte *appHdl, ubyte **session, eap1xPeerSessionCfg *cfg)
Create an EAP1X peer session.
MOC_EXTERN MSTATUS EAP1X_peerSendEAP(ubyte *session, eapHdr_t *eap_hdr, ubyte *eap_data, ubyte4 eap_data_len, ubyte4 headRoom, ubyte **ppPkt, ubyte2 *pPktLen)
Encapsulate an EAP packet with an EAP1X header.
MOC_EXTERN MSTATUS EAP1X_peerUpdatePortControl(ubyte *session, eap1xPortMode portMode)
Set (update) an EAP1X session's port control mode.