/** * * admCtrl_setExtAuthMode - Set current External authentication Mode Status. * * \b Description: * * Set current External authentication Mode Status. * * \b ARGS: * * I - pAdmCtrl - context \n * I - extAuthMode - External authentication Mode \n * * \b RETURNS: * * TI_OK on success, TI_NOK on failure. * * \sa */ TI_STATUS admCtrl_setExtAuthMode(admCtrl_t *pAdmCtrl, EExternalAuthMode extAuthMode) { if (extAuthMode >= RSN_EXT_AUTH_MODEMAX) { return TI_NOK; } if (pAdmCtrl->externalAuthMode == extAuthMode) { return TI_OK; } pAdmCtrl->externalAuthMode = extAuthMode; if (extAuthMode <= RSN_EXT_AUTH_MODE_AUTO_SWITCH) { pAdmCtrl->authSuite = (EAuthSuite)extAuthMode; } else { pAdmCtrl->authSuite = RSN_AUTH_OPEN; } return (admCtrl_subConfig(pAdmCtrl)); }
/** * * admCtrl_setUcastSuite - Set current unicast cipher suite support. * * \b Description: * * Set current unicast cipher suite support. * * \b ARGS: * * I - pAdmCtrl - context \n * I - suite - cipher suite to work with \n * * \b RETURNS: * * TI_OK on success, TI_NOK on failure. * * \sa */ TI_STATUS admCtrl_setUcastSuite(admCtrl_t * pAdmCtrl, ECipherSuite suite) { TI_STATUS status; if (suite == pAdmCtrl->unicastSuite) { return TI_OK; } status = admCtrl_checkSetSuite(pAdmCtrl, suite, TI_FALSE); if (status == TI_OK) { pAdmCtrl->unicastSuite = suite; status = admCtrl_subConfig(pAdmCtrl); } return status; }
/** * * admCtrl_setAuthSuite - Change current authentication suite. * * \b Description: * * Change current authentication suite. * * \b ARGS: * * I - pAdmCtrl - context \n * I - authSuite - authentication suite to work with \n * * \b RETURNS: * * TI_OK on success, TI_NOK on failure. * * \sa */ TI_STATUS admCtrl_setAuthSuite(admCtrl_t * pAdmCtrl, EAuthSuite authSuite) { TI_STATUS status = TI_NOK; if (pAdmCtrl == NULL) { return TI_NOK; } if (pAdmCtrl->authSuite == authSuite) { return TI_OK; } if (pAdmCtrl->authSuite > RSN_AUTH_AUTO_SWITCH) { return TI_NOK; } pAdmCtrl->externalAuthMode = (EExternalAuthMode) authSuite; pAdmCtrl->authSuite = authSuite; status = admCtrl_subConfig(pAdmCtrl); return status; }
/** * * admCtrl_config * * \b Description: * * Configure the admission control module. * * \b ARGS: * * I - role - admission cotrol role (AP or Station) \n * I - authSuite - authentication suite to work with \n * * \b RETURNS: * * TI_OK on success, TI_NOK on failure. * * \sa */ TI_STATUS admCtrl_config (TI_HANDLE hAdmCtrl, TI_HANDLE hMlme, TI_HANDLE hRx, TI_HANDLE hReport, TI_HANDLE hOs, struct _rsn_t *pRsn, TI_HANDLE hXCCMngr, TI_HANDLE hPowerMgr, TI_HANDLE hEvHandler, TI_HANDLE hTimer, TI_HANDLE hCurrBss, TRsnInitParams *pInitParam) { admCtrl_t *pAdmCtrl; TI_STATUS status; if (hAdmCtrl == NULL) { return TI_NOK; } pAdmCtrl = (admCtrl_t*)hAdmCtrl; pAdmCtrl->pRsn = pRsn; pAdmCtrl->hMlme = hMlme; pAdmCtrl->hRx = hRx; pAdmCtrl->hReport = hReport; pAdmCtrl->hOs = hOs; pAdmCtrl->hXCCMngr = hXCCMngr; pAdmCtrl->hPowerMgr = hPowerMgr; pAdmCtrl->hEvHandler = hEvHandler; pAdmCtrl->hTimer = hTimer; pAdmCtrl->hCurrBss = hCurrBss; /* Initialize admission control parameters */ pAdmCtrl->role = RSN_PAE_SUPP; pAdmCtrl->networkMode = RSN_INFRASTRUCTURE; pAdmCtrl->authSuite = pInitParam->authSuite; pAdmCtrl->externalAuthMode = pInitParam->externalAuthMode; pAdmCtrl->mixedMode = pInitParam->mixedMode; if (pInitParam->privacyOn) { pAdmCtrl->broadcastSuite = TWD_CIPHER_WEP; pAdmCtrl->unicastSuite = TWD_CIPHER_WEP; } else { pAdmCtrl->broadcastSuite = TWD_CIPHER_NONE; pAdmCtrl->unicastSuite = TWD_CIPHER_NONE; } pAdmCtrl->preAuthSupport = pInitParam->preAuthSupport; pAdmCtrl->preAuthTimeout = pInitParam->preAuthTimeout; pAdmCtrl->WPAMixedModeEnable = pInitParam->WPAMixedModeEnable; /*pAdmCtrl->PMKIDCandListDelay = pInitParam->PMKIDCandListDelay;*/ pAdmCtrl->MaxNumOfPMKIDs = PMKID_MAX_NUMBER; /* Initialize admission control member functions */ pAdmCtrl->setAuthSuite = admCtrl_setAuthSuite; pAdmCtrl->setNetworkMode = admCtrl_setNetworkMode; pAdmCtrl->getAuthSuite = admCtrl_getAuthSuite; pAdmCtrl->setExtAuthMode = admCtrl_setExtAuthMode; pAdmCtrl->getExtAuthMode = admCtrl_getExtAuthMode; pAdmCtrl->setUcastSuite = admCtrl_setUcastSuite; pAdmCtrl->setBcastSuite = admCtrl_setBcastSuite; pAdmCtrl->getCipherSuite = admCtrl_getCipherSuite; pAdmCtrl->setKeyMngSuite = admCtrl_setKeyMngSuite; pAdmCtrl->getMixedMode = admCtrl_getMixedMode; pAdmCtrl->setMixedMode = admCtrl_setMixedMode; pAdmCtrl->getAuthEncrCap = admCtrl_getAuthEncrCapability; pAdmCtrl->getPmkidList = admCtrl_nullGetPMKIDlist; pAdmCtrl->setPmkidList = admCtrl_nullSetPMKIDlist; pAdmCtrl->resetPmkidList = admCtrl_resetPMKIDlist; pAdmCtrl->getPromoteFlags = admCtrl_getPromoteFlags; pAdmCtrl->setPromoteFlags = admCtrl_setPromoteFlags; pAdmCtrl->getWPAMixedModeSupport = admCtrl_getWPAMixedModeSupport; #ifdef XCC_MODULE_INCLUDED pAdmCtrl->setNetworkEap = admCtrl_setNetworkEap; pAdmCtrl->getNetworkEap = admCtrl_getNetworkEap; pAdmCtrl->networkEapMode = OS_XCC_NETWORK_EAP_OFF; #endif pAdmCtrl->getPreAuthStatus = admCtrl_nullGetPreAuthStatus; pAdmCtrl->startPreAuth = admCtrl_nullStartPreAuth; pAdmCtrl->get802_1x_AkmExists = admCtrl_nullGet802_1x_AkmExists; /* Zero number of sent wpa2 preauthentication candidates */ pAdmCtrl->numberOfPreAuthCandidates = 0; /* Create hPreAuthTimerWpa2 timer */ pAdmCtrl->hPreAuthTimerWpa2 = tmr_CreateTimer (pAdmCtrl->hTimer); if (pAdmCtrl->hPreAuthTimerWpa2 == NULL) { TRACE0(pAdmCtrl->hReport, REPORT_SEVERITY_ERROR , "admCtrl_config(): Failed to create hPreAuthTimerWpa2!\n"); } status = admCtrl_subConfig(pAdmCtrl); return status; }