-//
-// Contention-free parameter (without ID and Length)
-//
-typedef struct PACKED {
- BOOLEAN bValid; // 1: variable contains valid value
- UCHAR CfpCount;
- UCHAR CfpPeriod;
- USHORT CfpMaxDuration;
- USHORT CfpDurRemaining;
-} CF_PARM, *PCF_PARM;
-
-typedef struct _CIPHER_SUITE {
- NDIS_802_11_ENCRYPTION_STATUS PairCipher; // Unicast cipher 1, this one has more secured cipher suite
- NDIS_802_11_ENCRYPTION_STATUS PairCipherAux; // Unicast cipher 2 if AP announce two unicast cipher suite
- NDIS_802_11_ENCRYPTION_STATUS GroupCipher; // Group cipher
- USHORT RsnCapability; // RSN capability from beacon
- BOOLEAN bMixMode; // Indicate Pair & Group cipher might be different
-} CIPHER_SUITE, *PCIPHER_SUITE;
-
-// EDCA configuration from AP's BEACON/ProbeRsp
-typedef struct {
- BOOLEAN bValid; // 1: variable contains valid value
- BOOLEAN bAdd; // 1: variable contains valid value
- BOOLEAN bQAck;
- BOOLEAN bQueueRequest;
- BOOLEAN bTxopRequest;
- BOOLEAN bAPSDCapable;
-// BOOLEAN bMoreDataAck;
- UCHAR EdcaUpdateCount;
- UCHAR Aifsn[4]; // 0:AC_BK, 1:AC_BE, 2:AC_VI, 3:AC_VO
- UCHAR Cwmin[4];
- UCHAR Cwmax[4];
- USHORT Txop[4]; // in unit of 32-us
- BOOLEAN bACM[4]; // 1: Admission Control of AC_BK is mandattory
-} EDCA_PARM, *PEDCA_PARM;
-
-// QBSS LOAD information from QAP's BEACON/ProbeRsp
-typedef struct {
- BOOLEAN bValid; // 1: variable contains valid value
- USHORT StaNum;
- UCHAR ChannelUtilization;
- USHORT RemainingAdmissionControl; // in unit of 32-us
-} QBSS_LOAD_PARM, *PQBSS_LOAD_PARM;
-
-// QBSS Info field in QSTA's assoc req
-typedef struct PACKED {
-#ifdef RT_BIG_ENDIAN
- UCHAR Rsv2:1;
- UCHAR MaxSPLength:2;
- UCHAR Rsv1:1;
- UCHAR UAPSD_AC_BE:1;
- UCHAR UAPSD_AC_BK:1;
- UCHAR UAPSD_AC_VI:1;
- UCHAR UAPSD_AC_VO:1;
-#else
- UCHAR UAPSD_AC_VO:1;
- UCHAR UAPSD_AC_VI:1;
- UCHAR UAPSD_AC_BK:1;
- UCHAR UAPSD_AC_BE:1;
- UCHAR Rsv1:1;
- UCHAR MaxSPLength:2;
- UCHAR Rsv2:1;
-#endif /* !RT_BIG_ENDIAN */
-} QBSS_STA_INFO_PARM, *PQBSS_STA_INFO_PARM;
-
-// QBSS Info field in QAP's Beacon/ProbeRsp
-typedef struct PACKED {
-#ifdef RT_BIG_ENDIAN
- UCHAR UAPSD:1;
- UCHAR Rsv:3;
- UCHAR ParamSetCount:4;
-#else
- UCHAR ParamSetCount:4;
- UCHAR Rsv:3;
- UCHAR UAPSD:1;
-#endif /* !RT_BIG_ENDIAN */
-} QBSS_AP_INFO_PARM, *PQBSS_AP_INFO_PARM;
-
-// QOS Capability reported in QAP's BEACON/ProbeRsp
-// QOS Capability sent out in QSTA's AssociateReq/ReAssociateReq
-typedef struct {
- BOOLEAN bValid; // 1: variable contains valid value
- BOOLEAN bQAck;
- BOOLEAN bQueueRequest;
- BOOLEAN bTxopRequest;
-// BOOLEAN bMoreDataAck;
- UCHAR EdcaUpdateCount;
-} QOS_CAPABILITY_PARM, *PQOS_CAPABILITY_PARM;
-
-#ifdef CONFIG_STA_SUPPORT
-typedef struct {
- UCHAR IELen;
- UCHAR IE[MAX_CUSTOM_LEN];
-} WPA_IE_;
-#endif // CONFIG_STA_SUPPORT //
-
-
-typedef struct {
- UCHAR Bssid[MAC_ADDR_LEN];
- UCHAR Channel;
- UCHAR CentralChannel; //Store the wide-band central channel for 40MHz. .used in 40MHz AP. Or this is the same as Channel.
- UCHAR BssType;
- USHORT AtimWin;
- USHORT BeaconPeriod;
-
- UCHAR SupRate[MAX_LEN_OF_SUPPORTED_RATES];
- UCHAR SupRateLen;
- UCHAR ExtRate[MAX_LEN_OF_SUPPORTED_RATES];
- UCHAR ExtRateLen;
- HT_CAPABILITY_IE HtCapability;
- UCHAR HtCapabilityLen;
- ADD_HT_INFO_IE AddHtInfo; // AP might use this additional ht info IE
- UCHAR AddHtInfoLen;
- UCHAR NewExtChanOffset;
- CHAR Rssi;
- UCHAR Privacy; // Indicate security function ON/OFF. Don't mess up with auth mode.
- UCHAR Hidden;
-
- USHORT DtimPeriod;
- USHORT CapabilityInfo;
-
- USHORT CfpCount;
- USHORT CfpPeriod;
- USHORT CfpMaxDuration;
- USHORT CfpDurRemaining;
- UCHAR SsidLen;
- CHAR Ssid[MAX_LEN_OF_SSID];
-
- ULONG LastBeaconRxTime; // OS's timestamp
-
- BOOLEAN bSES;
-
- // New for WPA2
- CIPHER_SUITE WPA; // AP announced WPA cipher suite
- CIPHER_SUITE WPA2; // AP announced WPA2 cipher suite
-
- // New for microsoft WPA support
- NDIS_802_11_FIXED_IEs FixIEs;
- NDIS_802_11_AUTHENTICATION_MODE AuthModeAux; // Addition mode for WPA2 / WPA capable AP
- NDIS_802_11_AUTHENTICATION_MODE AuthMode;
- NDIS_802_11_WEP_STATUS WepStatus; // Unicast Encryption Algorithm extract from VAR_IE
- USHORT VarIELen; // Length of next VIE include EID & Length
- UCHAR VarIEs[MAX_VIE_LEN];
-
- // CCX Ckip information
- UCHAR CkipFlag;
-
- // CCX 2 TSF
- UCHAR PTSF[4]; // Parent TSF
- UCHAR TTSF[8]; // Target TSF
-
- // 802.11e d9, and WMM
- EDCA_PARM EdcaParm;
- QOS_CAPABILITY_PARM QosCapability;
- QBSS_LOAD_PARM QbssLoad;
-#ifdef CONFIG_STA_SUPPORT
- WPA_IE_ WpaIE;
- WPA_IE_ RsnIE;
-#ifdef EXT_BUILD_CHANNEL_LIST
- UCHAR CountryString[3];
- BOOLEAN bHasCountryIE;
-#endif // EXT_BUILD_CHANNEL_LIST //
-#endif // CONFIG_STA_SUPPORT //
-} BSS_ENTRY, *PBSS_ENTRY;
-
-typedef struct {
- UCHAR BssNr;
- UCHAR BssOverlapNr;
- BSS_ENTRY BssEntry[MAX_LEN_OF_BSS_TABLE];
-} BSS_TABLE, *PBSS_TABLE;
-
-
-typedef struct _MLME_QUEUE_ELEM {
- ULONG Machine;
- ULONG MsgType;
- ULONG MsgLen;
- UCHAR Msg[MGMT_DMA_BUFFER_SIZE];
- LARGE_INTEGER TimeStamp;
- UCHAR Rssi0;
- UCHAR Rssi1;
- UCHAR Rssi2;
- UCHAR Signal;
- UCHAR Channel;
- UCHAR Wcid;
- BOOLEAN Occupied;
-} MLME_QUEUE_ELEM, *PMLME_QUEUE_ELEM;
-
-typedef struct _MLME_QUEUE {
- ULONG Num;
- ULONG Head;
- ULONG Tail;
- NDIS_SPIN_LOCK Lock;
- MLME_QUEUE_ELEM Entry[MAX_LEN_OF_MLME_QUEUE];
-} MLME_QUEUE, *PMLME_QUEUE;
-
-typedef VOID (*STATE_MACHINE_FUNC)(VOID *Adaptor, MLME_QUEUE_ELEM *Elem);
-
-typedef struct _STATE_MACHINE {
- ULONG Base;
- ULONG NrState;
- ULONG NrMsg;
- ULONG CurrState;
- STATE_MACHINE_FUNC *TransFunc;
-} STATE_MACHINE, *PSTATE_MACHINE;
-
-
-// MLME AUX data structure that hold temporarliy settings during a connection attempt.
-// Once this attemp succeeds, all settings will be copy to pAd->StaActive.
-// A connection attempt (user set OID, roaming, CCX fast roaming,..) consists of
-// several steps (JOIN, AUTH, ASSOC or REASSOC) and may fail at any step. We purposely
-// separate this under-trial settings away from pAd->StaActive so that once
-// this new attempt failed, driver can auto-recover back to the active settings.
-typedef struct _MLME_AUX {
- UCHAR BssType;
- UCHAR Ssid[MAX_LEN_OF_SSID];
- UCHAR SsidLen;
- UCHAR Bssid[MAC_ADDR_LEN];
- UCHAR AutoReconnectSsid[MAX_LEN_OF_SSID];
- UCHAR AutoReconnectSsidLen;
- USHORT Alg;
- UCHAR ScanType;
- UCHAR Channel;
- UCHAR CentralChannel;
- USHORT Aid;
- USHORT CapabilityInfo;
- USHORT BeaconPeriod;
- USHORT CfpMaxDuration;
- USHORT CfpPeriod;
- USHORT AtimWin;
-
- // Copy supported rate from desired AP's beacon. We are trying to match
- // AP's supported and extended rate settings.
- UCHAR SupRate[MAX_LEN_OF_SUPPORTED_RATES];
- UCHAR ExtRate[MAX_LEN_OF_SUPPORTED_RATES];
- UCHAR SupRateLen;
- UCHAR ExtRateLen;
- HT_CAPABILITY_IE HtCapability;
- UCHAR HtCapabilityLen;
- ADD_HT_INFO_IE AddHtInfo; // AP might use this additional ht info IE
- UCHAR NewExtChannelOffset;
- //RT_HT_CAPABILITY SupportedHtPhy;
-
- // new for QOS
- QOS_CAPABILITY_PARM APQosCapability; // QOS capability of the current associated AP
- EDCA_PARM APEdcaParm; // EDCA parameters of the current associated AP
- QBSS_LOAD_PARM APQbssLoad; // QBSS load of the current associated AP
-
- // new to keep Ralink specific feature
- ULONG APRalinkIe;
-
- BSS_TABLE SsidBssTab; // AP list for the same SSID
- BSS_TABLE RoamTab; // AP list eligible for roaming
- ULONG BssIdx;
- ULONG RoamIdx;
-
- BOOLEAN CurrReqIsFromNdis;
-
- RALINK_TIMER_STRUCT BeaconTimer, ScanTimer;
- RALINK_TIMER_STRUCT AuthTimer;
- RALINK_TIMER_STRUCT AssocTimer, ReassocTimer, DisassocTimer;
-} MLME_AUX, *PMLME_AUX;
-
-typedef struct _MLME_ADDBA_REQ_STRUCT{
- UCHAR Wcid; //
- UCHAR pAddr[MAC_ADDR_LEN];
- UCHAR BaBufSize;
- USHORT TimeOutValue;
- UCHAR TID;
- UCHAR Token;
- USHORT BaStartSeq;
-} MLME_ADDBA_REQ_STRUCT, *PMLME_ADDBA_REQ_STRUCT;
-
-
-typedef struct _MLME_DELBA_REQ_STRUCT{
- UCHAR Wcid; //
- UCHAR Addr[MAC_ADDR_LEN];
- UCHAR TID;
- UCHAR Initiator;
-} MLME_DELBA_REQ_STRUCT, *PMLME_DELBA_REQ_STRUCT;
-
-// assoc struct is equal to reassoc
-typedef struct _MLME_ASSOC_REQ_STRUCT{
- UCHAR Addr[MAC_ADDR_LEN];
- USHORT CapabilityInfo;
- USHORT ListenIntv;
- ULONG Timeout;
-} MLME_ASSOC_REQ_STRUCT, *PMLME_ASSOC_REQ_STRUCT, MLME_REASSOC_REQ_STRUCT, *PMLME_REASSOC_REQ_STRUCT;
-
-typedef struct _MLME_DISASSOC_REQ_STRUCT{
- UCHAR Addr[MAC_ADDR_LEN];
- USHORT Reason;
-} MLME_DISASSOC_REQ_STRUCT, *PMLME_DISASSOC_REQ_STRUCT;
-
-typedef struct _MLME_AUTH_REQ_STRUCT {
- UCHAR Addr[MAC_ADDR_LEN];
- USHORT Alg;
- ULONG Timeout;
-} MLME_AUTH_REQ_STRUCT, *PMLME_AUTH_REQ_STRUCT;
-
-typedef struct _MLME_DEAUTH_REQ_STRUCT {
- UCHAR Addr[MAC_ADDR_LEN];
- USHORT Reason;
-} MLME_DEAUTH_REQ_STRUCT, *PMLME_DEAUTH_REQ_STRUCT;
-
-typedef struct {
- ULONG BssIdx;
-} MLME_JOIN_REQ_STRUCT;
-
-typedef struct _MLME_SCAN_REQ_STRUCT {
- UCHAR Bssid[MAC_ADDR_LEN];
- UCHAR BssType;
- UCHAR ScanType;
- UCHAR SsidLen;
- CHAR Ssid[MAX_LEN_OF_SSID];
-} MLME_SCAN_REQ_STRUCT, *PMLME_SCAN_REQ_STRUCT;
-
-typedef struct _MLME_START_REQ_STRUCT {
- CHAR Ssid[MAX_LEN_OF_SSID];
- UCHAR SsidLen;
-} MLME_START_REQ_STRUCT, *PMLME_START_REQ_STRUCT;
-
-#ifdef CONFIG_STA_SUPPORT
-#ifdef QOS_DLS_SUPPORT
-// structure for DLS
-typedef struct _RT_802_11_DLS {
- USHORT TimeOut; // Use to time out while slience, unit: second , set by UI
- USHORT CountDownTimer; // Use to time out while slience,unit: second , used by driver only
- NDIS_802_11_MAC_ADDRESS MacAddr; // set by UI
- UCHAR Status; // 0: none , 1: wait STAkey, 2: finish DLS setup , set by driver only
- BOOLEAN Valid; // 1: valid , 0: invalid , set by UI, use to setup or tear down DLS link
- RALINK_TIMER_STRUCT Timer; // Use to time out while handshake
- USHORT Sequence;
- USHORT MacTabMatchWCID; // ASIC
- BOOLEAN bHTCap;
- PVOID pAd;
-} RT_802_11_DLS, *PRT_802_11_DLS;
-
-typedef struct _MLME_DLS_REQ_STRUCT {
- PRT_802_11_DLS pDLS;
- USHORT Reason;
-} MLME_DLS_REQ_STRUCT, *PMLME_DLS_REQ_STRUCT;
-#endif // QOS_DLS_SUPPORT //
-#endif // CONFIG_STA_SUPPORT //
-
-typedef struct PACKED {
- UCHAR Eid;
- UCHAR Len;
- CHAR Octet[1];
-} EID_STRUCT,*PEID_STRUCT, BEACON_EID_STRUCT, *PBEACON_EID_STRUCT;
-
-typedef struct PACKED _RTMP_TX_RATE_SWITCH
-{
- UCHAR ItemNo;
-#ifdef RT_BIG_ENDIAN
- UCHAR Rsv2:2;
- UCHAR Mode:2;
- UCHAR Rsv1:1;
- UCHAR BW:1;
- UCHAR ShortGI:1;
- UCHAR STBC:1;
-#else
- UCHAR STBC:1;
- UCHAR ShortGI:1;
- UCHAR BW:1;
- UCHAR Rsv1:1;
- UCHAR Mode:2;
- UCHAR Rsv2:2;
-#endif
- UCHAR CurrMCS;
- UCHAR TrainUp;
- UCHAR TrainDown;
-} RRTMP_TX_RATE_SWITCH, *PRTMP_TX_RATE_SWITCH;
-
-// ========================== AP mlme.h ===============================
-#define TBTT_PRELOAD_TIME 384 // usec. LomgPreamble + 24-byte at 1Mbps
+/* */
+/* Contention-free parameter (without ID and Length) */
+/* */
+struct PACKED rt_cf_parm {
+ BOOLEAN bValid; /* 1: variable contains valid value */
+ u8 CfpCount;
+ u8 CfpPeriod;
+ u16 CfpMaxDuration;
+ u16 CfpDurRemaining;
+};
+
+struct rt_cipher_suite {
+ NDIS_802_11_ENCRYPTION_STATUS PairCipher; /* Unicast cipher 1, this one has more secured cipher suite */
+ NDIS_802_11_ENCRYPTION_STATUS PairCipherAux; /* Unicast cipher 2 if AP announce two unicast cipher suite */
+ NDIS_802_11_ENCRYPTION_STATUS GroupCipher; /* Group cipher */
+ u16 RsnCapability; /* RSN capability from beacon */
+ BOOLEAN bMixMode; /* Indicate Pair & Group cipher might be different */
+};
+
+/* EDCA configuration from AP's BEACON/ProbeRsp */
+struct rt_edca_parm {
+ BOOLEAN bValid; /* 1: variable contains valid value */
+ BOOLEAN bAdd; /* 1: variable contains valid value */
+ BOOLEAN bQAck;
+ BOOLEAN bQueueRequest;
+ BOOLEAN bTxopRequest;
+ BOOLEAN bAPSDCapable;
+/* BOOLEAN bMoreDataAck; */
+ u8 EdcaUpdateCount;
+ u8 Aifsn[4]; /* 0:AC_BK, 1:AC_BE, 2:AC_VI, 3:AC_VO */
+ u8 Cwmin[4];
+ u8 Cwmax[4];
+ u16 Txop[4]; /* in unit of 32-us */
+ BOOLEAN bACM[4]; /* 1: Admission Control of AC_BK is mandattory */
+};
+
+/* QBSS LOAD information from QAP's BEACON/ProbeRsp */
+struct rt_qbss_load_parm {
+ BOOLEAN bValid; /* 1: variable contains valid value */
+ u16 StaNum;
+ u8 ChannelUtilization;
+ u16 RemainingAdmissionControl; /* in unit of 32-us */
+};
+
+/* QBSS Info field in QSTA's assoc req */
+struct PACKED rt_qbss_sta_info_parm {
+ u8 UAPSD_AC_VO:1;
+ u8 UAPSD_AC_VI:1;
+ u8 UAPSD_AC_BK:1;
+ u8 UAPSD_AC_BE:1;
+ u8 Rsv1:1;
+ u8 MaxSPLength:2;
+ u8 Rsv2:1;
+};
+
+/* QBSS Info field in QAP's Beacon/ProbeRsp */
+struct PACKED rt_qbss_ap_info_parm {
+ u8 ParamSetCount:4;
+ u8 Rsv:3;
+ u8 UAPSD:1;
+};
+
+/* QOS Capability reported in QAP's BEACON/ProbeRsp */
+/* QOS Capability sent out in QSTA's AssociateReq/ReAssociateReq */
+struct rt_qos_capability_parm {
+ BOOLEAN bValid; /* 1: variable contains valid value */
+ BOOLEAN bQAck;
+ BOOLEAN bQueueRequest;
+ BOOLEAN bTxopRequest;
+/* BOOLEAN bMoreDataAck; */
+ u8 EdcaUpdateCount;
+};
+
+struct rt_wpa_ie {
+ u8 IELen;
+ u8 IE[MAX_CUSTOM_LEN];
+};
+
+struct rt_bss_entry {
+ u8 Bssid[MAC_ADDR_LEN];
+ u8 Channel;
+ u8 CentralChannel; /*Store the wide-band central channel for 40MHz. .used in 40MHz AP. Or this is the same as Channel. */
+ u8 BssType;
+ u16 AtimWin;
+ u16 BeaconPeriod;
+
+ u8 SupRate[MAX_LEN_OF_SUPPORTED_RATES];
+ u8 SupRateLen;
+ u8 ExtRate[MAX_LEN_OF_SUPPORTED_RATES];
+ u8 ExtRateLen;
+ struct rt_ht_capability_ie HtCapability;
+ u8 HtCapabilityLen;
+ struct rt_add_ht_info_ie AddHtInfo; /* AP might use this additional ht info IE */
+ u8 AddHtInfoLen;
+ u8 NewExtChanOffset;
+ char Rssi;
+ u8 Privacy; /* Indicate security function ON/OFF. Don't mess up with auth mode. */
+ u8 Hidden;
+
+ u16 DtimPeriod;
+ u16 CapabilityInfo;
+
+ u16 CfpCount;
+ u16 CfpPeriod;
+ u16 CfpMaxDuration;
+ u16 CfpDurRemaining;
+ u8 SsidLen;
+ char Ssid[MAX_LEN_OF_SSID];
+
+ unsigned long LastBeaconRxTime; /* OS's timestamp */
+
+ BOOLEAN bSES;
+
+ /* New for WPA2 */
+ struct rt_cipher_suite WPA; /* AP announced WPA cipher suite */
+ struct rt_cipher_suite WPA2; /* AP announced WPA2 cipher suite */
+
+ /* New for microsoft WPA support */
+ struct rt_ndis_802_11_fixed_ies FixIEs;
+ NDIS_802_11_AUTHENTICATION_MODE AuthModeAux; /* Addition mode for WPA2 / WPA capable AP */
+ NDIS_802_11_AUTHENTICATION_MODE AuthMode;
+ NDIS_802_11_WEP_STATUS WepStatus; /* Unicast Encryption Algorithm extract from VAR_IE */
+ u16 VarIELen; /* Length of next VIE include EID & Length */
+ u8 VarIEs[MAX_VIE_LEN];
+
+ /* CCX Ckip information */
+ u8 CkipFlag;
+
+ /* CCX 2 TSF */
+ u8 PTSF[4]; /* Parent TSF */
+ u8 TTSF[8]; /* Target TSF */
+
+ /* 802.11e d9, and WMM */
+ struct rt_edca_parm EdcaParm;
+ struct rt_qos_capability_parm QosCapability;
+ struct rt_qbss_load_parm QbssLoad;
+ struct rt_wpa_ie WpaIE;
+ struct rt_wpa_ie RsnIE;
+};
+
+struct rt_bss_table {
+ u8 BssNr;
+ u8 BssOverlapNr;
+ struct rt_bss_entry BssEntry[MAX_LEN_OF_BSS_TABLE];
+};
+
+struct rt_mlme_queue_elem {
+ unsigned long Machine;
+ unsigned long MsgType;
+ unsigned long MsgLen;
+ u8 Msg[MGMT_DMA_BUFFER_SIZE];
+ LARGE_INTEGER TimeStamp;
+ u8 Rssi0;
+ u8 Rssi1;
+ u8 Rssi2;
+ u8 Signal;
+ u8 Channel;
+ u8 Wcid;
+ BOOLEAN Occupied;
+};
+
+struct rt_mlme_queue {
+ unsigned long Num;
+ unsigned long Head;
+ unsigned long Tail;
+ spinlock_t Lock;
+ struct rt_mlme_queue_elem Entry[MAX_LEN_OF_MLME_QUEUE];
+};
+
+typedef void(*STATE_MACHINE_FUNC) (void * Adaptor, struct rt_mlme_queue_elem *Elem);
+
+struct rt_state_machine {
+ unsigned long Base;
+ unsigned long NrState;
+ unsigned long NrMsg;
+ unsigned long CurrState;
+ STATE_MACHINE_FUNC *TransFunc;
+};
+
+/* MLME AUX data structure that hold temporarliy settings during a connection attempt. */
+/* Once this attemp succeeds, all settings will be copy to pAd->StaActive. */
+/* A connection attempt (user set OID, roaming, CCX fast roaming,..) consists of */
+/* several steps (JOIN, AUTH, ASSOC or REASSOC) and may fail at any step. We purposely */
+/* separate this under-trial settings away from pAd->StaActive so that once */
+/* this new attempt failed, driver can auto-recover back to the active settings. */
+struct rt_mlme_aux {
+ u8 BssType;
+ u8 Ssid[MAX_LEN_OF_SSID];
+ u8 SsidLen;
+ u8 Bssid[MAC_ADDR_LEN];
+ u8 AutoReconnectSsid[MAX_LEN_OF_SSID];
+ u8 AutoReconnectSsidLen;
+ u16 Alg;
+ u8 ScanType;
+ u8 Channel;
+ u8 CentralChannel;
+ u16 Aid;
+ u16 CapabilityInfo;
+ u16 BeaconPeriod;
+ u16 CfpMaxDuration;
+ u16 CfpPeriod;
+ u16 AtimWin;
+
+ /* Copy supported rate from desired AP's beacon. We are trying to match */
+ /* AP's supported and extended rate settings. */
+ u8 SupRate[MAX_LEN_OF_SUPPORTED_RATES];
+ u8 ExtRate[MAX_LEN_OF_SUPPORTED_RATES];
+ u8 SupRateLen;
+ u8 ExtRateLen;
+ struct rt_ht_capability_ie HtCapability;
+ u8 HtCapabilityLen;
+ struct rt_add_ht_info_ie AddHtInfo; /* AP might use this additional ht info IE */
+ u8 NewExtChannelOffset;
+ /*struct rt_ht_capability SupportedHtPhy; */
+
+ /* new for QOS */
+ struct rt_qos_capability_parm APQosCapability; /* QOS capability of the current associated AP */
+ struct rt_edca_parm APEdcaParm; /* EDCA parameters of the current associated AP */
+ struct rt_qbss_load_parm APQbssLoad; /* QBSS load of the current associated AP */
+
+ /* new to keep Ralink specific feature */
+ unsigned long APRalinkIe;
+
+ struct rt_bss_table SsidBssTab; /* AP list for the same SSID */
+ struct rt_bss_table RoamTab; /* AP list eligible for roaming */
+ unsigned long BssIdx;
+ unsigned long RoamIdx;
+
+ BOOLEAN CurrReqIsFromNdis;
+
+ struct rt_ralink_timer BeaconTimer, ScanTimer;
+ struct rt_ralink_timer AuthTimer;
+ struct rt_ralink_timer AssocTimer, ReassocTimer, DisassocTimer;
+};
+
+struct rt_mlme_addba_req {
+ u8 Wcid; /* */
+ u8 pAddr[MAC_ADDR_LEN];
+ u8 BaBufSize;
+ u16 TimeOutValue;
+ u8 TID;
+ u8 Token;
+ u16 BaStartSeq;
+};
+
+struct rt_mlme_delba_req {
+ u8 Wcid; /* */
+ u8 Addr[MAC_ADDR_LEN];
+ u8 TID;
+ u8 Initiator;
+};
+
+/* assoc struct is equal to reassoc */
+struct rt_mlme_assoc_req {
+ u8 Addr[MAC_ADDR_LEN];
+ u16 CapabilityInfo;
+ u16 ListenIntv;
+ unsigned long Timeout;
+};
+
+struct rt_mlme_disassoc_req {
+ u8 Addr[MAC_ADDR_LEN];
+ u16 Reason;
+};
+
+struct rt_mlme_auth_req {
+ u8 Addr[MAC_ADDR_LEN];
+ u16 Alg;
+ unsigned long Timeout;
+};
+
+struct rt_mlme_deauth_req {
+ u8 Addr[MAC_ADDR_LEN];
+ u16 Reason;
+};
+
+struct rt_mlme_join_req {
+ unsigned long BssIdx;
+};
+
+struct rt_mlme_scan_req {
+ u8 Bssid[MAC_ADDR_LEN];
+ u8 BssType;
+ u8 ScanType;
+ u8 SsidLen;
+ char Ssid[MAX_LEN_OF_SSID];
+};
+
+struct rt_mlme_start_req {
+ char Ssid[MAX_LEN_OF_SSID];
+ u8 SsidLen;
+};
+
+struct PACKED rt_eid {
+ u8 Eid;
+ u8 Len;
+ u8 Octet[1];
+};
+
+struct PACKED rt_rtmp_tx_rate_switch {
+ u8 ItemNo;
+ u8 STBC:1;
+ u8 ShortGI:1;
+ u8 BW:1;
+ u8 Rsv1:1;
+ u8 Mode:2;
+ u8 Rsv2:2;
+ u8 CurrMCS;
+ u8 TrainUp;
+ u8 TrainDown;
+};
+
+/* ========================== AP mlme.h =============================== */
+#define TBTT_PRELOAD_TIME 384 /* usec. LomgPreamble + 24-byte at 1Mbps */