blob: ea12684a2b1daf7ead126e15aa732e3d380652fa (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
|
#ifndef __WINBOND_MLME_H
#define __WINBOND_MLME_H
#include <linux/types.h>
#include <linux/spinlock.h>
#include "mac_structures.h"
#include "mds_s.h"
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Mlme.h
// Define the related definitions of MLME module
// history -- 01/14/03' created
//
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define AUTH_REJECT_REASON_CHALLENGE_FAIL 1
//====== the state of MLME module
#define INACTIVE 0x0
#define IDLE_SCAN 0x1
//====== the state of MLME/ESS module
#define STATE_1 0x2
#define AUTH_REQ 0x3
#define AUTH_WEP 0x4
#define STATE_2 0x5
#define ASSOC_REQ 0x6
#define STATE_3 0x7
//====== the state of MLME/IBSS module
#define IBSS_JOIN_SYNC 0x8
#define IBSS_AUTH_REQ 0x9
#define IBSS_AUTH_CHANLGE 0xa
#define IBSS_AUTH_WEP 0xb
#define IBSS_AUTH_IND 0xc
#define IBSS_STATE_2 0xd
//=========================================
//depend on D5C(MAC timing control 03 register): MaxTxMSDULifeTime default 0x80000us
#define AUTH_FAIL_TIMEOUT 550
#define ASSOC_FAIL_TIMEOUT 550
#define REASSOC_FAIL_TIMEOUT 550
//
// MLME task global CONSTANTS, STRUCTURE, variables
//
/////////////////////////////////////////////////////////////
// enum_ResultCode --
// Result code returned from MLME to SME.
//
/////////////////////////////////////////////////////////////
// PD43 20030829 Modifiled
//#define SUCCESS 0
#define MLME_SUCCESS 0 //follow spec.
#define INVALID_PARAMETERS 1 //Not following spec.
#define NOT_SUPPPORTED 2
#define TIMEOUT 3
#define TOO_MANY_SIMULTANEOUS_REQUESTS 4
#define REFUSED 5
#define BSS_ALREADY_STARTED_OR_JOINED 6
#define TRANSMIT_FRAME_FAIL 7
#define NO_BSS_FOUND 8
#define RETRY 9
#define GIVE_UP 10
#define OPEN_AUTH 0
#define SHARE_AUTH 1
#define ANY_AUTH 2
#define WPA_AUTH 3 //for WPA
#define WPAPSK_AUTH 4
#define WPANONE_AUTH 5
///////////////////////////////////////////// added by ws 04/19/04
#ifdef _WPA2_
#define WPA2_AUTH 6//for WPA2
#define WPA2PSK_AUTH 7
#endif //end def _WPA2_
//////////////////////////////////////////////////////////////////
//define the msg type of MLME module
//////////////////////////////////////////////////////////////////
//--------------------------------------------------------
//from SME
#define MLMEMSG_AUTH_REQ 0x0b
#define MLMEMSG_DEAUTH_REQ 0x0c
#define MLMEMSG_ASSOC_REQ 0x0d
#define MLMEMSG_REASSOC_REQ 0x0e
#define MLMEMSG_DISASSOC_REQ 0x0f
#define MLMEMSG_START_IBSS_REQ 0x10
#define MLMEMSG_IBSS_NET_CFM 0x11
//from RX :
#define MLMEMSG_RCV_MLMEFRAME 0x20
#define MLMEMSG_RCV_ASSOCRSP 0x22
#define MLMEMSG_RCV_REASSOCRSP 0x24
#define MLMEMSG_RCV_DISASSOC 0x2b
#define MLMEMSG_RCV_AUTH 0x2c
#define MLMEMSG_RCV_DEAUTH 0x2d
//from TX callback
#define MLMEMSG_TX_CALLBACK 0x40
#define MLMEMSG_ASSOCREQ_CALLBACK 0x41
#define MLMEMSG_REASSOCREQ_CALLBACK 0x43
#define MLMEMSG_DISASSOC_CALLBACK 0x4a
#define MLMEMSG_AUTH_CALLBACK 0x4c
#define MLMEMSG_DEAUTH_CALLBACK 0x4d
//#define MLMEMSG_JOIN_FAIL 4
//#define MLMEMSG_AUTHEN_FAIL 18
#define MLMEMSG_TIMEOUT 0x50
///////////////////////////////////////////////////////////////////////////
//Global data structures
#define MAX_NUM_TX_MMPDU 2
#define MAX_MMPDU_SIZE 1512
#define MAX_NUM_RX_MMPDU 6
///////////////////////////////////////////////////////////////////////////
//MACRO
#define boMLME_InactiveState(_AA_) (_AA_->wState==INACTIVE)
#define boMLME_IdleScanState(_BB_) (_BB_->wState==IDLE_SCAN)
#define boMLME_FoundSTAinfo(_CC_) (_CC_->wState>=IDLE_SCAN)
typedef struct _MLME_FRAME
{
//NDIS_PACKET MLME_Packet;
s8 * pMMPDU;
u16 len;
u8 DataType;
u8 IsInUsed;
spinlock_t MLMESpinLock;
u8 TxMMPDU[MAX_NUM_TX_MMPDU][MAX_MMPDU_SIZE];
u8 TxMMPDUInUse[ (MAX_NUM_TX_MMPDU+3) & ~0x03 ];
u16 wNumTxMMPDU;
u16 wNumTxMMPDUDiscarded;
u8 RxMMPDU[MAX_NUM_RX_MMPDU][MAX_MMPDU_SIZE];
u8 SaveRxBufSlotInUse[ (MAX_NUM_RX_MMPDU+3) & ~0x03 ];
u16 wNumRxMMPDU;
u16 wNumRxMMPDUDiscarded;
u16 wNumRxMMPDUInMLME; // Number of the Rx MMPDU
u16 reserved_1; // in MLME.
// excluding the discarded
} MLME_FRAME, *psMLME_FRAME;
typedef struct _AUTHREQ {
u8 peerMACaddr[MAC_ADDR_LENGTH];
u16 wAuthAlgorithm;
} MLME_AUTHREQ_PARA, *psMLME_AUTHREQ_PARA;
struct _Reason_Code {
u8 peerMACaddr[MAC_ADDR_LENGTH];
u16 wReasonCode;
};
typedef struct _Reason_Code MLME_DEAUTHREQ_PARA, *psMLME_DEAUTHREQ_PARA;
typedef struct _Reason_Code MLME_DISASSOCREQ_PARA, *psMLME_DISASSOCREQ_PARA;
typedef struct _ASSOCREQ {
u8 PeerSTAAddr[MAC_ADDR_LENGTH];
u16 CapabilityInfo;
u16 ListenInterval;
}__attribute__ ((packed)) MLME_ASSOCREQ_PARA, *psMLME_ASSOCREQ_PARA;
typedef struct _REASSOCREQ {
u8 NewAPAddr[MAC_ADDR_LENGTH];
u16 CapabilityInfo;
u16 ListenInterval;
}__attribute__ ((packed)) MLME_REASSOCREQ_PARA, *psMLME_REASSOCREQ_PARA;
typedef struct _MLMECALLBACK {
u8 *psFramePtr;
u8 bResult;
} MLME_TXCALLBACK, *psMLME_TXCALLBACK;
typedef struct _RXDATA
{
s32 FrameLength;
u8 __attribute__ ((packed)) *pbFramePtr;
}__attribute__ ((packed)) RXDATA, *psRXDATA;
#endif
|