Files
m241Neelima/vxworks-6.9/target/h/drv/wlan/dot11SmeEssLib.h
T
2026-07-30 11:19:44 +05:30

179 lines
6.5 KiB
C

/* dot11SmeEssLib.h - Contains the main definitions for Ess Mode. */
/* Copyright 2004-2006 Wind River Systems, Inc. */
/*
Modification History
--------------------
02c,31oct08,mry fix for defect WIND00139450
02b,11dec06,tfo Fix various roaming issues.
02a,25aug04,rb Wind River Wireless Ethernet Driver 2.0 FCS
*/
#ifndef __INCdot11SmeEssLibh
#define __INCdot11SmeEssLibh
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include "vxWorks.h"
/**************************************************************************
* DOT11_ESS_SM - State machine for the ESS SME
***************************************************************************/
typedef struct /* DOT11_ESS_SM */
{
STATUS (*resetReqProcess)(DOT11_FW * pDot11);
STATUS (*joinReqProcess)(DOT11_FW * pDot11);
STATUS (*bssDiscoveredProcess)(DOT11_FW * pDot11);
STATUS (*authSuccessProcess)(DOT11_FW * pDot11);
STATUS (*authTimeoutProcess)(DOT11_FW * pDot11);
STATUS (*authFailProcess)(DOT11_FW * pDot11);
STATUS (*assocSuccessProcess)(DOT11_FW * pDot11);
STATUS (*assocFailProcess)(DOT11_FW * pDot11);
STATUS (*assocTimeoutProcess)(DOT11_FW * pDot11);
STATUS (*deauthProcess)(DOT11_FW * pDot11);
STATUS (*disassocProcess)(DOT11_FW * pDot11);
STATUS (*lqNoSignalProcess)(DOT11_FW * pDot11);
STATUS (*lqProbationProcess)(DOT11_FW * pDot11);
STATUS (*lqMakeDoProcess)(DOT11_FW * pDot11);
STATUS (*sharedKeyProcess)(DOT11_FW * pDot11);
SEM_ID smLockSem;
MSG_Q_ID eventQueue;
int currentState;
int stateTaskId;
} DOT11_ESS_SM;
#define DOT11_ESS_STATE_TASK_NAME "tEssState%d"
#define DOT11_ESS_STATE_TASK_PRI 66
#define DOT11_ESS_STATE_TASK_STACK (4 * 1024)
#define DOT11_ESS_STATE_MAX_MSG 64
#define DOT11_ESS_STATE_TASK_SHUTDOWN_TIME ((sysClkRateGet() / 50) + 2)
#define DOT11_ESS_STATE_LOCK_TIME (sysClkRateGet() / 4)
/*****************************************************************************
* DOT11_ESS_EVENTS - Events that drive the ESS state machine
*****************************************************************************/
/* RESET_REQ - can be called from any state. Will bring the device back to the
NO_ESS state */
#define DOT11_ESS_RESET_REQ 1
/* JOIN_REQ - called from any state. Used to join a new BSS. Will move the
SM to the SEARCHING state */
#define DOT11_ESS_JOIN_REQ 2
/* BSS_DISCOVERED - generated from the SCANNING or LINK_PROB states when a new
BSS matching the scanning criteria has been found */
#define DOT11_ESS_BSS_DISCOVERED 3
/* AUTH_SUCCESS - Generated from the AUTHENTICATING state when the
authentication was successful */
#define DOT11_ESS_AUTH_SUCCESS 4
/* TIMEOUT - Generated from the AUTHENTICATING or ASSOCIATING states when the
station failed to complete assoc or auth in the specified time */
#define DOT11_ESS_AUTH_TIMEOUT 5
/* AUTH_FAIL - Generated by the AUTHENTICATING state when the AP denies the
station authentication */
#define DOT11_ESS_AUTH_FAIL 6
/* ASSOC_SUCCESS - Generated by the ASSOCIATING state when the station
completes association successfully */
#define DOT11_ESS_ASSOC_SUCCESS 7
/* ASSOC_FAIL - Generated by the ASSOCIATING state when the station is denied
association */
#define DOT11_ESS_ASSOC_FAIL 8
/* ASSOC_TIMEOUT - Generated by the ASSOCIATING state when the AP does not
respond*/
#define DOT11_ESS_ASSOC_TIMEOUT 9
/* DEAUTH - Generated in response to a user request to de-authenticate the
station. If associated, a deassociation occurs before the actual
deauthentication packet is sent out. */
#define DOT11_ESS_DEAUTH 10
/* DISASSOC - Generated in response to a user request to disassociate the
station. */
#define DOT11_ESS_DISASSOC 11
/* LQ_NO_SIGNAL - Generated in the CONNECTED state when the station has not
received a packet (or beacon) from the AP in a set time period. */
#define DOT11_ESS_LQ_NO_SIGNAL 12
/* LQ_PROBATION - Generated in the CONNECTED state when the average signal
level drops below a set threshold */
#define DOT11_ESS_LQ_PROBATION 13
/* LQ_MAKE_DO - Generated in the LINK_PROB state when a stronger AP in the ESS
cannot be found */
#define DOT11_ESS_LQ_MAKE_DO 14
/* SHUTDOWN - a pseudo-event that shuts down the ESS state machine and frees
all resources used by it */
#define DOT11_ESS_SHUTDOWN 15
/* DOT11_ESS_SKA - generated from ATHENTICATING state when shared key
is being used. It signifies the receipt of stage 2, and triggers the
transmittion of stage 3. */
#define DOT11_ESS_SKA 16
/*****************************************************************************
* DOT11_ESS_STATES - Possible states for the ESS SM
*****************************************************************************/
typedef enum
{
SME_ESS_NOESS = 0, /* Base initialized state. Not operational */
SME_ESS_SCANNING, /* Looking for a specific ESS or any ESS */
SME_ESS_AUTHENTICATING,/* Chose an ESS - sent auth seq 1 */
SME_ESS_AUTH_SHARED, /* In the middle of a SKA exchange, sent #3 */
SME_ESS_ASSOCIATING, /* Authenticated. Send Assoc Req. */
SME_ESS_CONNECTED, /* Authenticated and associated. Fully connected*/
SME_ESS_LINK_PROB, /* Looking for better AP. Still connectect to old*/
SNE_ESS_STATES_MAX
} SME_ESS_STATE;
/*****************************************************************************
* DOT11_ESS_SCAN_MESSAGES - Messages passed to the ESS Scan task
******************************************************************************/
#define DOT11_ESS_SCAN_MAX_MSGS 16
#define DOT11_ESS_SCAN_TASK_PRI (DOT11_ESS_STATE_TASK_PRI + 1)
#define DOT11_ESS_SCAN_TASK_STACK 4096
#define DOT11_ESS_SCAN_TASK_NAME "tDot11Scan%d"
#define DOT11_ESS_SCAN_TASK_EXIT_WAIT (sysClkRateGet() / 2)
#define DOT11_ESS_SCAN_WAIT (sysClkRateGet() / 4)
/* This is the amount of time that is required between probation periods.
If the device tried to enter probation more frequently than this, the
event will be dropped */
#define DOT11_ESS_PROBATION_MIN_DELAY (sysClkRateGet() * 30)
#define DOT11_ESS_PROBATION_RESCAN_WAIT ((sysClkRateGet() / 100) + 1)
typedef enum
{
DOT11_ESS_SCAN_START,
DOT11_ESS_SCAN_STOP,
DOT11_ESS_PROB_START,
DOT11_ESS_PROB_STOP,
DOT11_ESS_EXIT
} DOT11_ESS_SCAN_MESSAGE;
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __INCdot11SmeEssLibh */