]>
Commit | Line | Data |
---|---|---|
36c7928c BZ |
1 | /* |
2 | ************************************************************************* | |
3 | * Ralink Tech Inc. | |
4 | * 5F., No.36, Taiyuan St., Jhubei City, | |
5 | * Hsinchu County 302, | |
6 | * Taiwan, R.O.C. | |
7 | * | |
8 | * (c) Copyright 2002-2007, Ralink Technology, Inc. | |
9 | * | |
10 | * This program is free software; you can redistribute it and/or modify * | |
11 | * it under the terms of the GNU General Public License as published by * | |
12 | * the Free Software Foundation; either version 2 of the License, or * | |
13 | * (at your option) any later version. * | |
14 | * * | |
15 | * This program is distributed in the hope that it will be useful, * | |
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
18 | * GNU General Public License for more details. * | |
19 | * * | |
20 | * You should have received a copy of the GNU General Public License * | |
21 | * along with this program; if not, write to the * | |
22 | * Free Software Foundation, Inc., * | |
23 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * | |
24 | * * | |
25 | ************************************************************************* | |
26 | ||
27 | Module Name: | |
28 | ap_apcli.h | |
29 | ||
30 | Abstract: | |
31 | Miniport generic portion header file | |
32 | ||
33 | Revision History: | |
34 | Who When What | |
35 | -------- ---------- ---------------------------------------------- | |
36 | Shiang, Fonchi 02-13-2007 created | |
37 | */ | |
38 | ||
39 | #ifndef _AP_APCLI_H_ | |
40 | #define _AP_APCLI_H_ | |
41 | ||
42 | #ifdef APCLI_SUPPORT | |
43 | ||
44 | #include "rtmp.h" | |
45 | ||
46 | #define AUTH_TIMEOUT 300 // unit: msec | |
47 | #define ASSOC_TIMEOUT 300 // unit: msec | |
48 | //#define JOIN_TIMEOUT 2000 // unit: msec // not used in Ap-client mode, remove it | |
49 | #define PROBE_TIMEOUT 1000 // unit: msec | |
50 | ||
51 | #define APCLI_ROOT_BSSID_GET(pAd, wcid) ((pAd)->MacTab.Content[(wcid)].Addr) | |
52 | #define APCLI_IF_UP_CHECK(pAd, ifidx) ((pAd)->ApCfg.ApCliTab[(ifidx)].dev->flags & IFF_UP) | |
53 | ||
54 | /* sanity check for apidx */ | |
55 | #define APCLI_MR_APIDX_SANITY_CHECK(idx) \ | |
56 | { \ | |
57 | if ((idx) >= MAX_APCLI_NUM) \ | |
58 | { \ | |
59 | (idx) = 0; \ | |
60 | DBGPRINT(RT_DEBUG_ERROR, ("%s> Error! apcli-idx > MAX_APCLI_NUM!\n", __FUNCTION__)); \ | |
61 | } \ | |
62 | } | |
63 | ||
64 | typedef struct _APCLI_MLME_JOIN_REQ_STRUCT { | |
65 | UCHAR Bssid[MAC_ADDR_LEN]; | |
66 | UCHAR SsidLen; | |
67 | UCHAR Ssid[MAX_LEN_OF_SSID]; | |
68 | } APCLI_MLME_JOIN_REQ_STRUCT; | |
69 | ||
70 | typedef struct _STA_CTRL_JOIN_REQ_STRUCT { | |
71 | USHORT Status; | |
72 | } APCLI_CTRL_MSG_STRUCT, *PSTA_CTRL_MSG_STRUCT; | |
73 | ||
74 | BOOLEAN isValidApCliIf( | |
75 | SHORT ifIndex); | |
76 | ||
77 | // | |
78 | // Private routines in apcli_ctrl.c | |
79 | // | |
80 | VOID ApCliCtrlStateMachineInit( | |
81 | IN PRTMP_ADAPTER pAd, | |
82 | IN STATE_MACHINE_EX *Sm, | |
83 | OUT STATE_MACHINE_FUNC_EX Trans[]); | |
84 | ||
85 | // | |
86 | // Private routines in apcli_sync.c | |
87 | // | |
88 | VOID ApCliSyncStateMachineInit( | |
89 | IN PRTMP_ADAPTER pAd, | |
90 | IN STATE_MACHINE_EX *Sm, | |
91 | OUT STATE_MACHINE_FUNC_EX Trans[]); | |
92 | ||
93 | // | |
94 | // Private routines in apcli_auth.c | |
95 | // | |
96 | VOID ApCliAuthStateMachineInit( | |
97 | IN PRTMP_ADAPTER pAd, | |
98 | IN STATE_MACHINE_EX *Sm, | |
99 | OUT STATE_MACHINE_FUNC_EX Trans[]); | |
100 | ||
101 | // | |
102 | // Private routines in apcli_assoc.c | |
103 | // | |
104 | VOID ApCliAssocStateMachineInit( | |
105 | IN PRTMP_ADAPTER pAd, | |
106 | IN STATE_MACHINE_EX *Sm, | |
107 | OUT STATE_MACHINE_FUNC_EX Trans[]); | |
108 | ||
109 | MAC_TABLE_ENTRY *ApCliTableLookUpByWcid( | |
110 | IN PRTMP_ADAPTER pAd, | |
111 | IN UCHAR wcid, | |
112 | IN PUCHAR pAddrs); | |
113 | ||
114 | ||
115 | BOOLEAN ApCliAllowToSendPacket( | |
116 | IN RTMP_ADAPTER *pAd, | |
117 | IN PNDIS_PACKET pPacket, | |
118 | OUT UCHAR *pWcid); | |
119 | ||
120 | BOOLEAN ApCliValidateRSNIE( | |
121 | IN PRTMP_ADAPTER pAd, | |
122 | IN PEID_STRUCT pEid_ptr, | |
123 | IN USHORT eid_len, | |
124 | IN USHORT idx); | |
125 | ||
126 | VOID RT28xx_ApCli_Init( | |
127 | IN PRTMP_ADAPTER pAd, | |
128 | IN PNET_DEV pPhyNetDev); | |
129 | ||
130 | VOID RT28xx_ApCli_Close( | |
131 | IN PRTMP_ADAPTER pAd); | |
132 | ||
133 | VOID RT28xx_ApCli_Remove( | |
134 | IN PRTMP_ADAPTER pAd); | |
135 | ||
136 | ||
137 | VOID RT28xx_ApCli_Remove( | |
138 | IN PRTMP_ADAPTER ad_p); | |
139 | ||
140 | INT ApCliIfLookUp( | |
141 | IN PRTMP_ADAPTER pAd, | |
142 | IN PUCHAR pAddr); | |
143 | ||
144 | INT ApCli_VirtualIF_Open( | |
145 | IN PNET_DEV dev_p); | |
146 | ||
147 | INT ApCli_VirtualIF_Close( | |
148 | IN PNET_DEV dev_p); | |
149 | ||
150 | INT ApCli_VirtualIF_PacketSend( | |
151 | IN PNDIS_PACKET skb_p, | |
152 | IN PNET_DEV dev_p); | |
153 | ||
154 | INT ApCli_VirtualIF_Ioctl( | |
155 | IN PNET_DEV dev_p, | |
156 | IN OUT struct ifreq *rq_p, | |
157 | IN INT cmd); | |
158 | ||
159 | ||
160 | VOID ApCliMgtMacHeaderInit( | |
161 | IN PRTMP_ADAPTER pAd, | |
162 | IN OUT PHEADER_802_11 pHdr80211, | |
163 | IN UCHAR SubType, | |
164 | IN UCHAR ToDs, | |
165 | IN PUCHAR pDA, | |
166 | IN PUCHAR pBssid, | |
167 | IN USHORT ifIndex); | |
168 | ||
169 | #ifdef DOT11_N_SUPPORT | |
170 | BOOLEAN ApCliCheckHt( | |
171 | IN PRTMP_ADAPTER pAd, | |
172 | IN USHORT IfIndex, | |
173 | IN OUT HT_CAPABILITY_IE *pHtCapability, | |
174 | IN OUT ADD_HT_INFO_IE *pAddHtInfo); | |
175 | #endif // DOT11_N_SUPPORT // | |
176 | ||
177 | BOOLEAN ApCliLinkUp( | |
178 | IN PRTMP_ADAPTER pAd, | |
179 | IN UCHAR ifIndex); | |
180 | ||
181 | VOID ApCliLinkDown( | |
182 | IN PRTMP_ADAPTER pAd, | |
183 | IN UCHAR ifIndex); | |
184 | ||
185 | VOID ApCliIfUp( | |
186 | IN PRTMP_ADAPTER pAd); | |
187 | ||
188 | VOID ApCliIfDown( | |
189 | IN PRTMP_ADAPTER pAd); | |
190 | ||
191 | VOID ApCliIfMonitor( | |
192 | IN PRTMP_ADAPTER pAd); | |
193 | ||
194 | BOOLEAN ApCliMsgTypeSubst( | |
195 | IN PRTMP_ADAPTER pAd, | |
196 | IN PFRAME_802_11 pFrame, | |
197 | OUT INT *Machine, | |
198 | OUT INT *MsgType); | |
199 | ||
200 | BOOLEAN preCheckMsgTypeSubset( | |
201 | IN PRTMP_ADAPTER pAd, | |
202 | IN PFRAME_802_11 pFrame, | |
203 | OUT INT *Machine, | |
204 | OUT INT *MsgType); | |
205 | ||
206 | BOOLEAN ApCliPeerAssocRspSanity( | |
207 | IN PRTMP_ADAPTER pAd, | |
208 | IN VOID *pMsg, | |
209 | IN ULONG MsgLen, | |
210 | OUT PUCHAR pAddr2, | |
211 | OUT USHORT *pCapabilityInfo, | |
212 | OUT USHORT *pStatus, | |
213 | OUT USHORT *pAid, | |
214 | OUT UCHAR SupRate[], | |
215 | OUT UCHAR *pSupRateLen, | |
216 | OUT UCHAR ExtRate[], | |
217 | OUT UCHAR *pExtRateLen, | |
218 | OUT HT_CAPABILITY_IE *pHtCapability, | |
219 | OUT ADD_HT_INFO_IE *pAddHtInfo, // AP might use this additional ht info IE | |
220 | OUT UCHAR *pHtCapabilityLen, | |
221 | OUT UCHAR *pAddHtInfoLen, | |
222 | OUT UCHAR *pNewExtChannelOffset, | |
223 | OUT PEDCA_PARM pEdcaParm, | |
224 | OUT UCHAR *pCkipFlag); | |
225 | ||
226 | VOID ApCliPeerPairMsg1Action( | |
227 | IN PRTMP_ADAPTER pAd, | |
228 | IN MAC_TABLE_ENTRY *pEntry, | |
229 | IN MLME_QUEUE_ELEM *Elem); | |
230 | ||
231 | VOID ApCliPeerPairMsg3Action( | |
232 | IN PRTMP_ADAPTER pAd, | |
233 | IN MAC_TABLE_ENTRY *pEntry, | |
234 | IN MLME_QUEUE_ELEM *Elem); | |
235 | ||
236 | VOID ApCliPeerGroupMsg1Action( | |
237 | IN PRTMP_ADAPTER pAd, | |
238 | IN MAC_TABLE_ENTRY *pEntry, | |
239 | IN MLME_QUEUE_ELEM *Elem); | |
240 | ||
241 | BOOLEAN ApCliCheckRSNIE( | |
242 | IN PRTMP_ADAPTER pAd, | |
243 | IN PUCHAR pData, | |
244 | IN UCHAR DataLen, | |
245 | IN MAC_TABLE_ENTRY *pEntry, | |
246 | OUT UCHAR *Offset); | |
247 | ||
248 | BOOLEAN ApCliParseKeyData( | |
249 | IN PRTMP_ADAPTER pAd, | |
250 | IN PUCHAR pKeyData, | |
251 | IN UCHAR KeyDataLen, | |
252 | IN MAC_TABLE_ENTRY *pEntry, | |
253 | IN UCHAR IfIdx, | |
254 | IN UCHAR bPairewise); | |
255 | ||
256 | BOOLEAN ApCliHandleRxBroadcastFrame( | |
257 | IN PRTMP_ADAPTER pAd, | |
258 | IN RX_BLK *pRxBlk, | |
259 | IN MAC_TABLE_ENTRY *pEntry, | |
260 | IN UCHAR FromWhichBSSID); | |
261 | ||
262 | VOID APCliUpdatePairwiseKeyTable( | |
263 | IN PRTMP_ADAPTER pAd, | |
264 | IN UCHAR *KeyRsc, | |
265 | IN MAC_TABLE_ENTRY *pEntry); | |
266 | ||
267 | BOOLEAN APCliUpdateSharedKeyTable( | |
268 | IN PRTMP_ADAPTER pAd, | |
269 | IN PUCHAR pKey, | |
270 | IN UCHAR KeyLen, | |
271 | IN UCHAR DefaultKeyIdx, | |
272 | IN MAC_TABLE_ENTRY *pEntry); | |
273 | ||
274 | #endif // APCLI_SUPPORT // | |
275 | ||
276 | #endif /* _AP_APCLI_H_ */ |