/* * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * * File: 80211mgr.h * * Purpose: 802.11 management frames pre-defines. * * * Author: Lyndon Chen * * Date: May 8, 2002 * */ #ifndef __80211MGR_H__ #define __80211MGR_H__ #include "ttype.h" #include "80211hdr.h" /*--------------------- Export Definitions -------------------------*/ #define WLAN_MIN_ARRAY 1 /* Information Element ID value */ #define WLAN_EID_SSID 0 #define WLAN_EID_SUPP_RATES 1 #define WLAN_EID_FH_PARMS 2 #define WLAN_EID_DS_PARMS 3 #define WLAN_EID_CF_PARMS 4 #define WLAN_EID_TIM 5 #define WLAN_EID_IBSS_PARMS 6 #define WLAN_EID_COUNTRY 7 #define WLAN_EID_CHALLENGE 16 #define WLAN_EID_PWR_CONSTRAINT 32 #define WLAN_EID_PWR_CAPABILITY 33 #define WLAN_EID_TPC_REQ 34 #define WLAN_EID_TPC_REP 35 #define WLAN_EID_SUPP_CH 36 #define WLAN_EID_CH_SWITCH 37 #define WLAN_EID_MEASURE_REQ 38 #define WLAN_EID_MEASURE_REP 39 #define WLAN_EID_QUIET 40 #define WLAN_EID_IBSS_DFS 41 #define WLAN_EID_ERP 42 /* reference 802.11i 7.3.2 table 20 */ #define WLAN_EID_RSN 48 #define WLAN_EID_EXTSUPP_RATES 50 /* reference WiFi WPA spec. */ #define WLAN_EID_RSN_WPA 221 #define WLAN_EID_ERP_NONERP_PRESENT 0x01 #define WLAN_EID_ERP_USE_PROTECTION 0x02 #define WLAN_EID_ERP_BARKER_MODE 0x04 /* Reason Codes */ #define WLAN_MGMT_REASON_RSVD 0 #define WLAN_MGMT_REASON_UNSPEC 1 #define WLAN_MGMT_REASON_PRIOR_AUTH_INVALID 2 #define WLAN_MGMT_REASON_DEAUTH_LEAVING 3 #define WLAN_MGMT_REASON_DISASSOC_INACTIVE 4 #define WLAN_MGMT_REASON_DISASSOC_AP_BUSY 5 #define WLAN_MGMT_REASON_CLASS2_NONAUTH 6 #define WLAN_MGMT_REASON_CLASS3_NONASSOC 7 #define WLAN_MGMT_REASON_DISASSOC_STA_HASLEFT 8 #define WLAN_MGMT_REASON_CANT_ASSOC_NONAUTH 9 #define WLAN_MGMT_REASON_DISASSOC_PWR_CAP_UNACCEPT 10 #define WLAN_MGMT_REASON_DISASSOC_SUPP_CH_UNACCEPT 11 #define WLAN_MGMT_REASON_INVALID_IE 13 #define WLAN_MGMT_REASON_MIC_FAILURE 14 #define WLAN_MGMT_REASON_4WAY_HANDSHAKE_TIMEOUT 15 #define WLAN_MGMT_REASON_GRPKEY_UPDATE_TIMEOUT 16 #define WLAN_MGMT_REASON_4WAY_INFO_DIFFERENT 17 #define WLAN_MGMT_REASON_MULTCAST_CIPHER_INVALID 18 #define WLAN_MGMT_REASON_UNCAST_CIPHER_INVALID 19 #define WLAN_MGMT_REASON_AKMP_INVALID 20 #define WLAN_MGMT_REASON_RSNE_UNSUPPORTED 21 #define WLAN_MGMT_REASON_RSNE_CAP_INVALID 22 #define WLAN_MGMT_REASON_80211X_AUTH_FAILED 23 /* Status Codes */ #define WLAN_MGMT_STATUS_SUCCESS 0 #define WLAN_MGMT_STATUS_UNSPEC_FAILURE 1 #define WLAN_MGMT_STATUS_CAPS_UNSUPPORTED 10 #define WLAN_MGMT_STATUS_REASSOC_NO_ASSOC 11 #define WLAN_MGMT_STATUS_ASSOC_DENIED_UNSPEC 12 #define WLAN_MGMT_STATUS_UNSUPPORTED_AUTHALG 13 #define WLAN_MGMT_STATUS_RX_AUTH_NOSEQ 14 #define WLAN_MGMT_STATUS_CHALLENGE_FAIL 15 #define WLAN_MGMT_STATUS_AUTH_TIMEOUT 16 #define WLAN_MGMT_STATUS_ASSOC_DENIED_BUSY 17 #define WLAN_MGMT_STATUS_ASSOC_DENIED_RATES 18 #define WLAN_MGMT_STATUS_ASSOC_DENIED_SHORTPREAMBLE 19 #define WLAN_MGMT_STATUS_ASSOC_DENIED_PBCC 20 #define WLAN_MGMT_STATUS_ASSOC_DENIED_AGILITY 21 /* reference 802.11h 7.3.1.9 */ #define WLAN_MGMT_STATUS_ASSOC_REJECT_BCS_SPECTRUM_MNG 22 #define WLAN_MGMT_STATUS_ASSOC_REJECT_BCS_PWR_CAP 23 #define WLAN_MGMT_STATUS_ASSOC_REJECT_BCS_SUPP_CH 24 /* reference 802.11g 7.3.1.9 */ #define WLAN_MGMT_STATUS_SHORTSLOTTIME_UNSUPPORTED 25 #define WLAN_MGMT_STATUS_DSSSOFDM_UNSUPPORTED 26 /* reference 802.11i 3.7.1.9 table 19 */ #define WLAN_MGMT_STATUS_INVALID_IE 40 #define WLAN_MGMT_STATUS_GROUP_CIPHER_INVALID 41 #define WLAN_MGMT_STATUS_PAIRWISE_CIPHER_INVALID 42 #define WLAN_MGMT_STATUS_AKMP_INVALID 43 #define WLAN_MGMT_STATUS_UNSUPPORT_RSN_IE_VER 44 #define WLAN_MGMT_STATUS_INVALID_RSN_IE_CAP 45 #define WLAN_MGMT_STATUS_CIPHER_REJECT 46 /* Auth Algorithm */ #define WLAN_AUTH_ALG_OPENSYSTEM 0 #define WLAN_AUTH_ALG_SHAREDKEY 1 /* Management Frame Field Offsets */ /* Note: Not all fields are listed because of variable lengths. */ /* Note: These offsets are from the start of the frame data */ #define WLAN_BEACON_OFF_TS 0 #define WLAN_BEACON_OFF_BCN_INT 8 #define WLAN_BEACON_OFF_CAPINFO 10 #define WLAN_BEACON_OFF_SSID 12 #define WLAN_DISASSOC_OFF_REASON 0 #define WLAN_ASSOCREQ_OFF_CAP_INFO 0 #define WLAN_ASSOCREQ_OFF_LISTEN_INT 2 #define WLAN_ASSOCREQ_OFF_SSID 4 #define WLAN_ASSOCRESP_OFF_CAP_INFO 0 #define WLAN_ASSOCRESP_OFF_STATUS 2 #define WLAN_ASSOCRESP_OFF_AID 4 #define WLAN_ASSOCRESP_OFF_SUPP_RATES 6 #define WLAN_REASSOCREQ_OFF_CAP_INFO 0 #define WLAN_REASSOCREQ_OFF_LISTEN_INT 2 #define WLAN_REASSOCREQ_OFF_CURR_AP 4 #define WLAN_REASSOCREQ_OFF_SSID 10 #define WLAN_REASSOCRESP_OFF_CAP_INFO 0 #define WLAN_REASSOCRESP_OFF_STATUS 2 #define WLAN_REASSOCRESP_OFF_AID 4 #define WLAN_REASSOCRESP_OFF_SUPP_RATES 6 #define WLAN_PROBEREQ_OFF_SSID 0 #define WLAN_PROBERESP_OFF_TS 0 #define WLAN_PROBERESP_OFF_BCN_INT 8 #define WLAN_PROBERESP_OFF_CAP_INFO 10 #define WLAN_PROBERESP_OFF_SSID 12 #define WLAN_AUTHEN_OFF_AUTH_ALG 0 #define WLAN_AUTHEN_OFF_AUTH_SEQ 2 #define WLAN_AUTHEN_OFF_STATUS 4 #define WLAN_AUTHEN_OFF_CHALLENGE 6 #define WLAN_DEAUTHEN_OFF_REASON 0 /* Cipher Suite Selectors defined in 802.11i */ #define WLAN_11i_CSS_USE_GROUP 0 #define WLAN_11i_CSS_WEP40 1 #define WLAN_11i_CSS_TKIP 2 #define WLAN_11i_CSS_CCMP 4 #define WLAN_11i_CSS_WEP104 5 #define WLAN_11i_CSS_UNKNOWN 255 /* Authentication and Key Management Suite Selectors defined in 802.11i */ #define WLAN_11i_AKMSS_802_1X 1 #define WLAN_11i_AKMSS_PSK 2 #define WLAN_11i_AKMSS_UNKNOWN 255 /* Measurement type definitions reference ieee 802.11h Table 20b */ #define MEASURE_TYPE_BASIC 0 #define MEASURE_TYPE_CCA 1 #define MEASURE_TYPE_RPI 2 /* Measurement request mode definitions reference ieee 802.11h Figure 46h */ #define MEASURE_MODE_ENABLE 0x02 #define MEASURE_MODE_REQ 0x04 #define MEASURE_MODE_REP 0x08 /* Measurement report mode definitions reference ieee 802.11h Figure 46m */ #define MEASURE_MODE_LATE 0x01 #define MEASURE_MODE_INCAPABLE 0x02 #define MEASURE_MODE_REFUSED 0x04 /*--------------------- Export Classes ----------------------------*/ /*--------------------- Export Variables --------------------------*/ /*--------------------- Export Types ------------------------------*/ /* Information Element Types */ #pragma pack(1) typedef struct tagWLAN_IE { unsigned char byElementID; unsigned char len; } __attribute__ ((__packed__)) WLAN_IE, *PWLAN_IE; /* Service Set Identity (SSID) */ #pragma pack(1) typedef struct tagWLAN_IE_SSID { unsigned char byElementID; unsigned char len; unsigned char abySSID[1]; } __attribute__ ((__packed__)) WLAN_IE_SSID, *PWLAN_IE_SSID; /* Supported Rates */ #pragma pack(1) typedef struct tagWLAN_IE_SUPP_RATES { unsigned char byElementID; unsigned char len; unsigned char abyRates[1]; } __attribute__ ((__packed__)) WLAN_IE_SUPP_RATES, *PWLAN_IE_SUPP_RATES; /* FH Parameter Set */ #pragma pack(1) typedef struct _WLAN_IE_FH_PARMS { unsigned char byElementID; unsigned char len; unsigned short wDwellTime; unsigned char byHopSet; unsigned char byHopPattern; unsigned char byHopIndex; } WLAN_IE_FH_PARMS, *PWLAN_IE_FH_PARMS; /* DS Parameter Set */ #pragma pack(1) typedef struct tagWLAN_IE_DS_PARMS { unsigned char byElementID; unsigned char len; unsigned char byCurrChannel; } __attribute__ ((__packed__)) WLAN_IE_DS_PARMS, *PWLAN_IE_DS_PARMS; /* CF Parameter Set */ #pragma pack(1) typedef struct tagWLAN_IE_CF_PARMS { unsigned char byElementID; unsigned char len; unsigned char byCFPCount; unsigned char byCFPPeriod; unsigned short wCFPMaxDuration; unsigned short wCFPDurRemaining; } __attribute__ ((__packed__)) WLAN_IE_CF_PARMS, *PWLAN_IE_CF_PARMS; /* TIM */ #pragma pack(1) typedef struct tagWLAN_IE_TIM { unsigned char byElementID; unsigned char len; unsigned char byDTIMCount; unsigned char byDTIMPeriod; unsigned char byBitMapCtl; unsigned char byVirtBitMap[1]; } __attribute__ ((__packed__)) WLAN_IE_TIM, *PWLAN_IE_TIM; /* IBSS Parameter Set */ #pragma pack(1) typedef struct tagWLAN_IE_IBSS_PARMS { unsigned char byElementID; unsigned char len; unsigned short wATIMWindow; } __attribute__ ((__packed__)) WLAN_IE_IBSS_PARMS, *PWLAN_IE_IBSS_PARMS; /* Challenge Text */ #pragma pack(1) typedef struct tagWLAN_IE_CHALLENGE { unsigned char byElementID; unsigned char len; unsigned char abyChallenge[1]; } __attribute__ ((__packed__)) WLAN_IE_CHALLENGE, *PWLAN_IE_CHALLENGE; #pragma pack(1) typedef struct tagWLAN_IE_RSN_EXT { unsigned char byElementID; unsigned char len; unsigned char abyOUI[4]; unsigned short wVersion; unsigned char abyMulticast[4]; unsigned short wPKCount; struct { unsigned char abyOUI[4]; } PKSList[1]; /* the rest is variable so need to */ /* overlay ieauth structure */ } WLAN_IE_RSN_EXT, *PWLAN_IE_RSN_EXT; #pragma pack(1) typedef struct tagWLAN_IE_RSN_AUTH { unsigned short wAuthCount; struct { unsigned char abyOUI[4]; } AuthKSList[1]; } WLAN_IE_RSN_AUTH, *PWLAN_IE_RSN_AUTH; /* RSN Identity */ #pragma pack(1) typedef struct tagWLAN_IE_RSN { unsigned char byElementID; unsigned char len; unsigned short wVersion; unsigned char abyRSN[WLAN_MIN_ARRAY]; } WLAN_IE_RSN, *PWLAN_IE_RSN; /* ERP */ #pragma pack(1) typedef struct tagWLAN_IE_ERP { unsigned char byElementID; unsigned char len; unsigned char byContext; } __attribute__ ((__packed__)) WLAN_IE_ERP, *PWLAN_IE_ERP; #pragma pack(1) typedef struct _MEASEURE_REQ { unsigned char byChannel; unsigned char abyStartTime[8]; unsigned char abyDuration[2]; } MEASEURE_REQ, *PMEASEURE_REQ, MEASEURE_REQ_BASIC, *PMEASEURE_REQ_BASIC, MEASEURE_REQ_CCA, *PMEASEURE_REQ_CCA, MEASEURE_REQ_RPI, *PMEASEURE_REQ_RPI; typedef struct _MEASEURE_REP_BASIC { unsigned char byChannel; unsigned char abyStartTime[8]; unsigned char abyDuration[2]; unsigned char byMap; } MEASEURE_REP_BASIC, *PMEASEURE_REP_BASIC; typedef struct _MEASEURE_REP_CCA { unsigned char byChannel; unsigned char abyStartTime[8]; unsigned char abyDuration[2]; unsigned char byCCABusyFraction; } MEASEURE_REP_CCA, *PMEASEURE_REP_CCA; typedef struct _MEASEURE_REP_RPI { unsigned char byChannel; unsigned char abyStartTime[8]; unsigned char abyDuration[2]; unsigned char abyRPIdensity[8]; } MEASEURE_REP_RPI, *PMEASEURE_REP_RPI; typedef union _MEASEURE_REP { MEASEURE_REP_BASIC sBasic; MEASEURE_REP_CCA sCCA; MEASEURE_REP_RPI sRPI; } MEASEURE_REP, *PMEASEURE_REP; typedef struct _WLAN_IE_MEASURE_REQ { unsigned char byElementID; unsigned char len; unsigned char byToken; unsigned char byMode; unsigned char byType; MEASEURE_REQ sReq; } WLAN_IE_MEASURE_REQ, *PWLAN_IE_MEASURE_REQ; typedef struct _WLAN_IE_MEASURE_REP { unsigned char byElementID; unsigned char len; unsigned char byToken; unsigned char byMode; unsigned char byType; MEASEURE_REP sRep; } WLAN_IE_MEASURE_REP, *PWLAN_IE_MEASURE_REP; typedef struct _WLAN_IE_CH_SW { unsigned char byElementID; unsigned char len; unsigned char byMode; unsigned char byChannel; unsigned char byCount; } WLAN_IE_CH_SW, *PWLAN_IE_CH_SW; typedef struct _WLAN_IE_QUIET { unsigned char byElementID; unsigned char len; unsigned char byQuietCount; unsigned char byQuietPeriod; unsigned char abyQuietDuration[2]; unsigned char abyQuietOffset[2]; } WLAN_IE_QUIET, *PWLAN_IE_QUIET; typedef struct _WLAN_IE_COUNTRY { unsigned char byElementID; unsigned char len; unsigned char abyCountryString[3]; unsigned char abyCountryInfo[3]; } WLAN_IE_COUNTRY, *PWLAN_IE_COUNTRY; typedef struct _WLAN_IE_PW_CONST { unsigned char byElementID; unsigned char len; unsigned char byPower; } WLAN_IE_PW_CONST, *PWLAN_IE_PW_CONST; typedef struct _WLAN_IE_PW_CAP { unsigned char byElementID; unsigned char len; unsigned char byMinPower; unsigned char byMaxPower; } WLAN_IE_PW_CAP, *PWLAN_IE_PW_CAP; typedef struct _WLAN_IE_SUPP_CH { unsigned char byElementID; unsigned char len; unsigned char abyChannelTuple[2]; } WLAN_IE_SUPP_CH, *PWLAN_IE_SUPP_CH; typedef struct _WLAN_IE_TPC_REQ { unsigned char byElementID; unsigned char len; } WLAN_IE_TPC_REQ, *PWLAN_IE_TPC_REQ; typedef struct _WLAN_IE_TPC_REP { unsigned char byElementID; unsigned char len; unsigned char byTxPower; unsigned char byLinkMargin; } WLAN_IE_TPC_REP, *PWLAN_IE_TPC_REP; typedef struct _WLAN_IE_IBSS_DFS { unsigned char byElementID; unsigned char len; unsigned char abyDFSOwner[6]; unsigned char byDFSRecovery; unsigned char abyChannelMap[2]; } WLAN_IE_IBSS_DFS, *PWLAN_IE_IBSS_DFS; #pragma pack() /* Frame Types */ /* prototype structure, all mgmt frame types will start with these members */ typedef struct tagWLAN_FR_MGMT { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; } WLAN_FR_MGMT, *PWLAN_FR_MGMT; /* Beacon frame */ typedef struct tagWLAN_FR_BEACON { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; /* fixed fields */ PQWORD pqwTimestamp; unsigned short *pwBeaconInterval; unsigned short *pwCapInfo; /*-- info elements ----------*/ PWLAN_IE_SSID pSSID; PWLAN_IE_SUPP_RATES pSuppRates; /* PWLAN_IE_FH_PARMS pFHParms; */ PWLAN_IE_DS_PARMS pDSParms; PWLAN_IE_CF_PARMS pCFParms; PWLAN_IE_TIM pTIM; PWLAN_IE_IBSS_PARMS pIBSSParms; PWLAN_IE_RSN pRSN; PWLAN_IE_RSN_EXT pRSNWPA; PWLAN_IE_ERP pERP; PWLAN_IE_SUPP_RATES pExtSuppRates; PWLAN_IE_COUNTRY pIE_Country; PWLAN_IE_PW_CONST pIE_PowerConstraint; PWLAN_IE_CH_SW pIE_CHSW; PWLAN_IE_IBSS_DFS pIE_IBSSDFS; PWLAN_IE_QUIET pIE_Quiet; } WLAN_FR_BEACON, *PWLAN_FR_BEACON; /* IBSS ATIM frame */ typedef struct tagWLAN_FR_IBSSATIM { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; /* fixed fields */ /* info elements */ /* this frame type has a null body */ } WLAN_FR_IBSSATIM, *PWLAN_FR_IBSSATIM; /* Disassociation */ typedef struct tagWLAN_FR_DISASSOC { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; /*-- fixed fields -----------*/ unsigned short *pwReason; /*-- info elements ----------*/ } WLAN_FR_DISASSOC, *PWLAN_FR_DISASSOC; /* Association Request */ typedef struct tagWLAN_FR_ASSOCREQ { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; /*-- fixed fields -----------*/ unsigned short *pwCapInfo; unsigned short *pwListenInterval; /*-- info elements ----------*/ PWLAN_IE_SSID pSSID; PWLAN_IE_SUPP_RATES pSuppRates; PWLAN_IE_RSN pRSN; PWLAN_IE_RSN_EXT pRSNWPA; PWLAN_IE_SUPP_RATES pExtSuppRates; PWLAN_IE_PW_CAP pCurrPowerCap; PWLAN_IE_SUPP_CH pCurrSuppCh; } WLAN_FR_ASSOCREQ, *PWLAN_FR_ASSOCREQ; /* Association Response */ typedef struct tagWLAN_FR_ASSOCRESP { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; /*-- fixed fields -----------*/ unsigned short *pwCapInfo; unsigned short *pwStatus; unsigned short *pwAid; /*-- info elements ----------*/ PWLAN_IE_SUPP_RATES pSuppRates; PWLAN_IE_SUPP_RATES pExtSuppRates; } WLAN_FR_ASSOCRESP, *PWLAN_FR_ASSOCRESP; /* Reassociation Request */ typedef struct tagWLAN_FR_REASSOCREQ { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; /*-- fixed fields -----------*/ unsigned short *pwCapInfo; unsigned short *pwListenInterval; PIEEE_ADDR pAddrCurrAP; /*-- info elements ----------*/ PWLAN_IE_SSID pSSID; PWLAN_IE_SUPP_RATES pSuppRates; PWLAN_IE_RSN pRSN; PWLAN_IE_RSN_EXT pRSNWPA; PWLAN_IE_SUPP_RATES pExtSuppRates; } WLAN_FR_REASSOCREQ, *PWLAN_FR_REASSOCREQ; /* Reassociation Response */ typedef struct tagWLAN_FR_REASSOCRESP { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; /*-- fixed fields -----------*/ unsigned short *pwCapInfo; unsigned short *pwStatus; unsigned short *pwAid; /*-- info elements ----------*/ PWLAN_IE_SUPP_RATES pSuppRates; PWLAN_IE_SUPP_RATES pExtSuppRates; } WLAN_FR_REASSOCRESP, *PWLAN_FR_REASSOCRESP; /* Probe Request */ typedef struct tagWLAN_FR_PROBEREQ { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; /*-- fixed fields -----------*/ /*-- info elements ----------*/ PWLAN_IE_SSID pSSID; PWLAN_IE_SUPP_RATES pSuppRates; PWLAN_IE_SUPP_RATES pExtSuppRates; } WLAN_FR_PROBEREQ, *PWLAN_FR_PROBEREQ; /* Probe Response */ typedef struct tagWLAN_FR_PROBERESP { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; /*-- fixed fields -----------*/ PQWORD pqwTimestamp; unsigned short *pwBeaconInterval; unsigned short *pwCapInfo; /*-- info elements ----------*/ PWLAN_IE_SSID pSSID; PWLAN_IE_SUPP_RATES pSuppRates; PWLAN_IE_DS_PARMS pDSParms; PWLAN_IE_CF_PARMS pCFParms; PWLAN_IE_IBSS_PARMS pIBSSParms; PWLAN_IE_RSN pRSN; PWLAN_IE_RSN_EXT pRSNWPA; PWLAN_IE_ERP pERP; PWLAN_IE_SUPP_RATES pExtSuppRates; PWLAN_IE_COUNTRY pIE_Country; PWLAN_IE_PW_CONST pIE_PowerConstraint; PWLAN_IE_CH_SW pIE_CHSW; PWLAN_IE_IBSS_DFS pIE_IBSSDFS; PWLAN_IE_QUIET pIE_Quiet; } WLAN_FR_PROBERESP, *PWLAN_FR_PROBERESP; /* Authentication */ typedef struct tagWLAN_FR_AUTHEN { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; /*-- fixed fields -----------*/ unsigned short *pwAuthAlgorithm; unsigned short *pwAuthSequence; unsigned short *pwStatus; /*-- info elements ----------*/ PWLAN_IE_CHALLENGE pChallenge; } WLAN_FR_AUTHEN, *PWLAN_FR_AUTHEN; /* Deauthenication */ typedef struct tagWLAN_FR_DEAUTHEN { unsigned int uType; unsigned int len; unsigned char *pBuf; PUWLAN_80211HDR pHdr; /*-- fixed fields -----------*/ unsigned short *pwReason; /*-- info elements ----------*/ } WLAN_FR_DEAUTHEN, *PWLAN_FR_DEAUTHEN; /*--------------------- Export Functions --------------------------*/ void vMgrEncodeBeacon( PWLAN_FR_BEACON pFrame ); void vMgrDecodeBeacon( PWLAN_FR_BEACON pFrame ); void vMgrEncodeIBSSATIM( PWLAN_FR_IBSSATIM pFrame ); void vMgrDecodeIBSSATIM( PWLAN_FR_IBSSATIM pFrame ); void vMgrEncodeDisassociation( PWLAN_FR_DISASSOC pFrame ); void vMgrDecodeDisassociation( PWLAN_FR_DISASSOC pFrame ); void vMgrEncodeAssocRequest( PWLAN_FR_ASSOCREQ pFrame ); void vMgrDecodeAssocRequest( PWLAN_FR_ASSOCREQ pFrame ); void vMgrEncodeAssocResponse( PWLAN_FR_ASSOCRESP pFrame ); void vMgrDecodeAssocResponse( PWLAN_FR_ASSOCRESP pFrame ); void vMgrEncodeReassocRequest( PWLAN_FR_REASSOCREQ pFrame ); void vMgrDecodeReassocRequest( PWLAN_FR_REASSOCREQ pFrame ); void vMgrEncodeProbeRequest( PWLAN_FR_PROBEREQ pFrame ); void vMgrDecodeProbeRequest( PWLAN_FR_PROBEREQ pFrame ); void vMgrEncodeProbeResponse( PWLAN_FR_PROBERESP pFrame ); void vMgrDecodeProbeResponse( PWLAN_FR_PROBERESP pFrame ); void vMgrEncodeAuthen( PWLAN_FR_AUTHEN pFrame ); void vMgrDecodeAuthen( PWLAN_FR_AUTHEN pFrame ); void vMgrEncodeDeauthen( PWLAN_FR_DEAUTHEN pFrame ); void vMgrDecodeDeauthen( PWLAN_FR_DEAUTHEN pFrame ); void vMgrEncodeReassocResponse( PWLAN_FR_REASSOCRESP pFrame ); void vMgrDecodeReassocResponse( PWLAN_FR_REASSOCRESP pFrame ); #endif/* __80211MGR_H__ */