]> Pileus Git - ~andy/linux/blob - drivers/staging/rt3090/ap_apcli.h
Merge branch 'fix/hda' into for-linus
[~andy/linux] / drivers / staging / rt3090 / ap_apcli.h
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_ */