1a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
2a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * rsnDbg.c
3a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
4a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * All rights reserved.
6a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
7a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Redistribution and use in source and binary forms, with or without
8a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * modification, are permitted provided that the following conditions
9a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * are met:
10a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
11a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Redistributions of source code must retain the above copyright
12a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    notice, this list of conditions and the following disclaimer.
13a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Redistributions in binary form must reproduce the above copyright
14a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    notice, this list of conditions and the following disclaimer in
15a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    the documentation and/or other materials provided with the
16a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    distribution.
17a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Neither the name Texas Instruments nor the names of its
18a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    contributors may be used to endorse or promote products derived
19a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    from this software without specific prior written permission.
20a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
21a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
33a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
34a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
35a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************/
36a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*																			*/
37a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*		MODULE:																*/
38a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*    PURPOSE:																*/
39a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*												   							*/
40a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************/
41a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* #include "osTITypes.h" */
42a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "osApi.h"
43a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "rsnApi.h"
44a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "rsn.h"
45a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "report.h"
46a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "paramOut.h"
47a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "rsnDbg.h"
48a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifdef XCC_MODULE_INCLUDED
49a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "XCCMngr.h"
50a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
51a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
52a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid printRsnDbgFunctions(void);
53a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid printRogueApTable(TI_HANDLE hRogueAp);
54a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
55a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtstatic TI_UINT8 infoBuf[480];
56a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
57a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*************************************************************************
58a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *																		 *
59a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *************************************************************************
60a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtDESCRIPTION:
61a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
62a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtINPUT:
63a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
64a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtOUTPUT:
65a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
66a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtRETURN:
67a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
68a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt************************************************************************/
69a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid rsnDebugFunction(TI_HANDLE hRsn, TI_UINT32 funcType, void *pParam)
70a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
71a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	paramInfo_t 	param, *pRsnParam;
72a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	TI_UINT32			value;
73a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    rsnAuthEncrCapability_t rsnAuthEncrCap;
74a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
75a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	switch (funcType)
76a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	{
77a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	case DBG_RSN_PRINT_HELP:
78a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		printRsnDbgFunctions();
79a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		break;
80a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
81a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	case DBG_RSN_SET_DESIRED_AUTH:
82a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		WLAN_OS_REPORT(("RSN DBG - Set desired Authentication suite \n"));
83a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		value = *(TI_UINT32*)pParam;
84a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
85a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		param.paramType = RSN_EXT_AUTHENTICATION_MODE;
86a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		param.content.rsnDesiredAuthType = (EAuthSuite)value;
87a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
88a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		rsn_setParam(hRsn, &param);
89a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		break;
90a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
91a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	case DBG_RSN_SET_DESIRED_CIPHER:
92a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		WLAN_OS_REPORT(("RSN DBG - Set desired cipher suite \n"));
93a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		value = *(TI_UINT32*)pParam;
94a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
95a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		param.paramType = RSN_ENCRYPTION_STATUS_PARAM;
96a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		param.content.rsnEncryptionStatus = (ECipherSuite)value;
97a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
98a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		rsn_setParam(hRsn, &param);
99a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		break;
100a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
101a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
102a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	case DBG_RSN_GEN_MIC_FAILURE_REPORT:
103a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		value = *(TI_UINT32*)pParam;
104a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		/* generate unicast mic failure report to the OS and to the RSN module */
105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		rsn_reportMicFailure(hRsn, (TI_UINT8*)&value,1);
106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		break;
107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	case DBG_RSN_GET_PARAM_802_11_CAPABILITY:
109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		param.paramType = RSN_AUTH_ENCR_CAPABILITY;
111a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt        param.content.pRsnAuthEncrCapability = &rsnAuthEncrCap;
112a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
113a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt        /* Get 802_11 capability info */
114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		rsn_getParam(hRsn, &param);
115a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		break;
116a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
117a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	case DBG_RSN_GET_PMKID_CACHE:
118a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
119a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		pRsnParam = (paramInfo_t *)&infoBuf;
120a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		pRsnParam->paramType = RSN_PMKID_LIST;
121a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		pRsnParam->paramLength = 480;
122a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
123a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		/* Get PMKID list */
124a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		rsn_getParam(hRsn, pRsnParam);
125a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		break;
126a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
127a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	case DBG_RSN_RESET_PMKID_CACHE:
128a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
129a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		rsn_resetPMKIDList(hRsn);
130a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
131a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		break;
132a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifdef XCC_MODULE_INCLUDED
133a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    case DBG_RSN_PRINT_ROGUE_AP_TABLE:
134a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt        printRogueApTable(((XCCMngr_t*)((rsn_t*)hRsn)->hXCCMngr)->hRogueAp);
135a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt        break;
136a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
137a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
138a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    case DBG_RSN_SET_PORT_STATUS:
139a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt        WLAN_OS_REPORT(("Setting PORT STATUS to open\n"));
140a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt        rsn_setPortStatus(hRsn,TI_TRUE);
141a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt        break;
142a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
143a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    case DBG_RSN_PRINT_PORT_STATUS:
144a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt        {
145a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt            TI_BOOL portStatus = TI_FALSE;
146a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt            portStatus = rsn_getPortStatus(((rsn_t*)hRsn));
147a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt            WLAN_OS_REPORT(("\n\nPORT is %s !!\n",(portStatus)?"OPEN":"CLOSE"));
148a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt        }
149a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
150a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt        break;
151a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	default:
152a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		WLAN_OS_REPORT(("Invalid function type in RSN Function Command: %d\n", funcType));
153a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		break;
154a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
155a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
156a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}
157a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
158a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
159a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid printRsnDbgFunctions(void)
160a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
161a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	WLAN_OS_REPORT(("   Rsn Debug Functions   \n"));
162a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	WLAN_OS_REPORT(("-------------------------\n"));
163a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
164a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	WLAN_OS_REPORT(("702 - Set default key id \n"));
165a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	WLAN_OS_REPORT(("703 - Set desired Authentication suite \n"));
166a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	WLAN_OS_REPORT(("704 - Set desired cipher suite \n"));
167a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
168a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	WLAN_OS_REPORT(("706 - Generate MIC FAILURE report (after 2 clicks less then 1 minute - disassociate)\n"));
169a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	WLAN_OS_REPORT(("707 - Get 802.11 authentication/encryption capability\n"));
170a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	WLAN_OS_REPORT(("708 - Get PMKID cache \n"));
171a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	WLAN_OS_REPORT(("709 - ReSet PMKID cache  \n"));
172a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	WLAN_OS_REPORT(("710 - Print Rogue AP table\n"));
173a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
174a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
175a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}
176