eapol_sm.c File Reference

hostapd / IEEE 802.1X-2004 Authenticator - EAPOL state machine More...

#include "includes.h"
#include "common.h"
#include "ieee802_1x.h"
#include "eapol_sm.h"
#include "eloop.h"
#include "wpa.h"
#include "preauth.h"
#include "sta_info.h"
#include "eap_server/eap.h"
#include "state_machine.h"
#include "eap_common/eap_common.h"
Include dependency graph for eapol_sm.c:

Go to the source code of this file.

Defines

#define STATE_MACHINE_DATA   struct eapol_state_machine
#define STATE_MACHINE_DEBUG_PREFIX   "IEEE 802.1X"
#define STATE_MACHINE_ADDR   sm->addr
#define setPortAuthorized()   sm->eapol->cb.set_port_authorized(sm->hapd, sm->sta, 1)
#define setPortUnauthorized()   sm->eapol->cb.set_port_authorized(sm->hapd, sm->sta, 0)
#define txCannedFail()   eapol_auth_tx_canned_eap(sm, 0)
#define txCannedSuccess()   eapol_auth_tx_canned_eap(sm, 1)
#define txReq()   eapol_auth_tx_req(sm)
#define abortAuth()   sm->eapol->cb.abort_auth(sm->hapd, sm->sta)
#define txKey()   sm->eapol->cb.tx_key(sm->hapd, sm->sta)
#define processKey()   do { } while (0)

Functions

 SM_STATE (AUTH_PAE, INITIALIZE)
 SM_STATE (AUTH_PAE, DISCONNECTED)
 SM_STATE (AUTH_PAE, RESTART)
 SM_STATE (AUTH_PAE, CONNECTING)
 SM_STATE (AUTH_PAE, HELD)
 SM_STATE (AUTH_PAE, AUTHENTICATED)
 SM_STATE (AUTH_PAE, AUTHENTICATING)
 SM_STATE (AUTH_PAE, ABORTING)
 SM_STATE (AUTH_PAE, FORCE_AUTH)
 SM_STATE (AUTH_PAE, FORCE_UNAUTH)
 SM_STEP (AUTH_PAE)
 SM_STATE (BE_AUTH, INITIALIZE)
 SM_STATE (BE_AUTH, REQUEST)
 SM_STATE (BE_AUTH, RESPONSE)
 SM_STATE (BE_AUTH, SUCCESS)
 SM_STATE (BE_AUTH, FAIL)
 SM_STATE (BE_AUTH, TIMEOUT)
 SM_STATE (BE_AUTH, IDLE)
 SM_STATE (BE_AUTH, IGNORE)
 SM_STEP (BE_AUTH)
 SM_STATE (REAUTH_TIMER, INITIALIZE)
 SM_STATE (REAUTH_TIMER, REAUTHENTICATE)
 SM_STEP (REAUTH_TIMER)
 SM_STATE (AUTH_KEY_TX, NO_KEY_TRANSMIT)
 SM_STATE (AUTH_KEY_TX, KEY_TRANSMIT)
 SM_STEP (AUTH_KEY_TX)
 SM_STATE (KEY_RX, NO_KEY_RECEIVE)
 SM_STATE (KEY_RX, KEY_RECEIVE)
 SM_STEP (KEY_RX)
 SM_STATE (CTRL_DIR, FORCE_BOTH)
 SM_STATE (CTRL_DIR, IN_OR_BOTH)
 SM_STEP (CTRL_DIR)
struct eapol_state_machineeapol_auth_alloc (struct eapol_authenticator *eapol, const u8 *addr, int preauth, struct sta_info *sta)
void eapol_auth_free (struct eapol_state_machine *sm)
void eapol_auth_step (struct eapol_state_machine *sm)
 Advance EAPOL state machines.
void eapol_auth_initialize (struct eapol_state_machine *sm)
int eapol_auth_eap_pending_cb (struct eapol_state_machine *sm, void *ctx)
struct eapol_authenticatoreapol_auth_init (struct eapol_auth_config *conf, struct eapol_auth_cb *cb)
void eapol_auth_deinit (struct eapol_authenticator *eapol)

Detailed Description

hostapd / IEEE 802.1X-2004 Authenticator - EAPOL state machine

Copyright
Copyright (c) 2002-2008, Jouni Malinen <j@w1.fi>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

Alternatively, this software may be distributed under the terms of BSD license.

See README and COPYING for more details.

Definition in file eapol_sm.c.


Function Documentation

void eapol_auth_step ( struct eapol_state_machine sm  ) 

Advance EAPOL state machines.

Parameters:
sm EAPOL state machine

This function is called to advance EAPOL state machines after any change that could affect their state.

Definition at line 960 of file eapol_sm.c.

Here is the call graph for this function:

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on Sat Nov 21 23:17:11 2009 for hostapd by  doxygen 1.6.1