Go to the documentation of this file.
32 #define TRACE_LEVEL SUPPLICANT_TRACE_LEVEL
44 #if (SUPPLICANT_SUPPORT == ENABLED)
83 if(context->userLogoff && !context->logoffSent &&
84 !(context->initialize || !context->portEnabled))
90 context->sPortMode != context->portControl) ||
91 context->initialize || !context->portEnabled)
97 context->sPortMode != context->portControl &&
98 !(context->initialize || !context->portEnabled))
104 context->sPortMode != context->portControl &&
105 !(context->initialize || !context->portEnabled))
114 switch(context->suppPaeState)
119 if(!context->userLogoff)
136 if(context->startWhen == 0)
140 if(context->startCount < context->maxStart)
152 if(context->portValid)
164 else if(context->eapolEap)
170 else if(context->eapSuccess || context->eapFail)
190 if(context->suppSuccess && context->portValid)
195 else if(context->suppFail || (context->keyDone && !context->portValid))
200 else if(context->suppTimeout)
215 if(context->eapolEap && context->portValid)
220 else if(!context->portValid)
235 if(context->heldWhile == 0)
240 else if(context->eapolEap)
255 if(!context->eapRestart)
295 oldState = context->suppPaeState;
298 if(newState != oldState)
301 TRACE_DEBUG(
"Supplicant PAE state machine %s -> %s\r\n",
309 context->suppPaeState = newState;
319 context->logoffSent =
TRUE;
329 context->startCount = 0;
330 context->logoffSent =
FALSE;
332 context->suppAbort =
TRUE;
339 context->startWhen = context->startPeriod;
340 context->startCount++;
341 context->eapolEap =
FALSE;
348 context->startCount = 0;
349 context->suppSuccess =
FALSE;
350 context->suppFail =
FALSE;
351 context->suppTimeout =
FALSE;
352 context->keyRun =
FALSE;
353 context->keyDone =
FALSE;
354 context->suppStart =
TRUE;
368 context->heldWhile = context->heldPeriod;
376 context->eapRestart =
TRUE;
403 if(newState != oldState)
406 if(context->paeStateChangeCallback != NULL)
409 context->paeStateChangeCallback(context, newState);
414 if(!context->initialize && context->portEnabled)
417 context->busy =
TRUE;
@ SUPPLICANT_PORT_STATUS_UNAUTH
Supplicant state machine.
void supplicantFsmError(SupplicantContext *context)
Supplicant state machine error handler.
@ SUPPLICANT_PORT_MODE_FORCE_UNAUTH
Supplicant state machine procedures.
const char_t * eapGetParamName(uint_t value, const EapParamName *paramList, size_t paramListLen)
Convert a parameter to string representation.
@ SUPPLICANT_PAE_STATE_HELD
@ SUPPLICANT_PAE_STATE_S_FORCE_AUTH
@ SUPPLICANT_PAE_STATE_CONNECTING
#define SupplicantContext
@ SUPPLICANT_PORT_MODE_FORCE_AUTH
@ SUPPLICANT_PAE_STATE_S_FORCE_UNAUTH
void supplicantTxStart(SupplicantContext *context)
Transmit an EAPOL-Start packet (8.2.11.1.3 a)
const EapParamName supplicantPaeStates[]
@ SUPPLICANT_PAE_STATE_AUTHENTICATED
SupplicantPaeState
Supplicant PAE states.
void supplicantPaeInitFsm(SupplicantContext *context)
Supplicant PAE state machine initialization.
@ SUPPLICANT_PAE_STATE_LOGOFF
Data logging functions for debugging purpose (EAP)
Supplicant PAE state machine.
@ SUPPLICANT_PAE_STATE_AUTHENTICATING
void supplicantPaeChangeState(SupplicantContext *context, SupplicantPaeState newState)
Update supplicant PAE state.
void supplicantPaeFsm(SupplicantContext *context)
Supplicant PAE state machine implementation.
@ SUPPLICANT_PORT_MODE_AUTO
@ SUPPLICANT_PAE_STATE_DISCONNECTED
@ SUPPLICANT_PORT_STATUS_AUTH
Parameter value/name binding.
Helper functions for 802.1X supplicant.
void supplicantTxLogoff(SupplicantContext *context)
Transmit an EAPOL-Logoff packet (8.2.11.1.3 b)
@ SUPPLICANT_PAE_STATE_RESTART