• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * DataCtrl_Api.h
3  *
4  * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  *  * Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  *  * Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in
15  *    the documentation and/or other materials provided with the
16  *    distribution.
17  *  * Neither the name Texas Instruments nor the names of its
18  *    contributors may be used to endorse or promote products derived
19  *    from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 
34 
35 /***************************************************************************/
36 /*                                                                         */
37 /*                                                                         */
38 /*      PURPOSE:    DataCtrl module api functions header file              */
39 /*                                                                         */
40 /***************************************************************************/
41 
42 #ifndef _DATA_CTRL_API_H_
43 #define _DATA_CTRL_API_H_
44 
45 #include "paramOut.h"
46 #include "rxXfer_api.h"
47 #include "802_11Defs.h"
48 #include "GeneralUtilApi.h"
49 #include "DrvMainModules.h"
50 
51 /* Include all core Tx modules APIs */
52 #include "txCtrl_Api.h"
53 #include "txPort_Api.h"
54 #include "txDataQueue_Api.h"
55 #include "txMgmtQueue_Api.h"
56 
57 
58 typedef enum
59 {
60     RX_DATA_EAPOL_DESTINATION_PARAM = 0x01,
61     RX_DATA_PORT_STATUS_PARAM       = 0x02
62 
63 } ERxDataParam;
64 
65 
66 /*  RX MODULE   */
67 /*--------------*/
68 
69 /* Rx module interface functions */
70 
71 #define RECV_OK                  0x1
72 #define DIRECTED_BYTES_RECV      0x2
73 #define DIRECTED_FRAMES_RECV     0x4
74 #define MULTICAST_BYTES_RECV     0x8
75 #define MULTICAST_FRAMES_RECV    0x10
76 #define BROADCAST_BYTES_RECV     0x20
77 #define BROADCAST_FRAMES_RECV    0x40
78 
79 #define NO_RX_NOTIFICATION  0x0
80 
81 #define ALL_RCV_FRAME (DIRECTED_FRAMES_RECV|MULTICAST_FRAMES_RECV|BROADCAST_FRAMES_RECV)
82 
83 #define  MAX_RX_NOTIF_REQ_ELMENTS 8
84 
85 
86 /*TI_HANDLE rxData_create (msduReceiveCB_t* msduReceiveCB, TI_HANDLE hOs);  */
87 TI_HANDLE rxData_create (TI_HANDLE hOs);
88 
89 void      rxData_init (TStadHandlesList *pStadHandles);
90 
91 TI_STATUS rxData_SetDefaults (TI_HANDLE hRxData, rxDataInitParams_t * rxDataInitParams);
92 
93 void      rxData_receivePacketFromWlan (TI_HANDLE hRxData, void *pBuffer, TRxAttr* pRxAttr);
94 
95 TI_STATUS rxData_stop(TI_HANDLE hRxData);
96 
97 TI_STATUS rxData_unLoad(TI_HANDLE hRxData);
98 
99 TI_STATUS ctrlData_getParamProtType(TI_HANDLE hCtrlData, erpProtectionType_e *protType);
100 
101 TI_STATUS ctrlData_getParamPreamble(TI_HANDLE hCtrlData, EPreamble *preamble);
102 
103 TI_STATUS ctrlData_getParamBssid(TI_HANDLE hCtrlData, EInternalParam paramVal, TMacAddr bssid);
104 
105 TI_STATUS rxData_getParam(TI_HANDLE hRxData, paramInfo_t *pParamInfo);
106 
107 TI_STATUS rxData_setParam(TI_HANDLE hRxData, paramInfo_t *pParamInfo);
108 
109 TI_STATUS rxData_getTiwlnCounters(TI_HANDLE hRxData, TIWLN_COUNTERS *pTiwlnCounters);
110 
111 void      rxData_resetCounters(TI_HANDLE hRxData);
112 
113 TI_HANDLE rxData_RegNotif(TI_HANDLE hRxData,TI_UINT16 EventMask,GeneralEventCall_t CallBack,TI_HANDLE context,TI_UINT32 Cookie);
114 
115 TI_STATUS rxData_UnRegNotif(TI_HANDLE hRxData,TI_HANDLE RegEventHandle);
116 
117 TI_STATUS rxData_AddToNotifMask(TI_HANDLE hRxData,TI_HANDLE Notifh,TI_UINT16 EventMask);
118 
119 void rxData_SetReAuthInProgress(TI_HANDLE hRxData, TI_BOOL	value);
120 
121 TI_BOOL rxData_IsReAuthInProgress(TI_HANDLE hRxData);
122 
123 void rxData_StopReAuthActiveTimer(TI_HANDLE hRxData);
124 void rxData_ReauthDisablePriority(TI_HANDLE hRxData);
125 
126 /* debug functions */
127 void rxData_resetDbgCounters(TI_HANDLE hRxData);
128 void rxData_printRxBlock(TI_HANDLE hRxData);
129 void rxData_printRxCounters(TI_HANDLE hRxData);
130 void rxData_startRxThroughputTimer(TI_HANDLE hRxData);
131 void rxData_stopRxThroughputTimer(TI_HANDLE hRxData);
132 void rxData_printRxDataFilter(TI_HANDLE hRxData);
133 
134 
135 
136 /* CONTROL MODULE */
137 /*----------------*/
138 
139 #define XFER_OK                 0x1
140 #define DIRECTED_BYTES_XFER     0x2
141 #define DIRECTED_FRAMES_XFER    0x4
142 #define MULTICAST_BYTES_XFER    0x8
143 #define MULTICAST_FRAMES_XFER   0x10
144 #define BROADCAST_BYTES_XFER    0x20
145 #define BROADCAST_FRAMES_XFER   0x40
146 
147 #define  MAX_TX_NOTIF_REQ_ELMENTS 8
148 
149 
150 typedef struct
151 {
152     TMacAddr    ctrlDataDeviceMacAddress;
153 } ctrlDataConfig_t;
154 
155 /* retries for the next link test packet Callback */
156 typedef void (*retriesCB_t)(TI_HANDLE handle, TI_UINT8 ackFailures);
157 
158 /*******************************/
159 /* Control module interface functions */
160 TI_HANDLE ctrlData_create(TI_HANDLE hOs);
161 
162 void      ctrlData_init (TStadHandlesList *pStadHandles,
163                          retriesCB_t       retriesUpdateCBFunc,
164                          TI_HANDLE         retriesUpdateCBObj);
165 
166 TI_STATUS ctrlData_SetDefaults (TI_HANDLE hCtrlData, ctrlDataInitParams_t *ctrlDataInitParams);
167 
168 TI_STATUS ctrlData_unLoad(TI_HANDLE hCtrlData);
169 
170 TI_STATUS ctrlData_getParam(TI_HANDLE hCtrlData, paramInfo_t *pParamInfo);
171 
172 TI_STATUS ctrlData_setParam(TI_HANDLE hCtrlData, paramInfo_t *pParamInfo);
173 
174 TI_STATUS ctrlData_stop(TI_HANDLE hCtrlData);
175 
176 TI_STATUS ctrlData_getTiwlnCounters(TI_HANDLE hCtrlData, TIWLN_COUNTERS *pTiwlnCounters);
177 
178 void ctrlData_updateTxRateAttributes(TI_HANDLE hCtrlData);
179 
180 void ctrlData_getCurrBssTypeAndCurrBssId(TI_HANDLE hCtrlData, TMacAddr *pCurrBssid,
181                                          ScanBssType_e *pCurrBssType);
182 
183 void ctrlData_txCompleteStatus(TI_HANDLE hCtrlData, TxResultDescriptor_t *pTxResultInfo,
184 							   EHwRateBitFiled HwTxRequestRate, TI_UINT8 txPktFlags);
185 
186 void ctrlData_ToggleTrafficIntensityNotification (TI_HANDLE hCtrlData, TI_BOOL enabledFlag);
187 
188 
189 /* dbg functions */
190 /*---------------*/
191 #ifdef TI_DBG
192 void ctrlData_printTxParameters(TI_HANDLE hCtrlData);
193 void ctrlData_printCtrlBlock(TI_HANDLE hCtrlData);
194 #endif /* TI_DBG */
195 
196 
197 #endif  /* _DATA_CTRL_API_H_ */
198 
199