1a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
2a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * admCtrlNone.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/** \file admCtrl.c
35a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  \brief Admission control API implimentation
36a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
37a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  \see admCtrl.h
38a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
39a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
40a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************
41a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *                                                                          *
42a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *   MODULE:  Admission Control	    		                                *
43a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *   PURPOSE: Admission Control Module API                              	*
44a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *                                                                          *
45a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/
46a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
47a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define __FILE_ID__  FILE_ID_17
48a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "osApi.h"
49a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "paramOut.h"
50a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "fsm.h"
51a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "report.h"
52a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "mlmeApi.h"
53a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "DataCtrl_Api.h"
54a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "rsn.h"
55a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "admCtrl.h"
56a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "admCtrlNone.h"
57a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifdef XCC_MODULE_INCLUDED
58a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "XCCMngr.h"
59a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "admCtrlWpa.h"
60a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "admCtrlXCC.h"
61a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
62a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "TWDriver.h"
63a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
64a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
65a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Constants */
66a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
67a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Enumerations */
68a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
69a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Typedefs */
70a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
71a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Structures */
72a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
73a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* External data definitions */
74a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
75a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Local functions definitions */
76a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
77a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Global variables */
78a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
79a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Function prototypes */
80a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
81a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
82a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
83a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* admCtrlNone_config  - Configure empty admission control.
84a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
85a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b Description:
86a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
87a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* Configure empty admission control.
88a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
89a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b ARGS:
90a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
91a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  I   - pAdmCtrl - context \n
92a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
93a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b RETURNS:
94a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
95a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  TI_OK on success, TI_NOK on failure.
96a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
97a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \sa
98a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*/
99a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS admCtrlNone_config(admCtrl_t *pAdmCtrl)
100a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
101a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	TI_STATUS			status;
102a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	TRsnPaeConfig   	paeConfig;
103a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
104a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifdef XCC_MODULE_INCLUDED
105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	TTwdParamInfo   	tTwdParam;
106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	if ((pAdmCtrl->authSuite !=	RSN_AUTH_OPEN ) &&
109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		(pAdmCtrl->authSuite !=	RSN_AUTH_SHARED_KEY) &&
110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		(pAdmCtrl->authSuite !=	RSN_AUTH_AUTO_SWITCH))	{
111a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		/* The default is OPEN */
112a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		pAdmCtrl->authSuite =	RSN_AUTH_OPEN;
113a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
115a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	/* set admission control parameters */
116a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    pAdmCtrl->keyMngSuite = RSN_KEY_MNG_NONE;
117a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pAdmCtrl->externalAuthMode = (EExternalAuthMode)pAdmCtrl->authSuite;
118a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
119a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	/* set callback functions (API) */
120a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pAdmCtrl->getInfoElement = admCtrlNone_getInfoElement;
121a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pAdmCtrl->setSite = admCtrlNone_setSite;
122a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pAdmCtrl->evalSite = admCtrlNone_evalSite;
123a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
124a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pAdmCtrl->getPmkidList	 = admCtrl_nullGetPMKIDlist;
125a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pAdmCtrl->setPmkidList	 = admCtrl_nullSetPMKIDlist;
126a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pAdmCtrl->resetPmkidList = admCtrl_resetPMKIDlist;
127a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pAdmCtrl->getPreAuthStatus = admCtrl_nullGetPreAuthStatus;
128a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pAdmCtrl->startPreAuth	= admCtrl_nullStartPreAuth;
129a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    pAdmCtrl->get802_1x_AkmExists = admCtrl_nullGet802_1x_AkmExists;
130a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
131a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
132a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
133a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	/* set cipher suite */
134a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pAdmCtrl->broadcastSuite =  TWD_CIPHER_NONE;
135a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pAdmCtrl->unicastSuite = TWD_CIPHER_NONE;
136a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
137a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
138a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	/* set PAE parametrs */
139a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	paeConfig.authProtocol = pAdmCtrl->externalAuthMode;
140a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	paeConfig.unicastSuite = pAdmCtrl->unicastSuite;
141a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	paeConfig.broadcastSuite = pAdmCtrl->broadcastSuite;
142a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	paeConfig.keyExchangeProtocol = pAdmCtrl->keyMngSuite;
143a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	/* set default PAE configuration */
144a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	status = pAdmCtrl->pRsn->setPaeConfig(pAdmCtrl->pRsn, &paeConfig);
145a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
146a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifdef XCC_MODULE_INCLUDED
147a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	/* Clean MIC and KP in HAL and re-send WEP-keys  */
148a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	tTwdParam.paramType = TWD_RSN_XCC_SW_ENC_ENABLE_PARAM_ID;
149a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	tTwdParam.content.rsnXCCSwEncFlag = TI_FALSE;
150a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	status = TWD_SetParam(pAdmCtrl->pRsn->hTWD, &tTwdParam);
151a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
152a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	tTwdParam.paramType = TWD_RSN_XCC_MIC_FIELD_ENABLE_PARAM_ID;
153a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	tTwdParam.content.rsnXCCMicFieldFlag = TI_FALSE;
154a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	status = TWD_SetParam(pAdmCtrl->pRsn->hTWD, &tTwdParam);
155a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif /*XCC_MODULE_INCLUDED*/
156a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
157a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	return status;
158a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}
159a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
160a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
161a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
162a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
163a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* admCtrlNone_getInfoElement - Get the current information element.
164a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
165a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b Description:
166a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
167a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* Get the current information element.
168a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
169a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b ARGS:
170a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
171a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  I   - pAdmCtrl - context \n
172a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  I   - pIe - IE buffer \n
173a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  I   - pLength - length of IE \n
174a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
175a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b RETURNS:
176a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
177a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  TI_OK on success, TI_NOK on failure.
178a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
179a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \sa
180a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*/
181a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS admCtrlNone_getInfoElement(admCtrl_t *pAdmCtrl, TI_UINT8 *pIe, TI_UINT32 *pLength)
182a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
183a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	*pLength = 0;
184a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	pIe = NULL;
185a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
186a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	TI_VOIDCAST(pIe);
187a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	return TI_OK;
188a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}
189a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
190a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
191a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* admCtrlNone_setSite  - Set current primary site parameters for registration.
192a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
193a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b Description:
194a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
195a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* Set current primary site parameters for registration.
196a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
197a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b ARGS:
198a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
199a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  I   - pAdmCtrl - context \n
200a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  I   - pRsnData - site's RSN data \n
201a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  O   - pAssocIe - result IE of evaluation \n
202a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  O   - pAssocIeLen - length of result IE of evaluation \n
203a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
204a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b RETURNS:
205a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
206a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  TI_OK on site is aproved, TI_NOK on site is rejected.
207a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
208a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \sa
209a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*/
210a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS admCtrlNone_setSite(admCtrl_t *pAdmCtrl, TRsnData *pRsnData, TI_UINT8 *pAssocIe, TI_UINT8 *pAssocIeLen)
211a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
212a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	TI_STATUS			status;
213a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	paramInfo_t			param;
214a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	TTwdParamInfo		tTwdParam;
215a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	EAuthSuite			authSuite;
216a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
217a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	admCtrlNone_config(pAdmCtrl);
218a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
219a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	authSuite = pAdmCtrl->authSuite;
220a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
221a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt  /* Config the default keys */
222a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	if ((authSuite == RSN_AUTH_SHARED_KEY) || (authSuite == RSN_AUTH_AUTO_SWITCH))
223a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	{   /* Configure Security status in HAL */
224a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		tTwdParam.paramType = TWD_RSN_SECURITY_MODE_PARAM_ID;
225a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		tTwdParam.content.rsnEncryptionStatus = (ECipherSuite)TWD_CIPHER_WEP;
226a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		status = TWD_SetParam(pAdmCtrl->pRsn->hTWD, &tTwdParam);
227a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		/* Configure the keys in HAL */
228a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		rsn_setDefaultKeys(pAdmCtrl->pRsn);
229a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
230a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
231a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifdef XCC_MODULE_INCLUDED
232a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	admCtrlXCC_setExtendedParams(pAdmCtrl, pRsnData);
233a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
234a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
235a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	/* Now we configure the MLME module with the 802.11 legacy authentication suite,
236a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		THe MLME will configure later the authentication module */
237a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	param.paramType = MLME_LEGACY_TYPE_PARAM;
238a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	switch (authSuite)
239a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	{
240a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	case RSN_AUTH_OPEN:
241a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		param.content.mlmeLegacyAuthType = AUTH_LEGACY_OPEN_SYSTEM;
242a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		break;
243a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
244a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	case RSN_AUTH_SHARED_KEY:
245a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		param.content.mlmeLegacyAuthType = AUTH_LEGACY_SHARED_KEY;
246a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		break;
247a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
248a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	case RSN_AUTH_AUTO_SWITCH:
249a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		param.content.mlmeLegacyAuthType = AUTH_LEGACY_AUTO_SWITCH;
250a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		break;
251a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
252a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	default:
253a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		return TI_NOK;
254a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
255a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
256a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	status = mlme_setParam(pAdmCtrl->hMlme, &param);
257a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	if (status != TI_OK)
258a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	{
259a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		return status;
260a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
261a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
262a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	param.paramType = RX_DATA_EAPOL_DESTINATION_PARAM;
263a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	param.content.rxDataEapolDestination = OS_ABS_LAYER;
264a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	status = rxData_setParam(pAdmCtrl->hRx, &param);
265a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	if (status != TI_OK)
266a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	{
267a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		return status;
268a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
269a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
270a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	/* Configure privacy status in HAL */
271a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	if (authSuite == RSN_AUTH_OPEN)
272a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	{
273a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		tTwdParam.paramType = TWD_RSN_SECURITY_MODE_PARAM_ID;
274a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		tTwdParam.content.rsnEncryptionStatus = (ECipherSuite)TWD_CIPHER_NONE;
275a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		status = TWD_SetParam(pAdmCtrl->pRsn->hTWD, &tTwdParam);
276a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
277a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
278a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	return status;
279a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}
280a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
281a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
282a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
283a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* admCtrlNone_evalSite  - Evaluate site for registration.
284a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
285a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b Description:
286a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
287a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* evaluate site RSN capabilities against the station's cap.
288a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* If the BSS type is infrastructure, the station matches the site only if it's WEP status is same as the site
289a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* In IBSS, it does not matter
290a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
291a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b ARGS:
292a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
293a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  I   - pAdmCtrl - Context \n
294a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  I   - pRsnData - site's RSN data \n
295a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  O   - pEvaluation - Result of evaluation \n
296a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
297a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \b RETURNS:
298a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
299a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*  TI_OK
300a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*
301a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* \sa
302a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt*/
303a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS admCtrlNone_evalSite(admCtrl_t *pAdmCtrl, TRsnData *pRsnData, TRsnSiteParams *pRsnSiteParams, TI_UINT32 *pEvaluation)
304a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
305a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	if ((pAdmCtrl==NULL) || (pEvaluation==NULL)){
306a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		return TI_NOK;
307a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
308a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	*pEvaluation = 1;
309a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
310a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	/* Check privacy bit if not in mixed mode */
311a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	if (!pAdmCtrl->mixedMode)
312a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	{   /* There's no mixed mode, so make sure that the privacy Bit is off*/
313a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		if (pRsnData->privacy)
314a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		{
315a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt			*pEvaluation = 0;
316a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt			return TI_NOK;
317a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt		}
318a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt	}
319a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
320a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TRACE1(pAdmCtrl->hReport, REPORT_SEVERITY_INFORMATION, "admCtrlNone_evalSite:  pEvaluation=%d\n\n", *pEvaluation);
321a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
322a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt   	return TI_OK;
323a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
324a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}
325a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
326a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
327