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"

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.


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.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on Sat Nov 28 23:07:49 2009 for wpa_supplicant/hostapd by  doxygen 1.6.1