6 \brief In this file we define the function prototype used in BSS/IBSS.
8 The file contains the function declarations and defines for used in BSS/IBSS.
11 /*******************************************************************************
12 * Copyright (c) 2010 MediaTek Inc.
14 * All rights reserved. Copying, compilation, modification, distribution
15 * or any other use whatsoever of this material is strictly prohibited
16 * except in accordance with a Software License Agreement with
18 ********************************************************************************
21 /*******************************************************************************
24 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
25 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
26 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
27 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
28 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
29 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
30 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
31 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
32 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
33 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
34 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
35 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
36 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
38 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
39 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
40 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
41 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
42 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
44 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
45 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
46 * OF LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
47 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
48 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
50 ********************************************************************************
56 * 01 15 2012 yuche.tsai
58 * Fix wrong basic rate issue.
60 * 10 19 2011 yuche.tsai
61 * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
63 * Davinci Maintrunk Label: MT6620_WIFI_DRIVER_FW_TRUNK_MT6620E5_111019_0926.
65 * 03 19 2011 yuche.tsai
66 * [WCXRP00000581] [Volunteer Patch][MT6620][Driver] P2P IE in Assoc Req Issue
67 * Append P2P IE in assoc request if P2P is enabled.
70 * [WCXRP00000577] [MT6620 Wi-Fi][Driver][FW] Create V2.0 branch for firmware and driver
71 * create V2.0 driver release based on label "MT6620_WIFI_DRIVER_V2_0_110318_1600" from main trunk
74 * [WCXRP00000448] [MT6620 Wi-Fi][Driver] Fixed WSC IE not send out at probe request
75 * Add code to send beacon and probe response WSC IE at Auto GO.
77 * 02 23 2011 eddie.chen
78 * [WCXRP00000463] [MT6620 Wi-Fi][FW/Driver][Hotspot] Cannot update WMM PS STA's partital bitmap
79 * Fix parsing WMM INFO and bmp delivery bitmap definition.
81 * 01 31 2011 george.huang
82 * [WCXRP00000333] [MT5931][FW] support SRAM power control drivers
83 * Extend TIM PVB, from 2 to 3 octets.
86 * [WCXRP00000210] [MT6620 Wi-Fi][Driver][FW] Set RCPI value in STA_REC for initial TX rate selection of auto-rate algorithm
87 * update ucRcpi of STA_RECORD_T for AIS when
88 * 1) Beacons for IBSS merge is received
89 * 2) Associate Response for a connecting peer is received
91 * 09 03 2010 kevin.huang
93 * Refine #include sequence and solve recursive/nested #include issue
95 * 08 12 2010 kevin.huang
97 * Update bssProcessProbeRequest() and bssSendBeaconProbeResponse() declarations
101 * [WPD00003833] [MT6620 and MT5931] Driver migration.
102 * when IBSS is being merged-in, send command packet to PM for connected indication
106 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
108 * 06 25 2010 george.huang
109 * [WPD00001556]Basic power managemenet function
110 * Create beacon update path, with expose bssUpdateBeaconContent()
112 * 06 17 2010 yuche.tsai
113 * [WPD00003839][MT6620 5931][P2P] Feature migration
114 * Add CTRL FLAGS for Probe Response.
117 * [WPD00003833][MT6620 and MT5931] Driver migration
118 * add necessary changes to driver data paths.
121 * [WPD00003833][MT6620 and MT5931] Driver migration
122 * add aa_fsm.h, ais_fsm.h, bss.h, mib.h and scan.h.
124 * 06 04 2010 george.huang
125 * [BORA00000678][MT6620]WiFi LP integration
126 * [PM] Support U-APSD for STA mode
128 * 05 28 2010 kevin.huang
129 * [BORA00000794][WIFISYS][New Feature]Power Management Support
130 * Add ClientList handling API - bssClearClientList, bssAddStaRecToClientList
132 * 05 14 2010 kevin.huang
133 * [BORA00000794][WIFISYS][New Feature]Power Management Support
134 * Remove unused typedef.
136 * 05 12 2010 kevin.huang
137 * [BORA00000794][WIFISYS][New Feature]Power Management Support
138 * Fix file merge error
140 * 05 12 2010 kevin.huang
141 * [BORA00000794][WIFISYS][New Feature]Power Management Support
142 * Add Power Management - Legacy PS-POLL support.
144 * 04 19 2010 kevin.huang
145 * [BORA00000714][WIFISYS][New Feature]Beacon Timeout Support
146 * Add Beacon Timeout Support
147 * * * and will send Null frame to diagnose connection
149 * 03 16 2010 kevin.huang
150 * [BORA00000663][WIFISYS][New Feature] AdHoc Mode Support
153 * 02 23 2010 kevin.huang
154 * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
155 * Add DTIM count update while TX Beacon
157 * 02 04 2010 kevin.huang
158 * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
159 * Add AAA Module Support, Revise Net Type to Net Type Index for array lookup
165 /*******************************************************************************
166 * C O M P I L E R F L A G S
167 ********************************************************************************
170 /*******************************************************************************
171 * E X T E R N A L R E F E R E N C E S
172 ********************************************************************************
175 /*******************************************************************************
177 ********************************************************************************
179 //NOTE(Kevin): change define for george
180 //#define MAX_LEN_TIM_PARTIAL_BMP (((MAX_ASSOC_ID + 1) + 7) / 8) /* Required bits = (MAX_ASSOC_ID + 1) */
181 #define MAX_LEN_TIM_PARTIAL_BMP ((CFG_STA_REC_NUM + 7) / 8) /* reserve length greater than maximum size of STA_REC */ //obsoleted: Assume we only use AID:1~15
183 /* CTRL FLAGS for Probe Response */
184 #define BSS_PROBE_RESP_USE_P2P_DEV_ADDR BIT(0)
185 #define BSS_PROBE_RESP_INCLUDE_P2P_IE BIT(1)
187 /*******************************************************************************
189 ********************************************************************************
192 /*******************************************************************************
193 * P U B L I C D A T A
194 ********************************************************************************
197 /*******************************************************************************
198 * P R I V A T E D A T A
199 ********************************************************************************
202 /*******************************************************************************
204 ********************************************************************************
206 #define bssAssignAssocID(_prStaRec) ((_prStaRec)->ucIndex + 1)
208 /*******************************************************************************
209 * F U N C T I O N D E C L A R A T I O N S
210 ********************************************************************************
212 /*----------------------------------------------------------------------------*/
213 /* Routines for all Operation Modes */
214 /*----------------------------------------------------------------------------*/
216 bssCreateStaRecFromBssDesc (
217 IN P_ADAPTER_T prAdapter,
218 IN ENUM_STA_TYPE_T eStaType,
219 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex,
220 IN P_BSS_DESC_T prBssDesc
224 bssComposeNullFrame (
225 IN P_ADAPTER_T prAdapter,
226 IN PUINT_8 pucBuffer,
227 IN P_STA_RECORD_T prStaRec
231 bssComposeQoSNullFrame (
232 IN P_ADAPTER_T prAdapter,
233 IN PUINT_8 pucBuffer,
234 IN P_STA_RECORD_T prStaRec,
241 IN P_ADAPTER_T prAdapter,
242 IN P_STA_RECORD_T prStaRec,
243 IN PFN_TX_DONE_HANDLER pfTxDoneHandler
247 bssSendQoSNullFrame (
248 IN P_ADAPTER_T prAdapter,
249 IN P_STA_RECORD_T prStaRec,
251 IN PFN_TX_DONE_HANDLER pfTxDoneHandler
255 /*----------------------------------------------------------------------------*/
256 /* Routines for both IBSS(AdHoc) and BSS(AP) */
257 /*----------------------------------------------------------------------------*/
259 bssGenerateExtSuppRate_IE (
260 IN P_ADAPTER_T prAdapter,
261 IN P_MSDU_INFO_T prMsduInfo
265 bssBuildBeaconProbeRespFrameCommonIEs (
266 IN P_MSDU_INFO_T prMsduInfo,
267 IN P_BSS_INFO_T prBssInfo,
268 IN PUINT_8 pucDestAddr
272 bssComposeBeaconProbeRespFrameHeaderAndFF (
273 IN PUINT_8 pucBuffer,
274 IN PUINT_8 pucDestAddr,
275 IN PUINT_8 pucOwnMACAddress,
277 IN UINT_16 u2BeaconInterval,
282 bssSendBeaconProbeResponse (
283 IN P_ADAPTER_T prAdapter,
284 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex,
285 IN PUINT_8 pucDestAddr,
286 IN UINT_32 u4ControlFlags
290 bssProcessProbeRequest (
291 IN P_ADAPTER_T prAdapter,
292 IN P_SW_RFB_T prSwRfb
297 IN P_ADAPTER_T prAdapter,
298 IN P_BSS_INFO_T prBssInfo
302 bssAddStaRecToClientList (
303 IN P_ADAPTER_T prAdapter,
304 IN P_BSS_INFO_T prBssInfo,
305 IN P_STA_RECORD_T prStaRec
309 bssRemoveStaRecFromClientList (
310 IN P_ADAPTER_T prAdapter,
311 IN P_BSS_INFO_T prBssInfo,
312 IN P_STA_RECORD_T prStaRec
316 /*----------------------------------------------------------------------------*/
317 /* Routines for IBSS(AdHoc) only */
318 /*----------------------------------------------------------------------------*/
320 ibssProcessMatchedBeacon (
321 IN P_ADAPTER_T prAdapter,
322 IN P_BSS_INFO_T prBssInfo,
323 IN P_BSS_DESC_T prBssDesc,
328 ibssCheckCapabilityForAdHocMode (
329 IN P_ADAPTER_T prAdapter,
330 IN P_BSS_DESC_T prBssDesc
335 IN P_ADAPTER_T prAdapter,
336 IN P_BSS_INFO_T prBssInfo
340 bssUpdateBeaconContent (
341 IN P_ADAPTER_T prAdapter,
342 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex
346 /*----------------------------------------------------------------------------*/
347 /* Routines for BSS(AP) only */
348 /*----------------------------------------------------------------------------*/
351 IN P_ADAPTER_T prAdapter,
352 IN P_BSS_INFO_T prBssInfo,
353 IN BOOLEAN fgIsRateUpdate
358 IN P_ADAPTER_T prAdapter,
359 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex
364 IN P_ADAPTER_T prAdapter,
365 IN P_BSS_INFO_T prBssInfo,
370 /*link function to p2p module for txBcnIETable*/
371 #if CFG_ENABLE_WIFI_DIRECT
373 linkToP2pCalculateP2P_IELenForBeacon (
374 IN P_ADAPTER_T prAdapter,
375 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex,
376 IN P_STA_RECORD_T prStaRec
380 linkToP2pGenerateP2P_IEForBeacon (
381 IN P_ADAPTER_T prAdapter,
382 IN P_MSDU_INFO_T prMsduInfo
386 linkToP2pCalculateWSC_IELenForBeacon (
387 IN P_ADAPTER_T prAdapter,
388 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex,
389 IN P_STA_RECORD_T prStaRec
393 linkToP2pGenerateP2P_IEForAssocReq (
394 IN P_ADAPTER_T prAdapter,
395 IN P_MSDU_INFO_T prMsduInfo
399 linkToP2pGenerateP2P_IEForAssocRsp (
400 IN P_ADAPTER_T prAdapter,
401 IN P_MSDU_INFO_T prMsduInfo
406 linkToP2pCalculateP2P_IELenForAssocReq (
407 IN P_ADAPTER_T prAdapter,
408 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex,
409 IN P_STA_RECORD_T prStaRec
413 linkToP2pCalculateP2P_IELenForAssocRsp (
414 IN P_ADAPTER_T prAdapter,
415 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex,
416 IN P_STA_RECORD_T prStaRec
420 linkToP2pGenerateWSC_IEForBeacon(
421 IN P_ADAPTER_T prAdapter,
422 IN P_MSDU_INFO_T prMsduInfo
426 linkToP2pCalculateWSC_IELenForProbeRsp (
427 IN P_ADAPTER_T prAdapter,
428 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex,
429 IN P_STA_RECORD_T prStaRec
433 linkToP2pGenerateWSC_IEForProbeRsp(
434 IN P_ADAPTER_T prAdapter,
435 IN P_MSDU_INFO_T prMsduInfo
439 /* WMM-2.2.2 WMM ACI to AC coding */
440 typedef enum _ENUM_ACI_T {
446 } ENUM_ACI_T, *P_ENUM_ACI_T;
448 typedef enum _ENUM_AC_PRIORITY_T {
453 } ENUM_AC_PRIORITY_T, *P_ENUM_AC_PRIORITY_T;