TrustCore SDK NanoSec API reference  version 7.0
eap1x_peer.h
Go to the documentation of this file.
1 /*
2  * eap1x_peer.h
3  *
4  * EAPOL 802.1x PEER Developer API
5  *
6  * Copyright 2019-2024 DigiCert, Inc. All Rights Reserved.
7  * Proprietary and Confidential Material.
8  *
9  */
10 
29 /*------------------------------------------------------------------*/
30 
31 #ifndef __EAP1X_PEER_HEADER__
32 #define __EAP1X_PEER_HEADER__
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 #if defined(__ENABLE_MOCANA_EAP_PEER__)
38 
39 #define EAP1X_DEFAULT_START_TIME (30)
40 #define EAP1X_DEFAULT_HELD_TIME (60)
41 #define EAP1X_DEFAULT_MAX_START (3)
42 
44 typedef struct eap1xPeerSessionCfg_s
45 {
46  eap1xPortMode portControl;
47  ubyte4 startTimeout;
48  ubyte4 heldTimeout;
49  ubyte4 maxStart;
50  ubyte4 portNumber;
51  ubyte2 etherProto;
52  MSTATUS (*funcPtrEAPIndication)(ubyte *appHdl,ubyte *eapSession,eap1XIndication indType);
53  MSTATUS (*funcPtrEAPOLCallback)(ubyte *appHdl,ubyte *pEapPkt,ubyte2 pktLen,ubyte4 pktType);
54 
55 } eap1xPeerSessionCfg;
56 
57 
59 typedef struct eap1xPeerStats_s
60 {
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;
74 
75 } eap1xPeerStats;
76 
78 typedef enum eap1XPeerState_e
79 {
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,
90 } eap1XPeerState_t;
91 
120 MOC_EXTERN MSTATUS EAP1X_peerGetSesssionStats (ubyte* session,eap1xPeerStats* stats);
121 
150 MOC_EXTERN MSTATUS EAP1X_peerGetSesssionState (ubyte* session,eap1XPeerState_t* state);
151 
199 MOC_EXTERN MSTATUS EAP1X_peerUpdateSetState (ubyte* session,ubyte4 stateInfo);
200 
248 MOC_EXTERN MSTATUS EAP1X_peerUpdateUnsetState (ubyte* session,ubyte4 stateInfo);
249 
281 MOC_EXTERN MSTATUS EAP1X_peerSessionCreate (ubyte* appHdl, ubyte** session, eap1xPeerSessionCfg *cfg);
282 
314 MOC_EXTERN MSTATUS EAP1X_peerSessionDelete (ubyte* appHdl, ubyte* session );
315 
343 MOC_EXTERN MSTATUS EAP1X_peerInit();
344 
379 MOC_EXTERN MSTATUS EAP1X_peerUpdatePortControl (ubyte* session,eap1xPortMode portMode);
380 
418 MOC_EXTERN MSTATUS EAP1X_sendEAPOLStart (ubyte* session,ubyte** ppPkt, ubyte4 *pPktLen,ubyte4 headRoom);
419 
457 MOC_EXTERN MSTATUS EAP1X_sendEAPOLLogoff (ubyte* session,ubyte** ppPkt, ubyte4 *pPktLen,ubyte4 headRoom);
458 
493 MOC_EXTERN MSTATUS EAP1X_peerReceivePkt (ubyte* session,ubyte* pPkt,ubyte4 pktLen);
494 
539 MOC_EXTERN MSTATUS
540 EAP1X_peerSendEAP(ubyte *session, eapHdr_t *eap_hdr, ubyte *eap_data,
541  ubyte4 eap_data_len,
542  ubyte4 headRoom,
543  ubyte **ppPkt,ubyte2 *pPktLen);
544 
570 MOC_EXTERN MSTATUS EAP1X_peerCheckTimers();
571 
598 MOC_EXTERN MSTATUS EAP1X_peerdeinit();
599 
600 #endif /* defined(__ENABLE_MOCANA_EAP_PEER__) */
601 
602 #ifdef __cplusplus
603 }
604 #endif
605 #endif
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.