1981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*
2981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * MibDbg.c
3981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
4981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * All rights reserved.
6981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
7981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Redistribution and use in source and binary forms, with or without
8981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * modification, are permitted provided that the following conditions
9981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * are met:
10981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
11981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *  * Redistributions of source code must retain the above copyright
12981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    notice, this list of conditions and the following disclaimer.
13981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *  * Redistributions in binary form must reproduce the above copyright
14981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    notice, this list of conditions and the following disclaimer in
15981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    the documentation and/or other materials provided with the
16981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    distribution.
17981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *  * Neither the name Texas Instruments nor the names of its
18981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    contributors may be used to endorse or promote products derived
19981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    from this software without specific prior written permission.
20981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
21981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
33981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
34981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/***************************************************************************/
35981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*                                                                         */
36981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*    MODULE:   MibDbg.c                                                 */
37981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*    PURPOSE:  MIB debug implementation                                    */
38981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*                                                                         */
39981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/***************************************************************************/
40981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
41981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "MibDbg.h"
42981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "TWDriver.h"
43981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "report.h"
44981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "osApi.h"
45981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
46981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*
47981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ***********************************************************************
48981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	Internal functions definitions
49981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ***********************************************************************
50981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
51981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
52981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic void mibDbgGetArpIpTable(TI_HANDLE hTWD)
53981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
54981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	TI_STATUS status = TI_OK;
55981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TMib mib;
56981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_INT32 i;
57981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
58981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	/* init */
59981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aMib = MIB_arpIpAddressesTable;
60981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aData.ArpIpAddressesTable.FilteringEnable = 0;
61981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	for ( i = 0 ; i < IP_V4_ADDR_LEN ; i++ )
62981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
63981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		mib.aData.ArpIpAddressesTable.addr[i] = 0;
64981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
65981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
66981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	status = TWD_ReadMib(hTWD,NULL,NULL,(void*)&mib);
67981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	if (status != TI_OK)
68981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
69981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		WLAN_OS_REPORT(("Get ARP Table failed\n"));
70981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		return;
71981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
72981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
73981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	/* print ARP Table */
74981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    WLAN_OS_REPORT(("ARP IP Table:\n"));
75981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    WLAN_OS_REPORT(("FilteringEnable: %s (%d)\n",
76981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt				   (mib.aData.ArpIpAddressesTable.FilteringEnable)?"Enable":"Disable",
77981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt				   mib.aData.ArpIpAddressesTable.FilteringEnable));
78981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    WLAN_OS_REPORT(("ArpIpAddress: %d.%d.%d.%d\n",
79981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt					mib.aData.ArpIpAddressesTable.addr[0],
80981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt					mib.aData.ArpIpAddressesTable.addr[1],
81981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt					mib.aData.ArpIpAddressesTable.addr[2],
82981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt					mib.aData.ArpIpAddressesTable.addr[3]));
83981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
84981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
85981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic void mibDbgGetGroupAddressTable(TI_HANDLE hTWD)
86981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
87981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	TI_STATUS status = TI_OK;
88981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TMib mib;
89981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_INT32 i,j;
90981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
91981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	/* init */
92981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aMib 										= MIB_dot11GroupAddressesTable;
93981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aData.GroupAddressTable.bFilteringEnable 	= 0;
94981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aData.GroupAddressTable.nNumberOfAddresses 	= 0;
95981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    for ( i = 0 ; i < MIB_MAX_MULTICAST_GROUP_ADDRS ; i++ )
96981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
97981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		for ( j = 0 ; j < MAC_ADDR_LEN ; j++ )
98981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		{
99981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt			mib.aData.GroupAddressTable.aGroupTable[i][j]	= 0;
100981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		}
101981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
102981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
103981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	status = TWD_ReadMib(hTWD,NULL,NULL,(void*)&mib);
104981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	if (status != TI_OK)
105981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
106981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		WLAN_OS_REPORT(("Get Group Address Table failed\n"));
107981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		return;
108981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
109981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
110981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	/* print Group Address Table */
111981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    WLAN_OS_REPORT(("Group addresses Table:\n"));
112981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    WLAN_OS_REPORT(("FilteringEnable: %s (%d)\n",
113981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt				   (mib.aData.GroupAddressTable.bFilteringEnable)?"Enable":"Disable",
114981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt				   mib.aData.GroupAddressTable.bFilteringEnable));
115981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    WLAN_OS_REPORT(("nNumberOfAddresses: %d\n",
116981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt				   mib.aData.GroupAddressTable.nNumberOfAddresses));
117981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
118981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    WLAN_OS_REPORT(("Group addresses: \n"));
119981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    for ( i = 0 ; i < MIB_MAX_MULTICAST_GROUP_ADDRS ; i++ )
120981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		WLAN_OS_REPORT(("%x:%x:%x:%x:%x:%x\n",
121981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt						mib.aData.GroupAddressTable.aGroupTable[i][0],
122981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt						mib.aData.GroupAddressTable.aGroupTable[i][1],
123981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt						mib.aData.GroupAddressTable.aGroupTable[i][2],
124981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt						mib.aData.GroupAddressTable.aGroupTable[i][3],
125981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt						mib.aData.GroupAddressTable.aGroupTable[i][4],
126981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt						mib.aData.GroupAddressTable.aGroupTable[i][5]));
127981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
128981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
129981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic void mibDbgGetCounterTable(TI_HANDLE hTWD)
130981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
131981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	TI_STATUS status = TI_OK;
132981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TMib mib;
133981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
134981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	/* init */
135981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aMib 								= MIB_countersTable;
136981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aData.CounterTable.FCSErrorCount	= 0;
137981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aData.CounterTable.PLCPErrorCount	= 0;
138981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aData.CounterTable.SeqNumMissCount	= 0;
139981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
140981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	status = TWD_ReadMib(hTWD,NULL,NULL,(void*)&mib);
141981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	if (status != TI_OK)
142981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
143981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		WLAN_OS_REPORT(("Get Counter Table failed\n"));
144981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		return;
145981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
146981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
147981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	/* print Counter Table */
148981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    WLAN_OS_REPORT(("FCS error count= %d \nPLCP  error count = %d \nSeq error count= %d\n",
149981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt					mib.aData.CounterTable.FCSErrorCount,
150981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt					mib.aData.CounterTable.PLCPErrorCount,
151981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt					mib.aData.CounterTable.SeqNumMissCount));
152981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
153981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
154981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
155981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic void mibDbgModifyCtsToSelf(TI_HANDLE hTWD, void* pParam)
156981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
157981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	TI_STATUS status = TI_OK;
158981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TMib mib;
159981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
160981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	if (pParam == NULL)
161981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
162981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		WLAN_OS_REPORT(("Modify CTS To Self failed: No Parameter received\n"));
163981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		return;
164981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
165981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
166981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	/* init */
167981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aMib					= MIB_ctsToSelf;
168981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aData.CTSToSelfEnable 	= 0;
169981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aData.CTSToSelfEnable 	= *(TI_UINT32*)pParam;
170981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
171981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	status = TWD_WriteMib(hTWD, &mib);
172981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	if (status != TI_OK)
173981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
174981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		WLAN_OS_REPORT(("Modify CTS To Self failed\n"));
175981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		return;
176981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
177981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("Modify CTS To Self OK\n"));
178981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
179981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("CtsToSelf = %s (%d)\n",
180981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt				   mib.aData.CTSToSelfEnable?"Enable":"Disable",
181981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt				   mib.aData.CTSToSelfEnable));
182981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("CTS to self: [0 - Disable, 1 - Enable]\n"));
183981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
184981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
185981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic void mibDbgGetCtsToSelf(TI_HANDLE hTWD)
186981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
187981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	TI_STATUS status = TI_OK;
188981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TMib mib;
189981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
190981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	/* init */
191981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aMib					= MIB_ctsToSelf;
192981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aData.CTSToSelfEnable 	= 0;
193981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
194981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	status = TWD_ReadMib(hTWD,NULL,NULL,(void*)&mib);
195981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	if (status != TI_OK)
196981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
197981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		WLAN_OS_REPORT(("Get CTS To Self failed\n"));
198981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		return;
199981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
200981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
201981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("CtsToSelf = %s (%d)\n",
202981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt				   mib.aData.CTSToSelfEnable?"Enable":"Disable",
203981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt				   mib.aData.CTSToSelfEnable));
204981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("CTS to self: [0 - Disable, 1 - Enable]\n"));
205981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
206981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
207981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic void mibDbgSetMaxRxLifetime(TI_HANDLE hTWD, void* pParam)
208981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
209981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	TI_STATUS status = TI_OK;
210981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TMib mib;
211981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
212981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	if (pParam == NULL)
213981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
214981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		WLAN_OS_REPORT(("Set Maximum Rx Life Time failed: No Parameter received\n"));
215981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		return;
216981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
217981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
218981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	/* init */
219981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aMib 						= MIB_dot11MaxReceiveLifetime;
220981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	mib.aData.MaxReceiveLifeTime 	= *(TI_UINT32*)pParam;
221981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
222981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	status = TWD_WriteMib(hTWD, &mib);
223981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	if (status != TI_OK)
224981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
225981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		WLAN_OS_REPORT(("Set Maximum Rx Life Time failed\n"));
226981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		return;
227981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
228981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
229981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
230981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*
231981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ***********************************************************************
232981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	External functions definitions
233981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ***********************************************************************
234981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
235981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid mibDbgPrintFunctions(void)
236981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
237981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("\n          MIB Dbg Functions   \n"));
238981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("--------------------------------------\n"));
239981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
240981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("2101 - Print ARP Table\n"));
241981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("2102 - Print Group Address Table\n"));
242981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("2103 - Print Counter Table\n"));
243981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("2104 - Print Modify CTS to Self\n"));
244981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	WLAN_OS_REPORT(("2105 - Print Max RX Life Time\n"));
245981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
246981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
247981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid MibDebugFunction(TI_HANDLE hTWD ,TI_UINT32 funcType, void* pParam)
248981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
249981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	if (hTWD == NULL)
250981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
251981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		return;
252981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
253981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
254981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	switch (funcType)
255981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	{
256981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	case DBG_MIB_PRINT_HELP:
257981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		mibDbgPrintFunctions();
258981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		break;
259981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	case DBG_MIB_GET_ARP_TABLE:
260981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		mibDbgGetArpIpTable(hTWD);
261981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		break;
262981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	case DBG_MIB_GET_GROUP_ADDRESS_TABLE:
263981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		mibDbgGetGroupAddressTable(hTWD);
264981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		break;
265981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	case DBG_MIB_GET_COUNTER_TABLE:
266981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		mibDbgGetCounterTable(hTWD);
267981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		break;
268981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	case DBG_MIB_MODIFY_CTS_TO_SELF:
269981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		mibDbgModifyCtsToSelf(hTWD, pParam);
270981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		break;
271981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	case DBG_MIB_GET_CTS_TO_SELF:
272981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		mibDbgGetCtsToSelf(hTWD);
273981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		break;
274981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	case DBG_MIB_SET_MAX_RX_LIFE_TIME:
275981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		mibDbgSetMaxRxLifetime(hTWD, pParam);
276981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		break;
277981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	default:
278981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        WLAN_OS_REPORT(("MIB Debug: Invalid function type in MIB Debug function: %d\n", funcType));
279981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt		break;
280981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	}
281981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
282