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