1 #ifndef __WINBOND_MLME_H
2 #define __WINBOND_MLME_H
4 #include <linux/types.h>
5 #include <linux/spinlock.h>
7 #include "mac_structures.h"
11 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13 * Define the related definitions of MLME module
15 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18 #define AUTH_REJECT_REASON_CHALLENGE_FAIL 1
20 /* the state of MLME module */
24 /* the state of MLME/ESS module */
32 /* the state of MLME/IBSS module */
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
43 * =========================================
44 * depend on D5C(MAC timing control 03 register):
45 * MaxTxMSDULifeTime default 0x80000us
47 #define AUTH_FAIL_TIMEOUT 550
48 #define ASSOC_FAIL_TIMEOUT 550
49 #define REASSOC_FAIL_TIMEOUT 550
51 /* MLME task global CONSTANTS, STRUCTURE, variables */
53 /* =========================================
55 * Result code returned from MLME to SME.
56 * =========================================
58 #define MLME_SUCCESS 0 /* follow spec. */
59 #define INVALID_PARAMETERS 1 /* Not following spec. */
60 #define NOT_SUPPPORTED 2
62 #define TOO_MANY_SIMULTANEOUS_REQUESTS 4
64 #define BSS_ALREADY_STARTED_OR_JOINED 6
65 #define TRANSMIT_FRAME_FAIL 7
66 #define NO_BSS_FOUND 8
74 #define WPA_AUTH 3 /* for WPA */
76 #define WPANONE_AUTH 5
78 #define WPA2_AUTH 6 /* for WPA2 */
79 #define WPA2PSK_AUTH 7
80 #endif /* end def _WPA2_ */
83 * =========================================
84 * define the msg type of MLME module
85 * =========================================
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
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
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
114 #define MLMEMSG_TIMEOUT 0x50
117 * ==============================================
118 * Global data structures
119 * ==============================================
121 #define MAX_NUM_TX_MMPDU 2
122 #define MAX_MMPDU_SIZE 1512
123 #define MAX_NUM_RX_MMPDU 6
127 * ==============================================
129 * ==============================================
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)
135 typedef struct _MLME_FRAME
{
141 spinlock_t MLMESpinLock
;
143 u8 TxMMPDU
[MAX_NUM_TX_MMPDU
][MAX_MMPDU_SIZE
];
144 u8 TxMMPDUInUse
[(MAX_NUM_TX_MMPDU
+ 3) & ~0x03];
147 u16 wNumTxMMPDUDiscarded
;
149 u8 RxMMPDU
[MAX_NUM_RX_MMPDU
][MAX_MMPDU_SIZE
];
150 u8 SaveRxBufSlotInUse
[(MAX_NUM_RX_MMPDU
+ 3) & ~0x03];
153 u16 wNumRxMMPDUDiscarded
;
155 u16 wNumRxMMPDUInMLME
; /* Number of the Rx MMPDU */
156 u16 reserved_1
; /* in MLME. */
157 /* excluding the discarded */
158 } MLME_FRAME
, *psMLME_FRAME
;
160 typedef struct _AUTHREQ
{
162 u8 peerMACaddr
[MAC_ADDR_LENGTH
];
164 } MLME_AUTHREQ_PARA
, *psMLME_AUTHREQ_PARA
;
166 typedef struct _ASSOCREQ
{
167 u8 PeerSTAAddr
[MAC_ADDR_LENGTH
];
170 } __attribute__ ((packed
)) MLME_ASSOCREQ_PARA
, *psMLME_ASSOCREQ_PARA
;
172 typedef struct _REASSOCREQ
{
173 u8 NewAPAddr
[MAC_ADDR_LENGTH
];
176 } __attribute__ ((packed
)) MLME_REASSOCREQ_PARA
, *psMLME_REASSOCREQ_PARA
;
178 typedef struct _MLMECALLBACK
{
181 } MLME_TXCALLBACK
, *psMLME_TXCALLBACK
;
183 typedef struct _RXDATA
{
185 u8
__attribute__ ((packed
)) *pbFramePtr
;
186 } __attribute__ ((packed
)) RXDATA
, *psRXDATA
;
This page took 0.035558 seconds and 5 git commands to generate.