Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
/************************************************************************
 *                        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, &param);
	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;
}
Exemplo n.º 3
0
/** 
 * \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, &param);
        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,&param);
	spectrumManagementEnabled = param.content.spectrumManagementEnabled;

	/* Checking the selected AP capablities */
    param.paramType = SITE_MGR_SITE_CAPABILITY_PARAM;
    status =  siteMgr_getParam(pCtx->hSiteMgr,&param);
    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, &param);

   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, &param);



    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, &param);


    /* 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;
}
Exemplo n.º 4
0
/*************************************************************************
 *					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, &param);
		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, &param);
        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;
	}
}