summaryrefslogtreecommitdiff
path: root/sta_dk_4_0_4_32/common
diff options
context:
space:
mode:
Diffstat (limited to 'sta_dk_4_0_4_32/common')
-rw-r--r--sta_dk_4_0_4_32/common/inc/paramOut.h35
-rw-r--r--sta_dk_4_0_4_32/common/inc/wspVer.h6
-rw-r--r--sta_dk_4_0_4_32/common/src/Application/Roaming/roamingMngr.c73
-rw-r--r--sta_dk_4_0_4_32/common/src/Application/ScanMngr/scanMngr.c9
-rw-r--r--sta_dk_4_0_4_32/common/src/Application/inc/scanMngrApi.h3
-rw-r--r--sta_dk_4_0_4_32/common/src/Management/QOS/Inc/qosMngr_API.h4
-rw-r--r--sta_dk_4_0_4_32/common/src/Management/QOS/qosMngr.c124
-rw-r--r--sta_dk_4_0_4_32/common/src/Management/apConn/apConn.c143
-rw-r--r--sta_dk_4_0_4_32/common/src/TNETW_Driver/MacServices/src/PowerAuthorization/PowerAuthorization.c9
-rw-r--r--sta_dk_4_0_4_32/common/src/TNETW_Driver/TNETWIF/BusTxn/whalHwAccess.c38
-rw-r--r--sta_dk_4_0_4_32/common/src/core/ExpInc/apConnApi.h3
-rw-r--r--sta_dk_4_0_4_32/common/src/core/data_ctrl/Ctrl/Ctrl.c35
-rw-r--r--sta_dk_4_0_4_32/common/src/core/inc/DataCtrl_Api.h8
-rw-r--r--sta_dk_4_0_4_32/common/src/core/inc/mlmeApi.h2
-rw-r--r--sta_dk_4_0_4_32/common/src/core/inc/rsnApi.h2
-rw-r--r--sta_dk_4_0_4_32/common/src/core/mlme/Assoc/assocSM.c51
-rw-r--r--sta_dk_4_0_4_32/common/src/core/rsn/admCtrlWpa.c50
-rw-r--r--sta_dk_4_0_4_32/common/src/core/rsn/admCtrlWpa2.c25
-rw-r--r--sta_dk_4_0_4_32/common/src/core/rsn/rsn.c57
-rw-r--r--sta_dk_4_0_4_32/common/src/core/sme/conn/conn.c6
-rw-r--r--sta_dk_4_0_4_32/common/src/core/sme/siteMgr/select.c92
-rw-r--r--sta_dk_4_0_4_32/common/src/core/sme/siteMgr/siteMgr.c34
-rw-r--r--sta_dk_4_0_4_32/common/src/utils/utils.c9
23 files changed, 613 insertions, 205 deletions
diff --git a/sta_dk_4_0_4_32/common/inc/paramOut.h b/sta_dk_4_0_4_32/common/inc/paramOut.h
index 7bc0265..89e29f3 100644
--- a/sta_dk_4_0_4_32/common/inc/paramOut.h
+++ b/sta_dk_4_0_4_32/common/inc/paramOut.h
@@ -860,6 +860,29 @@ typedef struct{
} content;
} paramInfo_t;
+
+/* paramInfoPartial_t is part of paramInfo_t it is implemented to reduce stack usage */
+typedef struct{
+ UINT32 paramType;
+ UINT32 paramLength;
+
+ union
+ {
+ TspecConfigure_t TspecConfigure;
+ BOOL rsnPreAuthStatus;
+ macAddress_t rsnApMac;
+ cipherSuite_e rsnEncryptionStatus;
+ BOOL rsnMixedMode;
+
+ /* Application Config Parameters Manager */
+ applicationConfigBuffer_t applicationConfigBuffer;
+
+ /* ctrl data section */
+ preamble_e ctrlDataCurrentPreambleType;
+
+ } content;
+}paramInfoPartial_t;
+
/* Set/get params function prototype */
typedef TI_STATUS (*paramFunc_t)(TI_HANDLE handle, paramInfo_t *pParam);
@@ -1224,16 +1247,16 @@ typedef struct
UINT32 beaconReceiveTime;
UINT8 hangoverPeriod;
UINT8 beaconListenInterval;
- UINT8 dtimListenInterval;
+ UINT8 dtimListenInterval;
UINT8 nConsecutiveBeaconsMissed;
UINT8 EnterTo802_11PsRetries;
UINT8 HwPsPollResponseTimeout;
- UINT16 autoModeInterval;
- UINT16 autoModeActiveTH;
- UINT16 autoModeDozeTH;
+ UINT16 autoModeInterval;
+ UINT16 autoModeActiveTH;
+ UINT16 autoModeDozeTH;
PowerMgr_PowerMode_e autoModeDozeMode;
- powerAutho_PowerPolicy_e defaultPowerLevel;
+ powerAutho_PowerPolicy_e defaultPowerLevel;
powerAutho_PowerPolicy_e PowerSavePowerLevel;
@@ -1254,7 +1277,7 @@ typedef struct
UINT8 listenInterval;
/* BET */
- UINT32 MaximalFullBeaconReceptionInterval; /* maximal time between full beacon reception */
+ UINT32 MaximalFullBeaconReceptionInterval; /* maximal "beacon periods" between full beacon reception */
UINT8 BetEnableThreshold;
UINT8 BetDisableThreshold;
UINT8 BetEnable;
diff --git a/sta_dk_4_0_4_32/common/inc/wspVer.h b/sta_dk_4_0_4_32/common/inc/wspVer.h
index 637a82b..47c6348 100644
--- a/sta_dk_4_0_4_32/common/inc/wspVer.h
+++ b/sta_dk_4_0_4_32/common/inc/wspVer.h
@@ -51,9 +51,9 @@
/* base version */
-#define SW_RELEASE_MONTH 2
-#define SW_RELEASE_DAY 14
-#define SW_RELEASE_YEAR 2008
+#define SW_RELEASE_MONTH 6
+#define SW_RELEASE_DAY 5
+#define SW_RELEASE_YEAR 2008
#endif /* _WSP_VER_H_ */
diff --git a/sta_dk_4_0_4_32/common/src/Application/Roaming/roamingMngr.c b/sta_dk_4_0_4_32/common/src/Application/Roaming/roamingMngr.c
index f046f44..7df98f2 100644
--- a/sta_dk_4_0_4_32/common/src/Application/Roaming/roamingMngr.c
+++ b/sta_dk_4_0_4_32/common/src/Application/Roaming/roamingMngr.c
@@ -426,6 +426,10 @@ TI_STATUS roamingMngr_init(TI_HANDLE hRoamingMngr,
{
roamingMngr_t *pRoamingMngr;
TI_STATUS status;
+#ifdef ENABLE_ROAMING_BY_DEFAULT
+ roamingMngrConfigParams_t InitRoamingParams;
+ paramInfo_t param;
+#endif
#ifdef TI_DBG
UINT8 index;
#endif
@@ -520,15 +524,7 @@ TI_STATUS roamingMngr_init(TI_HANDLE hRoamingMngr,
/* Init intrenal variables */
pRoamingMngr->currentState = ROAMING_STATE_IDLE;
-#ifdef ENABLE_ROAMING_BY_DEFAULT
- pRoamingMngr->roamingMngrConfig.enableDisable = ROAMING_ENABLED;
- apConn_registerRoamMngrCallb(pRoamingMngr->hAPConnection,
- roamingMngr_triggerRoamingCb,
- roamingMngr_connStatusCb,
- roamingMngr_updateNeighborApListCb);
-#else
pRoamingMngr->roamingMngrConfig.enableDisable = ROAMING_DISABLED;
-#endif
pRoamingMngr->roamingTrigger = ROAMING_TRIGGER_NONE;
pRoamingMngr->maskRoamingEvents= TRUE;
pRoamingMngr->scanType = ROAMING_NO_SCAN;
@@ -564,7 +560,36 @@ TI_STATUS roamingMngr_init(TI_HANDLE hRoamingMngr,
ROAMING_MNGR_NUM_STATES,
ROAMING_MNGR_NUM_EVENTS,
roamingMngr_smEvent, pRoamingMngr->hOs);
-
+#ifdef ENABLE_ROAMING_BY_DEFAULT
+ if (status != OK)
+ {
+ return status;
+ }
+
+ param.paramType = ROAMING_MNGR_APPLICATION_CONFIGURATION;
+ param.content.applicationConfigBuffer.bufferSize = sizeof(roamingMngrConfigParams_t);
+ param.content.applicationConfigBuffer.buffer = (UINT8 *)&param;
+ InitRoamingParams.roamingMngrConfig.enableDisable = ROAMING_ENABLED;
+
+ InitRoamingParams.roamingMngrConfig.lowPassFilterRoamingAttempt = 30;
+ InitRoamingParams.roamingMngrConfig.apQualityThreshold = -70;
+
+ InitRoamingParams.roamingMngrThresholdsConfig.dataRetryThreshold = 20;
+ InitRoamingParams.roamingMngrThresholdsConfig.numExpectedTbttForBSSLoss = 10;
+ InitRoamingParams.roamingMngrThresholdsConfig.txRateThreshold = 2;
+ InitRoamingParams.roamingMngrThresholdsConfig.lowRssiThreshold = -80;
+ InitRoamingParams.roamingMngrThresholdsConfig.lowSnrThreshold = 0;
+ InitRoamingParams.roamingMngrThresholdsConfig.lowQualityForBackgroungScanCondition = -60;
+ InitRoamingParams.roamingMngrThresholdsConfig.normalQualityForBackgroungScanCondition = -50;
+ InitRoamingParams.roamingMngrThresholdsConfig.rssiFilterWeight = 10;
+ InitRoamingParams.roamingMngrThresholdsConfig.snrFilterWeight = 10;
+
+ param.paramType = ROAMING_MNGR_APPLICATION_CONFIGURATION;
+ param.content.applicationConfigBuffer.bufferSize = sizeof(roamingMngrConfigParams_t);
+ param.content.applicationConfigBuffer.buffer = (UINT8 *)&InitRoamingParams;
+
+ roamingMngr_setParam (hRoamingMngr,&param);
+#endif
return status;
}
@@ -680,7 +705,16 @@ TI_STATUS roamingMngr_setParam(TI_HANDLE hRoamingMngr, paramInfo_t *pParam)
WLAN_REPORT_INFORMATION(pRoamingMngr->hReport, ROAMING_MANAGER_MODULE_LOG,
("roamingMngr_setParam TRIGGER_EVENT= %d \n",
pParam->content.roamingTriggerType));
- apConn_reportRoamingEvent(pRoamingMngr->hAPConnection, (apConn_roamingTrigger_e)pParam->content.roamingTriggerType, NULL);
+
+ if ((apConn_roamingTrigger_e)pParam->content.roamingTriggerType == ROAMING_TRIGGER_AP_DISCONNECT)
+ {
+ /* DeAuth packet with status code of deauth/disassoc packet equal to 1 */
+ apConn_reportRoamingEventDisconnect(pRoamingMngr->hAPConnection ,1 ,TRUE);
+ }
+ else
+ {
+ apConn_reportRoamingEvent(pRoamingMngr->hAPConnection, (apConn_roamingTrigger_e)pParam->content.roamingTriggerType, NULL);
+ }
break;
case ROAMING_MNGR_CONN_STATUS:
@@ -1286,7 +1320,7 @@ TI_STATUS roamingMngr_updateNewBssList(TI_HANDLE hRoamingMngr, bssList_t *bssLis
("roamingMngr_updateNewBssList, No Pre-Auth is required\n"));
return OK;
}
- apConn_preAuthenticate(pRoamingMngr->hAPConnection, bssList);
+ apConn_preAuthenticate(pRoamingMngr->hAPConnection, bssList, bssList->numOfEntries);
return OK;
@@ -1408,7 +1442,11 @@ static TI_STATUS roamingMngr_smRoamTrigger(TI_HANDLE hRoamingMngr)
apConn_prepareToRoaming(pRoamingMngr->hAPConnection, pRoamingMngr->roamingTrigger);
/* Get the current BSSIDs from ScanMngr */
+#if 0
pRoamingMngr->pListOfAPs = scanMngr_getBSSList(pRoamingMngr->hScanMngr);
+#else
+ pRoamingMngr->pListOfAPs = NULL; /* force immediate scan */
+#endif
if ((pRoamingMngr->pListOfAPs != NULL) && (pRoamingMngr->pListOfAPs->numOfEntries > 0))
{ /* No need to SCAN, start SELECTING */
roamingEvent = ROAMING_EVENT_SELECT;
@@ -1466,6 +1504,8 @@ static TI_STATUS roamingMngr_smInvokeScan(TI_HANDLE hRoamingMngr)
return NOK;
}
+ scanMngrClearBSSListEntry(pRoamingMngr->hScanMngr);
+
/* check which scan should be performed: Partial on list of channels, or full scan */
if ((pRoamingMngr->scanType == ROAMING_PARTIAL_SCAN) ||
(pRoamingMngr->scanType == ROAMING_PARTIAL_SCAN_RETRY))
@@ -1832,12 +1872,11 @@ static TI_STATUS roamingMngr_smSuccHandover(TI_HANDLE hRoamingMngr)
for the current AP */
if (pRoamingMngr->staCapabilities.authMode==os802_11AuthModeWPA2)
{ /* No Pre-Auth is required */
- bssList_t bssList;
+ UINT8 dummy;
WLAN_REPORT_INFORMATION(pRoamingMngr->hReport, ROAMING_MANAGER_MODULE_LOG,
("roamingMngr_smStartIdle, Pre-Auth to cur AP\n"));
- bssList.numOfEntries = 0;
- apConn_preAuthenticate(pRoamingMngr->hAPConnection, &bssList);
+ apConn_preAuthenticate(pRoamingMngr->hAPConnection, (bssList_t *)&dummy, 0);
}
return OK;
@@ -2025,12 +2064,10 @@ static TI_STATUS roamingMngr_smStartIdle(void *pData)
for the current AP */
if (pRoamingMngr->staCapabilities.authMode==os802_11AuthModeWPA2)
{ /* No Pre-Auth is required */
- bssList_t bssList;
-
+ UINT8 dummy;
WLAN_REPORT_INFORMATION(pRoamingMngr->hReport, ROAMING_MANAGER_MODULE_LOG,
("roamingMngr_smStartIdle, Pre-Auth to cur AP\n"));
- bssList.numOfEntries = 0;
- apConn_preAuthenticate(pRoamingMngr->hAPConnection, &bssList);
+ apConn_preAuthenticate(pRoamingMngr->hAPConnection, (bssList_t *)&dummy, 0);
}
return OK;
diff --git a/sta_dk_4_0_4_32/common/src/Application/ScanMngr/scanMngr.c b/sta_dk_4_0_4_32/common/src/Application/ScanMngr/scanMngr.c
index de3a388..c65742c 100644
--- a/sta_dk_4_0_4_32/common/src/Application/ScanMngr/scanMngr.c
+++ b/sta_dk_4_0_4_32/common/src/Application/ScanMngr/scanMngr.c
@@ -3363,6 +3363,15 @@ void scanMngrAddNormalChannel( TI_HANDLE hScanMngr, scan_Method_t* scanMethod, U
MAC_ADDR_LEN );
}
+/* Clear all candidate BSSList for Roaming */
+void scanMngrClearBSSListEntry( TI_HANDLE hScanMngr )
+{
+ scanMngr_t* pScanMngr = (scanMngr_t*)hScanMngr;
+
+ while(pScanMngr->BSSList.numOfEntries)
+ scanMngrRemoveBSSListEntry(hScanMngr, pScanMngr->BSSList.numOfEntries-1);
+}
+
/**
* \author Ronen Kalish\n
* \date 02-Mar-2005\n
diff --git a/sta_dk_4_0_4_32/common/src/Application/inc/scanMngrApi.h b/sta_dk_4_0_4_32/common/src/Application/inc/scanMngrApi.h
index 3a129be..50fc482 100644
--- a/sta_dk_4_0_4_32/common/src/Application/inc/scanMngrApi.h
+++ b/sta_dk_4_0_4_32/common/src/Application/inc/scanMngrApi.h
@@ -300,6 +300,9 @@ TI_STATUS scanMngr_setParam( TI_HANDLE hScanMngr, paramInfo_t *pParam );
*/
void scanMngr_setScanPolicy( TI_HANDLE hScanMngr, scan_Policy_t* scanPolicy );
+/* Clear all candidate BSSList for Roaming */
+void scanMngrClearBSSListEntry( TI_HANDLE hScanMngr );
+
#ifdef TI_DBG
/**
* \author Ronen Kalish\n
diff --git a/sta_dk_4_0_4_32/common/src/Management/QOS/Inc/qosMngr_API.h b/sta_dk_4_0_4_32/common/src/Management/QOS/Inc/qosMngr_API.h
index 3335715..46d9021 100644
--- a/sta_dk_4_0_4_32/common/src/Management/QOS/Inc/qosMngr_API.h
+++ b/sta_dk_4_0_4_32/common/src/Management/QOS/Inc/qosMngr_API.h
@@ -104,8 +104,12 @@ TI_STATUS qosMngr_connect(TI_HANDLE hQosMngr);
TI_STATUS qosMngr_setParams(TI_HANDLE hQosMngr,paramInfo_t *pParamInfo);
+TI_STATUS qosMngr_setParamsPartial(TI_HANDLE hQosMngr,paramInfoPartial_t *pParamInfo);
+
TI_STATUS qosMngr_getParams(TI_HANDLE hQosMngr,paramInfo_t *pParamInfo);
+TI_STATUS qosMngr_getParamsPatial(TI_HANDLE hQosMngr,paramInfoPartial_t *pParamInfo);
+
TI_STATUS qosMngr_assocReqBuild(TI_HANDLE hQosMngr, UINT8 *pQosIe, UINT8 *pLen);
TI_STATUS qosMngr_setSite(TI_HANDLE hQosMngr, assocRsp_t *assocRsp);
diff --git a/sta_dk_4_0_4_32/common/src/Management/QOS/qosMngr.c b/sta_dk_4_0_4_32/common/src/Management/QOS/qosMngr.c
index 05d9841..48afd4e 100644
--- a/sta_dk_4_0_4_32/common/src/Management/QOS/qosMngr.c
+++ b/sta_dk_4_0_4_32/common/src/Management/QOS/qosMngr.c
@@ -735,7 +735,93 @@ UINT8 qosMngr_evalSite(TI_HANDLE hQosMngr, BOOL siteAPSDSupport)
return 0;
}
+/************************************************************************
+ * qosMngr_getParamsPatial *
+ ************************************************************************
+DESCRIPTION: The function is an API for external modules to qet qos parameters
+
+INPUT: hQosMngr - Qos Manager handle.
+ pParamInfo - qos parameters information.
+
+
+OUTPUT:
+
+RETURN: OK on success, NOK otherwise
+
+************************************************************************/
+
+TI_STATUS qosMngr_getParamsPatial(TI_HANDLE hQosMngr,paramInfoPartial_t *pParamInfo)
+{
+ qosMngr_t *pQosMngr = (qosMngr_t *)hQosMngr;
+
+ if(pQosMngr == NULL)
+ return NOK;
+
+ WLAN_REPORT_INFORMATION(pQosMngr->hReport, QOS_MANAGER_MODULE_LOG, ("qosMngr_getParams: %x\n", pParamInfo->paramType));
+
+ switch(pParamInfo->paramType)
+ {
+
+ case QOS_MNGR_VOICE_RE_NEGOTIATE_TSPEC:
+ /* Check if voice call present. If so, store current TSPEC configuration */
+ pParamInfo->content.TspecConfigure.voiceTspecConfigure = (UINT8)pQosMngr->voiceTspecConfigured;
+ pParamInfo->content.TspecConfigure.videoTspecConfigure = (UINT8)pQosMngr->videoTspecConfigured;
+
+ WLAN_REPORT_INFORMATION(pQosMngr->hReport, QOS_MANAGER_MODULE_LOG, ("qosMngr_getParams: QOS_MNGR_VOICE_RE_NEGOTIATE_TSPEC=%d\n", pQosMngr->voiceTspecConfigured));
+
+ if (pQosMngr->voiceTspecConfigured == TRUE)
+ {
+ OS_802_11_QOS_TSPEC_PARAMS *pTspecParams;
+ tspecInfo_t *pConfiguredParams;
+
+ /* Store voice TSPEC params - must be configured */
+ pTspecParams = &pQosMngr->tspecRenegotiationParams[USER_PRIORITY_6];
+ pConfiguredParams = &pQosMngr->resourceMgmtTable.candidateTspecInfo[USER_PRIORITY_6];
+
+ pTspecParams->uUserPriority = pConfiguredParams->userPriority;
+ pTspecParams->uNominalMSDUsize = pConfiguredParams->nominalMsduSize;
+ pTspecParams->uMeanDataRate = pConfiguredParams->meanDataRate;
+ pTspecParams->uMinimumPHYRate = pConfiguredParams->minimumPHYRate;
+ pTspecParams->uSurplusBandwidthAllowance = pConfiguredParams->surplausBwAllowance;
+ pTspecParams->uAPSDFlag = pConfiguredParams->UPSDFlag;
+ pTspecParams->uMediumTime = pConfiguredParams->mediumTime;
+ }
+ else
+ {
+ pQosMngr->tspecRenegotiationParams[USER_PRIORITY_6].uUserPriority = MAX_USER_PRIORITY;
+ }
+
+ if (pQosMngr->videoTspecConfigured == TRUE)
+ {
+ OS_802_11_QOS_TSPEC_PARAMS *pTspecParams;
+ tspecInfo_t *pConfiguredParams;
+
+ /* Store signalling TSPEC params if configured in user priority 4 */
+ pTspecParams = &pQosMngr->tspecRenegotiationParams[USER_PRIORITY_4];
+ pConfiguredParams = &pQosMngr->resourceMgmtTable.candidateTspecInfo[USER_PRIORITY_4];
+
+ pTspecParams->uUserPriority = pConfiguredParams->userPriority;
+ pTspecParams->uNominalMSDUsize = pConfiguredParams->nominalMsduSize;
+ pTspecParams->uMeanDataRate = pConfiguredParams->meanDataRate;
+ pTspecParams->uMinimumPHYRate = pConfiguredParams->minimumPHYRate;
+ pTspecParams->uSurplusBandwidthAllowance = pConfiguredParams->surplausBwAllowance;
+ pTspecParams->uAPSDFlag = pConfiguredParams->UPSDFlag;
+ pTspecParams->uMediumTime = pConfiguredParams->mediumTime;
+ }
+ else
+ {
+ pQosMngr->tspecRenegotiationParams[USER_PRIORITY_4].uUserPriority = MAX_USER_PRIORITY;
+ }
+ break;
+
+ default:
+ WLAN_REPORT_ERROR(pQosMngr->hReport, QOS_MANAGER_MODULE_LOG,
+ ("qosMngr_getParamsExtend Error: unknown paramType 0x%x!\n",pParamInfo->paramType));
+ return (PARAM_NOT_SUPPORTED);
+ }
+ return OK;
+}
/************************************************************************
* qosMngr_getACparams *
@@ -1207,6 +1293,43 @@ TI_STATUS qosMngr_setParams(TI_HANDLE hQosMngr,paramInfo_t *pParamInfo)
}
+TI_STATUS qosMngr_setParamsPartial(TI_HANDLE hQosMngr,paramInfoPartial_t *pParamInfo)
+{
+ qosMngr_t *pQosMngr = (qosMngr_t *)hQosMngr;
+
+ if(pQosMngr == NULL)
+ return NOK;
+
+ if(pParamInfo == NULL)
+ {
+ WLAN_REPORT_ERROR(pQosMngr->hReport, QOS_MANAGER_MODULE_LOG,
+ ("qosMngr_setParams :Error trying to set NULL params!\n"));
+ return NOK;
+ }
+
+ WLAN_REPORT_INFORMATION(pQosMngr->hReport, QOS_MANAGER_MODULE_LOG, ("qosMngr_setParams: %x\n", pParamInfo->paramType));
+
+ switch(pParamInfo->paramType)
+ {
+ case QOS_MNGR_VOICE_RE_NEGOTIATE_TSPEC:
+ if( pParamInfo->content.TspecConfigure.voiceTspecConfigure || pParamInfo->content.TspecConfigure.videoTspecConfigure)
+ pQosMngr->performTSPECRenegotiation = TRUE;
+ else
+ pQosMngr->performTSPECRenegotiation = FALSE;
+
+ WLAN_REPORT_INFORMATION(pQosMngr->hReport, QOS_MANAGER_MODULE_LOG,
+ ("qosMngr_setParams: QOS_MNGR_VOICE_RE_NEGOTIATE_TSPEC=%d\n", pQosMngr->performTSPECRenegotiation));
+ break;
+
+ default:
+ WLAN_REPORT_ERROR(pQosMngr->hReport, QOS_MANAGER_MODULE_LOG,
+ ("qosMngr_getParams Error: unknown paramType 0x%x!\n",pParamInfo->paramType));
+ return (PARAM_NOT_SUPPORTED);
+ }
+
+ return OK;
+}
+
/************************************************************************
* verifyAndConfigTrafficParams *
************************************************************************
@@ -2283,7 +2406,6 @@ TI_STATUS qosMngr_requestAdmission(TI_HANDLE hQosMngr,
}
/* check msdu size validity */
-
if( (addTspecParams->uNominalMSDUsize & !FIX_MSDU_SIZE) > MAX_DATA_BODY_LENGTH)
{
WLAN_REPORT_ERROR(pQosMngr->hReport, QOS_MANAGER_MODULE_LOG,("uNominalMSDUsize = %d > 2312, !!!\n",addTspecParams->uNominalMSDUsize));
diff --git a/sta_dk_4_0_4_32/common/src/Management/apConn/apConn.c b/sta_dk_4_0_4_32/common/src/Management/apConn/apConn.c
index 26df7d9..d025f8e 100644
--- a/sta_dk_4_0_4_32/common/src/Management/apConn/apConn.c
+++ b/sta_dk_4_0_4_32/common/src/Management/apConn/apConn.c
@@ -1204,13 +1204,13 @@ BOOL apConn_getPreAuthAPStatus(TI_HANDLE hAPConnection,
macAddress_t *givenAp)
{
apConn_t *pAPConnection = (apConn_t *)hAPConnection;
- paramInfo_t param;
+ paramInfoPartial_t param;
AP_CONN_VALIDATE_HANDLE(hAPConnection);
param.paramType = RSN_PRE_AUTH_STATUS;
os_memoryCopy(pAPConnection->hOs, (void *)param.content.rsnApMac.addr, (void *)givenAp->addr, MAC_ADDR_LEN);
- rsn_getParam(pAPConnection->hPrivacy, &param);
+ rsn_getParamPartial(pAPConnection->hPrivacy, &param);
return param.content.rsnPreAuthStatus;
}
@@ -1237,7 +1237,7 @@ BOOL apConn_getPreAuthAPStatus(TI_HANDLE hAPConnection,
*
* \sa
*/
-TI_STATUS apConn_preAuthenticate(TI_HANDLE hAPConnection, bssList_t *listAPs)
+TI_STATUS apConn_preAuthenticate(TI_HANDLE hAPConnection, bssList_t *listAPs, UINT8 listAPs_numOfEntries)
{
apConn_t *pAPConnection = (apConn_t *)hAPConnection;
bssidList4PreAuth_t apList;
@@ -1255,27 +1255,34 @@ TI_STATUS apConn_preAuthenticate(TI_HANDLE hAPConnection, bssList_t *listAPs)
WLAN_REPORT_INFORMATION(pAPConnection->hReport, SITE_MGR_MODULE_LOG, ("apConn_reserveResources \n"));
#endif
- for (listIndex=0, apListIndex=0; listIndex<listAPs->numOfEntries; listIndex++)
- {
- os_memoryCopy(pAPConnection->hOs, &(apList.bssidList[apListIndex].bssId),
- (void *)listAPs->BSSList[listIndex].BSSID.addr, MAC_ADDR_LEN);
-
- /* search in the buffer pointer to the beginning of the
- RSN IE according to the IE ID */
- if (!parseIeBuffer(pAPConnection->hOs, listAPs->BSSList[listIndex].pBuffer, listAPs->BSSList[listIndex].bufferLength, RSN_IE_ID, &pRsnIEs, NULL, 0))
+ if (listAPs_numOfEntries != 0) {
+ for (listIndex=0, apListIndex=0; listIndex<listAPs->numOfEntries; listIndex++)
+ {
+ os_memoryCopy(pAPConnection->hOs, &(apList.bssidList[apListIndex].bssId),
+ (void *)listAPs->BSSList[listIndex].BSSID.addr, MAC_ADDR_LEN);
+
+ /* search in the buffer pointer to the beginning of the
+ RSN IE according to the IE ID */
+ if (!parseIeBuffer(pAPConnection->hOs, listAPs->BSSList[listIndex].pBuffer, listAPs->BSSList[listIndex].bufferLength, RSN_IE_ID, &pRsnIEs, NULL, 0))
+ {
+ WLAN_REPORT_INFORMATION(pAPConnection->hReport, ROAMING_MANAGER_MODULE_LOG,
+ ("apConn_preAuthenticate, no RSN IE was found \n"));
+ WLAN_REPORT_HEX_INFORMATION(pAPConnection->hReport, ROAMING_MANAGER_MODULE_LOG,
+ listAPs->BSSList[listIndex].pBuffer, listAPs->BSSList[listIndex].bufferLength);
+
+ continue;
+ }
+
+ apList.bssidList[apListIndex].pRsnIEs = (dot11_RSN_t*)pRsnIEs;
+ apList.bssidList[apListIndex].rsnIeLen = apList.bssidList[apListIndex].pRsnIEs->hdr.eleLen+2;
+ apListIndex++;
+ }
+ }
+ else
{
- WLAN_REPORT_INFORMATION(pAPConnection->hReport, ROAMING_MANAGER_MODULE_LOG,
- ("apConn_preAuthenticate, no RSN IE was found \n"));
- WLAN_REPORT_HEX_INFORMATION(pAPConnection->hReport, ROAMING_MANAGER_MODULE_LOG,
- listAPs->BSSList[listIndex].pBuffer, listAPs->BSSList[listIndex].bufferLength);
-
- continue;
- }
-
- apList.bssidList[apListIndex].pRsnIEs = (dot11_RSN_t*)pRsnIEs;
- apList.bssidList[apListIndex].rsnIeLen = apList.bssidList[apListIndex].pRsnIEs->hdr.eleLen+2;
- apListIndex++;
- }
+ listIndex=0;
+ apListIndex=0;
+ }
/* Start pre-auth after any Conn succ (including first),
and not only when a New BSSID was added, in order to save/refresh
@@ -1472,6 +1479,37 @@ TI_STATUS apConn_stop(TI_HANDLE hAPConnection, BOOLEAN removeKeys, BOOLEAN immed
return OK;
}
+/**
+*
+* apConn_reportRoamingEventDisconnect
+*
+* \b Description:
+*
+* Called by Roaming Manager to inform of Disconnect
+* uStatusCode - status code of deauth/disassoc packet
+* bDeAuthenticate - Whether this packet is DeAuth ( if
+* DisAssoc than FALSE)
+*
+* \b ARGS:
+*
+*
+* \b RETURNS:
+*
+* OK if successful, NOK otherwise.
+*
+* \sa
+*/
+TI_STATUS apConn_reportRoamingEventDisconnect(TI_HANDLE hAPConnection,UINT16 uStatusCode,BOOLEAN bDeAuthenticate )
+{
+ apConn_t *pAPConnection = (apConn_t *)hAPConnection;
+ roamingEventData_u RoamingEventData;
+
+ RoamingEventData.APDisconnect.uStatusCode = uStatusCode ; /* status code of deauth/disassoc packet */
+ RoamingEventData.APDisconnect.bDeAuthenticate = bDeAuthenticate; /* TRUE state that it is DeAuth packet */
+ apConn_reportRoamingEvent(pAPConnection, ROAMING_TRIGGER_AP_DISCONNECT, &RoamingEventData);
+ return( TI_OK );
+}
+
/**
*
@@ -1618,19 +1656,14 @@ TI_STATUS apConn_reportRoamingEvent(TI_HANDLE hAPConnection,
return OK;
}
- if (roamingEventType == ROAMING_TRIGGER_LOW_QUALITY)
- {
- EvHandlerSendEvent(pAPConnection->hEvHandler, IPC_EVENT_LOW_RSSI, NULL,0);
- }
- else if (roamingEventType == ROAMING_TRIGGER_LOW_SNR)
- {
- EvHandlerSendEvent(pAPConnection->hEvHandler, IPC_EVENT_LOW_SNR, NULL,0);
- }
-
/* 5. Report Roaming Manager */
if ((pAPConnection->roamingEnabled == TRUE) && (pAPConnection->roamEventCallb != NULL))
{
WLAN_REPORT_INFORMATION(pAPConnection->hReport, ROAMING_MANAGER_MODULE_LOG, ("Roaming event raised: ev = %d\n", roamingEventType));
+ if (roamingEventType == ROAMING_TRIGGER_LOW_QUALITY)
+ {
+ EvHandlerSendEvent(pAPConnection->hEvHandler, IPC_EVENT_LOW_RSSI, NULL,0);
+ }
/* Report to Roaming Manager */
pAPConnection->roamEventCallb(pAPConnection->hRoamMng, &roamingEventType);
}
@@ -1789,6 +1822,28 @@ void apConn_resetRoamingStatistics(TI_HANDLE hAPConnection)
/**
*
+* apConn_stopRoamingStatistics
+*
+* \b Description:
+*
+* Called from Measurement CCX sub-module in order to stop roaming statistics.
+*
+* \b ARGS: AP Connection handle
+*
+* \b RETURNS:
+*
+* \sa
+*/
+void apConn_stopRoamingStatistics(TI_HANDLE hAPConnection)
+{
+ apConn_t *pAPConnection = (apConn_t *)hAPConnection;
+
+ pAPConnection->resetReportedRoamingStatistics = FALSE;
+}
+
+
+/**
+*
* apConn_printStatistics
*
* \b Description:
@@ -1815,7 +1870,7 @@ void apConn_printStatistics(TI_HANDLE hAPConnection)
WLAN_OS_REPORT(("- AP Disconnect = %d\n", ((apConn_t *)hAPConnection)->roamingTriggerEvents[ROAMING_TRIGGER_AP_DISCONNECT]));
WLAN_OS_REPORT(("- SEC attack = %d\n", ((apConn_t *)hAPConnection)->roamingTriggerEvents[ROAMING_TRIGGER_SECURITY_ATTACK]));
WLAN_OS_REPORT(("\n"));
- WLAN_OS_REPORT(("- Succesfull roaming = %d\n", ((apConn_t *)hAPConnection)->roamingSuccesfulHandoverTotalNum));
+ WLAN_OS_REPORT(("- Succesfull Total roaming = %d\n", ((apConn_t *)hAPConnection)->roamingSuccesfulHandoverTotalNum));
WLAN_OS_REPORT(("- Unsuccesfull roaming = %d\n", ((apConn_t *)hAPConnection)->roamingFailedHandoverNum));
WLAN_OS_REPORT(("- Giving up roaming = %d\n", ((apConn_t *)hAPConnection)->retainCurrAPNum));
WLAN_OS_REPORT(("- Disconnect cmd from roaming manager = %d\n", ((apConn_t *)hAPConnection)->disconnectFromRoamMngrNum));
@@ -1985,7 +2040,7 @@ static TI_STATUS apConn_startWaitingForTriggers(void *pData)
{
apConn_t *pAPConnection;
apConn_connStatus_t reportStatus;
- paramInfo_t param;
+ paramInfoPartial_t param;
pAPConnection = (apConn_t *)pData;
@@ -1993,7 +2048,7 @@ static TI_STATUS apConn_startWaitingForTriggers(void *pData)
{
param.paramType = ASSOC_ASSOCIATION_RESP_PARAM;
- assoc_getParam(pAPConnection->hAssoc, &param);
+ assoc_getParamPartial(pAPConnection->hAssoc, &param);
reportStatus.dataBuf = (char *)(param.content.applicationConfigBuffer.buffer);
reportStatus.dataBufLength = param.content.applicationConfigBuffer.bufferSize;
@@ -2034,7 +2089,7 @@ static TI_STATUS apConn_connectedToNewAP(void *pData)
{
apConn_t *pAPConnection;
apConn_connStatus_t reportStatus;
- paramInfo_t param;
+ paramInfoPartial_t param;
pAPConnection = (apConn_t *)pData;
@@ -2055,7 +2110,7 @@ static TI_STATUS apConn_connectedToNewAP(void *pData)
{
param.paramType = ASSOC_ASSOCIATION_RESP_PARAM;
- assoc_getParam(pAPConnection->hAssoc, &param);
+ assoc_getParamPartial(pAPConnection->hAssoc, &param);
reportStatus.dataBuf = (char *)(param.content.applicationConfigBuffer.buffer);
reportStatus.dataBufLength = param.content.applicationConfigBuffer.bufferSize;
@@ -2378,7 +2433,7 @@ static TI_STATUS apConn_invokeConnectionToNewAp(void *data)
{
apConn_t *pAPConnection;
connType_e connType;
- paramInfo_t param;
+ paramInfoPartial_t param;
UINT8 staPrivacySupported, apPrivacySupported;
BOOL renegotiateTspec = FALSE;
@@ -2388,7 +2443,7 @@ static TI_STATUS apConn_invokeConnectionToNewAp(void *data)
/* Check privacy compatibility */
param.paramType = RSN_ENCRYPTION_STATUS_PARAM;
- rsn_getParam(pAPConnection->hPrivacy, &param);
+ rsn_getParamPartial(pAPConnection->hPrivacy, &param);
staPrivacySupported = (param.content.rsnEncryptionStatus == RSN_CIPHER_NONE) ? FALSE : TRUE;
apPrivacySupported = ((pAPConnection->newAP->capabilities >> CAP_PRIVACY_SHIFT) & CAP_PRIVACY_MASK) ? TRUE : FALSE;
@@ -2396,7 +2451,7 @@ static TI_STATUS apConn_invokeConnectionToNewAp(void *data)
if (staPrivacySupported != apPrivacySupported)
{
param.paramType = RSN_MIXED_MODE;
- rsn_getParam(pAPConnection->hPrivacy, &param);
+ rsn_getParamPartial(pAPConnection->hPrivacy, &param);
if (apPrivacySupported ||
(!param.content.rsnMixedMode && staPrivacySupported))
@@ -2477,7 +2532,7 @@ static TI_STATUS apConn_reportConnFail(void *data)
{
apConn_t *pAPConnection;
apConn_connStatus_t reportStatus;
- paramInfo_t param;
+ paramInfoPartial_t param;
pAPConnection = (apConn_t *)data;
@@ -2492,7 +2547,7 @@ static TI_STATUS apConn_reportConnFail(void *data)
{
param.paramType = ASSOC_ASSOCIATION_RESP_PARAM;
- assoc_getParam(pAPConnection->hAssoc, &param);
+ assoc_getParamPartial(pAPConnection->hAssoc, &param);
reportStatus.dataBuf = (char *)(param.content.applicationConfigBuffer.buffer);
reportStatus.dataBufLength = param.content.applicationConfigBuffer.bufferSize;
@@ -2526,12 +2581,12 @@ static TI_STATUS apConn_reportConnFail(void *data)
static TI_STATUS apConn_configureDriverBeforeRoaming(void *pData)
{
apConn_t *pAPConnection = (apConn_t*)pData;
- paramInfo_t param;
+ paramInfoPartial_t param;
/* Configure SCR group of allowed clients according to 'Roaming' rule */
scr_setGroup (pAPConnection->hScr, SCR_GID_ROAMING);
param.paramType = QOS_MNGR_VOICE_RE_NEGOTIATE_TSPEC;
- qosMngr_getParams(pAPConnection->hQos, &param);
+ qosMngr_getParamsPatial(pAPConnection->hQos, &param);
pAPConnection->voiceTspecConfigured = param.content.TspecConfigure.voiceTspecConfigure;
pAPConnection->videoTspecConfigured = param.content.TspecConfigure.videoTspecConfigure;
pAPConnection->resetReportedRoamingStatistics = FALSE;
diff --git a/sta_dk_4_0_4_32/common/src/TNETW_Driver/MacServices/src/PowerAuthorization/PowerAuthorization.c b/sta_dk_4_0_4_32/common/src/TNETW_Driver/MacServices/src/PowerAuthorization/PowerAuthorization.c
index fe9471a..f22c1e4 100644
--- a/sta_dk_4_0_4_32/common/src/TNETW_Driver/MacServices/src/PowerAuthorization/PowerAuthorization.c
+++ b/sta_dk_4_0_4_32/common/src/TNETW_Driver/MacServices/src/PowerAuthorization/PowerAuthorization.c
@@ -212,7 +212,6 @@ int powerAutho_CalcMinPowerLevel(TI_HANDLE hPowerAutho)
{
powerAutho_t *pPowerAutho = (powerAutho_t*)hPowerAutho;
powerAutho_PowerPolicy_e newMinPowerLevel;
- whalParamInfo_t ParamInfo;
/* calc the new MinPowerLevel */
if(pPowerAutho->m_AwakeRequired > 0)
@@ -235,10 +234,7 @@ int powerAutho_CalcMinPowerLevel(TI_HANDLE hPowerAutho)
whalCtrl_ElpCtrl_SetMode(pPowerAutho->hHalCtrl, pPowerAutho->m_ElpCtrl_Mode_LUT[newMinPowerLevel]);
/* Send MIB with PowerPolicy */
- ParamInfo.paramType = (UINT32)HAL_CTRL_MIN_POWER_LEVEL;
- ParamInfo.paramLength = sizeof(powerAutho_PowerPolicy_e);
- ParamInfo.content.minPowerPolicy = newMinPowerLevel;
- whalCtrl_SetParam(pPowerAutho->hHalCtrl, &ParamInfo);
+ whalCtrl_SetMinPowerLevel(pPowerAutho->hHalCtrl, newMinPowerLevel);
return OK;
}
}
@@ -297,13 +293,12 @@ int powerAutho_Restart(TI_HANDLE hMacServices)
{
powerAutho_t *pPowerAutho = (powerAutho_t*)(((MacServices_t*)hMacServices)->hPowerAutho);
- /* set as 'before init complete' */
+ /* set as 'before init complete' */
pPowerAutho->initComplete = FALSE;
pPowerAutho->m_PowerPolicy = POWERAUTHO_POLICY_AWAKE;
pPowerAutho->m_MinPowerLevel = POWERAUTHO_POLICY_AWAKE;
-
return pPowerAutho->m_MinPowerLevel;
}
diff --git a/sta_dk_4_0_4_32/common/src/TNETW_Driver/TNETWIF/BusTxn/whalHwAccess.c b/sta_dk_4_0_4_32/common/src/TNETW_Driver/TNETWIF/BusTxn/whalHwAccess.c
index 500a11a..9f3c601 100644
--- a/sta_dk_4_0_4_32/common/src/TNETW_Driver/TNETWIF/BusTxn/whalHwAccess.c
+++ b/sta_dk_4_0_4_32/common/src/TNETW_Driver/TNETWIF/BusTxn/whalHwAccess.c
@@ -117,7 +117,7 @@
#else /* ifdef _WINDOWS */
#endif /* ifdef _WINDOWS */
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
#include "wspi.h"
@@ -357,7 +357,7 @@ TI_HANDLE whal_hwAccess_Create(TI_HANDLE hOs)
status = SDIO_Init(&configParams, &pHwAccess->hDriver);
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
pHwAccess->AsyncMode = TRUE;
@@ -403,7 +403,7 @@ int whal_hwAccess_Destroy(TI_HANDLE hHwAccess)
SDIO_Stop(pHwAccess->hDriver, 0);
SDIO_Shutdown(pHwAccess->hDriver);
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
WSPI_Close(pHwAccess->hDriver);
@@ -463,7 +463,7 @@ int whal_hwAccess_Config(TI_HANDLE hHwAccess, TI_HANDLE hReport,UINT32 RegBaseAd
status = (status == SDIO_SUCCESS) ? TNETWIF_COMPLETE : TNETWIF_ERROR;
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
wspi_config.isFixedAddress = FALSE;
wspi_config.fixedBusyLength = HW_ACCESS_WSPI_FIXED_BUSY_LEN;
@@ -509,7 +509,7 @@ int whal_hwAccess_ReConfig(TI_HANDLE hHwAccess)
#ifdef HW_ACCESS_SDIO
SDIO_Stop (pHwAccess->hDriver, 0);
SDIO_Start (pHwAccess->hDriver);
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
/* TODO*/
#endif
#endif /* _WINDOWS */
@@ -539,7 +539,7 @@ int whal_hwAccess_WriteELP (TI_HANDLE hHwAccess, UINT32 data)
#ifdef HW_ACCESS_SDIO
status = SDIO_TNETW_Set_ELP_Reg(pHwAccess->hDriver, HW_ACCESS_ELP_CTRL_REG_ADDR, data);
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
status = WSPI_WriteSync (pHwAccess->hDriver, HW_ACCESS_ELP_CTRL_REG_ADDR, (UINT8*)&data, HW_ACCESS_REGISTER_SIZE);
#endif
@@ -738,7 +738,7 @@ int whal_hwAccess_ReadMem_Align(TI_HANDLE hHwAccess, UINT32 addr, UINT8*
os_profile (pHwAccess->hOs, 3, 0);
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
/* check address */
if (((addr+len) > pHwAccess->workingPartUpperLimit) || (addr < pHwAccess->MemRegionAddr))
@@ -839,7 +839,7 @@ int whal_hwAccess_WriteMem_Align(TI_HANDLE hHwAccess, UINT32 addr, UINT8
os_profile (pHwAccess->hOs, 3, 0);
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
/* check address */
if (((addr+len) > pHwAccess->workingPartUpperLimit) || (addr < pHwAccess->MemRegionAddr))
@@ -1123,7 +1123,7 @@ int whal_hwAccess_ReadMem(TI_HANDLE hHwAccess, UINT32 addr, UINT8* data,
#ifdef HW_ACCESS_SDIO
struct SDIO_Request request;
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
int reminder = len%HW_ACCESS_WSPI_ALIGNED_SIZE;
int tempLen = len - reminder;
UINT32 mask = 0;
@@ -1189,7 +1189,7 @@ int whal_hwAccess_ReadMem(TI_HANDLE hHwAccess, UINT32 addr, UINT8* data,
return status;
}
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
/* check address */
if (((addr+len) > pHwAccess->workingPartUpperLimit) || (addr < pHwAccess->MemRegionAddr))
@@ -1297,7 +1297,7 @@ int whal_hwAccess_WriteMem(TI_HANDLE hHwAccess, UINT32 addr, UINT8* data
#ifdef HW_ACCESS_SDIO
struct SDIO_Request request;
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
int reminder = len % HW_ACCESS_WSPI_ALIGNED_SIZE;
int tempLen = len - reminder;
UINT32 mask = 0;
@@ -1360,7 +1360,7 @@ int whal_hwAccess_WriteMem(TI_HANDLE hHwAccess, UINT32 addr, UINT8* data
return status;
}
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
/* check address */
if (((addr+len) > pHwAccess->workingPartUpperLimit) || (addr < pHwAccess->MemRegionAddr))
@@ -1705,7 +1705,7 @@ int whal_hwAccess_ReadMemAsync (TI_HANDLE hHwAccess, UINT32 addr, UINT8* data, U
return TNETWIF_COMPLETE;
}
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
os_profile (pHwAccess->hOs, 2, 0);
@@ -1779,7 +1779,7 @@ int whal_hwAccess_ReadReg(TI_HANDLE hHwAccess, UINT32 addr, UINT32* data
os_profile (pHwAccess->hOs, 3, 0);
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
status = whal_hwAccess_ReadRegAsync(hHwAccess, addr, data);
if (status == TNETWIF_COMPLETE)
@@ -1856,7 +1856,7 @@ int whal_hwAccess_Stop(TI_HANDLE hHwAccess)
#ifdef HW_ACCESS_SDIO
SDIO_Stop(pHwAccess->hDriver,0);
-#elif defined (HW_ACCESS_WSPI)
+#elif defined(HW_ACCESS_WSPI)
/* TODO*/
#endif
return OK;
@@ -1914,7 +1914,7 @@ int whal_hwAccess_WriteReg(TI_HANDLE hHwAccess, UINT32 addr, UINT32 data
os_profile (pHwAccess->hOs, 3, 0);
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
status = whal_hwAccess_WriteRegAsync(hHwAccess, addr, data);
if (status == TNETWIF_COMPLETE)
{
@@ -2176,7 +2176,7 @@ int whal_hwAccess_SetPartitions (TI_HANDLE hHwAccess, TNETIF_HwAccess_SetPartiti
status = (status == SDIO_SUCCESS) ? SDIO_TNETWConfig(pHwAccess->hDriver, &cfg) : status;
status = (status == SDIO_SUCCESS) ? TNETWIF_COMPLETE : TNETWIF_ERROR;
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
/*
* IMPORTANT NOTE (TODO): the ASYNC API is used here assuming the call will always
* be completed synchronously. This is done because only the Async API is wokring
@@ -2272,7 +2272,7 @@ int whal_hwAccess_SetPartitionsAsync (TI_HANDLE hHwAccess, TNETIF_HwAccess_SetPa
status = (status == SDIO_SUCCESS) ? SDIO_TNETWConfig(pHwAccess->hDriver, &cfg) : status;
status = (status == SDIO_SUCCESS) ? TNETWIF_COMPLETE : TNETWIF_ERROR;
-#elif HW_ACCESS_WSPI
+#elif defined(HW_ACCESS_WSPI)
/* May use only one write because the addresses in the firmware are sequential */
status = WSPI_WriteAsync (pHwAccess->hDriver,
@@ -2867,7 +2867,7 @@ void whal_hwAccess_Print(TI_HANDLE hHwAccess)
return (status == SDIO_SUCCESS) ? OK : NOK;
}
-#elif defined (HW_ACCESS_WSPI)
+#elif defined(HW_ACCESS_WSPI)
TI_STATUS whal_hwAccess_RecreateInterface(TI_HANDLE hHwAccess)
{
HwAccess_T_new *pHwAccess = (HwAccess_T_new*)hHwAccess;
diff --git a/sta_dk_4_0_4_32/common/src/core/ExpInc/apConnApi.h b/sta_dk_4_0_4_32/common/src/core/ExpInc/apConnApi.h
index b064aca..75d6669 100644
--- a/sta_dk_4_0_4_32/common/src/core/ExpInc/apConnApi.h
+++ b/sta_dk_4_0_4_32/common/src/core/ExpInc/apConnApi.h
@@ -177,8 +177,9 @@ BOOL apConn_isSiteBanned(TI_HANDLE hAPConnection, macAddress_t * bssid);
BOOL apConn_getPreAuthAPStatus(TI_HANDLE hAPConnection,
macAddress_t *givenAp);
-TI_STATUS apConn_preAuthenticate(TI_HANDLE hAPConnection, bssList_t *listAPs);
+TI_STATUS apConn_preAuthenticate(TI_HANDLE hAPConnection, bssList_t *listAPs, UINT8 listAPs_numOfEntries);
TI_STATUS apConn_prepareToRoaming(TI_HANDLE hAPConnection, apConn_roamingTrigger_e reason);
+TI_STATUS apConn_reportRoamingEventDisconnect(TI_HANDLE hAPConnection,UINT16 uStatusCode,BOOLEAN bDeAuthenticate );
#endif /* _AP_CONNECTION_API_H_*/
diff --git a/sta_dk_4_0_4_32/common/src/core/data_ctrl/Ctrl/Ctrl.c b/sta_dk_4_0_4_32/common/src/core/data_ctrl/Ctrl/Ctrl.c
index ac72e51..bcf57e1 100644
--- a/sta_dk_4_0_4_32/common/src/core/data_ctrl/Ctrl/Ctrl.c
+++ b/sta_dk_4_0_4_32/common/src/core/data_ctrl/Ctrl/Ctrl.c
@@ -220,7 +220,6 @@ TI_STATUS ctrlData_config(TI_HANDLE hCtrlData,
pCtrlData->disassocSentCBObj = disassocSentCBObj;
pCtrlData->disassocSentCBFunc = disassocSentCBFunc;
-
/* set Control module parameters */
pCtrlData->ctrlDataRateControlEnable = ctrlDataInitParams->ctrlDataRateControlEnable;
pCtrlData->ctrlDataIbssProtectionType = ctrlDataInitParams->ctrlDataDesiredIbssProtection;
@@ -491,6 +490,39 @@ TI_STATUS ctrlData_getParam(TI_HANDLE hCtrlData, paramInfo_t *pParamInfo)
return (OK);
}
+
+/***************************************************************************
+* ctrlData_getParam *
+****************************************************************************
+* DESCRIPTION: get a specific parameter
+*
+* INPUTS: hCtrlData - the object
+*
+*
+* OUTPUT: pParamInfo - structure which include the value of
+* the requested parameter
+*
+* RETURNS: OK
+* NOK
+***************************************************************************/
+/* note: ctrlData_getParamPartial() is part of ctrlData_getParam() it was implemented to reduce Stack usage */
+TI_STATUS ctrlData_getParamPartial(TI_HANDLE hCtrlData, paramInfoPartial_t *pParamInfo)
+{
+ ctrlData_t *pCtrlData = (ctrlData_t *)hCtrlData;
+
+ switch (pParamInfo->paramType)
+ {
+ case CTRL_DATA_CURRENT_PREAMBLE_TYPE_PARAM:
+ pParamInfo->content.ctrlDataCurrentPreambleType = pCtrlData->ctrlDataCurrentPreambleType;
+ break;
+
+ default:
+ return (PARAM_NOT_SUPPORTED);
+ }
+
+ return (OK);
+}
+
/***************************************************************************
* ctrlData_buildSupportedHwRates *
****************************************************************************
@@ -1374,6 +1406,7 @@ void ctrlData_txCompleteStatus( TI_HANDLE hCtrlData,
("De Auth TxCmplt: txStatus = %d, txActualRate = %d \n",pTxCompleteAttr->status,pTxCompleteAttr->rate));
pCtrlData->disassocSentCBFunc( pCtrlData->disassocSentCBObj );
}
+
if(txData_isQueueUseMediumTime(pCtrlData->hTxData , qId) == TRUE )
{
WLAN_REPORT_INFORMATION(pCtrlData->hReport, CTRL_DATA_MODULE_LOG,
diff --git a/sta_dk_4_0_4_32/common/src/core/inc/DataCtrl_Api.h b/sta_dk_4_0_4_32/common/src/core/inc/DataCtrl_Api.h
index d376a39..d17061b 100644
--- a/sta_dk_4_0_4_32/common/src/core/inc/DataCtrl_Api.h
+++ b/sta_dk_4_0_4_32/common/src/core/inc/DataCtrl_Api.h
@@ -86,7 +86,7 @@ TI_STATUS rxData_config(TI_HANDLE hRxData,
TI_HANDLE hCtrlData,
TI_HANDLE hTxData,
TI_HANDLE hTnetwDrv,
- TI_HANDLE hHalCtrl,
+ TI_HANDLE hHalCtrl,
TI_HANDLE hMlme,
TI_HANDLE hRsn,
TI_HANDLE hSiteMgr,
@@ -94,8 +94,8 @@ TI_STATUS rxData_config(TI_HANDLE hRxData,
TI_HANDLE hOs,
TI_HANDLE hReport,
TI_HANDLE hMemMngr,
- TI_HANDLE hEvHandler,
- rxDataInitParams_t * rxDataInitParams);
+ TI_HANDLE hEvHandler,
+ rxDataInitParams_t * rxDataInitParams);
void rxData_receiveMsduFromWlan(TI_HANDLE hRxData, mem_MSDU_T *pMsdu, Rx_attr_t* pRxAttr);
@@ -326,6 +326,8 @@ TI_STATUS ctrlData_unLoad(TI_HANDLE hCtrlData);
TI_STATUS ctrlData_getParam(TI_HANDLE hCtrlData, paramInfo_t *pParamInfo);
+TI_STATUS ctrlData_getParamPartial(TI_HANDLE hCtrlData, paramInfoPartial_t *pParamInfo);
+
TI_STATUS ctrlData_setParam(TI_HANDLE hCtrlData, paramInfo_t *pParamInfo);
TI_STATUS ctrlData_start(TI_HANDLE hCtrlData);
diff --git a/sta_dk_4_0_4_32/common/src/core/inc/mlmeApi.h b/sta_dk_4_0_4_32/common/src/core/inc/mlmeApi.h
index c15079b..ffd458d 100644
--- a/sta_dk_4_0_4_32/common/src/core/inc/mlmeApi.h
+++ b/sta_dk_4_0_4_32/common/src/core/inc/mlmeApi.h
@@ -232,6 +232,8 @@ TI_STATUS assoc_setParam(TI_HANDLE hCtrlData, paramInfo_t *pParam);
TI_STATUS assoc_getParam(TI_HANDLE hCtrlData, paramInfo_t *pParam);
+TI_STATUS assoc_getParamPartial(TI_HANDLE hAssoc, paramInfoPartial_t *pParam);
+
/* Authentication SM API */
TI_HANDLE auth_create(TI_HANDLE hOs);
diff --git a/sta_dk_4_0_4_32/common/src/core/inc/rsnApi.h b/sta_dk_4_0_4_32/common/src/core/inc/rsnApi.h
index eb06c0a..beb90c5 100644
--- a/sta_dk_4_0_4_32/common/src/core/inc/rsnApi.h
+++ b/sta_dk_4_0_4_32/common/src/core/inc/rsnApi.h
@@ -171,6 +171,8 @@ TI_STATUS rsn_setParam(TI_HANDLE hCtrlData, paramInfo_t *pParam);
TI_STATUS rsn_getParam(TI_HANDLE hCtrlData, paramInfo_t *pParam);
+TI_STATUS rsn_getParamPartial(TI_HANDLE hRsn, paramInfoPartial_t *pParam);
+
TI_STATUS rsn_evalSite(TI_HANDLE hRsn, rsnData_t *pRsnData, bssType_e bssType, macAddress_t bssid, UINT32 *pMetric);
TI_STATUS rsn_setSite(TI_HANDLE hRsn, rsnData_t *pRsnData, UINT8 *pAssocIe, UINT8 *pAssocIeLen);
diff --git a/sta_dk_4_0_4_32/common/src/core/mlme/Assoc/assocSM.c b/sta_dk_4_0_4_32/common/src/core/mlme/Assoc/assocSM.c
index 48acd72..d9b9668 100644
--- a/sta_dk_4_0_4_32/common/src/core/mlme/Assoc/assocSM.c
+++ b/sta_dk_4_0_4_32/common/src/core/mlme/Assoc/assocSM.c
@@ -767,6 +767,55 @@ TI_STATUS assoc_getParam(TI_HANDLE hAssoc, paramInfo_t *pParam)
/**
*
+* assoc_getParamPartial - Get a specific parameter from the association SM
+*
+* \b Description:
+*
+* Get a specific parameter from the association SM.
+*
+* \b ARGS:
+*
+* I - hAssoc - Association SM context \n
+* I/O - pParam - Parameter \n
+*
+* \b RETURNS:
+*
+* OK if successful, NOK otherwise.
+*
+* \sa assoc_Start, assoc_Stop
+*/
+/* note: assoc_getParamPartial() is part of assoc_getParam() it was implemented to reduce Stack usage */
+TI_STATUS assoc_getParamPartial(TI_HANDLE hAssoc, paramInfoPartial_t *pParam)
+{
+ assoc_t *pHandle;
+
+ pHandle = (assoc_t*)hAssoc;
+
+ if ((pHandle == NULL) || (pParam == NULL))
+ {
+ return NOK;
+ }
+
+ /* serch parameter type */
+ switch (pParam->paramType)
+ {
+ case ASSOC_ASSOCIATION_RESP_PARAM:
+ pParam->content.applicationConfigBuffer.buffer = pHandle->assocRespBuffer;
+ pParam->content.applicationConfigBuffer.bufferSize = pHandle->assocRespLen;
+ break;
+
+ default:
+ WLAN_REPORT_ERROR(pHandle->hReport, ASSOC_MODULE_LOG,
+ ("assoc_getParamPartial no such entry %d\n",pParam->paramType));
+ return NOK;
+ }
+
+ return OK;
+}
+
+
+/**
+*
* assoc_setParam - Set a specific parameter to the association SM
*
* \b Description:
@@ -963,7 +1012,7 @@ TI_STATUS assoc_smFailureWait(assoc_t *pAssoc)
else /* (uRspStatus == 0) how did we get here ? */
{
WLAN_REPORT_ERROR(pAssoc->hReport, ASSOC_MODULE_LOG,
- ("%s while Response status is OK (0) !!! \n"));
+ ("assoc_smFailureWait: while Response status is OK (0) !!! \n"));
status = assoc_smReportFailure(pAssoc, (UINT16)NOK);
}
diff --git a/sta_dk_4_0_4_32/common/src/core/rsn/admCtrlWpa.c b/sta_dk_4_0_4_32/common/src/core/rsn/admCtrlWpa.c
index c878cf1..66a705f 100644
--- a/sta_dk_4_0_4_32/common/src/core/rsn/admCtrlWpa.c
+++ b/sta_dk_4_0_4_32/common/src/core/rsn/admCtrlWpa.c
@@ -73,6 +73,15 @@
#define MAX_WPA_CIPHER_SUITE 7
+/**************************************************************/
+/* reduce stack usage (admCtrlWpa_setSite)*/
+/**************************************************************/
+static paramInfo_t param;
+static whalParamInfo_t whalParam;
+static wpaIeData_t gWpaDataIE;
+/**************************************************************/
+
+
/* Enumerations */
@@ -711,9 +720,6 @@ TI_STATUS admCtrlWpa_getInfoElement(admCtrl_t *pAdmCtrl, UINT8 *pIe, UINT8 *pLen
TI_STATUS admCtrlWpa_setSite(admCtrl_t *pAdmCtrl, rsnData_t *pRsnData, UINT8 *pAssocIe, UINT8 *pAssocIeLen)
{
TI_STATUS status;
- paramInfo_t param;
- whalParamInfo_t whalParam;
- wpaIeData_t wpaData;
cipherSuite_e encryptionStatus;
admCtrlWpa_validity_t *pAdmCtrlWpa_validity=NULL;
UINT8 *pWpaIe;
@@ -763,23 +769,23 @@ TI_STATUS admCtrlWpa_setSite(admCtrl_t *pAdmCtrl, rsnData_t *pRsnData, UINT8 *pA
{
return status;
}
- status = admCtrlWpa_parseIe(pAdmCtrl, pWpaIe, &wpaData);
+ status = admCtrlWpa_parseIe(pAdmCtrl, pWpaIe, &gWpaDataIE);
if (status != OK)
{
return status;
}
- if ((wpaData.unicastSuite[0]>=MAX_WPA_CIPHER_SUITE) ||
- (wpaData.broadcastSuite>=MAX_WPA_CIPHER_SUITE) ||
+ if ((gWpaDataIE.unicastSuite[0]>=MAX_WPA_CIPHER_SUITE) ||
+ (gWpaDataIE.broadcastSuite>=MAX_WPA_CIPHER_SUITE) ||
(pAdmCtrl->unicastSuite>=MAX_WPA_CIPHER_SUITE))
{
return NOK;
}
- pAdmCtrl->encrInSw = wpaData.excKp;
- pAdmCtrl->micInSw = wpaData.excMic;
+ pAdmCtrl->encrInSw = gWpaDataIE.excKp;
+ pAdmCtrl->micInSw = gWpaDataIE.excMic;
/*Because ckip is a proprietary encryption for Cisco then a different validity check is needed */
- if(wpaData.broadcastSuite == RSN_CIPHER_CKIP || wpaData.unicastSuite[0] == RSN_CIPHER_CKIP)
+ if(gWpaDataIE.broadcastSuite == RSN_CIPHER_CKIP || gWpaDataIE.unicastSuite[0] == RSN_CIPHER_CKIP)
{
pAdmCtrl->getCipherSuite(pAdmCtrl, &encryptionStatus);
/*Funk supplicant can support CCKM only if it configures the driver to TKIP encryption. */
@@ -791,15 +797,15 @@ TI_STATUS admCtrlWpa_setSite(admCtrl_t *pAdmCtrl, rsnData_t *pRsnData, UINT8 *pA
else
{
/* Check validity of Group suite */
- if (!broadcastCipherSuiteValidity[pAdmCtrl->networkMode][wpaData.broadcastSuite])
+ if (!broadcastCipherSuiteValidity[pAdmCtrl->networkMode][gWpaDataIE.broadcastSuite])
{ /* check Group suite validity */
return NOK;
}
pAdmCtrl->getCipherSuite(pAdmCtrl, &encryptionStatus);
- for (index=0; index<wpaData.unicastSuiteCnt; index++)
+ for (index=0; index<gWpaDataIE.unicastSuiteCnt; index++)
{
- pAdmCtrlWpa_validity = &admCtrlWpa_validityTable[wpaData.unicastSuite[index]][wpaData.broadcastSuite][encryptionStatus];
+ pAdmCtrlWpa_validity = &admCtrlWpa_validityTable[gWpaDataIE.unicastSuite[index]][gWpaDataIE.broadcastSuite][encryptionStatus];
if (pAdmCtrlWpa_validity->status ==OK)
{
break;
@@ -812,11 +818,11 @@ TI_STATUS admCtrlWpa_setSite(admCtrl_t *pAdmCtrl, rsnData_t *pRsnData, UINT8 *pA
}
/* set cipher suites */
- wpaData.unicastSuite[0] = pAdmCtrlWpa_validity->unicast ;/*wpaData.unicastSuite[0];*/
- wpaData.broadcastSuite = pAdmCtrlWpa_validity->broadcast; /*wpaData.broadcastSuite;*/
+ gWpaDataIE.unicastSuite[0] = pAdmCtrlWpa_validity->unicast ;/*wpaData.unicastSuite[0];*/
+ gWpaDataIE.broadcastSuite = pAdmCtrlWpa_validity->broadcast; /*wpaData.broadcastSuite;*/
}
/* set external auth mode according to the key Mng Suite */
- switch (wpaData.KeyMngSuite[0])
+ switch (gWpaDataIE.KeyMngSuite[0])
{
case WPA_IE_KEY_MNG_NONE:
pAdmCtrl->externalAuthMode = RSN_EXT_AUTH_MODE_OPEN;
@@ -839,16 +845,16 @@ TI_STATUS admCtrlWpa_setSite(admCtrl_t *pAdmCtrl, rsnData_t *pRsnData, UINT8 *pA
#ifdef EXC_MODULE_INCLUDED
param.paramType = EXC_CCKM_EXISTS;
- param.content.excCckmExists = (wpaData.KeyMngSuite[0]==WPA_IE_KEY_MNG_CCKM) ? TRUE : FALSE;
+ param.content.excCckmExists = (gWpaDataIE.KeyMngSuite[0]==WPA_IE_KEY_MNG_CCKM) ? TRUE : FALSE;
excMngr_setParam(pAdmCtrl->hExcMngr, &param);
#endif
/* set replay counter */
- pAdmCtrl->replayCnt = wpaData.replayCounters;
+ pAdmCtrl->replayCnt = gWpaDataIE.replayCounters;
*pAssocIeLen = pRsnData->ieLen;
if (pAssocIe != NULL)
{
- os_memoryCopy(pAdmCtrl->hOs, pAssocIe, &wpaData, sizeof(wpaIeData_t));
+ os_memoryCopy(pAdmCtrl->hOs, pAssocIe, &gWpaDataIE, sizeof(wpaIeData_t));
}
@@ -883,7 +889,7 @@ TI_STATUS admCtrlWpa_setSite(admCtrl_t *pAdmCtrl, rsnData_t *pRsnData, UINT8 *pA
/* Configure privacy status in HAL so that HW is prepared to recieve keys */
whalParam.paramType = HAL_CTRL_RSN_SECURITY_MODE_PARAM;
- whalParam.content.rsnEncryptionStatus = (halCtrl_CipherSuite_e)wpaData.unicastSuite[0];
+ whalParam.content.rsnEncryptionStatus = (halCtrl_CipherSuite_e)gWpaDataIE.unicastSuite[0];
status = whalCtrl_SetParam(pAdmCtrl->pRsn->hWhalCtrl, &whalParam);
if (status != OK)
{
@@ -894,14 +900,14 @@ TI_STATUS admCtrlWpa_setSite(admCtrl_t *pAdmCtrl, rsnData_t *pRsnData, UINT8 *pA
/* set MIC and KP in HAL */
whalParam.paramType = HAL_CTRL_RSN_EXC_SW_ENC_ENABLE_PARAM;
- whalParam.content.rsnExcSwEncFlag = wpaData.excKp;
+ whalParam.content.rsnExcSwEncFlag = gWpaDataIE.excKp;
status = whalCtrl_SetParam(pAdmCtrl->pRsn->hWhalCtrl, &whalParam);
if (status != OK)
{
return status;
}
whalParam.paramType = HAL_CTRL_RSN_EXC_MIC_FIELD_ENABLE_PARAM;
- whalParam.content.rsnExcMicFieldFlag = wpaData.excMic;
+ whalParam.content.rsnExcMicFieldFlag = gWpaDataIE.excMic;
status = whalCtrl_SetParam(pAdmCtrl->pRsn->hWhalCtrl, &whalParam);
if (status != OK)
@@ -911,7 +917,7 @@ TI_STATUS admCtrlWpa_setSite(admCtrl_t *pAdmCtrl, rsnData_t *pRsnData, UINT8 *pA
#endif /*EXC_MODULE_INCLUDED*/
/* re-config PAE */
- status = admCtrlWpa_dynamicConfig(pAdmCtrl,&wpaData);
+ status = admCtrlWpa_dynamicConfig(pAdmCtrl,&gWpaDataIE);
if (status != OK)
{
return status;
diff --git a/sta_dk_4_0_4_32/common/src/core/rsn/admCtrlWpa2.c b/sta_dk_4_0_4_32/common/src/core/rsn/admCtrlWpa2.c
index f83b762..9e3fb36 100644
--- a/sta_dk_4_0_4_32/common/src/core/rsn/admCtrlWpa2.c
+++ b/sta_dk_4_0_4_32/common/src/core/rsn/admCtrlWpa2.c
@@ -93,6 +93,14 @@
/* Global variables */
static UINT8 wpa2IeOuiIe[3] = { 0x00, 0x0f, 0xac};
+/**************************************************************/
+/* reduce stack usage (admCtrlWpa_setSite)*/
+/**************************************************************/
+static paramInfo_t param;
+static whalParamInfo_t whalParam;
+static wpa2IeData_t wpa2DataIE;
+/**************************************************************/
+
static BOOL broadcastCipherSuiteValidity[MAX_NETWORK_MODE][MAX_WPA2_CIPHER_SUITE]=
{
/* RSN_IBSS */ {
@@ -716,9 +724,6 @@ TI_STATUS admCtrlWpa2_getInfoElement(admCtrl_t *pAdmCtrl, UINT8 *pIe, UINT8 *pLe
TI_STATUS admCtrlWpa2_setSite(admCtrl_t *pAdmCtrl, rsnData_t *pRsnData, UINT8 *pAssocIe, UINT8 *pAssocIeLen)
{
TI_STATUS status;
- paramInfo_t param;
- whalParamInfo_t whalParam;
- wpa2IeData_t wpa2Data;
rsn_paeConfig_t paeConfig;
UINT8 *pWpa2Ie;
cipherSuite_e uSuite, bSuite;
@@ -769,34 +774,34 @@ TI_STATUS admCtrlWpa2_setSite(admCtrl_t *pAdmCtrl, rsnData_t *pRsnData, UINT8 *p
WLAN_REPORT_INFORMATION(pAdmCtrl->hReport, RSN_MODULE_LOG,
("admCtrlWpa2_setSite: RSN_IE=\n"));
WLAN_REPORT_HEX_INFORMATION(pAdmCtrl->hReport, RSN_MODULE_LOG, pRsnData->pIe, pRsnData->ieLen);
- status = admCtrlWpa2_parseIe(pAdmCtrl, pWpa2Ie, &wpa2Data);
+ status = admCtrlWpa2_parseIe(pAdmCtrl, pWpa2Ie, &wpa2DataIE);
if (status != OK)
{
return status;
}
- if ((wpa2Data.unicastSuite[0]>=MAX_WPA2_CIPHER_SUITE) ||
- (wpa2Data.broadcastSuite>=MAX_WPA2_CIPHER_SUITE) ||
+ if ((wpa2DataIE.unicastSuite[0]>=MAX_WPA2_CIPHER_SUITE) ||
+ (wpa2DataIE.broadcastSuite>=MAX_WPA2_CIPHER_SUITE) ||
(pAdmCtrl->unicastSuite>=MAX_WPA2_CIPHER_SUITE))
{
return NOK;
}
/* Check validity of Group suite */
- if (!broadcastCipherSuiteValidity[pAdmCtrl->networkMode][wpa2Data.broadcastSuite])
+ if (!broadcastCipherSuiteValidity[pAdmCtrl->networkMode][wpa2DataIE.broadcastSuite])
{ /* check Group suite validity */
return NOK;
}
- if(admCtrlWpa2_getCipherSuiteMetric (pAdmCtrl, &wpa2Data, NULL, &uSuite, &bSuite) != OK)
+ if(admCtrlWpa2_getCipherSuiteMetric (pAdmCtrl, &wpa2DataIE, NULL, &uSuite, &bSuite) != OK)
return NOK;
/* set replay counter */
- pAdmCtrl->replayCnt = wpa2Data.ptkReplayCounters;
+ pAdmCtrl->replayCnt = wpa2DataIE.ptkReplayCounters;
*pAssocIeLen = pRsnData->ieLen;
if (pAssocIe != NULL)
{
- os_memoryCopy(pAdmCtrl->hOs, pAssocIe, &wpa2Data, sizeof(wpa2IeData_t));
+ os_memoryCopy(pAdmCtrl->hOs, pAssocIe, &wpa2DataIE, sizeof(wpa2IeData_t));
}
/* re-config PAE with updated unicast and broadcast suite values */
diff --git a/sta_dk_4_0_4_32/common/src/core/rsn/rsn.c b/sta_dk_4_0_4_32/common/src/core/rsn/rsn.c
index 713b25c..e49d733 100644
--- a/sta_dk_4_0_4_32/common/src/core/rsn/rsn.c
+++ b/sta_dk_4_0_4_32/common/src/core/rsn/rsn.c
@@ -765,6 +765,63 @@ TI_STATUS rsn_getParam(TI_HANDLE hRsn, paramInfo_t *pParam)
/**
*
+* rsn_getParamPartial - Get a specific parameter from the rsniation SM
+*
+* \b Description:
+*
+* Get a specific parameter from the rsniation SM.
+*
+* \b ARGS:
+*
+* I - hRsn - Rsniation SM context \n
+* I/O - pParam - Parameter \n
+*
+* \b RETURNS:
+*
+* OK if successful, NOK otherwise.
+*
+* \sa rsn_Start, rsn_Stop
+*/
+
+/* note: rsn_getParamPartial() is part of rsn_getParam() it was implemented to reduce Stack usage */
+TI_STATUS rsn_getParamPartial(TI_HANDLE hRsn, paramInfoPartial_t *pParam)
+{
+ rsn_t *pRsn;
+ TI_STATUS status = OK;
+
+ pRsn = (rsn_t*)hRsn;
+
+ if ((pRsn == NULL) || (pParam == NULL))
+ {
+ return NOK;
+ }
+
+ switch (pParam->paramType)
+ {
+ case RSN_PRE_AUTH_STATUS:
+ {
+ UINT8 cacheIndex;
+
+ pParam->content.rsnPreAuthStatus = pRsn->pAdmCtrl->getPreAuthStatus (pRsn->pAdmCtrl, &pParam->content.rsnApMac, &cacheIndex);
+ }
+ break;
+
+ case RSN_ENCRYPTION_STATUS_PARAM:
+ status = pRsn->pAdmCtrl->getCipherSuite (pRsn->pAdmCtrl, &pParam->content.rsnEncryptionStatus);
+ break;
+
+ case RSN_MIXED_MODE:
+ status = pRsn->pAdmCtrl->getMixedMode (pRsn->pAdmCtrl, &pParam->content.rsnMixedMode);
+ break;
+
+ default:
+ return NOK;
+ }
+
+ return status;
+}
+/**
+*
* rsn_SetParam - Set a specific parameter to the rsniation SM
*
* \b Description:
diff --git a/sta_dk_4_0_4_32/common/src/core/sme/conn/conn.c b/sta_dk_4_0_4_32/common/src/core/sme/conn/conn.c
index df26ad9..0ee57d9 100644
--- a/sta_dk_4_0_4_32/common/src/core/sme/conn/conn.c
+++ b/sta_dk_4_0_4_32/common/src/core/sme/conn/conn.c
@@ -383,7 +383,7 @@ TI_STATUS conn_start(TI_HANDLE hConn, connType_e connType,
BOOL reNegotiateTspec)
{
conn_t *pConn = (conn_t *)hConn;
- paramInfo_t param;
+ paramInfoPartial_t param;
pConn->pConnStatusCB = pConnStatusCB;
pConn->connStatCbObj = connStatCbObj;
@@ -399,7 +399,7 @@ TI_STATUS conn_start(TI_HANDLE hConn, connType_e connType,
param.paramType = QOS_MNGR_VOICE_RE_NEGOTIATE_TSPEC;
param.content.TspecConfigure.voiceTspecConfigure = reNegotiateTspec;
param.content.TspecConfigure.videoTspecConfigure = reNegotiateTspec;
- qosMngr_setParams(pConn->hQosMngr, &param);
+ qosMngr_setParamsPartial(pConn->hQosMngr, &param);
switch(pConn->currentConnType)
{
@@ -671,7 +671,7 @@ static void release_module(conn_t *pConn, UINT32 initVec)
if (initVec & (1 << TIMER_INIT_BIT))
utils_nullTimerDestroy(pConn->hOs, pConn->pTimer);
- if (initVec & (1 << CONN_INIT_BIT))
+ if (initVec & (1 << CONN_INIT_BIT))
utils_nullMemoryFree(pConn->hOs, pConn, sizeof(conn_t));
initVec = 0;
diff --git a/sta_dk_4_0_4_32/common/src/core/sme/siteMgr/select.c b/sta_dk_4_0_4_32/common/src/core/sme/siteMgr/select.c
index 0872bfa..16e444c 100644
--- a/sta_dk_4_0_4_32/common/src/core/sme/siteMgr/select.c
+++ b/sta_dk_4_0_4_32/common/src/core/sme/siteMgr/select.c
@@ -177,6 +177,14 @@ static TI_STATUS sendProbeResponse(siteMgr_t *pSiteMgr, macAddress_t *pBssid);
/* Interface functions Implementation */
+/**************************************************************/
+/* DEBUG CLI CRASH (systemConfig stack usage reduction) */
+/**************************************************************/
+
+static paramInfo_t gSystemCfgParam;
+static UINT8 curRsnData[255];
+/**************************************************************/
+
/***********************************************************************
* siteMgr_disSelectSite
***********************************************************************
@@ -1150,13 +1158,11 @@ RETURN: OK
************************************************************************/
TI_STATUS systemConfig(siteMgr_t *pSiteMgr)
{
- paramInfo_t param;
siteEntry_t *pPrimarySite = pSiteMgr->pSitesMgmtParams->pPrimarySite;
rsnData_t rsnData;
UINT8 rsnAssocIeLen;
dot11_RSN_t *pRsnIe;
UINT8 rsnIECount=0;
- UINT8 curRsnData[255];
UINT16 length;
UINT16 capabilities;
UINT16 PktLength=0;
@@ -1269,21 +1275,21 @@ TI_STATUS systemConfig(siteMgr_t *pSiteMgr)
pSiteMgr->currentDataModulation = pSiteMgr->chosenModulation;
/***************** Config Data CTRL *************************/
- param.paramType = CTRL_DATA_CURRENT_BSSID_PARAM; /* Current BSSID */
- os_memoryCopy(pSiteMgr->hOs, &(param.content.ctrlDataCurrentBSSID), &(pPrimarySite->bssid), sizeof(macAddress_t));
- ctrlData_setParam(pSiteMgr->hCtrlData, &param);
+ gSystemCfgParam.paramType = CTRL_DATA_CURRENT_BSSID_PARAM; /* Current BSSID */
+ os_memoryCopy(pSiteMgr->hOs, &(gSystemCfgParam.content.ctrlDataCurrentBSSID), &(pPrimarySite->bssid), sizeof(macAddress_t));
+ ctrlData_setParam(pSiteMgr->hCtrlData, &gSystemCfgParam);
- param.paramType = CTRL_DATA_CURRENT_BSS_TYPE_PARAM; /* Current BSS Type */
- param.content.ctrlDataCurrentBssType = pPrimarySite->bssType;
- ctrlData_setParam(pSiteMgr->hCtrlData, &param);
+ gSystemCfgParam.paramType = CTRL_DATA_CURRENT_BSS_TYPE_PARAM; /* Current BSS Type */
+ gSystemCfgParam.content.ctrlDataCurrentBssType = pPrimarySite->bssType;
+ ctrlData_setParam(pSiteMgr->hCtrlData, &gSystemCfgParam);
- param.paramType = CTRL_DATA_CURRENT_PREAMBLE_TYPE_PARAM; /* Current Preamble Type */
+ gSystemCfgParam.paramType = CTRL_DATA_CURRENT_PREAMBLE_TYPE_PARAM; /* Current Preamble Type */
if ((pSiteMgr->pDesiredParams->siteMgrDesiredPreambleType == PREAMBLE_SHORT) &&
(pPrimarySite->currentPreambleType == PREAMBLE_SHORT))
- param.content.ctrlDataCurrentPreambleType = PREAMBLE_SHORT;
+ gSystemCfgParam.content.ctrlDataCurrentPreambleType = PREAMBLE_SHORT;
else
- param.content.ctrlDataCurrentPreambleType = PREAMBLE_LONG;
- ctrlData_setParam(pSiteMgr->hCtrlData, &param);
+ gSystemCfgParam.content.ctrlDataCurrentPreambleType = PREAMBLE_LONG;
+ ctrlData_setParam(pSiteMgr->hCtrlData, &gSystemCfgParam);
/* Mutual Rates Matching */
StaTotalRates = pSiteMgr->pDesiredParams->siteMgrCurrentDesiredRateMask.basicRateMask |
@@ -1307,29 +1313,27 @@ TI_STATUS systemConfig(siteMgr_t *pSiteMgr)
pSiteMgr->pDesiredParams->siteMgrMatchedMaxActiveRate = MAX(pSiteMgr->pDesiredParams->siteMgrMatchedMaxBasicRate,pSiteMgr->pDesiredParams->siteMgrMatchedMaxActiveRate);
- param.paramType = CTRL_DATA_CURRENT_BASIC_RATE_PARAM; /* Current Basic Rate */
- param.content.ctrlDataCurrentBasicRate = (rate_e)pSiteMgr->pDesiredParams->siteMgrMatchedMaxBasicRate;
- ctrlData_setParam(pSiteMgr->hCtrlData, &param);
+ gSystemCfgParam.paramType = CTRL_DATA_CURRENT_BASIC_RATE_PARAM; /* Current Basic Rate */
+ gSystemCfgParam.content.ctrlDataCurrentBasicRate = (rate_e)pSiteMgr->pDesiredParams->siteMgrMatchedMaxBasicRate;
+ ctrlData_setParam(pSiteMgr->hCtrlData, &gSystemCfgParam);
- param.paramType = CTRL_DATA_CURRENT_BASIC_RATE_MASK_PARAM;
- param.content.ctrlDataBasicRateBitMask = pSiteMgr->pDesiredParams->siteMgrMatchedBasicRateMask;
- ctrlData_setParam(pSiteMgr->hCtrlData, &param);
-
- param.paramType = CTRL_DATA_CURRENT_BASIC_MODULATION_PARAM; /* Current Mgmt Rate */
+ gSystemCfgParam.paramType = CTRL_DATA_CURRENT_BASIC_RATE_MASK_PARAM;
+ gSystemCfgParam.content.ctrlDataBasicRateBitMask = pSiteMgr->pDesiredParams->siteMgrMatchedBasicRateMask;
+ ctrlData_setParam(pSiteMgr->hCtrlData, &gSystemCfgParam);
+ gSystemCfgParam.paramType = CTRL_DATA_CURRENT_BASIC_MODULATION_PARAM; /* Current Mgmt Rate */
if ((pPrimarySite->maxBasicRate == DRV_RATE_1M) || (pPrimarySite->maxBasicRate == DRV_RATE_2M))
- param.content.ctrlDataCurrentBasicModulationType = DRV_MODULATION_QPSK;
+ gSystemCfgParam.content.ctrlDataCurrentBasicModulationType = DRV_MODULATION_QPSK;
else if (pPrimarySite->maxBasicRate == DRV_RATE_22M)
- param.content.ctrlDataCurrentBasicModulationType = DRV_MODULATION_PBCC;
+ gSystemCfgParam.content.ctrlDataCurrentBasicModulationType = DRV_MODULATION_PBCC;
else if (pPrimarySite->maxBasicRate < DRV_RATE_22M)
- param.content.ctrlDataCurrentBasicModulationType = DRV_MODULATION_CCK;
+ gSystemCfgParam.content.ctrlDataCurrentBasicModulationType = DRV_MODULATION_CCK;
else
- param.content.ctrlDataCurrentBasicModulationType = DRV_MODULATION_OFDM;
-
- ctrlData_setParam(pSiteMgr->hCtrlData, &param);
+ gSystemCfgParam.content.ctrlDataCurrentBasicModulationType = DRV_MODULATION_OFDM;
- param.paramType = CTRL_DATA_CURRENT_PROTECTION_STATUS_PARAM;
- param.content.ctrlDataProtectionEnabled = pPrimarySite->useProtection;
- ctrlData_setParam(pSiteMgr->hCtrlData, &param);
+ ctrlData_setParam(pSiteMgr->hCtrlData, &gSystemCfgParam);
+ gSystemCfgParam.paramType = CTRL_DATA_CURRENT_PROTECTION_STATUS_PARAM;
+ gSystemCfgParam.content.ctrlDataProtectionEnabled = pPrimarySite->useProtection;
+ ctrlData_setParam(pSiteMgr->hCtrlData, &gSystemCfgParam);
ctrlData_setSite(pSiteMgr->hCtrlData, &pPrimarySite->fourXParams);
@@ -1341,30 +1345,30 @@ TI_STATUS systemConfig(siteMgr_t *pSiteMgr)
status = siteMgr_getWMEParamsSite(pSiteMgr,&p_ACParametersDummy);
if(status == OK)
{
- param.content.qosSiteProtocol = WME;
+ gSystemCfgParam.content.qosSiteProtocol = WME;
}
else
{
- param.content.qosSiteProtocol = NONE_QOS;
+ gSystemCfgParam.content.qosSiteProtocol = NONE_QOS;
}
WLAN_REPORT_DEBUG_TX(pSiteMgr->hReport,
- (" systemConfigt() : param.content.qosSiteProtoco %d\n", param.content.qosSiteProtocol));
+ (" systemConfigt() : param.content.qosSiteProtoco %d\n", gSystemCfgParam.content.qosSiteProtocol));
- param.paramType = QOS_MNGR_SET_SITE_PROTOCOL;
- qosMngr_setParams(pSiteMgr->hQosMngr,&param);
+ gSystemCfgParam.paramType = QOS_MNGR_SET_SITE_PROTOCOL;
+ qosMngr_setParams(pSiteMgr->hQosMngr,&gSystemCfgParam);
/* Set active protocol in qosMngr according to station desired mode and site capabilities
Must be called BEFORE setting the "CURRENT_PS_MODE" into the QosMngr */
qosMngr_selectActiveProtocol(pSiteMgr->hQosMngr);
/* set PS capability parameter */
- param.paramType = QOS_MNGR_CURRENT_PS_MODE;
+ gSystemCfgParam.paramType = QOS_MNGR_CURRENT_PS_MODE;
if(pPrimarySite->APSDSupport == TRUE)
- param.content.currentPsMode = PS_SCHEME_UPSD_TRIGGER;
+ gSystemCfgParam.content.currentPsMode = PS_SCHEME_UPSD_TRIGGER;
else
- param.content.currentPsMode = PS_SCHEME_LEGACY_PSPOLL;
- qosMngr_setParams(pSiteMgr->hQosMngr,&param);
+ gSystemCfgParam.content.currentPsMode = PS_SCHEME_LEGACY_PSPOLL;
+ qosMngr_setParams(pSiteMgr->hQosMngr,&gSystemCfgParam);
/* Set upsd/ps_poll configuration */
/* Must be done AFTER setting the active Protocol */
@@ -1406,9 +1410,9 @@ TI_STATUS systemConfig(siteMgr_t *pSiteMgr)
{
WLAN_REPORT_INFORMATION(pSiteMgr->hReport, SITE_MGR_MODULE_LOG,
("Select Exc_ParseClientTP == OK: Dbm = %d\n",ExternTxPower));
- param.paramType = REGULATORY_DOMAIN_EXTERN_TX_POWER_PREFERRED;
- param.content.ExternTxPowerPreferred = ExternTxPower;
- regulatoryDomain_setParam(pSiteMgr->hRegulatoryDomain,&param);
+ gSystemCfgParam.paramType = REGULATORY_DOMAIN_EXTERN_TX_POWER_PREFERRED;
+ gSystemCfgParam.content.ExternTxPowerPreferred = ExternTxPower;
+ regulatoryDomain_setParam(pSiteMgr->hRegulatoryDomain,&gSystemCfgParam);
}
/* Parse and save the EXC Version Number if exists */
excMngr_parseExcVer(pSiteMgr->hExcMngr, pIeBuffer, PktLength);
@@ -1418,9 +1422,9 @@ TI_STATUS systemConfig(siteMgr_t *pSiteMgr)
/* Note: TX Power Control adjustment is now done through siteMgr_assocReport() */
if (pPrimarySite->powerConstraint>0)
{ /* setting power constraint */
- param.paramType = REGULATORY_DOMAIN_SET_POWER_CONSTRAINT_PARAM;
- param.content.powerConstraint = pPrimarySite->powerConstraint;
- regulatoryDomain_setParam(pSiteMgr->hRegulatoryDomain,&param);
+ gSystemCfgParam.paramType = REGULATORY_DOMAIN_SET_POWER_CONSTRAINT_PARAM;
+ gSystemCfgParam.content.powerConstraint = pPrimarySite->powerConstraint;
+ regulatoryDomain_setParam(pSiteMgr->hRegulatoryDomain,&gSystemCfgParam);
}
diff --git a/sta_dk_4_0_4_32/common/src/core/sme/siteMgr/siteMgr.c b/sta_dk_4_0_4_32/common/src/core/sme/siteMgr/siteMgr.c
index 18ea43e..61099c9 100644
--- a/sta_dk_4_0_4_32/common/src/core/sme/siteMgr/siteMgr.c
+++ b/sta_dk_4_0_4_32/common/src/core/sme/siteMgr/siteMgr.c
@@ -207,7 +207,16 @@ static void siteMgr_externalConfigurationParametersSet(TI_HANDLE hSiteMgr);
void siteMgr_gotFirstBcn(TI_HANDLE hSiteMgr);
-
+/**************************************************************/
+/* DEBUG CLI CRASH */
+/**************************************************************/
+static whalCtrl_joinBss_t joinParams;
+static whalCtrl_setTemplate_t templateStruct;
+static probeRspTemplate_t probeRspTemplate;
+static nullDataTemplate_t nullDataTemplate;
+static psPollTemplate_t psPollTemplate;
+static QosNullDataTemplate_t QosNullDataTemplate;
+/**************************************************************/
#define CHAN_FREQ_TABLE_SIZE (sizeof(ChanFreq) / sizeof(struct CHAN_FREQ))
@@ -1434,7 +1443,7 @@ TI_STATUS siteMgr_getParam(TI_HANDLE hSiteMgr,
break;
case SITE_MGR_DESIRED_DOT11_MODE_PARAM:
- pParam->content.siteMgrDot11Mode = pSiteMgr->pDesiredParams->siteMgrDesiredDot11Mode;
+ pParam->content.siteMgrDot11Mode = pSiteMgr->pDesiredParams->siteMgrDesiredDot11Mode;
break;
case SITE_MGR_NETWORK_TYPE_IN_USE:
@@ -1636,16 +1645,9 @@ RETURN: OK on success, NOK otherwise
TI_STATUS siteMgr_join(TI_HANDLE hSiteMgr)
{
siteMgr_t *pSiteMgr = (siteMgr_t *)hSiteMgr;
- whalCtrl_joinBss_t joinParams;
- whalCtrl_setTemplate_t templateStruct;
- probeRspTemplate_t probeRspTemplate;
- nullDataTemplate_t nullDataTemplate;
- psPollTemplate_t psPollTemplate;
- QosNullDataTemplate_t QosNullDataTemplate;
siteEntry_t *pPrimarySite = pSiteMgr->pSitesMgmtParams->pPrimarySite;
rate_e rate;
- paramInfo_t param;
-
+ paramInfoPartial_t param;
if (pPrimarySite == NULL)
{
@@ -1679,7 +1681,7 @@ TI_STATUS siteMgr_join(TI_HANDLE hSiteMgr)
joinParams.hwGenCtrlTxRate = rate;
param.paramType = CTRL_DATA_CURRENT_PREAMBLE_TYPE_PARAM;
- ctrlData_getParam(pSiteMgr->hCtrlData, &param);
+ ctrlData_getParamPartial(pSiteMgr->hCtrlData, &param);
joinParams.preamble = param.content.ctrlDataCurrentPreambleType;
/*set the preamble before the join*/
whalCtrl_SetPreamble(pSiteMgr->hHalCtrl, joinParams.preamble);
@@ -2543,15 +2545,14 @@ static void updateSiteInfo(siteMgr_t *pSiteMgr, mlmeFrameInfo_t *pFrameInfo, sit
UPDATE_CAPABILITIES(pSite, pFrameInfo);
- if (utils_isIESSID_Broadcast(pFrameInfo->content.iePacket.pSsid) == FALSE)
- { /* And the SSID is not Broadcast */
+ if (utils_isIESSID_Broadcast(pFrameInfo->content.iePacket.pSsid) == FALSE)
+ { /* And the SSID is not Broadcast */
ssidUpdated = TRUE;
UPDATE_SSID(pSite, pFrameInfo);
- }
+ }
if (ssidUpdated)
{
-
UPDATE_PRIVACY(pSite, pFrameInfo);
}
@@ -2593,7 +2594,6 @@ static void updateSiteInfo(siteMgr_t *pSiteMgr, mlmeFrameInfo_t *pFrameInfo, sit
/* Updating QoS params */
updateBeaconQosParams(pSiteMgr, pSite, pFrameInfo);
-
/* updating CountryIE */
if ((pFrameInfo->content.iePacket.country != NULL) &&
(pFrameInfo->content.iePacket.country->hdr.eleLen != 0))
@@ -2790,7 +2790,7 @@ static void updateSiteInfo(siteMgr_t *pSiteMgr, mlmeFrameInfo_t *pFrameInfo, sit
param.paramType = REGULATORY_DOMAIN_COUNTRY_PARAM;
param.content.pCountry = (country_t *)pFrameInfo->content.iePacket.country;
regulatoryDomain_setParam(pSiteMgr->hRegulatoryDomain,&param);
- }
+ }
UPDATE_LOCAL_TIME_STAMP(pSiteMgr, pSite, pFrameInfo);
diff --git a/sta_dk_4_0_4_32/common/src/utils/utils.c b/sta_dk_4_0_4_32/common/src/utils/utils.c
index cd9ad9f..cf3c672 100644
--- a/sta_dk_4_0_4_32/common/src/utils/utils.c
+++ b/sta_dk_4_0_4_32/common/src/utils/utils.c
@@ -1617,9 +1617,10 @@ BOOL utils_isJunkSSID(ssid_t *pSsid)
if (pSsid->len > 2)
{
- if ((pSsid->ssidString[0] < FIRST_VALID_CHAR) &&
- (pSsid->ssidString[1] < FIRST_VALID_CHAR) &&
- (pSsid->ssidString[2] < FIRST_VALID_CHAR))
+ unsigned char *ssidString = (unsigned char *)pSsid->ssidString;
+ if ((ssidString[0] < FIRST_VALID_CHAR) &&
+ (ssidString[1] < FIRST_VALID_CHAR) &&
+ (ssidString[2] < FIRST_VALID_CHAR))
{
return TRUE;
}
@@ -2015,5 +2016,3 @@ void util_printProfile(void)
#endif /* UTIL_DEBUG_PROFILE */
-
-