• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2 **+-----------------------------------------------------------------------+**
3 **|                                                                       |**
4 **| Copyright(c) 1998 - 2008 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 /*		MODULE:	rx.h													   */
39 /*    	PURPOSE:	Rx module functions header file						   */
40 /*																		   */
41 /***************************************************************************/
42 #ifndef _RX_DATA_H_
43 #define _RX_DATA_H_
44 
45 #include "paramIn.h"
46 #include "paramOut.h"
47 #include "memMngrEx.h"
48 #include "whalBus_Defs.h"
49 
50 #define DEF_EXCLUDE_UNENCYPTED				FALSE
51 #define DEF_EAPOL_DESTINATION				OS_ABS_LAYER
52 #define DEF_RX_PORT_STATUS					CLOSE
53 
54 typedef struct
55 {
56 	UINT32		excludedFrameCounter;
57 	UINT32		rxDroppedDueToVLANIncludedCnt;
58     UINT32		rxWrongBssTypeCounter;
59 	UINT32		rxWrongBssIdCounter;
60     UINT32      rcvUnicastFrameInOpenNotify;
61 }rxDataDbgCounters_t;
62 
63 
64 /*                         |                           |                         |
65  31 30 29 28 | 27 26 25 24 | 23 22 21 20 | 19 18 17 16 | 15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0
66                            |                           |                         |
67 */
68 
69 
70 typedef enum
71 {
72 	DATA_IAPP_PACKET  = 0,
73 	DATA_EAPOL_PACKET = 1,
74 	DATA_DATA_PACKET  = 2,
75     DATA_VLAN_PACKET  = 3,
76 	MAX_NUM_OF_RX_DATA_TYPES,
77 }rxDataPacketType_e;
78 
79 
80 
81 typedef void (*rxData_MsduDispatchert)(TI_HANDLE hRxData , mem_MSDU_T *pMsdu , Rx_attr_t *pRxAttr);
82 
83 
84 typedef struct
85 {
86 	/* Handles */
87 	TI_HANDLE	 		hCtrlData;
88 	TI_HANDLE	 		hTxData;
89 	TI_HANDLE	 		hTnetwDrv;
90     TI_HANDLE           hHalCtrl;
91 	TI_HANDLE			hMlme;
92 	TI_HANDLE			hOs;
93 	TI_HANDLE			hRsn;
94 	TI_HANDLE			hReport;
95 	TI_HANDLE			hMemMngr;
96 	TI_HANDLE			hSiteMgr;
97 	TI_HANDLE			hExcMgr;
98     TI_HANDLE           hEvHandler;
99     TI_HANDLE           RxEventDistributor;
100 	TI_HANDLE           hThroughputTimer;
101     BOOL                rxThroughputTimerEnable;
102 	BOOL 				rxDataExcludeUnencrypted;
103     BOOL                rxDataExludeBroadcastUnencrypted;
104 	eapolDestination_e 	rxDataEapolDestination;
105 
106 	portStatus_e  		rxDataPortStatus;
107 
108     mem_MSDU_T *pReqForBufMsdu; /* request for buffer MSDU - (the lower layer gets only the pointer to the data) */
109 
110     /* Rx Data Filters */
111     filter_e            filteringDefaultAction;
112     BOOL                filteringEnabled;
113     BOOL                isFilterSet[MAX_DATA_FILTERS];
114     rxDataFilterRequest_t filterRequests[MAX_DATA_FILTERS];
115 
116 	/* Counters */
117 	rxDataCounters_t	rxDataCounters;
118 	rxDataDbgCounters_t	rxDataDbgCounters;
119 
120 	rxData_MsduDispatchert rxData_dispatchMsdu[MAX_NUM_OF_RX_PORT_STATUS][MAX_NUM_OF_RX_DATA_TYPES];
121 
122 	INT32				prevSeqNum;
123 }rxData_t;
124 
125 
126 #endif
127