2 ** $Id: //Department/DaVinci/BRANCHES/MT662X_593X_WIFI_DRIVER_V2_3/include/mgmt/cnm.h#1 $
9 /*******************************************************************************
10 * Copyright (c) 2009 MediaTek Inc.
12 * All rights reserved. Copying, compilation, modification, distribution
13 * or any other use whatsoever of this material is strictly prohibited
14 * except in accordance with a Software License Agreement with
16 ********************************************************************************
19 /*******************************************************************************
22 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
23 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
24 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
25 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
26 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
27 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
28 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
29 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
30 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
31 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
32 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
33 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
34 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
36 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
37 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
38 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
39 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
40 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
42 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
43 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
44 * OF LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
45 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
46 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
48 ********************************************************************************
55 * [WCXRP00000798] [MT6620 Wi-Fi][Firmware] Follow-ups for WAPI frequency offset workaround in firmware SCN module
56 * change parameter name from PeerAddr to BSSID
59 * [WCXRP00000798] [MT6620 Wi-Fi][Firmware] Follow-ups for WAPI frequency offset workaround in firmware SCN module
60 * 1. specify target's BSSID when requesting channel privilege.
61 * 2. pass BSSID information to firmware domain
64 * [WCXRP00000634] [MT6620 Wi-Fi][Driver][FW] 2nd BSS will not support 40MHz bandwidth for concurrency
68 * [WCXRP00000358] [MT6620 Wi-Fi][Driver] Provide concurrent information for each module
69 * Add some functions to let AIS/Tethering or AIS/BOW be the same channel
72 * [WCXRP00000358] [MT6620 Wi-Fi][Driver] Provide concurrent information for each module
73 * Provide function to decide if BSS can be activated or not
76 * [WCXRP00000239] MT6620 Wi-Fi][Driver][FW] Merge concurrent branch back to maintrunk
77 * 1. BSSINFO include RLM parameter
78 * 2. free all sta records when network is disconnected
82 * Support RLM initail channel of Ad-hoc, P2P and BOW
86 * Set RLM parameters and enable CNM channel manager
90 * Rename MSG_CH_RELEASE_T to MSG_CH_ABORT_T
94 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
97 * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
98 * Rename MID_MNY_CNM_CH_RELEASE to MID_MNY_CNM_CH_ABORT
100 * 07 01 2010 cm.chang
101 * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
102 * Need bandwidth info when requesting channel privilege
104 * 07 01 2010 cm.chang
105 * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
106 * Modify CNM message handler for new flow
108 * 05 12 2010 kevin.huang
109 * [BORA00000794][WIFISYS][New Feature]Power Management Support
110 * Add Power Management - Legacy PS-POLL support.
112 * 05 05 2010 cm.chang
113 * [BORA00000018]Integrate WIFI part into BORA for the 1st time
114 * Add a new function to send abort message
116 * 03 16 2010 kevin.huang
117 * [BORA00000663][WIFISYS][New Feature] AdHoc Mode Support
120 * 03 10 2010 kevin.huang
121 * [BORA00000654][WIFISYS][New Feature] CNM Module - Ch Manager Support
122 * Add Channel Manager for arbitration of JOIN and SCAN Req
124 * 02 08 2010 cm.chang
125 * [BORA00000018]Integrate WIFI part into BORA for the 1st time
126 * Support partial part about cmd basic configuration
128 * Nov 18 2009 mtk01104
129 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
130 * Add prototype of cnmFsmEventInit()
132 * Nov 2 2009 mtk01104
133 * [BORA00000018] Integrate WIFI part into BORA for the 1st time
141 /*******************************************************************************
142 * C O M P I L E R F L A G S
143 ********************************************************************************
146 /*******************************************************************************
147 * E X T E R N A L R E F E R E N C E S
148 ********************************************************************************
151 /*******************************************************************************
153 ********************************************************************************
156 /*******************************************************************************
158 ********************************************************************************
161 typedef enum _ENUM_CH_REQ_TYPE_T {
163 CH_REQ_TYPE_P2P_LISTEN,
166 } ENUM_CH_REQ_TYPE_T, *P_ENUM_CH_REQ_TYPE_T;
168 typedef struct _MSG_CH_REQ_T {
169 MSG_HDR_T rMsgHdr; /* Must be the first member */
170 UINT_8 ucNetTypeIndex;
172 UINT_8 ucPrimaryChannel;
173 ENUM_CHNL_EXT_T eRfSco;
175 ENUM_CH_REQ_TYPE_T eReqType;
176 UINT_32 u4MaxInterval; /* In unit of ms */
178 UINT_8 aucReserved[2];
179 } MSG_CH_REQ_T, *P_MSG_CH_REQ_T;
181 typedef struct _MSG_CH_ABORT_T {
182 MSG_HDR_T rMsgHdr; /* Must be the first member */
183 UINT_8 ucNetTypeIndex;
185 } MSG_CH_ABORT_T, *P_MSG_CH_ABORT_T;
187 typedef struct _MSG_CH_GRANT_T {
188 MSG_HDR_T rMsgHdr; /* Must be the first member */
189 UINT_8 ucNetTypeIndex;
191 UINT_8 ucPrimaryChannel;
192 ENUM_CHNL_EXT_T eRfSco;
194 ENUM_CH_REQ_TYPE_T eReqType;
195 UINT_32 u4GrantInterval; /* In unit of ms */
196 } MSG_CH_GRANT_T, *P_MSG_CH_GRANT_T;
198 typedef struct _MSG_CH_REOCVER_T {
199 MSG_HDR_T rMsgHdr; /* Must be the first member */
200 UINT_8 ucNetTypeIndex;
202 UINT_8 ucPrimaryChannel;
203 ENUM_CHNL_EXT_T eRfSco;
205 ENUM_CH_REQ_TYPE_T eReqType;
206 } MSG_CH_RECOVER_T, *P_MSG_CH_RECOVER_T;
209 typedef struct _CNM_INFO_T {
211 } CNM_INFO_T, *P_CNM_INFO_T;
213 #if CFG_ENABLE_WIFI_DIRECT
214 /* Moved from p2p_fsm.h */
215 typedef struct _DEVICE_TYPE_T {
216 UINT_16 u2CategoryId; /* Category ID */
217 UINT_8 aucOui[4]; /* OUI */
218 UINT_16 u2SubCategoryId; /* Sub Category ID */
219 } __KAL_ATTRIB_PACKED__ DEVICE_TYPE_T, *P_DEVICE_TYPE_T;
223 /*******************************************************************************
224 * P U B L I C D A T A
225 ********************************************************************************
228 /*******************************************************************************
229 * P R I V A T E D A T A
230 ********************************************************************************
233 /*******************************************************************************
235 ********************************************************************************
238 /*******************************************************************************
239 * F U N C T I O N D E C L A R A T I O N S
240 ********************************************************************************
244 P_ADAPTER_T prAdapter
249 P_ADAPTER_T prAdapter
253 cnmChMngrRequestPrivilege (
254 P_ADAPTER_T prAdapter,
259 cnmChMngrAbortPrivilege (
260 P_ADAPTER_T prAdapter,
265 cnmChMngrHandleChEvent (
266 P_ADAPTER_T prAdapter,
267 P_WIFI_EVENT_T prEvent
271 cnmPreferredChannel (
272 P_ADAPTER_T prAdapter,
273 P_ENUM_BAND_T prBand,
274 PUINT_8 pucPrimaryChannel,
275 P_ENUM_CHNL_EXT_T prBssSCO
279 cnmAisInfraChannelFixed (
280 P_ADAPTER_T prAdapter,
281 P_ENUM_BAND_T prBand,
282 PUINT_8 pucPrimaryChannel
286 cnmAisInfraConnectNotify (
287 P_ADAPTER_T prAdapter
291 cnmAisIbssIsPermitted (
292 P_ADAPTER_T prAdapter
297 P_ADAPTER_T prAdapter
302 P_ADAPTER_T prAdapter
306 cnmBss40mBwPermitted (
307 P_ADAPTER_T prAdapter,
308 ENUM_NETWORK_TYPE_INDEX_T eNetTypeIdx
311 /*******************************************************************************
313 ********************************************************************************
316 /* We don't have to call following function to inspect the data structure.
317 * It will check automatically while at compile time.
318 * We'll need this to guarantee the same member order in different structures
319 * to simply handling effort in some functions.
322 cnmMsgDataTypeCheck (
326 DATA_STRUC_INSPECTING_ASSERT(
327 OFFSET_OF(MSG_CH_GRANT_T,rMsgHdr) == 0);
329 DATA_STRUC_INSPECTING_ASSERT(
330 OFFSET_OF(MSG_CH_GRANT_T,rMsgHdr) ==
331 OFFSET_OF(MSG_CH_RECOVER_T,rMsgHdr));
333 DATA_STRUC_INSPECTING_ASSERT(
334 OFFSET_OF(MSG_CH_GRANT_T,ucNetTypeIndex) ==
335 OFFSET_OF(MSG_CH_RECOVER_T,ucNetTypeIndex));
337 DATA_STRUC_INSPECTING_ASSERT(
338 OFFSET_OF(MSG_CH_GRANT_T,ucTokenID) ==
339 OFFSET_OF(MSG_CH_RECOVER_T,ucTokenID));
341 DATA_STRUC_INSPECTING_ASSERT(
342 OFFSET_OF(MSG_CH_GRANT_T,ucPrimaryChannel) ==
343 OFFSET_OF(MSG_CH_RECOVER_T,ucPrimaryChannel));
345 DATA_STRUC_INSPECTING_ASSERT(
346 OFFSET_OF(MSG_CH_GRANT_T,eRfSco) ==
347 OFFSET_OF(MSG_CH_RECOVER_T,eRfSco));
349 DATA_STRUC_INSPECTING_ASSERT(
350 OFFSET_OF(MSG_CH_GRANT_T,eRfBand) ==
351 OFFSET_OF(MSG_CH_RECOVER_T,eRfBand));
353 DATA_STRUC_INSPECTING_ASSERT(
354 OFFSET_OF(MSG_CH_GRANT_T,eReqType) ==
355 OFFSET_OF(MSG_CH_RECOVER_T,eReqType));