static TI_STATUS cmdDispatch_GetTwdParam (TI_HANDLE hCmdDispatch, paramInfo_t *pParam) { TCmdDispatchObj *pCmdDispatch = (TCmdDispatchObj *)hCmdDispatch; pParam->paramType &= ~(SET_BIT | GET_BIT | TWD_MODULE_PARAM | ASYNC_PARAM | ALLOC_NEEDED_PARAM); return TWD_GetParam (pCmdDispatch->hTWD, (TTwdParamInfo *)pParam); }
/************************************************************************ * buildPsPollTemplate * ************************************************************************ DESCRIPTION: This function build a ps poll template performs the following: - Build a template & set the template len, the template type is set in the site mgr INPUT: pSiteMgr - Handle to site manager pTemplate - Pointer to the template structure pSsid - Desired SSID OUTPUT: RETURN: TI_OK ************************************************************************/ TI_STATUS buildPsPollTemplate(siteMgr_t * pSiteMgr, TSetTemplate * pTemplate) { paramInfo_t param; TTwdParamInfo tTwdParam; TI_UINT32 size; psPollTemplate_t *pBuffer = (psPollTemplate_t *) pTemplate->ptr; siteEntry_t *pPrimarySite = pSiteMgr->pSitesMgmtParams->pPrimarySite; TI_UINT16 fc; os_memoryZero(pSiteMgr->hOs, pBuffer, sizeof(psPollTemplate_t)); /* * Header First */ /* Set BSSID address */ MAC_COPY(pBuffer->hdr.BSSID, pPrimarySite->bssid); /* Build Source address */ param.paramType = CTRL_DATA_MAC_ADDRESS; ctrlData_getParam(pSiteMgr->hCtrlData, ¶m); MAC_COPY(pBuffer->hdr.TA, param.content.ctrlDataDeviceMacAddress); /* ** Building the Frame Control word (16 bits) ** --------------------------------------------- ** Type = Control ** SubType = Power Save (PS) POLL, */ fc = DOT11_FC_PS_POLL; /* ** setting the Power Management bit in the Frame control field ** to be "Power Save mode" */ fc |= (0x1 << DOT11_FC_PWR_MGMT_SHIFT); COPY_WLAN_WORD(&pBuffer->hdr.fc, &fc); /* copy with endianess handling. */ /* ** Association ID ** ----------------- */ tTwdParam.paramType = TWD_AID_PARAM_ID; TWD_GetParam(pSiteMgr->hTWD, &tTwdParam); /* AID should have its two MSB bit Set to "1" */ pBuffer->hdr.AID = tTwdParam.content.halCtrlAid | 0xC000; size = sizeof(dot11_PsPollFrameHeader_t); pTemplate->len = size; return TI_OK; }
/** * \fn mlme_assocRequestMsgBuild * \brief buils association request * * The function builds the association request according to the given parames * * \param pCtx - pointer to mlme_t * \param reqBuf - <output> pointer to built assoc request buffer * \param reqLen - <output> length of built assoc request buffer * * \return TI_OK if auth send successfully * TI_NOK otherwise * * \sa mlme_sendAssocRequest */ TI_STATUS mlme_assocRequestMsgBuild(mlme_t *pCtx, TI_UINT8* reqBuf, TI_UINT32* reqLen) { TI_STATUS status; TI_UINT8 *pRequest; TI_UINT32 len; paramInfo_t param; TTwdParamInfo tTwdParam; TI_UINT16 capabilities; TI_BOOL spectrumManagementEnabled; ECipherSuite eCipherSuite = TWD_CIPHER_NONE; /* To be used for checking whether AP supports HT rates and TKIP */ pRequest = reqBuf; *reqLen = 0; /* insert capabilities */ status = mlme_assocCapBuild(pCtx, &capabilities); if (status == TI_OK) { *(TI_UINT16*)pRequest = ENDIAN_HANDLE_WORD(capabilities); } else { TRACE0(pCtx->hReport, REPORT_SEVERITY_ERROR, "mlme_assocRequestMsgBuild: failed to build assoc Capa\n"); return TI_NOK; } pRequest += sizeof(TI_UINT16); *reqLen += sizeof(TI_UINT16); /* insert listen interval */ tTwdParam.paramType = TWD_LISTEN_INTERVAL_PARAM_ID; status = TWD_GetParam (pCtx->hTWD, &tTwdParam); if (status == TI_OK) { *(TI_UINT16*)pRequest = ENDIAN_HANDLE_WORD((TI_UINT16)tTwdParam.content.halCtrlListenInterval); } else { TRACE0(pCtx->hReport, REPORT_SEVERITY_ERROR, "mlme_assocRequestMsgBuild: failed to get listen interval\n"); return TI_NOK; } pRequest += sizeof(TI_UINT16); *reqLen += sizeof(TI_UINT16); if (pCtx->reAssoc) { /* Insert currentAPAddress element only in reassoc request*/ param.paramType = SITE_MGR_PREV_SITE_BSSID_PARAM; status = siteMgr_getParam(pCtx->hSiteMgr, ¶m); if (status == TI_OK) { MAC_COPY (pRequest, param.content.siteMgrDesiredBSSID); TRACE6(pCtx->hReport, REPORT_SEVERITY_INFORMATION, "ASSOC_SM: ASSOC_REQ - prev AP = %x-%x-%x-%x-%x-%x\n", param.content.siteMgrDesiredBSSID[0], param.content.siteMgrDesiredBSSID[1], param.content.siteMgrDesiredBSSID[2], param.content.siteMgrDesiredBSSID[3], param.content.siteMgrDesiredBSSID[4], param.content.siteMgrDesiredBSSID[5]); pRequest += MAC_ADDR_LEN; *reqLen += MAC_ADDR_LEN; } else { TRACE0(pCtx->hReport, REPORT_SEVERITY_ERROR, "mlme_assocRequestMsgBuild: ASSOC_REQ - No prev AP \n"); return status; } } /* insert SSID element */ status = mlme_assocSSIDBuild(pCtx, pRequest, &len); if (status != TI_OK) { TRACE0(pCtx->hReport, REPORT_SEVERITY_ERROR, "mlme_assocRequestMsgBuild: failed to build SSID IE\n"); return TI_NOK; } pRequest += len; *reqLen += len; /* insert Rates element */ status = mlme_assocRatesBuild(pCtx, pRequest, &len); if (status != TI_OK) { TRACE0(pCtx->hReport, REPORT_SEVERITY_ERROR, "mlme_assocRequestMsgBuild: failed to build rates IE\n"); return TI_NOK; } pRequest += len; *reqLen += len; /* Checking if the station supports Spectrum Management (802.11h) */ param.paramType = REGULATORY_DOMAIN_MANAGEMENT_CAPABILITY_ENABLED_PARAM; status = regulatoryDomain_getParam(pCtx->hRegulatoryDomain,¶m); spectrumManagementEnabled = param.content.spectrumManagementEnabled; /* Checking the selected AP capablities */ param.paramType = SITE_MGR_SITE_CAPABILITY_PARAM; status = siteMgr_getParam(pCtx->hSiteMgr,¶m); if (status == TI_OK && spectrumManagementEnabled && param.content.siteMgrSiteCapability & (DOT11_SPECTRUM_MANAGEMENT != 0)) { /* insert Power capability element */ status = mlme_assocPowerCapabilityBuild(pCtx, pRequest, &len); if (status != TI_OK) { TRACE0(pCtx->hReport, REPORT_SEVERITY_ERROR, "mlme_assocRequestMsgBuild: failed to build Power IE\n"); return TI_NOK; } pRequest += len; *reqLen += len; } #ifdef XCC_MODULE_INCLUDED status = rsn_getXCCExtendedInfoElement(pCtx->hRsn, pRequest, (TI_UINT8*)&len); if (status != TI_OK) { return TI_NOK; } pRequest += len; *reqLen += len; if (pCtx->reAssoc) { /* insert CCKM information element only in reassoc */ status = XCCMngr_getCckmInfoElement(pCtx->hXCCMngr, pRequest, (TI_UINT8*)&len); if (status != TI_OK) { return TI_NOK; } pRequest += len; *reqLen += len; } status = XCCMngr_getXCCVersionInfoElement(pCtx->hXCCMngr, pRequest, (TI_UINT8*)&len); if (status != TI_OK) { return TI_NOK; } pRequest += len; *reqLen += len; /* Insert Radio Mngt Capability IE */ status = measurementMgr_radioMngtCapabilityBuild(pCtx->hMeasurementMgr, pRequest, (TI_UINT8*)&len); if (status != TI_OK) { return TI_NOK; } pRequest += len; *reqLen += len; #endif /* Get Simple-Config state */ param.paramType = SITE_MGR_SIMPLE_CONFIG_MODE; status = siteMgr_getParam(pCtx->hSiteMgr, ¶m); if (param.content.siteMgrWSCMode.WSCMode == TIWLN_SIMPLE_CONFIG_OFF) { /* insert RSN information elements */ status = rsn_getInfoElement(pCtx->hRsn, pRequest, &len); if (status != TI_OK) { TRACE0(pCtx->hReport, REPORT_SEVERITY_ERROR, "mlme_assocRequestMsgBuild: failed to build RSN IE\n"); return TI_NOK; } pRequest += len; *reqLen += len; } /* Privacy - Used later on HT */ param.paramType = RSN_ENCRYPTION_STATUS_PARAM; status = rsn_getParam(pCtx->hRsn, ¶m); if(status == TI_OK) { eCipherSuite = param.content.rsnEncryptionStatus; } /* insert QoS capability information element */ status = qosMngr_getQosCapabiltyInfeElement(pCtx->hQosMngr,pRequest,&len); if (status != TI_OK) { TRACE0(pCtx->hReport, REPORT_SEVERITY_ERROR, "mlme_assocRequestMsgBuild: failed to build QoS capa IE\n"); return TI_NOK; } pRequest += len; *reqLen += len; /* Primary Site support HT ? */ param.paramType = SITE_MGR_PRIMARY_SITE_HT_SUPPORT; siteMgr_getParam(pCtx->hSiteMgr, ¶m); /* Disallow TKIP with HT Rates: If this is the case - discard HT rates from Association Request */ if((TI_TRUE == param.content.bPrimarySiteHtSupport) && (eCipherSuite != TWD_CIPHER_TKIP)) { status = StaCap_GetHtCapabilitiesIe (pCtx->hStaCap, pRequest, &len); if (status != TI_OK) { return TI_NOK; } pRequest += len; *reqLen += len; } status = qosMngr_assocReqBuild(pCtx->hQosMngr,pRequest,&len); if (status != TI_OK) { TRACE0(pCtx->hReport, REPORT_SEVERITY_ERROR, "mlme_assocRequestMsgBuild: failed to build QoS IE\n"); return TI_NOK; } pRequest += len; *reqLen += len; status = apConn_getVendorSpecificIE(pCtx->hApConn, pRequest, &len); if (status != TI_OK) { TRACE0(pCtx->hReport, REPORT_SEVERITY_ERROR, "mlme_assocRequestMsgBuild: failed to build vendor IE\n"); return TI_NOK; } pRequest += len; *reqLen += len; if (*reqLen>=MAX_ASSOC_MSG_LENGTH) { TRACE1(pCtx->hReport, REPORT_SEVERITY_ERROR, "mlme_assocRequestMsgBuild: failed to build, reqLen = %u\n", *reqLen); return TI_NOK; } return TI_OK; }
/************************************************************************* * measurementDebugFunction * ************************************************************************* DESCRIPTION: INPUT: OUTPUT: RETURN: ************************************************************************/ void measurementDebugFunction(TI_HANDLE hMeasurementMgr, TI_HANDLE hSwitchChannel, TI_HANDLE hRegulatoryDomain, TI_UINT32 funcType, void *pParam) { paramInfo_t param; #ifdef XCC_MODULE_INCLUDED TTwdParamInfo tTwdParam; #endif TI_STATUS status = TI_OK; TI_UINT8 rangeUpperBound; TI_UINT8 rangeIndex; TI_UINT16 trafficThreshold; TNoiseHistogram pNoiseHistParams; measurementMgr_t * pMeasurementMgr = (measurementMgr_t *) hMeasurementMgr; TI_UINT8 SwitchChannelParam = *(TI_UINT8*)pParam; siteMgr_t *pSiteMgr = (siteMgr_t *) pMeasurementMgr->hSiteMgr; #ifdef XCC_MODULE_INCLUDED TI_UINT8 iappPacket[90] = {0xAA, 0xAA, 0x03, 0x00, 0x40, 0x96, 0x00, 0x00, 0x00, 0x20, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x02, 0x26, 0x00, 0x08, 0x00, 0xA1, 0x00, 0x00, 0x01, 0x0B, 0x00, 0x26, 0x26}; TI_UINT8 iappPacket1[76] = {0xAA, 0xAA, 0x03, 0x00, 0x40, 0x96, 0x00, 0x00, 0x00, 0x20, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x02, 0x26, 0x00, 0x08, 0x00, 0xF1, 0x00, 0x00, 0x01, 0x06, 0x00, 0x64, 0x00}; TI_UINT8 iappPacket2[76] = {0xAA, 0xAA, 0x03, 0x00, 0x40, 0x96, 0x00, 0x00, 0x00, 0x20, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x01, 0x02, 0x26, 0x00, 0x08, 0x00, 0xA3, 0x00, 0x00, 0x03, 0x0B, 0x02, 0xD1, 0x03}; TI_UINT8 iappPacket3[76] = {0xAA, 0xAA, 0x03, 0x00, 0x40, 0x96, 0x00, 0x00, 0x00, 0x38, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x02, 0x26, 0x00, 0x08, 0x00, 0xA1, 0x00, 0x00, 0x03, 0x03, 0X00, 0XFF, 0X00, 0X26, 0X00, 0X08, 0X00, 0XC1, 0X00, 0X00, 0X02, 0X03, 0X00, 0XFF, 0X00, 0X26, 0X00, 0X08, 0X00, 0XB1, 0X00, 0X00, 0X01, 0X03, 0X00, 0XFF, 0X00}; TI_UINT8 iappPacket4[76] = {0xAA, 0xAA, 0x03, 0x00, 0x40, 0x96, 0x00, 0x00, 0x00, 0x38, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x02, 0x26, 0x00, 0x08, 0x00, 0xA1, 0x00, 0x00, 0x03, 0x06, 0X00, 0X32, 0X00, 0X26, 0X00, 0X08, 0X00, 0XC1, 0X00, 0X00, 0X02, 0X01, 0X00, 0XFF, 0X00, 0X26, 0X00, 0X08, 0X00, 0XB1, 0X00, 0X01, 0X01, 0X01, 0X00, 0X96, 0X00}; #endif switch (funcType) { case DBG_MEASUREMENT_PRINT_HELP: printMeasurementDbgFunctions(); break; case DBG_MEASUREMENT_PRINT_STATUS: param.paramType = MEASUREMENT_GET_STATUS_PARAM; measurementMgr_getParam(hMeasurementMgr, ¶m); break; #if 0 case DBG_MEASUREMENT_CHANNEL_LOAD_START: /* Clearing the Medium Occupancy Register */ tTwdParam.paramType = HAL_CTRL_MEDIUM_OCCUPANCY_PARAM; tTwdParam.content.interogateCmdCBParams.CB_Func = measurement_mediumUsageCB; tTwdParam.content.interogateCmdCBParams.CB_handle = hMeasurementMgr; tTwdParam.content.interogateCmdCBParams.CB_buf = (TI_UINT8*)(&(pMeasurementMgr->mediumOccupancyStart)); if ((status = TWD_GetParam (pMeasurementMgr->hTWD, &tTwdParam)) == TI_OK) { WLAN_OS_REPORT(("%s: MEASUREMENT - Channel Load Started!\n", __FUNCTION__)); } break; case DBG_MEASUREMENT_CHANNEL_LOAD_STOP: /* Getting the Medium Occupancy Register */ tTwdParam.paramType = HAL_CTRL_MEDIUM_OCCUPANCY_PARAM; tTwdParam.content.interogateCmdCBParams.CB_Func = measurement_channelLoadCallBackDbg; tTwdParam.content.interogateCmdCBParams.CB_handle = hMeasurementMgr; tTwdParam.content.interogateCmdCBParams.CB_buf = (TI_UINT8*)(&(pMeasurementMgr->mediumOccupancyEnd)); if ((status = TWD_GetParam (pMeasurementMgr->hTWD, &tTwdParam)) == TI_OK) { WLAN_OS_REPORT(("%s: MEASUREMENT - Channel Load Stoped!", __FUNCTION__)); } break; #endif /* 0 */ case DBG_MEASUREMENT_SEND_FRAME_REQUEST: WLAN_OS_REPORT(("-----------------------------------------------------\n")); WLAN_OS_REPORT((" Measurement Debug Function: Sending Frame Request \n")); WLAN_OS_REPORT(("-----------------------------------------------------\n")); WLAN_OS_REPORT(("beaconInterval = %d\n", pSiteMgr->pSitesMgmtParams->pPrimarySite->beaconInterval)); WLAN_OS_REPORT(("dtimPeriod = %d\n", pSiteMgr->pSitesMgmtParams->pPrimarySite->dtimPeriod)); #ifdef XCC_MODULE_INCLUDED measurementMgr_XCCParse(hMeasurementMgr, iappPacket); #endif WLAN_OS_REPORT(("-----------------------------------------------------\n")); WLAN_OS_REPORT((" Measurement Debug Function: END \n")); WLAN_OS_REPORT(("-----------------------------------------------------\n")); break; case DBG_MEASUREMENT_START_NOISE_HIST: /* Set Noise Histogram Cmd Params */ pNoiseHistParams.cmd = START_NOISE_HIST; pNoiseHistParams.sampleInterval = 100; os_memoryZero(pMeasurementMgr->hOs, &(pNoiseHistParams.ranges[0]), MEASUREMENT_NOISE_HISTOGRAM_NUM_OF_RANGES); /* Set Ranges */ rangeUpperBound = (TI_UINT8)-87; /* TWD_convertRSSIToRxLevel(pMeasurementMgr->hTWD, -87);*/ for(rangeIndex = 0; rangeIndex < MEASUREMENT_NOISE_HISTOGRAM_NUM_OF_RANGES - 1; rangeIndex++) { pNoiseHistParams.ranges[rangeIndex] = rangeUpperBound; rangeUpperBound += 5; } pNoiseHistParams.ranges[rangeIndex] = 0xFE; /* Send a Start command to the FW */ status = TWD_CmdNoiseHistogram (pMeasurementMgr->hTWD, &pNoiseHistParams); WLAN_OS_REPORT(("Measurement Debug Functions - Start Noise Hist Succeded")); if (status != TI_OK) WLAN_OS_REPORT(("Measurement Debug Functions - Start Noise Hist FAILED")); break; case DBG_MEASUREMENT_STOP_NOISE_HIST: /* Set Noise Histogram Cmd Params */ pNoiseHistParams.cmd = STOP_NOISE_HIST; pNoiseHistParams.sampleInterval = 0; os_memoryZero(pMeasurementMgr->hOs, &(pNoiseHistParams.ranges[0]), MEASUREMENT_NOISE_HISTOGRAM_NUM_OF_RANGES); /* Send a Stop command to the FW */ status = TWD_CmdNoiseHistogram (pMeasurementMgr->hTWD, &pNoiseHistParams); WLAN_OS_REPORT(("Measurement Debug Functions - Stop Noise Hist Succeded")); if (status != TI_OK) WLAN_OS_REPORT(("Measurement Debug Functions - Stop Noise Hist FAILED")); break; case DBG_MEASUREMENT_GET_NOISE_HIST_RESULTS: { #ifdef XCC_MODULE_INCLUDED TNoiseHistogramResults results; /* Get measurement results */ tTwdParam.paramType = TWD_NOISE_HISTOGRAM_PARAM_ID; tTwdParam.content.interogateCmdCBParams.fCb = (void *)measurement_noiseHistCallBackDbg; tTwdParam.content.interogateCmdCBParams.hCb = ((MacServices_t *)(((TTwd *)pMeasurementMgr->hTWD)->hMacServices))->hMeasurementSRV; tTwdParam.content.interogateCmdCBParams.pCb = (TI_UINT8 *)&results; TWD_GetParam (pMeasurementMgr->hTWD, &tTwdParam); #endif break; } case DBG_MEASUREMENT_SEND_CHANNEL_LOAD_FRAME: WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT((" Measurement Debug Function: Sending another Frame Request \n")); WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT(("beaconInterval = %d\n", pSiteMgr->pSitesMgmtParams->pPrimarySite->beaconInterval)); WLAN_OS_REPORT(("dtimPeriod = %d\n", pSiteMgr->pSitesMgmtParams->pPrimarySite->dtimPeriod)); #ifdef XCC_MODULE_INCLUDED measurementMgr_XCCParse(hMeasurementMgr, iappPacket1); #endif WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT((" Measurement Debug Function: END \n")); WLAN_OS_REPORT(("---------------------------------------------------------------\n")); break; case DBG_MEASUREMENT_SEND_BEACON_TABLE_FRAME: WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT((" Measurement Debug Function: Sending Beacon Table Request \n")); WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT(("beaconInterval = %d\n", pSiteMgr->pSitesMgmtParams->pPrimarySite->beaconInterval)); WLAN_OS_REPORT(("dtimPeriod = %d\n", pSiteMgr->pSitesMgmtParams->pPrimarySite->dtimPeriod)); #ifdef XCC_MODULE_INCLUDED measurementMgr_XCCParse(hMeasurementMgr, iappPacket2); #endif WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT((" Measurement Debug Function: END \n")); WLAN_OS_REPORT(("---------------------------------------------------------------\n")); break; case DBG_MEASUREMENT_SEND_NOISE_HIST_1_FRAME: WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT((" Measurement Debug Function: Sending Unknown Request #1 \n")); WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT(("beaconInterval = %d\n", pSiteMgr->pSitesMgmtParams->pPrimarySite->beaconInterval)); WLAN_OS_REPORT(("dtimPeriod = %d\n", pSiteMgr->pSitesMgmtParams->pPrimarySite->dtimPeriod)); #ifdef XCC_MODULE_INCLUDED measurementMgr_XCCParse(hMeasurementMgr, iappPacket3); #endif WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT((" Measurement Debug Function: END \n")); WLAN_OS_REPORT(("---------------------------------------------------------------\n")); break; case DBG_MEASUREMENT_SEND_NOISE_HIST_2_FRAME: WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT((" Measurement Debug Function: Sending Unknown Request #1 \n")); WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT(("beaconInterval = %d\n", pSiteMgr->pSitesMgmtParams->pPrimarySite->beaconInterval)); WLAN_OS_REPORT(("dtimPeriod = %d\n", pSiteMgr->pSitesMgmtParams->pPrimarySite->dtimPeriod)); #ifdef XCC_MODULE_INCLUDED measurementMgr_XCCParse(hMeasurementMgr, iappPacket4); #endif WLAN_OS_REPORT(("---------------------------------------------------------------\n")); WLAN_OS_REPORT((" Measurement Debug Function: END \n")); WLAN_OS_REPORT(("---------------------------------------------------------------\n")); break; case DBG_MEASUREMENT_SET_TRAFFIC_THRSLD: trafficThreshold = *(TI_UINT16*)pParam; param.paramType = MEASUREMENT_TRAFFIC_THRESHOLD_PARAM; param.content.measurementTrafficThreshold = trafficThreshold; measurementMgr_setParam(hMeasurementMgr, ¶m); break; case DBG_SC_PRINT_STATUS: switchChannelDebug_printStatus(hSwitchChannel); break; case DBG_SC_SET_SWITCH_CHANNEL_NUM: switchChannelDebug_setCmdParams(hSwitchChannel, SC_SWITCH_CHANNEL_NUM , SwitchChannelParam); break; case DBG_SC_SET_SWITCH_CHANNEL_TBTT: switchChannelDebug_setCmdParams(hSwitchChannel, SC_SWITCH_CHANNEL_TBTT , SwitchChannelParam); break; case DBG_SC_SET_SWITCH_CHANNEL_MODE: switchChannelDebug_setCmdParams(hSwitchChannel, SC_SWITCH_CHANNEL_MODE , SwitchChannelParam); break; case DBG_SC_SET_CHANNEL_AS_VALID: switchChannelDebug_setChannelValidity(hSwitchChannel, SwitchChannelParam, TI_TRUE); break; case DBG_SC_SET_CHANNEL_AS_INVALID: switchChannelDebug_setChannelValidity(hSwitchChannel, SwitchChannelParam, TI_FALSE); break; case DBG_SC_SWITCH_CHANNEL_CMD: { switchChannelDebug_SwitchChannelCmdTest(hSwitchChannel, SwitchChannelParam); } break; case DBG_SC_CANCEL_SWITCH_CHANNEL_CMD: if ((SwitchChannelParam!=TI_TRUE) && (SwitchChannelParam!=TI_FALSE)) { /* default is TI_TRUE */ SwitchChannelParam = TI_TRUE; } switchChannelDebug_CancelSwitchChannelCmdTest(hSwitchChannel, SwitchChannelParam); break; case DBG_REG_DOMAIN_PRINT_VALID_CHANNELS: regDomainPrintValidTables(hRegulatoryDomain); break; default: WLAN_OS_REPORT(("Invalid function type in MEASUREMENT Function Command: %d\n", funcType)); break; } }