wlan: Logging enhancement for Scan request path in SME
Logging enhancement for Scan request path in SME to provide
more information during failure cases.
Change-Id: I36f3b7921033d56059bb4510b2d4d448c15bae84
CRs-Fixed: 591369
diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c
index 00fbaa2..dc2a1ba 100644
--- a/CORE/SME/src/csr/csrApiScan.c
+++ b/CORE/SME/src/csr/csrApiScan.c
@@ -748,7 +748,11 @@
//greater than 7 as SSID for p2p search contains "DIRECT-")
if(pScanRequest->SSIDs.SSIDList->SSID.length > DIRECT_SSID_LEN)
{
- smsLog( pMac, LOG1, FL(" Increase the Dwell time to 100ms."));
+ smsLog( pMac, LOG1, FL("P2P: Increasing the min and max Dwell"
+ " time to %d for specific SSID scan %.*s"),
+ MAX_CHN_TIME_TO_FIND_GO,
+ pScanRequest->SSIDs.SSIDList->SSID.length,
+ pScanRequest->SSIDs.SSIDList->SSID.ssId);
pScanRequest->maxChnTime = MAX_CHN_TIME_TO_FIND_GO;
pScanRequest->minChnTime = MIN_CHN_TIME_TO_FIND_GO;
}
@@ -799,7 +803,11 @@
if(pScanRequest->minChnTime == 0 && pScanRequest->maxChnTime == 0)
{
//The caller doesn't set the time correctly. Set it here
- csrSetDefaultScanTiming(pMac, pScanRequest->scanType, pScanRequest);
+ csrSetDefaultScanTiming(pMac, pScanRequest->scanType,
+ pScanRequest);
+ smsLog(pMac, LOG1, FL("Setting default min %d and max %d"
+ " ChnTime"), pScanRequest->minChnTime,
+ pScanRequest->maxChnTime);
}
#ifdef WLAN_AP_STA_CONCURRENCY
if(pScanRequest->restTime == 0)
@@ -825,6 +833,10 @@
{
pScanRequest->maxChnTime = pScanRequest->maxChnTime << 1;
pScanRequest->minChnTime = pScanRequest->minChnTime << 1;
+ smsLog( pMac, LOG1, FL("BTC A2DP up, doubling max and min"
+ " ChnTime (Max=%d Min=%d)"),
+ pScanRequest->maxChnTime,
+ pScanRequest->minChnTime);
}
pScanRequest->maxChnTimeBtc = pMac->roam.configParam.nActiveMaxChnTimeBtc;
@@ -862,17 +874,16 @@
vos_mem_set(&p11dScanCmd->u.scanCmd, sizeof(tScanCmd), 0);
pChnInfo->ChannelList = vos_mem_malloc(numChn);
if ( NULL == pChnInfo->ChannelList )
- return eHAL_STATUS_FAILURE;
- vos_mem_copy(pChnInfo->ChannelList,
- pMac->scan.baseChannels.channelList, numChn);
- status = eHAL_STATUS_SUCCESS;
- if ( !HAL_STATUS_SUCCESS( status ) )
{
- vos_mem_free(pChnInfo->ChannelList);
- pChnInfo->ChannelList = NULL;
+ smsLog(pMac, LOGE, FL("Failed to allocate memory"));
+ status = eHAL_STATUS_FAILURE;
break;
}
+ vos_mem_copy(pChnInfo->ChannelList,
+ pMac->scan.baseChannels.channelList,
+ numChn);
pChnInfo->numOfChannels = (tANI_U8)numChn;
+
p11dScanCmd->command = eSmeCommandScan;
p11dScanCmd->u.scanCmd.callback = NULL;
p11dScanCmd->u.scanCmd.pContext = NULL;
@@ -930,18 +941,21 @@
#endif
if( !HAL_STATUS_SUCCESS( status ) )
{
- smsLog( pMac, LOGE, FL(" fail to send message status = %d"), status );
+ smsLog(pMac, LOGE, FL("Failed to send message"
+ " status = %d"), status);
break;
}
}
else
{
+ smsLog(pMac, LOGE, FL("csrScanCopyRequest failed"));
break;
}
}
else
{
//error
+ smsLog( pMac, LOGE, FL("p11dScanCmd failed") );
break;
}
}
@@ -958,9 +972,24 @@
status = csrScanCopyRequest(pMac, &pScanCmd->u.scanCmd.u.scanRequest, pScanRequest);
if(HAL_STATUS_SUCCESS(status))
{
+ tCsrScanRequest *pTempScanReq =
+ &pScanCmd->u.scanCmd.u.scanRequest;
pMac->scan.scanProfile.numOfChannels =
- pScanCmd->u.scanCmd.u.scanRequest.ChannelInfo.numOfChannels;
+ pTempScanReq->ChannelInfo.numOfChannels;
+ smsLog( pMac, LOG1, FL(" SId=%d scanId=%d"
+ " Scan reason=%u numSSIDs=%d"
+ " numChan=%d P2P search=%d minCT=%d maxCT=%d"
+ " minCBtc=%d maxCBtx=%d"),
+ sessionId, pScanCmd->u.scanCmd.scanID,
+ pScanCmd->u.scanCmd.reason,
+ pTempScanReq->SSIDs.numOfSSIDs,
+ pTempScanReq->ChannelInfo.numOfChannels,
+ pTempScanReq->p2pSearch,
+ pTempScanReq->minChnTime,
+ pTempScanReq->maxChnTime,
+ pTempScanReq->minChnTimeBtc,
+ pTempScanReq->maxChnTimeBtc );
//Start process the command
#ifdef WLAN_AP_STA_CONCURRENCY
if (!pMac->fScanOffload)
@@ -969,7 +998,8 @@
status = csrQueueSmeCommand(pMac, pScanCmd,
eANI_BOOLEAN_FALSE);
#else
- status = csrQueueSmeCommand(pMac, pScanCmd, eANI_BOOLEAN_FALSE);
+ status = csrQueueSmeCommand(pMac, pScanCmd,
+ eANI_BOOLEAN_FALSE);
#endif
if( !HAL_STATUS_SUCCESS( status ) )
{
@@ -989,7 +1019,17 @@
break;
}
}
+ else
+ {
+ smsLog( pMac, LOGE, FL("SId: %d Scanning not enabled"
+ " Scan type=%u, numOfSSIDs=%d P2P search=%d"),
+ sessionId, pScanRequest->requestType,
+ pScanRequest->SSIDs.numOfSSIDs,
+ pScanRequest->p2pSearch );
+ }
} while(0);
+
+
if(!HAL_STATUS_SUCCESS(status) && pScanCmd)
{
if( eCsrScanIdleScan == pScanCmd->u.scanCmd.reason )
@@ -997,7 +1037,12 @@
//Set the flag back for restarting idle scan
pMac->scan.fRestartIdleScan = eANI_BOOLEAN_TRUE;
}
- smsLog( pMac, LOGE, FL(" failed with status = %d, releasing scan cmd"), status );
+ smsLog( pMac, LOGE, FL(" SId: %d Failed with status=%d"
+ " Scan reason=%u numOfSSIDs=%d"
+ " P2P search=%d scanId=%d"),
+ sessionId, status, pScanCmd->u.scanCmd.reason,
+ pScanRequest->SSIDs.numOfSSIDs, pScanRequest->p2pSearch,
+ pScanCmd->u.scanCmd.scanID );
csrReleaseCommandScan(pMac, pScanCmd);
}
@@ -5473,8 +5518,9 @@
}
pMsg->scanType = pal_cpu_to_be32(scanType);
- pMsg->numSsid = (pScanReq->SSIDs.numOfSSIDs < SIR_SCAN_MAX_NUM_SSID) ? pScanReq->SSIDs.numOfSSIDs :
- SIR_SCAN_MAX_NUM_SSID;
+ pMsg->numSsid =
+ (pScanReq->SSIDs.numOfSSIDs < SIR_SCAN_MAX_NUM_SSID) ?
+ pScanReq->SSIDs.numOfSSIDs : SIR_SCAN_MAX_NUM_SSID;
if((pScanReq->SSIDs.numOfSSIDs != 0) && ( eSIR_PASSIVE_SCAN != scanType ))
{
for (i = 0; i < pMsg->numSsid; i++)
@@ -5556,6 +5602,22 @@
smsLog( pMac, LOGE, FL(" memory allocation failure"));
}
+ if(!HAL_STATUS_SUCCESS(status))
+ {
+ smsLog( pMac, LOG1, FL("Failed: SId: %d FirstMatch = %d"
+ " UniqueResult = %d freshScan = %d hiddenSsid = %d"),
+ sessionId, pScanReqParam->bReturnAfter1stMatch,
+ pScanReqParam->fUniqueResult, pScanReqParam->freshScan,
+ pScanReqParam->hiddenSsid );
+ smsLog( pMac, LOG1, FL("scanType = %u BSSType = %u numOfSSIDs = %d"
+ " numOfChannels = %d requestType = %d p2pSearch = %d\n"),
+ pScanReq->scanType, pScanReq->BSSType,
+ pScanReq->SSIDs.numOfSSIDs,
+ pScanReq->ChannelInfo.numOfChannels, pScanReq->requestType,
+ pScanReq->p2pSearch );
+
+ }
+
return( status );
}
@@ -5988,18 +6050,17 @@
{
pDstReq->pIEField = vos_mem_malloc(pSrcReq->uIEFieldLen);
if ( NULL == pDstReq->pIEField )
- status = eHAL_STATUS_FAILURE;
- else
- status = eHAL_STATUS_SUCCESS;
- if (HAL_STATUS_SUCCESS(status))
{
- vos_mem_copy(pDstReq->pIEField, pSrcReq->pIEField, pSrcReq->uIEFieldLen);
- pDstReq->uIEFieldLen = pSrcReq->uIEFieldLen;
+ status = eHAL_STATUS_FAILURE;
+ smsLog(pMac, LOGE, FL("No memory for scanning IE fields"));
+ break;
}
else
{
- smsLog(pMac, LOGE, "No memory for scanning IE fields");
- break;
+ status = eHAL_STATUS_SUCCESS;
+ vos_mem_copy(pDstReq->pIEField, pSrcReq->pIEField,
+ pSrcReq->uIEFieldLen);
+ pDstReq->uIEFieldLen = pSrcReq->uIEFieldLen;
}
}//Allocate memory for IE field
{
@@ -6014,13 +6075,11 @@
pSrcReq->ChannelInfo.numOfChannels
* sizeof(*pDstReq->ChannelInfo.ChannelList));
if ( NULL == pDstReq->ChannelInfo.ChannelList )
- status = eHAL_STATUS_FAILURE;
- else
- status = eHAL_STATUS_SUCCESS;
- if(!HAL_STATUS_SUCCESS(status))
{
+ status = eHAL_STATUS_FAILURE;
pDstReq->ChannelInfo.numOfChannels = 0;
- smsLog(pMac, LOGE, "No memory for scanning Channel List");
+ smsLog(pMac, LOGE, FL("No memory for scanning Channel"
+ " List"));
break;
}
@@ -6031,7 +6090,7 @@
pDstReq->ChannelInfo.ChannelList[new_index] =
pSrcReq->ChannelInfo.ChannelList[index];
new_index++;
- }
+ }
pDstReq->ChannelInfo.numOfChannels = new_index;
}
else if(HAL_STATUS_SUCCESS(csrGetCfgValidChannels(pMac, pMac->roam.validChannelList, &len)))
@@ -6069,13 +6128,13 @@
{
#ifdef FEATURE_WLAN_LFR
smsLog(pMac, LOG2,
- "%s: reqType=%d, numOfChannels=%d,"
- " ignoring DFS channel %d",
- __func__, pSrcReq->requestType,
+ FL(" reqType=%d, numOfChannels=%d,"
+ " ignoring DFS channel %d"),
+ pSrcReq->requestType,
pSrcReq->ChannelInfo.numOfChannels,
pSrcReq->ChannelInfo.ChannelList[index]);
#endif
- continue;
+ continue;
}
pDstReq->ChannelInfo.ChannelList[new_index] =
@@ -6095,12 +6154,13 @@
* Passing 0 to LIM will trigger a scan on
* all valid channels which is not desirable.
*/
- smsLog(pMac, LOGE, "%s: no valid channels found (request=%d)",
- __func__, pSrcReq->requestType);
+ smsLog(pMac, LOGE, FL(" no valid channels found"
+ " (request=%d)"), pSrcReq->requestType);
for ( index = 0; index < pSrcReq->ChannelInfo.numOfChannels ; index++ )
{
- smsLog(pMac, LOGE, "pSrcReq index=%d channel=%d",
- index, pSrcReq->ChannelInfo.ChannelList[index]);
+ smsLog(pMac, LOGE, FL("pSrcReq index=%d"
+ " channel=%d"), index,
+ pSrcReq->ChannelInfo.ChannelList[index]);
}
status = eHAL_STATUS_FAILURE;
break;
@@ -6109,7 +6169,8 @@
}
else
{
- smsLog(pMac, LOGE, "Couldn't get the valid Channel List, keeping requester's list");
+ smsLog(pMac, LOGE, FL("Couldn't get the valid Channel"
+ " List, keeping requester's list"));
vos_mem_copy(pDstReq->ChannelInfo.ChannelList,
pSrcReq->ChannelInfo.ChannelList,
pSrcReq->ChannelInfo.numOfChannels
@@ -6141,7 +6202,7 @@
else
{
pDstReq->SSIDs.numOfSSIDs = 0;
- smsLog(pMac, LOGE, "No memory for scanning SSID List");
+ smsLog(pMac, LOGE, FL("No memory for scanning SSID List"));
break;
}
}//Allocate memory for SSID List
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index 7d53c13..ab62bbe 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -2448,6 +2448,11 @@
#endif
status = csrScanRequest( hHal, sessionId, pscanReq,
pScanRequestID, callback, pContext );
+ if ( !HAL_STATUS_SUCCESS( status ) )
+ {
+ smsLog(pMac, LOGE, FL("csrScanRequest failed"
+ " SId=%d"), sessionId);
+ }
#ifdef FEATURE_WLAN_LFR
}
else