OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / hardware / ti / wlan / wl1271 / Test / MibDbg.c
1 /*
2  * MibDbg.c
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 /*    MODULE:   MibDbg.c                                                 */
37 /*    PURPOSE:  MIB debug implementation                                    */
38 /*                                                                         */
39 /***************************************************************************/
40
41 #include "MibDbg.h"
42 #include "TWDriver.h"
43 #include "report.h"
44 #include "osApi.h"
45
46 /*
47  ***********************************************************************
48  *      Internal functions definitions
49  ***********************************************************************
50  */
51
52 static void mibDbgGetArpIpTable(TI_HANDLE hTWD)
53 {
54         TI_STATUS status = TI_OK;
55     TMib mib;
56     TI_INT32 i;
57
58         /* init */
59         mib.aMib = MIB_arpIpAddressesTable;
60         mib.aData.ArpIpAddressesTable.FilteringEnable = 0;
61         for ( i = 0 ; i < IP_V4_ADDR_LEN ; i++ )
62         {
63                 mib.aData.ArpIpAddressesTable.addr[i] = 0;
64         }
65
66         status = TWD_ReadMib(hTWD,NULL,NULL,(void*)&mib);
67         if (status != TI_OK)
68         {
69                 WLAN_OS_REPORT(("Get ARP Table failed\n"));
70                 return;
71         }
72
73         /* print ARP Table */
74     WLAN_OS_REPORT(("ARP IP Table:\n"));
75     WLAN_OS_REPORT(("FilteringEnable: %s (%d)\n", 
76                                    (mib.aData.ArpIpAddressesTable.FilteringEnable)?"Enable":"Disable",
77                                    mib.aData.ArpIpAddressesTable.FilteringEnable));
78     WLAN_OS_REPORT(("ArpIpAddress: %d.%d.%d.%d\n", 
79                                         mib.aData.ArpIpAddressesTable.addr[0],
80                                         mib.aData.ArpIpAddressesTable.addr[1],
81                                         mib.aData.ArpIpAddressesTable.addr[2],
82                                         mib.aData.ArpIpAddressesTable.addr[3]));
83 }
84
85 static void mibDbgGetGroupAddressTable(TI_HANDLE hTWD)
86 {
87         TI_STATUS status = TI_OK;
88     TMib mib;
89     TI_INT32 i,j;
90
91         /* init */
92         mib.aMib                                                                                = MIB_dot11GroupAddressesTable;
93         mib.aData.GroupAddressTable.bFilteringEnable    = 0;
94         mib.aData.GroupAddressTable.nNumberOfAddresses  = 0;
95     for ( i = 0 ; i < MIB_MAX_MULTICAST_GROUP_ADDRS ; i++ )
96         {
97                 for ( j = 0 ; j < MAC_ADDR_LEN ; j++ )
98                 {
99                         mib.aData.GroupAddressTable.aGroupTable[i][j]   = 0;
100                 }
101         }
102
103         status = TWD_ReadMib(hTWD,NULL,NULL,(void*)&mib);
104         if (status != TI_OK)
105         {
106                 WLAN_OS_REPORT(("Get Group Address Table failed\n"));
107                 return;
108         }
109
110         /* print Group Address Table */
111     WLAN_OS_REPORT(("Group addresses Table:\n"));
112     WLAN_OS_REPORT(("FilteringEnable: %s (%d)\n", 
113                                    (mib.aData.GroupAddressTable.bFilteringEnable)?"Enable":"Disable",
114                                    mib.aData.GroupAddressTable.bFilteringEnable));
115     WLAN_OS_REPORT(("nNumberOfAddresses: %d\n", 
116                                    mib.aData.GroupAddressTable.nNumberOfAddresses));
117
118     WLAN_OS_REPORT(("Group addresses: \n"));
119     for ( i = 0 ; i < MIB_MAX_MULTICAST_GROUP_ADDRS ; i++ )
120                 WLAN_OS_REPORT(("%x:%x:%x:%x:%x:%x\n",     
121                                                 mib.aData.GroupAddressTable.aGroupTable[i][0],
122                                                 mib.aData.GroupAddressTable.aGroupTable[i][1],
123                                                 mib.aData.GroupAddressTable.aGroupTable[i][2],
124                                                 mib.aData.GroupAddressTable.aGroupTable[i][3],
125                                                 mib.aData.GroupAddressTable.aGroupTable[i][4],
126                                                 mib.aData.GroupAddressTable.aGroupTable[i][5]));
127 }
128
129 static void mibDbgGetCounterTable(TI_HANDLE hTWD)
130 {
131         TI_STATUS status = TI_OK;
132     TMib mib;
133
134         /* init */
135         mib.aMib                                                                = MIB_countersTable;
136         mib.aData.CounterTable.FCSErrorCount    = 0;
137         mib.aData.CounterTable.PLCPErrorCount   = 0;
138         mib.aData.CounterTable.SeqNumMissCount  = 0;
139
140         status = TWD_ReadMib(hTWD,NULL,NULL,(void*)&mib);
141         if (status != TI_OK)
142         {
143                 WLAN_OS_REPORT(("Get Counter Table failed\n"));
144                 return;
145         }
146
147         /* print Counter Table */
148     WLAN_OS_REPORT(("FCS error count= %d \nPLCP  error count = %d \nSeq error count= %d\n",     
149                                         mib.aData.CounterTable.FCSErrorCount,
150                                         mib.aData.CounterTable.PLCPErrorCount,
151                                         mib.aData.CounterTable.SeqNumMissCount));
152
153 }
154
155 static void mibDbgModifyCtsToSelf(TI_HANDLE hTWD, void* pParam)
156 {
157         TI_STATUS status = TI_OK;
158     TMib mib;
159
160         if (pParam == NULL) 
161         {
162                 WLAN_OS_REPORT(("Modify CTS To Self failed: No Parameter received\n"));
163                 return;
164         }
165
166         /* init */
167         mib.aMib                                        = MIB_ctsToSelf;
168         mib.aData.CTSToSelfEnable       = 0;
169         mib.aData.CTSToSelfEnable       = *(TI_UINT32*)pParam;
170
171         status = TWD_WriteMib(hTWD, &mib);
172         if (status != TI_OK)
173         {
174                 WLAN_OS_REPORT(("Modify CTS To Self failed\n"));
175                 return;
176         }
177         WLAN_OS_REPORT(("Modify CTS To Self OK\n"));
178
179         WLAN_OS_REPORT(("CtsToSelf = %s (%d)\n",
180                                    mib.aData.CTSToSelfEnable?"Enable":"Disable",
181                                    mib.aData.CTSToSelfEnable));
182         WLAN_OS_REPORT(("CTS to self: [0 - Disable, 1 - Enable]\n"));
183 }
184
185 static void mibDbgGetCtsToSelf(TI_HANDLE hTWD)
186 {
187         TI_STATUS status = TI_OK;
188     TMib mib;
189
190         /* init */
191         mib.aMib                                        = MIB_ctsToSelf;
192         mib.aData.CTSToSelfEnable       = 0;
193
194         status = TWD_ReadMib(hTWD,NULL,NULL,(void*)&mib);
195         if (status != TI_OK)
196         {
197                 WLAN_OS_REPORT(("Get CTS To Self failed\n"));
198                 return;
199         }
200
201         WLAN_OS_REPORT(("CtsToSelf = %s (%d)\n",
202                                    mib.aData.CTSToSelfEnable?"Enable":"Disable",
203                                    mib.aData.CTSToSelfEnable));
204         WLAN_OS_REPORT(("CTS to self: [0 - Disable, 1 - Enable]\n"));
205 }
206
207 static void mibDbgSetMaxRxLifetime(TI_HANDLE hTWD, void* pParam)
208 {
209         TI_STATUS status = TI_OK;
210     TMib mib;
211
212         if (pParam == NULL) 
213         {
214                 WLAN_OS_REPORT(("Set Maximum Rx Life Time failed: No Parameter received\n"));
215                 return;
216         }
217
218         /* init */
219         mib.aMib                                                = MIB_dot11MaxReceiveLifetime;
220         mib.aData.MaxReceiveLifeTime    = *(TI_UINT32*)pParam;
221
222         status = TWD_WriteMib(hTWD, &mib);
223         if (status != TI_OK)
224         {
225                 WLAN_OS_REPORT(("Set Maximum Rx Life Time failed\n"));
226                 return;
227         }
228 }
229
230 /*
231  ***********************************************************************
232  *      External functions definitions
233  ***********************************************************************
234  */
235 void mibDbgPrintFunctions(void)
236 {
237         WLAN_OS_REPORT(("\n          MIB Dbg Functions   \n"));
238         WLAN_OS_REPORT(("--------------------------------------\n"));
239
240         WLAN_OS_REPORT(("2101 - Print ARP Table\n"));
241         WLAN_OS_REPORT(("2102 - Print Group Address Table\n"));
242         WLAN_OS_REPORT(("2103 - Print Counter Table\n"));
243         WLAN_OS_REPORT(("2104 - Print Modify CTS to Self\n"));
244         WLAN_OS_REPORT(("2105 - Print Max RX Life Time\n"));
245 }
246
247 void MibDebugFunction(TI_HANDLE hTWD ,TI_UINT32 funcType, void* pParam)
248 {
249         if (hTWD == NULL) 
250         {
251                 return;
252         }
253
254         switch (funcType)
255         {
256         case DBG_MIB_PRINT_HELP:
257                 mibDbgPrintFunctions();
258                 break;
259         case DBG_MIB_GET_ARP_TABLE:
260                 mibDbgGetArpIpTable(hTWD);
261                 break;
262         case DBG_MIB_GET_GROUP_ADDRESS_TABLE:
263                 mibDbgGetGroupAddressTable(hTWD);
264                 break;
265         case DBG_MIB_GET_COUNTER_TABLE:
266                 mibDbgGetCounterTable(hTWD);
267                 break;
268         case DBG_MIB_MODIFY_CTS_TO_SELF:
269                 mibDbgModifyCtsToSelf(hTWD, pParam);
270                 break;
271         case DBG_MIB_GET_CTS_TO_SELF:
272                 mibDbgGetCtsToSelf(hTWD);
273                 break;
274         case DBG_MIB_SET_MAX_RX_LIFE_TIME:
275                 mibDbgSetMaxRxLifetime(hTWD, pParam);
276                 break;
277         default:
278         WLAN_OS_REPORT(("MIB Debug: Invalid function type in MIB Debug function: %d\n", funcType));
279                 break;
280         }
281 }