2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/mgmt/cnm.h#1 $
15 * [WCXRP00000798] [MT6620 Wi-Fi][Firmware] Follow-ups for WAPI frequency offset workaround in firmware SCN module
16 * change parameter name from PeerAddr to BSSID
19 * [WCXRP00000798] [MT6620 Wi-Fi][Firmware] Follow-ups for WAPI frequency offset workaround in firmware SCN module
20 * 1. specify target's BSSID when requesting channel privilege.
21 * 2. pass BSSID information to firmware domain
24 * [WCXRP00000634] [MT6620 Wi-Fi][Driver][FW] 2nd BSS will not support 40MHz bandwidth for concurrency
28 * [WCXRP00000358] [MT6620 Wi-Fi][Driver] Provide concurrent information for each module
29 * Add some functions to let AIS/Tethering or AIS/BOW be the same channel
32 * [WCXRP00000358] [MT6620 Wi-Fi][Driver] Provide concurrent information for each module
33 * Provide function to decide if BSS can be activated or not
36 * [WCXRP00000239] MT6620 Wi-Fi][Driver][FW] Merge concurrent branch back to maintrunk
37 * 1. BSSINFO include RLM parameter
38 * 2. free all sta records when network is disconnected
42 * Support RLM initail channel of Ad-hoc, P2P and BOW
46 * Set RLM parameters and enable CNM channel manager
50 * Rename MSG_CH_RELEASE_T to MSG_CH_ABORT_T
54 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
57 * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
58 * Rename MID_MNY_CNM_CH_RELEASE to MID_MNY_CNM_CH_ABORT
61 * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
62 * Need bandwidth info when requesting channel privilege
65 * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
66 * Modify CNM message handler for new flow
68 * 05 12 2010 kevin.huang
69 * [BORA00000794][WIFISYS][New Feature]Power Management Support
70 * Add Power Management - Legacy PS-POLL support.
73 * [BORA00000018]Integrate WIFI part into BORA for the 1st time
74 * Add a new function to send abort message
76 * 03 16 2010 kevin.huang
77 * [BORA00000663][WIFISYS][New Feature] AdHoc Mode Support
80 * 03 10 2010 kevin.huang
81 * [BORA00000654][WIFISYS][New Feature] CNM Module - Ch Manager Support
82 * Add Channel Manager for arbitration of JOIN and SCAN Req
85 * [BORA00000018]Integrate WIFI part into BORA for the 1st time
86 * Support partial part about cmd basic configuration
88 * Nov 18 2009 mtk01104
89 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
90 * Add prototype of cnmFsmEventInit()
93 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
101 /*******************************************************************************
102 * C O M P I L E R F L A G S
103 ********************************************************************************
106 /*******************************************************************************
107 * E X T E R N A L R E F E R E N C E S
108 ********************************************************************************
111 /*******************************************************************************
113 ********************************************************************************
116 /*******************************************************************************
118 ********************************************************************************
121 typedef enum _ENUM_CH_REQ_TYPE_T {
123 CH_REQ_TYPE_P2P_LISTEN,
126 } ENUM_CH_REQ_TYPE_T, *P_ENUM_CH_REQ_TYPE_T;
128 typedef struct _MSG_CH_REQ_T {
129 MSG_HDR_T rMsgHdr; /* Must be the first member */
130 UINT_8 ucNetTypeIndex;
132 UINT_8 ucPrimaryChannel;
133 ENUM_CHNL_EXT_T eRfSco;
135 ENUM_CH_REQ_TYPE_T eReqType;
136 UINT_32 u4MaxInterval; /* In unit of ms */
138 UINT_8 aucReserved[2];
139 } MSG_CH_REQ_T, *P_MSG_CH_REQ_T;
141 typedef struct _MSG_CH_ABORT_T {
142 MSG_HDR_T rMsgHdr; /* Must be the first member */
143 UINT_8 ucNetTypeIndex;
145 } MSG_CH_ABORT_T, *P_MSG_CH_ABORT_T;
147 typedef struct _MSG_CH_GRANT_T {
148 MSG_HDR_T rMsgHdr; /* Must be the first member */
149 UINT_8 ucNetTypeIndex;
151 UINT_8 ucPrimaryChannel;
152 ENUM_CHNL_EXT_T eRfSco;
154 ENUM_CH_REQ_TYPE_T eReqType;
155 UINT_32 u4GrantInterval; /* In unit of ms */
156 } MSG_CH_GRANT_T, *P_MSG_CH_GRANT_T;
158 typedef struct _MSG_CH_REOCVER_T {
159 MSG_HDR_T rMsgHdr; /* Must be the first member */
160 UINT_8 ucNetTypeIndex;
162 UINT_8 ucPrimaryChannel;
163 ENUM_CHNL_EXT_T eRfSco;
165 ENUM_CH_REQ_TYPE_T eReqType;
166 } MSG_CH_RECOVER_T, *P_MSG_CH_RECOVER_T;
169 typedef struct _CNM_INFO_T {
171 } CNM_INFO_T, *P_CNM_INFO_T;
173 #if CFG_ENABLE_WIFI_DIRECT
174 /* Moved from p2p_fsm.h */
175 typedef struct _DEVICE_TYPE_T {
176 UINT_16 u2CategoryId; /* Category ID */
177 UINT_8 aucOui[4]; /* OUI */
178 UINT_16 u2SubCategoryId; /* Sub Category ID */
179 } __KAL_ATTRIB_PACKED__ DEVICE_TYPE_T, *P_DEVICE_TYPE_T;
183 /*******************************************************************************
184 * P U B L I C D A T A
185 ********************************************************************************
188 /*******************************************************************************
189 * P R I V A T E D A T A
190 ********************************************************************************
193 /*******************************************************************************
195 ********************************************************************************
198 /*******************************************************************************
199 * F U N C T I O N D E C L A R A T I O N S
200 ********************************************************************************
204 P_ADAPTER_T prAdapter
209 P_ADAPTER_T prAdapter
213 cnmChMngrRequestPrivilege (
214 P_ADAPTER_T prAdapter,
219 cnmChMngrAbortPrivilege (
220 P_ADAPTER_T prAdapter,
225 cnmChMngrHandleChEvent (
226 P_ADAPTER_T prAdapter,
227 P_WIFI_EVENT_T prEvent
231 cnmPreferredChannel (
232 P_ADAPTER_T prAdapter,
233 P_ENUM_BAND_T prBand,
234 PUINT_8 pucPrimaryChannel,
235 P_ENUM_CHNL_EXT_T prBssSCO
239 cnmAisInfraChannelFixed (
240 P_ADAPTER_T prAdapter,
241 P_ENUM_BAND_T prBand,
242 PUINT_8 pucPrimaryChannel
246 cnmAisInfraConnectNotify (
247 P_ADAPTER_T prAdapter
251 cnmAisIbssIsPermitted (
252 P_ADAPTER_T prAdapter
257 P_ADAPTER_T prAdapter
262 P_ADAPTER_T prAdapter
266 cnmBss40mBwPermitted (
267 P_ADAPTER_T prAdapter,
268 ENUM_NETWORK_TYPE_INDEX_T eNetTypeIdx
271 /*******************************************************************************
273 ********************************************************************************
276 /* We don't have to call following function to inspect the data structure.
277 * It will check automatically while at compile time.
278 * We'll need this to guarantee the same member order in different structures
279 * to simply handling effort in some functions.
282 cnmMsgDataTypeCheck (
286 DATA_STRUC_INSPECTING_ASSERT(
287 OFFSET_OF(MSG_CH_GRANT_T,rMsgHdr) == 0);
289 DATA_STRUC_INSPECTING_ASSERT(
290 OFFSET_OF(MSG_CH_GRANT_T,rMsgHdr) ==
291 OFFSET_OF(MSG_CH_RECOVER_T,rMsgHdr));
293 DATA_STRUC_INSPECTING_ASSERT(
294 OFFSET_OF(MSG_CH_GRANT_T,ucNetTypeIndex) ==
295 OFFSET_OF(MSG_CH_RECOVER_T,ucNetTypeIndex));
297 DATA_STRUC_INSPECTING_ASSERT(
298 OFFSET_OF(MSG_CH_GRANT_T,ucTokenID) ==
299 OFFSET_OF(MSG_CH_RECOVER_T,ucTokenID));
301 DATA_STRUC_INSPECTING_ASSERT(
302 OFFSET_OF(MSG_CH_GRANT_T,ucPrimaryChannel) ==
303 OFFSET_OF(MSG_CH_RECOVER_T,ucPrimaryChannel));
305 DATA_STRUC_INSPECTING_ASSERT(
306 OFFSET_OF(MSG_CH_GRANT_T,eRfSco) ==
307 OFFSET_OF(MSG_CH_RECOVER_T,eRfSco));
309 DATA_STRUC_INSPECTING_ASSERT(
310 OFFSET_OF(MSG_CH_GRANT_T,eRfBand) ==
311 OFFSET_OF(MSG_CH_RECOVER_T,eRfBand));
313 DATA_STRUC_INSPECTING_ASSERT(
314 OFFSET_OF(MSG_CH_GRANT_T,eReqType) ==
315 OFFSET_OF(MSG_CH_RECOVER_T,eReqType));