]> bbs.cooldavid.org Git - net-next-2.6.git/blame - drivers/staging/rt2860/rtmp_def.h
Staging: rt28x0: fix comments in *.h files
[net-next-2.6.git] / drivers / staging / rt2860 / rtmp_def.h
CommitLineData
91980990
GKH
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 rtmp_def.h
29
30 Abstract:
31 Miniport related definition header
32
33 Revision History:
34 Who When What
35 -------- ---------- ----------------------------------------------
36 Paul Lin 08-01-2002 created
37 John Chang 08-05-2003 add definition for 11g & other drafts
38*/
39#ifndef __RTMP_DEF_H__
40#define __RTMP_DEF_H__
41
42#include "oid.h"
43
cc277069
BZ
44/* */
45/* Debug information verbosity: lower values indicate higher urgency */
46/* */
91980990
GKH
47#define RT_DEBUG_OFF 0
48#define RT_DEBUG_ERROR 1
49#define RT_DEBUG_WARN 2
50#define RT_DEBUG_TRACE 3
51#define RT_DEBUG_INFO 4
52#define RT_DEBUG_LOUD 5
53
54#define NIC_TAG ((ULONG)'0682')
55#define NIC_DBG_STRING ("**RT28xx**")
56
ca97b838 57#ifdef RTMP_MAC_USB
cc277069 58#define TX_RING_SIZE 8 /* 1 */
ca97b838 59#define PRIO_RING_SIZE 8
cc277069 60#define MGMT_RING_SIZE 32 /* PRIO_RING_SIZE */
ca97b838
BZ
61#define RX_RING_SIZE 8
62#define MAX_TX_PROCESS 4
63#define LOCAL_TXBUF_SIZE 2048
cc277069 64#endif /* RTMP_MAC_USB // */
ca97b838 65
cc277069 66/*#define PACKED */
ca97b838 67
91980990
GKH
68#define RALINK_2883_VERSION ((UINT32)0x28830300)
69#define RALINK_2880E_VERSION ((UINT32)0x28720200)
70#define RALINK_3070_VERSION ((UINT32)0x30700200)
71
91980990
GKH
72#define MAX_RX_PKT_LEN 1520
73
cc277069
BZ
74/* */
75/* Entry number for each DMA descriptor ring */
76/* */
91980990 77
ca97b838 78#ifdef RTMP_MAC_PCI
cc277069 79#define TX_RING_SIZE 64 /*64 */
91980990 80#define MGMT_RING_SIZE 128
cc277069
BZ
81#define RX_RING_SIZE 128 /*64 */
82#define MAX_TX_PROCESS TX_RING_SIZE /*8 */
91980990 83#define MAX_DMA_DONE_PROCESS TX_RING_SIZE
cc277069 84#define MAX_TX_DONE_PROCESS TX_RING_SIZE /*8 */
91980990 85#define LOCAL_TXBUF_SIZE 2
cc277069 86#endif /* RTMP_MAC_PCI // */
91980990 87
cc277069 88#define MAX_RX_PROCESS 128 /*64 //32 */
91980990
GKH
89#define NUM_OF_LOCAL_TXBUF 2
90#define TXD_SIZE 16
91#define TXWI_SIZE 16
92#define RXD_SIZE 16
93#define RXWI_SIZE 16
cc277069
BZ
94/* TXINFO_SIZE + TXWI_SIZE + 802.11 Header Size + AMSDU sub frame header */
95#define TX_DMA_1ST_BUFFER_SIZE 96 /* only the 1st physical buffer is pre-allocated */
96#define MGMT_DMA_BUFFER_SIZE 1536 /*2048 */
97#define RX_BUFFER_AGGRESIZE 3840 /*3904 //3968 //4096 //2048 //4096 */
98#define RX_BUFFER_NORMSIZE 3840 /*3904 //3968 //4096 //2048 //4096 */
91980990 99#define TX_BUFFER_NORMSIZE RX_BUFFER_NORMSIZE
cc277069
BZ
100#define MAX_FRAME_SIZE 2346 /* Maximum 802.11 frame size */
101#define MAX_AGGREGATION_SIZE 3840 /*3904 //3968 //4096 */
91980990
GKH
102#define MAX_NUM_OF_TUPLE_CACHE 2
103#define MAX_MCAST_LIST_SIZE 32
104#define MAX_LEN_OF_VENDOR_DESC 64
cc277069 105/*#define MAX_SIZE_OF_MCAST_PSQ (NUM_OF_LOCAL_TXBUF >> 2) // AP won't spend more than 1/4 of total buffers on M/BCAST PSQ */
91980990
GKH
106#define MAX_SIZE_OF_MCAST_PSQ 32
107
108#define MAX_RX_PROCESS_CNT (RX_RING_SIZE)
109
ca97b838
BZ
110/*
111 WMM Note: If memory of your system is not much, please reduce the definition;
112 or when you do WMM test, the queue for low priority AC will be full, i.e.
113 TX_RING_SIZE + MAX_PACKETS_IN_QUEUE packets for the AC will be buffered in
114 WLAN, maybe no any packet buffer can be got in Ethernet driver.
115
116 Sometimes no packet buffer can be got in Ethernet driver, the system will
117 send flow control packet to the sender to slow down its sending rate.
118 So no WMM can be saw in the air.
119*/
120
121/*
122 Need to use 64 in vxworks for test case WMM A5-T07
123 Two dnlink (10Mbps) from a WMM station to a non-WMM station.
124 If use 256, queue is not enough.
125 And in rt_main_end.c, clConfig.clNum = RX_RING_SIZE * 3; is changed to
126 clConfig.clNum = RX_RING_SIZE * 4;
127*/
cc277069
BZ
128/* TODO: For VxWorks the size is 256. Shall we cahnge the value as 256 for all OS????? */
129#define MAX_PACKETS_IN_QUEUE (512) /*(512) // to pass WMM A5-WPAPSK */
ca97b838 130
91980990 131#define MAX_PACKETS_IN_MCAST_PS_QUEUE 32
cc277069 132#define MAX_PACKETS_IN_PS_QUEUE 128 /*32 */
52b81c89 133#define WMM_NUM_OF_AC 4 /* AC0, AC1, AC2, and AC3 */
ca97b838
BZ
134
135#ifdef RTMP_EFUSE_SUPPORT
cc277069 136/*2008/09/11:KH add to support efuse<-- */
3a32ed12 137#define MAX_EEPROM_BIN_FILE_SIZE 1024
ca97b838 138#define EFUSE_BUFFER_PATH "/tmp/RT30xxEEPROM.bin"
cc277069
BZ
139/*2008/09/11:KH add to support efuse--> */
140#endif /* RTMP_EFUSE_SUPPORT // */
91980990 141
cc277069 142/* RxFilter */
91980990
GKH
143#define STANORMAL 0x17f97
144#define APNORMAL 0x15f97
ca97b838 145#define PSPXLINK 0x17f93
cc277069
BZ
146/* */
147/* RTMP_ADAPTER flags */
148/* */
91980990
GKH
149#define fRTMP_ADAPTER_MAP_REGISTER 0x00000001
150#define fRTMP_ADAPTER_INTERRUPT_IN_USE 0x00000002
151#define fRTMP_ADAPTER_HARDWARE_ERROR 0x00000004
152#define fRTMP_ADAPTER_SCATTER_GATHER 0x00000008
153#define fRTMP_ADAPTER_SEND_PACKET_ERROR 0x00000010
154#define fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS 0x00000020
155#define fRTMP_ADAPTER_HALT_IN_PROGRESS 0x00000040
156#define fRTMP_ADAPTER_RESET_IN_PROGRESS 0x00000080
157#define fRTMP_ADAPTER_NIC_NOT_EXIST 0x00000100
158#define fRTMP_ADAPTER_TX_RING_ALLOCATED 0x00000200
159#define fRTMP_ADAPTER_REMOVE_IN_PROGRESS 0x00000400
160#define fRTMP_ADAPTER_MIMORATE_INUSED 0x00000800
161#define fRTMP_ADAPTER_RX_RING_ALLOCATED 0x00001000
162#define fRTMP_ADAPTER_INTERRUPT_ACTIVE 0x00002000
163#define fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS 0x00004000
164#define fRTMP_ADAPTER_REASSOC_IN_PROGRESS 0x00008000
165#define fRTMP_ADAPTER_MEDIA_STATE_PENDING 0x00010000
166#define fRTMP_ADAPTER_RADIO_OFF 0x00020000
167#define fRTMP_ADAPTER_BULKOUT_RESET 0x00040000
168#define fRTMP_ADAPTER_BULKIN_RESET 0x00080000
169#define fRTMP_ADAPTER_RDG_ACTIVE 0x00100000
170#define fRTMP_ADAPTER_DYNAMIC_BE_TXOP_ACTIVE 0x00200000
171#define fRTMP_ADAPTER_SCAN_2040 0x04000000
172#define fRTMP_ADAPTER_RADIO_MEASUREMENT 0x08000000
173
cc277069 174#define fRTMP_ADAPTER_START_UP 0x10000000 /*Devive already initialized and enabled Tx/Rx. */
91980990
GKH
175#define fRTMP_ADAPTER_MEDIA_STATE_CHANGE 0x20000000
176#define fRTMP_ADAPTER_IDLE_RADIO_OFF 0x40000000
177
cc277069
BZ
178/* */
179/* STA operation status flags */
180/* */
91980990
GKH
181#define fOP_STATUS_INFRA_ON 0x00000001
182#define fOP_STATUS_ADHOC_ON 0x00000002
183#define fOP_STATUS_BG_PROTECTION_INUSED 0x00000004
184#define fOP_STATUS_SHORT_SLOT_INUSED 0x00000008
185#define fOP_STATUS_SHORT_PREAMBLE_INUSED 0x00000010
186#define fOP_STATUS_RECEIVE_DTIM 0x00000020
187#define fOP_STATUS_MEDIA_STATE_CONNECTED 0x00000080
188#define fOP_STATUS_WMM_INUSED 0x00000100
189#define fOP_STATUS_AGGREGATION_INUSED 0x00000200
cc277069
BZ
190#define fOP_STATUS_DOZE 0x00000400 /* debug purpose */
191#define fOP_STATUS_PIGGYBACK_INUSED 0x00000800 /* piggy-back, and aggregation */
91980990
GKH
192#define fOP_STATUS_APSD_INUSED 0x00001000
193#define fOP_STATUS_TX_AMSDU_INUSED 0x00002000
194#define fOP_STATUS_MAX_RETRY_ENABLED 0x00004000
195#define fOP_STATUS_WAKEUP_NOW 0x00008000
ca97b838
BZ
196#define fOP_STATUS_PCIE_DEVICE 0x00020000
197#define fOP_STATUS_ADVANCE_POWER_SAVE_PCIE_DEVICE fOP_STATUS_PCIE_DEVICE
91980990 198
cc277069
BZ
199/* */
200/* RTMP_ADAPTER PSFlags : related to advanced power save. */
201/* */
202/* Indicate whether driver can go to sleep mode from now. This flag is useful AFTER link up */
ed291e80 203#define fRTMP_PS_CAN_GO_SLEEP 0x00000001
cc277069 204/* Indicate whether driver has issue a LinkControl command to PCIe L1 */
ed291e80 205#define fRTMP_PS_SET_PCI_CLK_OFF_COMMAND 0x00000002
cc277069 206/* Indicate driver should disable kick off hardware to send packets from now. */
ed291e80 207#define fRTMP_PS_DISABLE_TX 0x00000004
cc277069
BZ
208/* Indicate driver should IMMEDIATELY fo to sleep after receiving AP's beacon in which doesn't indicate unicate nor multicast packets for me */
209/*. This flag is used ONLY in RTMPHandleRxDoneInterrupt routine. */
ed291e80 210#define fRTMP_PS_GO_TO_SLEEP_NOW 0x00000008
cc277069 211#define fRTMP_PS_TOGGLE_L1 0x00000010 /* Use Toggle L1 mechanism for rt28xx PCIe */
ca97b838 212
e44fd1cf
BZ
213#ifdef RT3090
214#define WAKE_MCU_CMD 0x31
215#define SLEEP_MCU_CMD 0x30
216#define RFOFF_MCU_CMD 0x35
cc277069 217#endif /* RT3090 // */
ed291e80 218
91980990
GKH
219#define CCKSETPROTECT 0x1
220#define OFDMSETPROTECT 0x2
221#define MM20SETPROTECT 0x4
222#define MM40SETPROTECT 0x8
223#define GF20SETPROTECT 0x10
224#define GR40SETPROTECT 0x20
225#define ALLN_SETPROTECT (GR40SETPROTECT | GF20SETPROTECT | MM40SETPROTECT | MM20SETPROTECT)
226
cc277069
BZ
227/* */
228/* AP's client table operation status flags */
229/* */
230#define fCLIENT_STATUS_WMM_CAPABLE 0x00000001 /* CLIENT can parse QOS DATA frame */
231#define fCLIENT_STATUS_AGGREGATION_CAPABLE 0x00000002 /* CLIENT can receive Ralink's proprietary TX aggregation frame */
232#define fCLIENT_STATUS_PIGGYBACK_CAPABLE 0x00000004 /* CLIENT support piggy-back */
91980990
GKH
233#define fCLIENT_STATUS_AMSDU_INUSED 0x00000008
234#define fCLIENT_STATUS_SGI20_CAPABLE 0x00000010
235#define fCLIENT_STATUS_SGI40_CAPABLE 0x00000020
236#define fCLIENT_STATUS_TxSTBC_CAPABLE 0x00000040
237#define fCLIENT_STATUS_RxSTBC_CAPABLE 0x00000080
238#define fCLIENT_STATUS_HTC_CAPABLE 0x00000100
239#define fCLIENT_STATUS_RDG_CAPABLE 0x00000200
240#define fCLIENT_STATUS_MCSFEEDBACK_CAPABLE 0x00000400
52b81c89 241#define fCLIENT_STATUS_APSD_CAPABLE 0x00000800 /* UAPSD STATION */
91980990 242
91980990 243#define fCLIENT_STATUS_RALINK_CHIPSET 0x00100000
cc277069
BZ
244/* */
245/* STA configuration flags */
246/* */
91980990 247
cc277069 248/* 802.11n Operating Mode Definition. 0-3 also used in ASICUPdateProtect switch case */
91980990
GKH
249#define HT_NO_PROTECT 0
250#define HT_LEGACY_PROTECT 1
251#define HT_40_PROTECT 2
252#define HT_2040_PROTECT 3
253#define HT_RTSCTS_6M 7
cc277069
BZ
254/*following is our own definition in order to turn on our ASIC protection register in INFRASTRUCTURE. */
255#define HT_ATHEROS 8 /* rt2860c has problem with atheros chip. we need to turn on RTS/CTS . */
256#define HT_FORCERTSCTS 9 /* Force turn on RTS/CTS first. then go to evaluate if this force RTS is necessary. */
91980990 257
cc277069
BZ
258/* */
259/* RX Packet Filter control flags. Apply on pAd->PacketFilter */
260/* */
91980990
GKH
261#define fRX_FILTER_ACCEPT_DIRECT NDIS_PACKET_TYPE_DIRECTED
262#define fRX_FILTER_ACCEPT_MULTICAST NDIS_PACKET_TYPE_MULTICAST
263#define fRX_FILTER_ACCEPT_BROADCAST NDIS_PACKET_TYPE_BROADCAST
264#define fRX_FILTER_ACCEPT_ALL_MULTICAST NDIS_PACKET_TYPE_ALL_MULTICAST
ca97b838 265#define fRX_FILTER_ACCEPT_PROMISCUOUS NDIS_PACKET_TYPE_PROMISCUOUS
91980990 266
cc277069
BZ
267/* */
268/* Error code section */
269/* */
270/* NDIS_ERROR_CODE_ADAPTER_NOT_FOUND */
91980990
GKH
271#define ERRLOG_READ_PCI_SLOT_FAILED 0x00000101L
272#define ERRLOG_WRITE_PCI_SLOT_FAILED 0x00000102L
273#define ERRLOG_VENDOR_DEVICE_NOMATCH 0x00000103L
274
cc277069 275/* NDIS_ERROR_CODE_ADAPTER_DISABLED */
91980990
GKH
276#define ERRLOG_BUS_MASTER_DISABLED 0x00000201L
277
cc277069 278/* NDIS_ERROR_CODE_UNSUPPORTED_CONFIGURATION */
91980990
GKH
279#define ERRLOG_INVALID_SPEED_DUPLEX 0x00000301L
280#define ERRLOG_SET_SECONDARY_FAILED 0x00000302L
281
cc277069 282/* NDIS_ERROR_CODE_OUT_OF_RESOURCES */
91980990
GKH
283#define ERRLOG_OUT_OF_MEMORY 0x00000401L
284#define ERRLOG_OUT_OF_SHARED_MEMORY 0x00000402L
285#define ERRLOG_OUT_OF_MAP_REGISTERS 0x00000403L
286#define ERRLOG_OUT_OF_BUFFER_POOL 0x00000404L
287#define ERRLOG_OUT_OF_NDIS_BUFFER 0x00000405L
288#define ERRLOG_OUT_OF_PACKET_POOL 0x00000406L
289#define ERRLOG_OUT_OF_NDIS_PACKET 0x00000407L
290#define ERRLOG_OUT_OF_LOOKASIDE_MEMORY 0x00000408L
291
cc277069 292/* NDIS_ERROR_CODE_HARDWARE_FAILURE */
91980990
GKH
293#define ERRLOG_SELFTEST_FAILED 0x00000501L
294#define ERRLOG_INITIALIZE_ADAPTER 0x00000502L
295#define ERRLOG_REMOVE_MINIPORT 0x00000503L
296
cc277069 297/* NDIS_ERROR_CODE_RESOURCE_CONFLICT */
91980990
GKH
298#define ERRLOG_MAP_IO_SPACE 0x00000601L
299#define ERRLOG_QUERY_ADAPTER_RESOURCES 0x00000602L
300#define ERRLOG_NO_IO_RESOURCE 0x00000603L
301#define ERRLOG_NO_INTERRUPT_RESOURCE 0x00000604L
302#define ERRLOG_NO_MEMORY_RESOURCE 0x00000605L
303
cc277069 304/* WDS definition */
91980990 305#define MAX_WDS_ENTRY 4
cc277069 306#define WDS_PAIRWISE_KEY_OFFSET 60 /* WDS links uses pairwise key#60 ~ 63 in ASIC pairwise key table */
91980990
GKH
307
308#define WDS_DISABLE_MODE 0
309#define WDS_RESTRICT_MODE 1
310#define WDS_BRIDGE_MODE 2
311#define WDS_REPEATER_MODE 3
312#define WDS_LAZY_MODE 4
313
91980990
GKH
314#define MAX_MESH_NUM 0
315
316#define MAX_APCLI_NUM 0
91980990
GKH
317
318#define MAX_MBSSID_NUM 1
319#ifdef MBSS_SUPPORT
320#undef MAX_MBSSID_NUM
321#define MAX_MBSSID_NUM (8 - MAX_MESH_NUM - MAX_APCLI_NUM)
cc277069 322#endif /* MBSS_SUPPORT // */
91980990
GKH
323
324/* sanity check for apidx */
325#define MBSS_MR_APIDX_SANITY_CHECK(apidx) \
326 { if (apidx > MAX_MBSSID_NUM) { \
ca97b838 327 DBGPRINT(RT_DEBUG_ERROR, ("%s> Error! apidx = %d > MAX_MBSSID_NUM!\n", __func__, apidx)); \
91980990
GKH
328 apidx = MAIN_MBSSID; } }
329
330#define VALID_WCID(_wcid) ((_wcid) > 0 && (_wcid) < MAX_LEN_OF_MAC_TABLE )
331
332#define MAIN_MBSSID 0
333#define FIRST_MBSSID 1
334
91980990 335#define MAX_BEACON_SIZE 512
cc277069
BZ
336/* If the MAX_MBSSID_NUM is larger than 6, */
337/* it shall reserve some WCID space(wcid 222~253) for beacon frames. */
338/* - these wcid 238~253 are reserved for beacon#6(ra6). */
339/* - these wcid 222~237 are reserved for beacon#7(ra7). */
91980990
GKH
340#if defined(MAX_MBSSID_NUM) && (MAX_MBSSID_NUM == 8)
341#define HW_RESERVED_WCID 222
342#elif defined(MAX_MBSSID_NUM) && (MAX_MBSSID_NUM == 7)
343#define HW_RESERVED_WCID 238
344#else
345#define HW_RESERVED_WCID 255
346#endif
347
cc277069 348/* Then dedicate wcid of DFS and Carrier-Sense. */
91980990
GKH
349#define DFS_CTS_WCID (HW_RESERVED_WCID - 1)
350#define CS_CTS_WCID (HW_RESERVED_WCID - 2)
351#define LAST_SPECIFIC_WCID (HW_RESERVED_WCID - 2)
352
cc277069
BZ
353/* If MAX_MBSSID_NUM is 8, the maximum available wcid for the associated STA is 211. */
354/* If MAX_MBSSID_NUM is 7, the maximum available wcid for the associated STA is 228. */
91980990
GKH
355#define MAX_AVAILABLE_CLIENT_WCID (LAST_SPECIFIC_WCID - MAX_MBSSID_NUM - 1)
356
cc277069
BZ
357/* TX need WCID to find Cipher Key */
358/* these wcid 212 ~ 219 are reserved for bc/mc packets if MAX_MBSSID_NUM is 8. */
91980990
GKH
359#define GET_GroupKey_WCID(__wcid, __bssidx) \
360 { \
361 __wcid = LAST_SPECIFIC_WCID - (MAX_MBSSID_NUM) + __bssidx; \
362 }
363
364#define IsGroupKeyWCID(__wcid) (((__wcid) < LAST_SPECIFIC_WCID) && ((__wcid) >= (LAST_SPECIFIC_WCID - (MAX_MBSSID_NUM))))
365
cc277069 366/* definition to support multiple BSSID */
91980990
GKH
367#define BSS0 0
368#define BSS1 1
369#define BSS2 2
370#define BSS3 3
371#define BSS4 4
372#define BSS5 5
373#define BSS6 6
374#define BSS7 7
375
cc277069
BZ
376/*============================================================ */
377/* Length definitions */
91980990
GKH
378#define PEER_KEY_NO 2
379#define MAC_ADDR_LEN 6
380#define TIMESTAMP_LEN 8
cc277069
BZ
381#define MAX_LEN_OF_SUPPORTED_RATES MAX_LENGTH_OF_SUPPORT_RATES /* 1, 2, 5.5, 11, 6, 9, 12, 18, 24, 36, 48, 54 */
382#define MAX_LEN_OF_KEY 32 /* 32 octets == 256 bits, Redefine for WPA */
383#define MAX_NUM_OF_CHANNELS MAX_NUM_OF_CHS /* 14 channels @2.4G + 12@UNII + 4 @MMAC + 11 @HiperLAN2 + 7 @Japan + 1 as NULL termination */
384#define MAX_NUM_OF_11JCHANNELS 20 /* 14 channels @2.4G + 12@UNII + 4 @MMAC + 11 @HiperLAN2 + 7 @Japan + 1 as NULL termination */
91980990
GKH
385#define MAX_LEN_OF_SSID 32
386#define CIPHER_TEXT_LEN 128
387#define HASH_TABLE_SIZE 256
cc277069 388#define MAX_VIE_LEN 1024 /* New for WPA cipher suite variable IE sizes. */
91980990 389#define MAX_SUPPORT_MCS 32
ca97b838 390#define MAX_NUM_OF_BBP_LATCH 140
91980990 391
cc277069
BZ
392/*============================================================ */
393/* ASIC WCID Table definition. */
394/*============================================================ */
395#define BSSID_WCID 1 /* in infra mode, always put bssid with this WCID */
91980990
GKH
396#define MCAST_WCID 0x0
397#define BSS0Mcast_WCID 0x0
398#define BSS1Mcast_WCID 0xf8
399#define BSS2Mcast_WCID 0xf9
400#define BSS3Mcast_WCID 0xfa
401#define BSS4Mcast_WCID 0xfb
402#define BSS5Mcast_WCID 0xfc
403#define BSS6Mcast_WCID 0xfd
404#define BSS7Mcast_WCID 0xfe
405#define RESERVED_WCID 0xff
406
407#define MAX_NUM_OF_ACL_LIST MAX_NUMBER_OF_ACL
408
cc277069 409#define MAX_LEN_OF_MAC_TABLE MAX_NUMBER_OF_MAC /* if MAX_MBSSID_NUM is 8, this value can't be larger than 211 */
91980990
GKH
410
411#if MAX_LEN_OF_MAC_TABLE>MAX_AVAILABLE_CLIENT_WCID
412#error MAX_LEN_OF_MAC_TABLE can not be larger than MAX_AVAILABLE_CLIENT_WCID!!!!
413#endif
414
415#define MAX_NUM_OF_WDS_LINK_PERBSSID 3
416#define MAX_NUM_OF_WDS_LINK (MAX_NUM_OF_WDS_LINK_PERBSSID*MAX_MBSSID_NUM)
417#define MAX_NUM_OF_EVENT MAX_NUMBER_OF_EVENT
418#define WDS_LINK_START_WCID (MAX_LEN_OF_MAC_TABLE-1)
419
420#define NUM_OF_TID 8
421#define MAX_AID_BA 4
cc277069
BZ
422#define MAX_LEN_OF_BA_REC_TABLE ((NUM_OF_TID * MAX_LEN_OF_MAC_TABLE)/2) /* (NUM_OF_TID*MAX_AID_BA + 32) //Block ACK recipient */
423#define MAX_LEN_OF_BA_ORI_TABLE ((NUM_OF_TID * MAX_LEN_OF_MAC_TABLE)/2) /* (NUM_OF_TID*MAX_AID_BA + 32) // Block ACK originator */
91980990
GKH
424#define MAX_LEN_OF_BSS_TABLE 64
425#define MAX_REORDERING_MPDU_NUM 512
426
cc277069 427/* key related definitions */
91980990 428#define SHARE_KEY_NUM 4
cc277069
BZ
429#define MAX_LEN_OF_SHARE_KEY 16 /* byte count */
430#define MAX_LEN_OF_PEER_KEY 16 /* byte count */
431#define PAIRWISE_KEY_NUM 64 /* in MAC ASIC pairwise key table */
91980990
GKH
432#define GROUP_KEY_NUM 4
433#define PMK_LEN 32
cc277069
BZ
434#define WDS_PAIRWISE_KEY_OFFSET 60 /* WDS links uses pairwise key#60 ~ 63 in ASIC pairwise key table */
435#define PMKID_NO 4 /* Number of PMKID saved supported */
91980990
GKH
436#define MAX_LEN_OF_MLME_BUFFER 2048
437
cc277069 438/* power status related definitions */
91980990
GKH
439#define PWR_ACTIVE 0
440#define PWR_SAVE 1
cc277069 441#define PWR_MMPS 2 /*MIMO power save */
91980990 442
cc277069 443/* Auth and Assoc mode related definitions */
91980990
GKH
444#define AUTH_MODE_OPEN 0x00
445#define AUTH_MODE_KEY 0x01
446
cc277069
BZ
447/* BSS Type definitions */
448#define BSS_ADHOC 0 /* = Ndis802_11IBSS */
449#define BSS_INFRA 1 /* = Ndis802_11Infrastructure */
450#define BSS_ANY 2 /* = Ndis802_11AutoUnknown */
451#define BSS_MONITOR 3 /* = Ndis802_11Monitor */
91980990 452
cc277069 453/* Reason code definitions */
91980990
GKH
454#define REASON_RESERVED 0
455#define REASON_UNSPECIFY 1
456#define REASON_NO_LONGER_VALID 2
457#define REASON_DEAUTH_STA_LEAVING 3
458#define REASON_DISASSOC_INACTIVE 4
459#define REASON_DISASSPC_AP_UNABLE 5
460#define REASON_CLS2ERR 6
461#define REASON_CLS3ERR 7
462#define REASON_DISASSOC_STA_LEAVING 8
463#define REASON_STA_REQ_ASSOC_NOT_AUTH 9
464#define REASON_INVALID_IE 13
465#define REASON_MIC_FAILURE 14
466#define REASON_4_WAY_TIMEOUT 15
467#define REASON_GROUP_KEY_HS_TIMEOUT 16
468#define REASON_IE_DIFFERENT 17
469#define REASON_MCIPHER_NOT_VALID 18
470#define REASON_UCIPHER_NOT_VALID 19
471#define REASON_AKMP_NOT_VALID 20
472#define REASON_UNSUPPORT_RSNE_VER 21
473#define REASON_INVALID_RSNE_CAP 22
474#define REASON_8021X_AUTH_FAIL 23
475#define REASON_CIPHER_SUITE_REJECTED 24
476#define REASON_DECLINED 37
477
478#define REASON_QOS_UNSPECIFY 32
479#define REASON_QOS_LACK_BANDWIDTH 33
480#define REASON_POOR_CHANNEL_CONDITION 34
481#define REASON_QOS_OUTSIDE_TXOP_LIMITION 35
482#define REASON_QOS_QSTA_LEAVING_QBSS 36
483#define REASON_QOS_UNWANTED_MECHANISM 37
484#define REASON_QOS_MECH_SETUP_REQUIRED 38
485#define REASON_QOS_REQUEST_TIMEOUT 39
486#define REASON_QOS_CIPHER_NOT_SUPPORT 45
487
cc277069 488/* Status code definitions */
91980990
GKH
489#define MLME_SUCCESS 0
490#define MLME_UNSPECIFY_FAIL 1
491#define MLME_CANNOT_SUPPORT_CAP 10
492#define MLME_REASSOC_DENY_ASSOC_EXIST 11
493#define MLME_ASSOC_DENY_OUT_SCOPE 12
494#define MLME_ALG_NOT_SUPPORT 13
495#define MLME_SEQ_NR_OUT_OF_SEQUENCE 14
496#define MLME_REJ_CHALLENGE_FAILURE 15
497#define MLME_REJ_TIMEOUT 16
498#define MLME_ASSOC_REJ_UNABLE_HANDLE_STA 17
499#define MLME_ASSOC_REJ_DATA_RATE 18
500
501#define MLME_ASSOC_REJ_NO_EXT_RATE 22
502#define MLME_ASSOC_REJ_NO_EXT_RATE_PBCC 23
503#define MLME_ASSOC_REJ_NO_CCK_OFDM 24
504
505#define MLME_QOS_UNSPECIFY 32
506#define MLME_REQUEST_DECLINED 37
507#define MLME_REQUEST_WITH_INVALID_PARAM 38
ca97b838
BZ
508#define MLME_INVALID_GROUP_CIPHER 41
509#define MLME_INVALID_PAIRWISE_CIPHER 42
510#define MLME_INVALID_AKMP 43
91980990
GKH
511#define MLME_DLS_NOT_ALLOW_IN_QBSS 48
512#define MLME_DEST_STA_NOT_IN_QBSS 49
513#define MLME_DEST_STA_IS_NOT_A_QSTA 50
514
515#define MLME_INVALID_FORMAT 0x51
516#define MLME_FAIL_NO_RESOURCE 0x52
517#define MLME_STATE_MACHINE_REJECT 0x53
518#define MLME_MAC_TABLE_FAIL 0x54
519
cc277069 520/* IE code */
91980990
GKH
521#define IE_SSID 0
522#define IE_SUPP_RATES 1
523#define IE_FH_PARM 2
524#define IE_DS_PARM 3
525#define IE_CF_PARM 4
526#define IE_TIM 5
527#define IE_IBSS_PARM 6
cc277069
BZ
528#define IE_COUNTRY 7 /* 802.11d */
529#define IE_802_11D_REQUEST 10 /* 802.11d */
530#define IE_QBSS_LOAD 11 /* 802.11e d9 */
531#define IE_EDCA_PARAMETER 12 /* 802.11e d9 */
532#define IE_TSPEC 13 /* 802.11e d9 */
533#define IE_TCLAS 14 /* 802.11e d9 */
534#define IE_SCHEDULE 15 /* 802.11e d9 */
91980990 535#define IE_CHALLENGE_TEXT 16
cc277069
BZ
536#define IE_POWER_CONSTRAINT 32 /* 802.11h d3.3 */
537#define IE_POWER_CAPABILITY 33 /* 802.11h d3.3 */
538#define IE_TPC_REQUEST 34 /* 802.11h d3.3 */
539#define IE_TPC_REPORT 35 /* 802.11h d3.3 */
540#define IE_SUPP_CHANNELS 36 /* 802.11h d3.3 */
541#define IE_CHANNEL_SWITCH_ANNOUNCEMENT 37 /* 802.11h d3.3 */
542#define IE_MEASUREMENT_REQUEST 38 /* 802.11h d3.3 */
543#define IE_MEASUREMENT_REPORT 39 /* 802.11h d3.3 */
544#define IE_QUIET 40 /* 802.11h d3.3 */
545#define IE_IBSS_DFS 41 /* 802.11h d3.3 */
546#define IE_ERP 42 /* 802.11g */
547#define IE_TS_DELAY 43 /* 802.11e d9 */
548#define IE_TCLAS_PROCESSING 44 /* 802.11e d9 */
549#define IE_QOS_CAPABILITY 46 /* 802.11e d6 */
550#define IE_HT_CAP 45 /* 802.11n d1. HT CAPABILITY. ELEMENT ID TBD */
551#define IE_AP_CHANNEL_REPORT 51 /* 802.11k d6 */
552#define IE_HT_CAP2 52 /* 802.11n d1. HT CAPABILITY. ELEMENT ID TBD */
553#define IE_RSN 48 /* 802.11i d3.0 */
554#define IE_WPA2 48 /* WPA2 */
555#define IE_EXT_SUPP_RATES 50 /* 802.11g */
556#define IE_SUPP_REG_CLASS 59 /* 802.11y. Supported regulatory classes. */
557#define IE_EXT_CHANNEL_SWITCH_ANNOUNCEMENT 60 /* 802.11n */
558#define IE_ADD_HT 61 /* 802.11n d1. ADDITIONAL HT CAPABILITY. ELEMENT ID TBD */
559#define IE_ADD_HT2 53 /* 802.11n d1. ADDITIONAL HT CAPABILITY. ELEMENT ID TBD */
560
561/* For 802.11n D3.03 */
562/*#define IE_NEW_EXT_CHA_OFFSET 62 // 802.11n d1. New extension channel offset elemet */
563#define IE_SECONDARY_CH_OFFSET 62 /* 802.11n D3.03 Secondary Channel Offset element */
564#define IE_WAPI 68 /* WAPI information element */
565#define IE_2040_BSS_COEXIST 72 /* 802.11n D3.0.3 */
566#define IE_2040_BSS_INTOLERANT_REPORT 73 /* 802.11n D3.03 */
567#define IE_OVERLAPBSS_SCAN_PARM 74 /* 802.11n D3.03 */
568#define IE_EXT_CAPABILITY 127 /* 802.11n D3.03 */
569
570#define IE_WPA 221 /* WPA */
571#define IE_VENDOR_SPECIFIC 221 /* Wifi WMM (WME) */
572
573#define OUI_BROADCOM_HT 51 /* */
574#define OUI_BROADCOM_HTADD 52 /* */
575#define OUI_PREN_HT_CAP 51 /* */
576#define OUI_PREN_ADD_HT 52 /* */
577
578/* CCX information */
579#define IE_AIRONET_CKIP 133 /* CCX1.0 ID 85H for CKIP */
580#define IE_AP_TX_POWER 150 /* CCX 2.0 for AP transmit power */
581#define IE_MEASUREMENT_CAPABILITY 221 /* CCX 2.0 */
91980990 582#define IE_CCX_V2 221
cc277069
BZ
583#define IE_AIRONET_IPADDRESS 149 /* CCX ID 95H for IP Address */
584#define IE_AIRONET_CCKMREASSOC 156 /* CCX ID 9CH for CCKM Reassociation Request element */
91980990
GKH
585#define CKIP_NEGOTIATION_LENGTH 30
586#define AIRONET_IPADDRESS_LENGTH 10
587#define AIRONET_CCKMREASSOC_LENGTH 24
588
cc277069
BZ
589/* ======================================================== */
590/* MLME state machine definition */
591/* ======================================================== */
91980990 592
cc277069 593/* STA MLME state mahcines */
91980990
GKH
594#define ASSOC_STATE_MACHINE 1
595#define AUTH_STATE_MACHINE 2
596#define AUTH_RSP_STATE_MACHINE 3
597#define SYNC_STATE_MACHINE 4
598#define MLME_CNTL_STATE_MACHINE 5
599#define WPA_PSK_STATE_MACHINE 6
cc277069 600/*#define LEAP_STATE_MACHINE 7 */
91980990
GKH
601#define AIRONET_STATE_MACHINE 8
602#define ACTION_STATE_MACHINE 9
603
cc277069 604/* AP MLME state machines */
91980990
GKH
605#define AP_ASSOC_STATE_MACHINE 11
606#define AP_AUTH_STATE_MACHINE 12
91980990
GKH
607#define AP_SYNC_STATE_MACHINE 14
608#define AP_CNTL_STATE_MACHINE 15
ca97b838
BZ
609#define WSC_STATE_MACHINE 17
610#define WSC_UPNP_STATE_MACHINE 18
611
ca97b838
BZ
612#define WPA_STATE_MACHINE 23
613
cc277069
BZ
614/* */
615/* STA's CONTROL/CONNECT state machine: states, events, total function # */
616/* */
91980990
GKH
617#define CNTL_IDLE 0
618#define CNTL_WAIT_DISASSOC 1
619#define CNTL_WAIT_JOIN 2
620#define CNTL_WAIT_REASSOC 3
621#define CNTL_WAIT_START 4
622#define CNTL_WAIT_AUTH 5
623#define CNTL_WAIT_ASSOC 6
624#define CNTL_WAIT_AUTH2 7
625#define CNTL_WAIT_OID_LIST_SCAN 8
626#define CNTL_WAIT_OID_DISASSOC 9
ca97b838 627#ifdef RTMP_MAC_USB
3a32ed12 628#define CNTL_WAIT_SCAN_FOR_CONNECT 10
cc277069 629#endif /* RTMP_MAC_USB // */
91980990
GKH
630
631#define MT2_ASSOC_CONF 34
632#define MT2_AUTH_CONF 35
633#define MT2_DEAUTH_CONF 36
634#define MT2_DISASSOC_CONF 37
635#define MT2_REASSOC_CONF 38
636#define MT2_PWR_MGMT_CONF 39
637#define MT2_JOIN_CONF 40
638#define MT2_SCAN_CONF 41
639#define MT2_START_CONF 42
640#define MT2_GET_CONF 43
641#define MT2_SET_CONF 44
642#define MT2_RESET_CONF 45
ca97b838 643#define MT2_FT_OTD_CONF 46
91980990
GKH
644#define MT2_MLME_ROAMING_REQ 52
645
646#define CNTL_FUNC_SIZE 1
647
cc277069
BZ
648/* */
649/* STA's ASSOC state machine: states, events, total function # */
650/* */
91980990
GKH
651#define ASSOC_IDLE 0
652#define ASSOC_WAIT_RSP 1
653#define REASSOC_WAIT_RSP 2
654#define DISASSOC_WAIT_RSP 3
655#define MAX_ASSOC_STATE 4
656
657#define ASSOC_MACHINE_BASE 0
658#define MT2_MLME_ASSOC_REQ 0
659#define MT2_MLME_REASSOC_REQ 1
660#define MT2_MLME_DISASSOC_REQ 2
661#define MT2_PEER_DISASSOC_REQ 3
662#define MT2_PEER_ASSOC_REQ 4
663#define MT2_PEER_ASSOC_RSP 5
664#define MT2_PEER_REASSOC_REQ 6
665#define MT2_PEER_REASSOC_RSP 7
666#define MT2_DISASSOC_TIMEOUT 8
667#define MT2_ASSOC_TIMEOUT 9
668#define MT2_REASSOC_TIMEOUT 10
669#define MAX_ASSOC_MSG 11
670
671#define ASSOC_FUNC_SIZE (MAX_ASSOC_STATE * MAX_ASSOC_MSG)
672
cc277069
BZ
673/* */
674/* ACT state machine: states, events, total function # */
675/* */
91980990
GKH
676#define ACT_IDLE 0
677#define MAX_ACT_STATE 1
678
679#define ACT_MACHINE_BASE 0
680
cc277069
BZ
681/*Those PEER_xx_CATE number is based on real Categary value in IEEE spec. Please don'es modify it by your self. */
682/*Category */
91980990
GKH
683#define MT2_PEER_SPECTRUM_CATE 0
684#define MT2_PEER_QOS_CATE 1
685#define MT2_PEER_DLS_CATE 2
686#define MT2_PEER_BA_CATE 3
687#define MT2_PEER_PUBLIC_CATE 4
688#define MT2_PEER_RM_CATE 5
ca97b838 689/* "FT_CATEGORY_BSS_TRANSITION equal to 6" is defined file of "dot11r_ft.h" */
cc277069 690#define MT2_PEER_HT_CATE 7 /* 7.4.7 */
91980990 691#define MAX_PEER_CATE_MSG 7
ca97b838 692
91980990
GKH
693#define MT2_MLME_ADD_BA_CATE 8
694#define MT2_MLME_ORI_DELBA_CATE 9
695#define MT2_MLME_REC_DELBA_CATE 10
696#define MT2_MLME_QOS_CATE 11
697#define MT2_MLME_DLS_CATE 12
698#define MT2_ACT_INVALID 13
699#define MAX_ACT_MSG 14
700
cc277069 701/*Category field */
91980990
GKH
702#define CATEGORY_SPECTRUM 0
703#define CATEGORY_QOS 1
704#define CATEGORY_DLS 2
705#define CATEGORY_BA 3
706#define CATEGORY_PUBLIC 4
707#define CATEGORY_RM 5
708#define CATEGORY_HT 7
709
cc277069 710/* DLS Action frame definition */
91980990
GKH
711#define ACTION_DLS_REQUEST 0
712#define ACTION_DLS_RESPONSE 1
713#define ACTION_DLS_TEARDOWN 2
714
cc277069
BZ
715/*Spectrum Action field value 802.11h 7.4.1 */
716#define SPEC_MRQ 0 /* Request */
717#define SPEC_MRP 1 /*Report */
91980990
GKH
718#define SPEC_TPCRQ 2
719#define SPEC_TPCRP 3
720#define SPEC_CHANNEL_SWITCH 4
721
cc277069 722/*BA Action field value */
91980990
GKH
723#define ADDBA_REQ 0
724#define ADDBA_RESP 1
725#define DELBA 2
726
cc277069
BZ
727/*Public's Action field value in Public Category. Some in 802.11y and some in 11n */
728#define ACTION_BSS_2040_COEXIST 0 /* 11n */
729#define ACTION_DSE_ENABLEMENT 1 /* 11y D9.0 */
730#define ACTION_DSE_DEENABLEMENT 2 /* 11y D9.0 */
731#define ACTION_DSE_REG_LOCATION_ANNOUNCE 3 /* 11y D9.0 */
732#define ACTION_EXT_CH_SWITCH_ANNOUNCE 4 /* 11y D9.0 */
733#define ACTION_DSE_MEASUREMENT_REQ 5 /* 11y D9.0 */
734#define ACTION_DSE_MEASUREMENT_REPORT 6 /* 11y D9.0 */
735#define ACTION_MEASUREMENT_PILOT_ACTION 7 /* 11y D9.0 */
736#define ACTION_DSE_POWER_CONSTRAINT 8 /* 11y D9.0 */
737
738/*HT Action field value */
91980990
GKH
739#define NOTIFY_BW_ACTION 0
740#define SMPS_ACTION 1
741#define PSMP_ACTION 2
742#define SETPCO_ACTION 3
743#define MIMO_CHA_MEASURE_ACTION 4
744#define MIMO_N_BEACONFORM 5
745#define MIMO_BEACONFORM 6
746#define ANTENNA_SELECT 7
747#define HT_INFO_EXCHANGE 8
748
749#define ACT_FUNC_SIZE (MAX_ACT_STATE * MAX_ACT_MSG)
cc277069
BZ
750/* */
751/* STA's AUTHENTICATION state machine: states, evvents, total function # */
752/* */
91980990
GKH
753#define AUTH_REQ_IDLE 0
754#define AUTH_WAIT_SEQ2 1
755#define AUTH_WAIT_SEQ4 2
756#define MAX_AUTH_STATE 3
757
758#define AUTH_MACHINE_BASE 0
759#define MT2_MLME_AUTH_REQ 0
760#define MT2_PEER_AUTH_EVEN 1
761#define MT2_AUTH_TIMEOUT 2
762#define MAX_AUTH_MSG 3
763
764#define AUTH_FUNC_SIZE (MAX_AUTH_STATE * MAX_AUTH_MSG)
765
cc277069
BZ
766/* */
767/* STA's AUTH_RSP state machine: states, events, total function # */
768/* */
91980990
GKH
769#define AUTH_RSP_IDLE 0
770#define AUTH_RSP_WAIT_CHAL 1
771#define MAX_AUTH_RSP_STATE 2
772
773#define AUTH_RSP_MACHINE_BASE 0
774#define MT2_AUTH_CHALLENGE_TIMEOUT 0
775#define MT2_PEER_AUTH_ODD 1
776#define MT2_PEER_DEAUTH 2
777#define MAX_AUTH_RSP_MSG 3
778
779#define AUTH_RSP_FUNC_SIZE (MAX_AUTH_RSP_STATE * MAX_AUTH_RSP_MSG)
780
cc277069
BZ
781/* */
782/* STA's SYNC state machine: states, events, total function # */
783/* */
784#define SYNC_IDLE 0 /* merge NO_BSS,IBSS_IDLE,IBSS_ACTIVE and BSS in to 1 state */
91980990
GKH
785#define JOIN_WAIT_BEACON 1
786#define SCAN_LISTEN 2
787#define MAX_SYNC_STATE 3
788
789#define SYNC_MACHINE_BASE 0
790#define MT2_MLME_SCAN_REQ 0
791#define MT2_MLME_JOIN_REQ 1
792#define MT2_MLME_START_REQ 2
793#define MT2_PEER_BEACON 3
794#define MT2_PEER_PROBE_RSP 4
795#define MT2_PEER_ATIM 5
796#define MT2_SCAN_TIMEOUT 6
797#define MT2_BEACON_TIMEOUT 7
798#define MT2_ATIM_TIMEOUT 8
799#define MT2_PEER_PROBE_REQ 9
800#define MAX_SYNC_MSG 10
801
802#define SYNC_FUNC_SIZE (MAX_SYNC_STATE * MAX_SYNC_MSG)
803
cc277069 804/*Messages for the DLS state machine */
91980990
GKH
805#define DLS_IDLE 0
806#define MAX_DLS_STATE 1
807
808#define DLS_MACHINE_BASE 0
809#define MT2_MLME_DLS_REQ 0
810#define MT2_PEER_DLS_REQ 1
811#define MT2_PEER_DLS_RSP 2
812#define MT2_MLME_DLS_TEAR_DOWN 3
813#define MT2_PEER_DLS_TEAR_DOWN 4
814#define MAX_DLS_MSG 5
815
816#define DLS_FUNC_SIZE (MAX_DLS_STATE * MAX_DLS_MSG)
817
cc277069
BZ
818/* */
819/* WSC State machine: states, events, total function # */
820/* */
91980990 821
cc277069
BZ
822/* */
823/* AP's CONTROL/CONNECT state machine: states, events, total function # */
824/* */
91980990
GKH
825#define AP_CNTL_FUNC_SIZE 1
826
cc277069
BZ
827/* */
828/* AP's ASSOC state machine: states, events, total function # */
829/* */
91980990
GKH
830#define AP_ASSOC_IDLE 0
831#define AP_MAX_ASSOC_STATE 1
832
833#define AP_ASSOC_MACHINE_BASE 0
834#define APMT2_MLME_DISASSOC_REQ 0
835#define APMT2_PEER_DISASSOC_REQ 1
836#define APMT2_PEER_ASSOC_REQ 2
837#define APMT2_PEER_REASSOC_REQ 3
838#define APMT2_CLS3ERR 4
839#define AP_MAX_ASSOC_MSG 5
840
841#define AP_ASSOC_FUNC_SIZE (AP_MAX_ASSOC_STATE * AP_MAX_ASSOC_MSG)
842
cc277069
BZ
843/* */
844/* AP's AUTHENTICATION state machine: states, events, total function # */
845/* */
91980990
GKH
846#define AP_AUTH_REQ_IDLE 0
847#define AP_MAX_AUTH_STATE 1
848
849#define AP_AUTH_MACHINE_BASE 0
850#define APMT2_MLME_DEAUTH_REQ 0
851#define APMT2_CLS2ERR 1
91980990 852#define APMT2_PEER_DEAUTH 2
ca97b838
BZ
853#define APMT2_PEER_AUTH_REQ 3
854#define APMT2_PEER_AUTH_CONFIRM 4
855#define AP_MAX_AUTH_MSG 5
91980990 856
ca97b838 857#define AP_AUTH_FUNC_SIZE (AP_MAX_AUTH_STATE * AP_MAX_AUTH_MSG)
91980990 858
cc277069
BZ
859/* */
860/* AP's SYNC state machine: states, events, total function # */
861/* */
91980990
GKH
862#define AP_SYNC_IDLE 0
863#define AP_SCAN_LISTEN 1
864#define AP_MAX_SYNC_STATE 2
865
866#define AP_SYNC_MACHINE_BASE 0
867#define APMT2_PEER_PROBE_REQ 0
868#define APMT2_PEER_BEACON 1
869#define APMT2_MLME_SCAN_REQ 2
870#define APMT2_PEER_PROBE_RSP 3
871#define APMT2_SCAN_TIMEOUT 4
872#define APMT2_MLME_SCAN_CNCL 5
873#define AP_MAX_SYNC_MSG 6
874
875#define AP_SYNC_FUNC_SIZE (AP_MAX_SYNC_STATE * AP_MAX_SYNC_MSG)
876
cc277069
BZ
877/* */
878/* Common WPA state machine: states, events, total function # */
879/* */
ca97b838
BZ
880#define WPA_PTK 0
881#define MAX_WPA_PTK_STATE 1
882
883#define WPA_MACHINE_BASE 0
884#define MT2_EAPPacket 0
885#define MT2_EAPOLStart 1
886#define MT2_EAPOLLogoff 2
887#define MT2_EAPOLKey 3
888#define MT2_EAPOLASFAlert 4
889#define MAX_WPA_MSG 5
890
891#define WPA_FUNC_SIZE (MAX_WPA_PTK_STATE * MAX_WPA_MSG)
91980990 892
cc277069 893/* ============================================================================= */
91980990 894
cc277069 895/* value domain of 802.11 header FC.Tyte, which is b3..b2 of the 1st-byte of MAC header */
91980990
GKH
896#define BTYPE_MGMT 0
897#define BTYPE_CNTL 1
898#define BTYPE_DATA 2
899
cc277069 900/* value domain of 802.11 MGMT frame's FC.subtype, which is b7..4 of the 1st-byte of MAC header */
91980990
GKH
901#define SUBTYPE_ASSOC_REQ 0
902#define SUBTYPE_ASSOC_RSP 1
903#define SUBTYPE_REASSOC_REQ 2
904#define SUBTYPE_REASSOC_RSP 3
905#define SUBTYPE_PROBE_REQ 4
906#define SUBTYPE_PROBE_RSP 5
907#define SUBTYPE_BEACON 8
908#define SUBTYPE_ATIM 9
909#define SUBTYPE_DISASSOC 10
910#define SUBTYPE_AUTH 11
911#define SUBTYPE_DEAUTH 12
912#define SUBTYPE_ACTION 13
913#define SUBTYPE_ACTION_NO_ACK 14
914
cc277069 915/* value domain of 802.11 CNTL frame's FC.subtype, which is b7..4 of the 1st-byte of MAC header */
91980990
GKH
916#define SUBTYPE_WRAPPER 7
917#define SUBTYPE_BLOCK_ACK_REQ 8
918#define SUBTYPE_BLOCK_ACK 9
919#define SUBTYPE_PS_POLL 10
920#define SUBTYPE_RTS 11
921#define SUBTYPE_CTS 12
922#define SUBTYPE_ACK 13
923#define SUBTYPE_CFEND 14
924#define SUBTYPE_CFEND_CFACK 15
925
cc277069 926/* value domain of 802.11 DATA frame's FC.subtype, which is b7..4 of the 1st-byte of MAC header */
91980990
GKH
927#define SUBTYPE_DATA 0
928#define SUBTYPE_DATA_CFACK 1
929#define SUBTYPE_DATA_CFPOLL 2
930#define SUBTYPE_DATA_CFACK_CFPOLL 3
931#define SUBTYPE_NULL_FUNC 4
932#define SUBTYPE_CFACK 5
933#define SUBTYPE_CFPOLL 6
934#define SUBTYPE_CFACK_CFPOLL 7
935#define SUBTYPE_QDATA 8
936#define SUBTYPE_QDATA_CFACK 9
937#define SUBTYPE_QDATA_CFPOLL 10
938#define SUBTYPE_QDATA_CFACK_CFPOLL 11
939#define SUBTYPE_QOS_NULL 12
940#define SUBTYPE_QOS_CFACK 13
941#define SUBTYPE_QOS_CFPOLL 14
942#define SUBTYPE_QOS_CFACK_CFPOLL 15
943
cc277069
BZ
944/* ACK policy of QOS Control field bit 6:5 */
945#define NORMAL_ACK 0x00 /* b6:5 = 00 */
946#define NO_ACK 0x20 /* b6:5 = 01 */
947#define NO_EXPLICIT_ACK 0x40 /* b6:5 = 10 */
948#define BLOCK_ACK 0x60 /* b6:5 = 11 */
91980990 949
cc277069
BZ
950/* */
951/* rtmp_data.c use these definition */
952/* */
91980990
GKH
953#define LENGTH_802_11 24
954#define LENGTH_802_11_AND_H 30
955#define LENGTH_802_11_CRC_H 34
956#define LENGTH_802_11_CRC 28
957#define LENGTH_802_11_WITH_ADDR4 30
958#define LENGTH_802_3 14
959#define LENGTH_802_3_TYPE 2
960#define LENGTH_802_1_H 8
961#define LENGTH_EAPOL_H 4
962#define LENGTH_WMMQOS_H 2
963#define LENGTH_CRC 4
964#define MAX_SEQ_NUMBER 0x0fff
965#define LENGTH_802_3_NO_TYPE 12
52b81c89 966#define LENGTH_802_1Q 4 /* VLAN related */
91980990 967
cc277069 968/* STA_CSR4.field.TxResult */
91980990
GKH
969#define TX_RESULT_SUCCESS 0
970#define TX_RESULT_ZERO_LENGTH 1
971#define TX_RESULT_UNDER_RUN 2
972#define TX_RESULT_OHY_ERROR 4
973#define TX_RESULT_RETRY_FAIL 6
974
cc277069
BZ
975/* All PHY rate summary in TXD */
976/* Preamble MODE in TxD */
91980990
GKH
977#define MODE_CCK 0
978#define MODE_OFDM 1
91980990
GKH
979#define MODE_HTMIX 2
980#define MODE_HTGREENFIELD 3
1623267a 981
cc277069
BZ
982/* MCS for CCK. BW.SGI.STBC are reserved */
983#define MCS_LONGP_RATE_1 0 /* long preamble CCK 1Mbps */
984#define MCS_LONGP_RATE_2 1 /* long preamble CCK 1Mbps */
91980990
GKH
985#define MCS_LONGP_RATE_5_5 2
986#define MCS_LONGP_RATE_11 3
cc277069
BZ
987#define MCS_SHORTP_RATE_1 4 /* long preamble CCK 1Mbps. short is forbidden in 1Mbps */
988#define MCS_SHORTP_RATE_2 5 /* short preamble CCK 2Mbps */
91980990
GKH
989#define MCS_SHORTP_RATE_5_5 6
990#define MCS_SHORTP_RATE_11 7
cc277069
BZ
991/* To send duplicate legacy OFDM. set BW=BW_40. SGI.STBC are reserved */
992#define MCS_RATE_6 0 /* legacy OFDM */
993#define MCS_RATE_9 1 /* OFDM */
994#define MCS_RATE_12 2 /* OFDM */
995#define MCS_RATE_18 3 /* OFDM */
996#define MCS_RATE_24 4 /* OFDM */
997#define MCS_RATE_36 5 /* OFDM */
998#define MCS_RATE_48 6 /* OFDM */
999#define MCS_RATE_54 7 /* OFDM */
1000/* HT */
1001#define MCS_0 0 /* 1S */
91980990
GKH
1002#define MCS_1 1
1003#define MCS_2 2
1004#define MCS_3 3
1005#define MCS_4 4
1006#define MCS_5 5
1007#define MCS_6 6
1008#define MCS_7 7
cc277069 1009#define MCS_8 8 /* 2S */
91980990
GKH
1010#define MCS_9 9
1011#define MCS_10 10
1012#define MCS_11 11
1013#define MCS_12 12
1014#define MCS_13 13
1015#define MCS_14 14
1016#define MCS_15 15
cc277069 1017#define MCS_16 16 /* 3*3 */
91980990
GKH
1018#define MCS_17 17
1019#define MCS_18 18
1020#define MCS_19 19
1021#define MCS_20 20
1022#define MCS_21 21
1023#define MCS_22 22
1024#define MCS_23 23
1025#define MCS_32 32
1026#define MCS_AUTO 33
1027
cc277069
BZ
1028/* OID_HTPHYMODE */
1029/* MODE */
91980990
GKH
1030#define HTMODE_MM 0
1031#define HTMODE_GF 1
91980990 1032
cc277069 1033/* Fixed Tx MODE - HT, CCK or OFDM */
91980990
GKH
1034#define FIXED_TXMODE_HT 0
1035#define FIXED_TXMODE_CCK 1
1036#define FIXED_TXMODE_OFDM 2
cc277069 1037/* BW */
91980990
GKH
1038#define BW_20 BAND_WIDTH_20
1039#define BW_40 BAND_WIDTH_40
1040#define BW_BOTH BAND_WIDTH_BOTH
cc277069 1041#define BW_10 BAND_WIDTH_10 /* 802.11j has 10MHz. This definition is for internal usage. doesn't fill in the IE or other field. */
91980990 1042
cc277069
BZ
1043/* SHORTGI */
1044#define GI_400 GAP_INTERVAL_400 /* only support in HT mode */
91980990 1045#define GI_BOTH GAP_INTERVAL_BOTH
91980990 1046#define GI_800 GAP_INTERVAL_800
cc277069 1047/* STBC */
91980990 1048#define STBC_NONE 0
cc277069
BZ
1049#define STBC_USE 1 /* limited use in rt2860b phy */
1050#define RXSTBC_ONE 1 /* rx support of one spatial stream */
1051#define RXSTBC_TWO 2 /* rx support of 1 and 2 spatial stream */
1052#define RXSTBC_THR 3 /* rx support of 1~3 spatial stream */
1053/* MCS FEEDBACK */
1054#define MCSFBK_NONE 0 /* not support mcs feedback / */
1055#define MCSFBK_RSV 1 /* reserved */
1056#define MCSFBK_UNSOLICIT 2 /* only support unsolict mcs feedback */
1057#define MCSFBK_MRQ 3 /* response to both MRQ and unsolict mcs feedback */
1058
1059/* MIMO power safe */
91980990
GKH
1060#define MMPS_STATIC 0
1061#define MMPS_DYNAMIC 1
1062#define MMPS_RSV 2
1063#define MMPS_ENABLE 3
1064
cc277069 1065/* A-MSDU size */
91980990
GKH
1066#define AMSDU_0 0
1067#define AMSDU_1 1
1068
cc277069 1069/* MCS use 7 bits */
91980990
GKH
1070#define TXRATEMIMO 0x80
1071#define TXRATEMCS 0x7F
1072#define TXRATEOFDM 0x7F
1073#define RATE_1 0
1074#define RATE_2 1
1075#define RATE_5_5 2
1076#define RATE_11 3
cc277069
BZ
1077#define RATE_6 4 /* OFDM */
1078#define RATE_9 5 /* OFDM */
1079#define RATE_12 6 /* OFDM */
1080#define RATE_18 7 /* OFDM */
1081#define RATE_24 8 /* OFDM */
1082#define RATE_36 9 /* OFDM */
1083#define RATE_48 10 /* OFDM */
1084#define RATE_54 11 /* OFDM */
91980990
GKH
1085#define RATE_FIRST_OFDM_RATE RATE_6
1086#define RATE_LAST_OFDM_RATE RATE_54
cc277069
BZ
1087#define RATE_6_5 12 /* HT mix */
1088#define RATE_13 13 /* HT mix */
1089#define RATE_19_5 14 /* HT mix */
1090#define RATE_26 15 /* HT mix */
1091#define RATE_39 16 /* HT mix */
1092#define RATE_52 17 /* HT mix */
1093#define RATE_58_5 18 /* HT mix */
1094#define RATE_65 19 /* HT mix */
1095#define RATE_78 20 /* HT mix */
1096#define RATE_104 21 /* HT mix */
1097#define RATE_117 22 /* HT mix */
1098#define RATE_130 23 /* HT mix */
1099/*#define RATE_AUTO_SWITCH 255 // for StaCfg.FixedTxRate only */
91980990
GKH
1100#define HTRATE_0 12
1101#define RATE_FIRST_MM_RATE HTRATE_0
1102#define RATE_FIRST_HT_RATE HTRATE_0
1103#define RATE_LAST_HT_RATE HTRATE_0
1104
cc277069
BZ
1105/* pTxWI->txop */
1106#define IFS_HTTXOP 0 /* The txop will be handles by ASIC. */
91980990
GKH
1107#define IFS_PIFS 1
1108#define IFS_SIFS 2
1109#define IFS_BACKOFF 3
1110
cc277069 1111/* pTxD->RetryMode */
91980990
GKH
1112#define LONG_RETRY 1
1113#define SHORT_RETRY 0
1114
cc277069 1115/* Country Region definition */
91980990 1116#define REGION_MINIMUM_BG_BAND 0
cc277069
BZ
1117#define REGION_0_BG_BAND 0 /* 1-11 */
1118#define REGION_1_BG_BAND 1 /* 1-13 */
1119#define REGION_2_BG_BAND 2 /* 10-11 */
1120#define REGION_3_BG_BAND 3 /* 10-13 */
1121#define REGION_4_BG_BAND 4 /* 14 */
1122#define REGION_5_BG_BAND 5 /* 1-14 */
1123#define REGION_6_BG_BAND 6 /* 3-9 */
1124#define REGION_7_BG_BAND 7 /* 5-13 */
1125#define REGION_31_BG_BAND 31 /* 5-13 */
91980990
GKH
1126#define REGION_MAXIMUM_BG_BAND 7
1127
1128#define REGION_MINIMUM_A_BAND 0
cc277069
BZ
1129#define REGION_0_A_BAND 0 /* 36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165 */
1130#define REGION_1_A_BAND 1 /* 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140 */
1131#define REGION_2_A_BAND 2 /* 36, 40, 44, 48, 52, 56, 60, 64 */
1132#define REGION_3_A_BAND 3 /* 52, 56, 60, 64, 149, 153, 157, 161 */
1133#define REGION_4_A_BAND 4 /* 149, 153, 157, 161, 165 */
1134#define REGION_5_A_BAND 5 /* 149, 153, 157, 161 */
1135#define REGION_6_A_BAND 6 /* 36, 40, 44, 48 */
1136#define REGION_7_A_BAND 7 /* 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165, 169, 173 */
1137#define REGION_8_A_BAND 8 /* 52, 56, 60, 64 */
1138#define REGION_9_A_BAND 9 /* 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 132, 136, 140, 149, 153, 157, 161, 165 */
1139#define REGION_10_A_BAND 10 /* 36, 40, 44, 48, 149, 153, 157, 161, 165 */
1140#define REGION_11_A_BAND 11 /* 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 149, 153, 157, 161 */
1141#define REGION_12_A_BAND 12 /* 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140 */
1142#define REGION_13_A_BAND 13 /* 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161 */
1143#define REGION_14_A_BAND 14 /* 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165 */
1144#define REGION_15_A_BAND 15 /* 149, 153, 157, 161, 165, 169, 173 */
ca97b838 1145#define REGION_MAXIMUM_A_BAND 15
91980990 1146
cc277069 1147/* pTxD->CipherAlg */
91980990
GKH
1148#define CIPHER_NONE 0
1149#define CIPHER_WEP64 1
1150#define CIPHER_WEP128 2
1151#define CIPHER_TKIP 3
1152#define CIPHER_AES 4
1153#define CIPHER_CKIP64 5
1154#define CIPHER_CKIP128 6
cc277069 1155#define CIPHER_TKIP_NO_MIC 7 /* MIC appended by driver: not a valid value in hardware key table */
91980990
GKH
1156#define CIPHER_SMS4 8
1157
cc277069 1158/* LED Status. */
91980990
GKH
1159#define LED_LINK_DOWN 0
1160#define LED_LINK_UP 1
1161#define LED_RADIO_OFF 2
1162#define LED_RADIO_ON 3
1163#define LED_HALT 4
1164#define LED_WPS 5
1165#define LED_ON_SITE_SURVEY 6
1166#define LED_POWER_UP 7
1167
cc277069 1168/* value domain of pAd->LedCntl.LedMode and E2PROM */
91980990
GKH
1169#define LED_MODE_DEFAULT 0
1170#define LED_MODE_TWO_LED 1
cc277069
BZ
1171/*#define LED_MODE_SIGNAL_STREGTH 8 // EEPROM define =8 */
1172#define LED_MODE_SIGNAL_STREGTH 0x40 /* EEPROM define = 64 */
91980990 1173
cc277069 1174/* RC4 init value, used fro WEP & TKIP */
52b81c89 1175#define PPPINITFCS32 0xffffffff /* Initial FCS value */
91980990 1176
cc277069 1177/* value domain of pAd->StaCfg.PortSecured. 802.1X controlled port definition */
91980990
GKH
1178#define WPA_802_1X_PORT_SECURED 1
1179#define WPA_802_1X_PORT_NOT_SECURED 2
1180
1181#define PAIRWISE_KEY 1
1182#define GROUP_KEY 2
1183
cc277069 1184/*definition of DRS */
91980990
GKH
1185#define MAX_STEP_OF_TX_RATE_SWITCH 32
1186
cc277069 1187/* pre-allocated free NDIS PACKET/BUFFER poll for internal usage */
91980990
GKH
1188#define MAX_NUM_OF_FREE_NDIS_PACKET 128
1189
cc277069 1190/*Block ACK */
91980990
GKH
1191#define MAX_TX_REORDERBUF 64
1192#define MAX_RX_REORDERBUF 64
1193#define DEFAULT_TX_TIMEOUT 30
1194#define DEFAULT_RX_TIMEOUT 30
1195
cc277069 1196/* definition of Recipient or Originator */
91980990
GKH
1197#define I_RECIPIENT TRUE
1198#define I_ORIGINATOR FALSE
1199
1200#define DEFAULT_BBP_TX_POWER 0
1201#define DEFAULT_RF_TX_POWER 5
1202
1203#define MAX_INI_BUFFER_SIZE 4096
cc277069
BZ
1204#define MAX_PARAM_BUFFER_SIZE (2048) /* enough for ACL (18*64) */
1205 /*18 : the length of Mac address acceptable format "01:02:03:04:05:06;") */
1206 /*64 : MAX_NUM_OF_ACL_LIST */
1207/* definition of pAd->OpMode */
91980990
GKH
1208#define OPMODE_STA 0
1209#define OPMODE_AP 1
cc277069
BZ
1210/*#define OPMODE_L3_BRG 2 // as AP and STA at the same time */
1211
1212/* ========================= AP rtmp_def.h =========================== */
1213/* value domain for pAd->EventTab.Log[].Event */
1214#define EVENT_RESET_ACCESS_POINT 0 /* Log = "hh:mm:ss Restart Access Point" */
1215#define EVENT_ASSOCIATED 1 /* Log = "hh:mm:ss STA 00:01:02:03:04:05 associated" */
1216#define EVENT_DISASSOCIATED 2 /* Log = "hh:mm:ss STA 00:01:02:03:04:05 left this BSS" */
1217#define EVENT_AGED_OUT 3 /* Log = "hh:mm:ss STA 00:01:02:03:04:05 was aged-out and removed from this BSS" */
91980990
GKH
1218#define EVENT_COUNTER_M 4
1219#define EVENT_INVALID_PSK 5
1220#define EVENT_MAX_EVENT_TYPE 6
cc277069 1221/* ==== end of AP rtmp_def.h ============ */
91980990 1222
cc277069 1223/* definition RSSI Number */
91980990
GKH
1224#define RSSI_0 0
1225#define RSSI_1 1
1226#define RSSI_2 2
1227
cc277069
BZ
1228/* definition of radar detection */
1229#define RD_NORMAL_MODE 0 /* Not found radar signal */
1230#define RD_SWITCHING_MODE 1 /* Found radar signal, and doing channel switch */
1231#define RD_SILENCE_MODE 2 /* After channel switch, need to be silence a while to ensure radar not found */
91980990 1232
cc277069 1233/*Driver defined cid for mapping status and command. */
91980990
GKH
1234#define SLEEPCID 0x11
1235#define WAKECID 0x22
1236#define QUERYPOWERCID 0x33
1237#define OWNERMCU 0x1
1238#define OWNERCPU 0x0
1239
cc277069 1240/* MBSSID definition */
91980990
GKH
1241#define ENTRY_NOT_FOUND 0xFF
1242
91980990
GKH
1243/* After Linux 2.6.9,
1244 * VLAN module use Private (from user) interface flags (netdevice->priv_flags).
1245 * #define IFF_802_1Q_VLAN 0x1 -- 802.1Q VLAN device. in if.h
1246 * ref to ip_sabotage_out() [ out->priv_flags & IFF_802_1Q_VLAN ] in br_netfilter.c
1247 *
1248 * For this reason, we MUST use EVEN value in priv_flags
1249 */
1250#define INT_MAIN 0x0100
1251#define INT_MBSSID 0x0200
1252#define INT_WDS 0x0300
1253#define INT_APCLI 0x0400
1254#define INT_MESH 0x0500
1255
ca97b838
BZ
1256#define INF_MAIN_DEV_NAME "wlan"
1257#define INF_MBSSID_DEV_NAME "ra"
1258#define INF_WDS_DEV_NAME "wds"
1259#define INF_APCLI_DEV_NAME "apcli"
1260#define INF_MESH_DEV_NAME "mesh"
1261
cc277069 1262/* WEP Key TYPE */
91980990
GKH
1263#define WEP_HEXADECIMAL_TYPE 0
1264#define WEP_ASCII_TYPE 1
1265
cc277069 1266/* WIRELESS EVENTS definition */
91980990
GKH
1267/* Max number of char in custom event, refer to wireless_tools.28/wireless.20.h */
1268#define IW_CUSTOM_MAX_LEN 255 /* In bytes */
1269
cc277069 1270/* For system event - start */
91980990
GKH
1271#define IW_SYS_EVENT_FLAG_START 0x0200
1272#define IW_ASSOC_EVENT_FLAG 0x0200
1273#define IW_DISASSOC_EVENT_FLAG 0x0201
1274#define IW_DEAUTH_EVENT_FLAG 0x0202
1275#define IW_AGEOUT_EVENT_FLAG 0x0203
1276#define IW_COUNTER_MEASURES_EVENT_FLAG 0x0204
1277#define IW_REPLAY_COUNTER_DIFF_EVENT_FLAG 0x0205
1278#define IW_RSNIE_DIFF_EVENT_FLAG 0x0206
1279#define IW_MIC_DIFF_EVENT_FLAG 0x0207
1280#define IW_ICV_ERROR_EVENT_FLAG 0x0208
1281#define IW_MIC_ERROR_EVENT_FLAG 0x0209
1282#define IW_GROUP_HS_TIMEOUT_EVENT_FLAG 0x020A
1283#define IW_PAIRWISE_HS_TIMEOUT_EVENT_FLAG 0x020B
1284#define IW_RSNIE_SANITY_FAIL_EVENT_FLAG 0x020C
1285#define IW_SET_KEY_DONE_WPA1_EVENT_FLAG 0x020D
1286#define IW_SET_KEY_DONE_WPA2_EVENT_FLAG 0x020E
1287#define IW_STA_LINKUP_EVENT_FLAG 0x020F
1288#define IW_STA_LINKDOWN_EVENT_FLAG 0x0210
1289#define IW_SCAN_COMPLETED_EVENT_FLAG 0x0211
1290#define IW_SCAN_ENQUEUE_FAIL_EVENT_FLAG 0x0212
cc277069 1291/* if add new system event flag, please upadte the IW_SYS_EVENT_FLAG_END */
91980990
GKH
1292#define IW_SYS_EVENT_FLAG_END 0x0212
1293#define IW_SYS_EVENT_TYPE_NUM (IW_SYS_EVENT_FLAG_END - IW_SYS_EVENT_FLAG_START + 1)
cc277069 1294/* For system event - end */
91980990 1295
cc277069 1296/* For spoof attack event - start */
91980990
GKH
1297#define IW_SPOOF_EVENT_FLAG_START 0x0300
1298#define IW_CONFLICT_SSID_EVENT_FLAG 0x0300
1299#define IW_SPOOF_ASSOC_RESP_EVENT_FLAG 0x0301
1300#define IW_SPOOF_REASSOC_RESP_EVENT_FLAG 0x0302
1301#define IW_SPOOF_PROBE_RESP_EVENT_FLAG 0x0303
1302#define IW_SPOOF_BEACON_EVENT_FLAG 0x0304
1303#define IW_SPOOF_DISASSOC_EVENT_FLAG 0x0305
1304#define IW_SPOOF_AUTH_EVENT_FLAG 0x0306
1305#define IW_SPOOF_DEAUTH_EVENT_FLAG 0x0307
1306#define IW_SPOOF_UNKNOWN_MGMT_EVENT_FLAG 0x0308
1307#define IW_REPLAY_ATTACK_EVENT_FLAG 0x0309
cc277069 1308/* if add new spoof attack event flag, please upadte the IW_SPOOF_EVENT_FLAG_END */
91980990
GKH
1309#define IW_SPOOF_EVENT_FLAG_END 0x0309
1310#define IW_SPOOF_EVENT_TYPE_NUM (IW_SPOOF_EVENT_FLAG_END - IW_SPOOF_EVENT_FLAG_START + 1)
cc277069 1311/* For spoof attack event - end */
91980990 1312
cc277069 1313/* For flooding attack event - start */
91980990
GKH
1314#define IW_FLOOD_EVENT_FLAG_START 0x0400
1315#define IW_FLOOD_AUTH_EVENT_FLAG 0x0400
1316#define IW_FLOOD_ASSOC_REQ_EVENT_FLAG 0x0401
1317#define IW_FLOOD_REASSOC_REQ_EVENT_FLAG 0x0402
1318#define IW_FLOOD_PROBE_REQ_EVENT_FLAG 0x0403
1319#define IW_FLOOD_DISASSOC_EVENT_FLAG 0x0404
1320#define IW_FLOOD_DEAUTH_EVENT_FLAG 0x0405
1321#define IW_FLOOD_EAP_REQ_EVENT_FLAG 0x0406
cc277069 1322/* if add new flooding attack event flag, please upadte the IW_FLOOD_EVENT_FLAG_END */
91980990
GKH
1323#define IW_FLOOD_EVENT_FLAG_END 0x0406
1324#define IW_FLOOD_EVENT_TYPE_NUM (IW_FLOOD_EVENT_FLAG_END - IW_FLOOD_EVENT_FLAG_START + 1)
cc277069 1325/* For flooding attack - end */
91980990 1326
cc277069 1327/* End - WIRELESS EVENTS definition */
91980990 1328
cc277069 1329/* definition for DLS, kathy */
91980990
GKH
1330#define MAX_NUM_OF_INIT_DLS_ENTRY 1
1331#define MAX_NUM_OF_DLS_ENTRY MAX_NUMBER_OF_DLS_ENTRY
1332
cc277069 1333/*Block ACK, kathy */
91980990
GKH
1334#define MAX_TX_REORDERBUF 64
1335#define MAX_RX_REORDERBUF 64
1336#define DEFAULT_TX_TIMEOUT 30
1337#define DEFAULT_RX_TIMEOUT 30
91980990 1338#define MAX_BARECI_SESSION 8
91980990
GKH
1339
1340#ifndef IW_ESSID_MAX_SIZE
1341/* Maximum size of the ESSID and pAd->nickname strings */
1342#define IW_ESSID_MAX_SIZE 32
1343#endif
91980990 1344
cc277069 1345/* For AsicRadioOff/AsicRadioOn function */
3a32ed12
BZ
1346#define DOT11POWERSAVE 0
1347#define GUIRADIO_OFF 1
1348#define RTMP_HALT 2
1349#define GUI_IDLE_POWER_SAVE 3
cc277069 1350/* -- */
ca97b838 1351
cc277069 1352/* definition for WpaSupport flag */
91980990
GKH
1353#define WPA_SUPPLICANT_DISABLE 0
1354#define WPA_SUPPLICANT_ENABLE 1
1355#define WPA_SUPPLICANT_ENABLE_WITH_WEB_UI 2
1356
cc277069 1357/* Endian byte swapping codes */
91980990
GKH
1358#define SWAP16(x) \
1359 ((UINT16)( \
1360 (((UINT16)(x) & (UINT16) 0x00ffU) << 8) | \
1361 (((UINT16)(x) & (UINT16) 0xff00U) >> 8) ))
1362
1363#define SWAP32(x) \
1364 ((UINT32)( \
1365 (((UINT32)(x) & (UINT32) 0x000000ffUL) << 24) | \
1366 (((UINT32)(x) & (UINT32) 0x0000ff00UL) << 8) | \
1367 (((UINT32)(x) & (UINT32) 0x00ff0000UL) >> 8) | \
1368 (((UINT32)(x) & (UINT32) 0xff000000UL) >> 24) ))
1369
1370#define SWAP64(x) \
1371 ((UINT64)( \
1372 (UINT64)(((UINT64)(x) & (UINT64) 0x00000000000000ffULL) << 56) | \
1373 (UINT64)(((UINT64)(x) & (UINT64) 0x000000000000ff00ULL) << 40) | \
1374 (UINT64)(((UINT64)(x) & (UINT64) 0x0000000000ff0000ULL) << 24) | \
1375 (UINT64)(((UINT64)(x) & (UINT64) 0x00000000ff000000ULL) << 8) | \
1376 (UINT64)(((UINT64)(x) & (UINT64) 0x000000ff00000000ULL) >> 8) | \
1377 (UINT64)(((UINT64)(x) & (UINT64) 0x0000ff0000000000ULL) >> 24) | \
1378 (UINT64)(((UINT64)(x) & (UINT64) 0x00ff000000000000ULL) >> 40) | \
1379 (UINT64)(((UINT64)(x) & (UINT64) 0xff00000000000000ULL) >> 56) ))
1380
91980990
GKH
1381#define cpu2le64(x) ((UINT64)(x))
1382#define le2cpu64(x) ((UINT64)(x))
1383#define cpu2le32(x) ((UINT32)(x))
1384#define le2cpu32(x) ((UINT32)(x))
1385#define cpu2le16(x) ((UINT16)(x))
1386#define le2cpu16(x) ((UINT16)(x))
1387#define cpu2be64(x) SWAP64((x))
1388#define be2cpu64(x) SWAP64((x))
1389#define cpu2be32(x) SWAP32((x))
1390#define be2cpu32(x) SWAP32((x))
1391#define cpu2be16(x) SWAP16((x))
1392#define be2cpu16(x) SWAP16((x))
1393
ca97b838
BZ
1394#define ABS(_x, _y) ((_x) > (_y)) ? ((_x) -(_y)) : ((_y) -(_x))
1395
ca97b838
BZ
1396#define A2Dec(_X, _p) \
1397{ \
1398 UCHAR *p; \
1399 _X = 0; \
1400 p = _p; \
1401 while (((*p >= '0') && (*p <= '9'))) \
1402 { \
1403 if ((*p >= '0') && (*p <= '9')) \
1404 _X = _X * 10 + *p - 48; \
1405 p++; \
1406 } \
1407}
1408
ca97b838
BZ
1409#define A2Hex(_X, _p) \
1410do{ \
1411 char *__p; \
1412 (_X) = 0; \
1413 __p = (char *)(_p); \
1414 while (((*__p >= 'a') && (*__p <= 'f')) || ((*__p >= 'A') && (*__p <= 'F')) || ((*__p >= '0') && (*__p <= '9'))) \
1415 { \
1416 if ((*__p >= 'a') && (*__p <= 'f')) \
1417 (_X) = (_X) * 16 + *__p - 87; \
1418 else if ((*__p >= 'A') && (*__p <= 'F')) \
1419 (_X) = (_X) * 16 + *__p - 55; \
1420 else if ((*__p >= '0') && (*__p <= '9')) \
1421 (_X) = (_X) * 16 + *__p - 48; \
1422 __p++; \
1423 } \
1424}while(0)
1425
cc277069 1426#endif /* __RTMP_DEF_H__ */