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, ¶m); 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, ¶m); 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