summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepthi Gowri <c_gowri@qti.qualcomm.com>2015-06-11 12:09:26 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2015-06-18 07:13:46 -0700
commit8fe8acadad0a4a9b66b0c19fa74876b4b4e38238 (patch)
treed84b2e0e6814d910b417a126392515bce8e7ad47
parent33a3aecf9a53eed538890eee0024d79c218f1550 (diff)
qcacld2.0: Pass the correct reason code to disassoc.
use the same reason code in the disassoc, which the upper layer has passed to the driver. Change-Id: I6302a5c8318a8e3c1221b9272637455da4e7f150 CRs-Fixed: 852387
-rw-r--r--CORE/HDD/inc/wlan_hdd_hostapd.h2
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c6
-rw-r--r--CORE/HDD/src/wlan_hdd_hostapd.c17
-rwxr-xr-xCORE/HDD/src/wlan_hdd_main.c9
-rw-r--r--CORE/HDD/src/wlan_hdd_tx_rx.c9
-rw-r--r--CORE/SAP/inc/sapApi.h2
-rw-r--r--CORE/SAP/src/sapModule.c4
-rw-r--r--CORE/SME/inc/sme_Api.h2
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c11
-rw-r--r--CORE/SME/src/csr/csrInsideApi.h3
-rw-r--r--CORE/SME/src/sme_common/sme_Api.c5
11 files changed, 44 insertions, 26 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_hostapd.h b/CORE/HDD/inc/wlan_hdd_hostapd.h
index 7b9fdac79d3d..11d74a1b0d74 100644
--- a/CORE/HDD/inc/wlan_hdd_hostapd.h
+++ b/CORE/HDD/inc/wlan_hdd_hostapd.h
@@ -77,7 +77,7 @@ eCsrEncryptionType
hdd_TranslateWPAToCsrEncryptionType(u_int8_t cipher_suite[4]);
VOS_STATUS hdd_softap_sta_deauth(hdd_adapter_t*, struct tagCsrDelStaParams*);
-void hdd_softap_sta_disassoc(hdd_adapter_t*,v_U8_t*);
+void hdd_softap_sta_disassoc(hdd_adapter_t*, struct tagCsrDelStaParams*);
void hdd_softap_tkip_mic_fail_counter_measure(hdd_adapter_t*,v_BOOL_t);
int hdd_softap_unpackIE( tHalHandle halHandle,
eCsrEncryptionType *pEncryptType,
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 5cbaf7e24b52..1ddff4fe2edb 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -16976,8 +16976,8 @@ static int __wlan_hdd_cfg80211_del_station(struct wiphy *wiphy,
/* Send disassoc and deauth both to avoid some IOT issues */
vos_event_reset(&pHostapdState->vosEvent);
- hdd_softap_sta_disassoc(pAdapter,
- pDelStaParams->peerMacAddr);
+ hdd_softap_sta_disassoc(pAdapter, pDelStaParams);
+
vos_status = hdd_softap_sta_deauth(pAdapter, pDelStaParams);
if (VOS_IS_STATUS_SUCCESS(vos_status)) {
pAdapter->aStaInfo[i].isDeauthInProgress = TRUE;
@@ -17022,7 +17022,7 @@ static int __wlan_hdd_cfg80211_del_station(struct wiphy *wiphy,
/* Send disassoc and deauth both to avoid some IOT issues */
vos_event_reset(&pHostapdState->vosEvent);
- hdd_softap_sta_disassoc(pAdapter, pDelStaParams->peerMacAddr);
+ hdd_softap_sta_disassoc(pAdapter, pDelStaParams);
vos_status = hdd_softap_sta_deauth(pAdapter, pDelStaParams);
if (!VOS_IS_STATUS_SUCCESS(vos_status)) {
pAdapter->aStaInfo[staId].isDeauthInProgress = FALSE;
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index 8cd62d35ea9c..c11483b06f3c 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -785,6 +785,7 @@ void hdd_clear_all_sta(hdd_adapter_t *pHostapdAdapter, v_PVOID_t usrDataForCallb
{
v_U8_t staId = 0;
struct net_device *dev;
+ struct tagCsrDelStaParams delStaParams;
dev = (struct net_device *)usrDataForCallback;
hddLog(LOGE, FL("Clearing all the STA entry...."));
@@ -793,8 +794,12 @@ void hdd_clear_all_sta(hdd_adapter_t *pHostapdAdapter, v_PVOID_t usrDataForCallb
if ( pHostapdAdapter->aStaInfo[staId].isUsed &&
( staId != (WLAN_HDD_GET_AP_CTX_PTR(pHostapdAdapter))->uBCStaId))
{
+ WLANSAP_PopulateDelStaParams(&pHostapdAdapter->aStaInfo[staId].macAddrSTA.bytes[0],
+ eSIR_MAC_DEAUTH_LEAVING_BSS_REASON,
+ (SIR_MAC_MGMT_DISASSOC >> 4),
+ &delStaParams);
//Disconnect all the stations
- hdd_softap_sta_disassoc(pHostapdAdapter, &pHostapdAdapter->aStaInfo[staId].macAddrSTA.bytes[0]);
+ hdd_softap_sta_disassoc(pHostapdAdapter, &delStaParams);
}
}
}
@@ -3898,6 +3903,7 @@ static __iw_softap_disassoc_sta(struct net_device *dev,
{
hdd_adapter_t *pHostapdAdapter = (netdev_priv(dev));
v_U8_t *peerMacAddr;
+ struct tagCsrDelStaParams delStaParams;
ENTER();
/* iwpriv tool or framework calls this ioctl with
@@ -3907,7 +3913,14 @@ static __iw_softap_disassoc_sta(struct net_device *dev,
hddLog(LOG1, "%s data " MAC_ADDRESS_STR,
__func__, MAC_ADDR_ARRAY(peerMacAddr));
- hdd_softap_sta_disassoc(pHostapdAdapter, peerMacAddr);
+
+
+ WLANSAP_PopulateDelStaParams(peerMacAddr,
+ eSIR_MAC_DEAUTH_LEAVING_BSS_REASON,
+ (SIR_MAC_MGMT_DISASSOC >> 4),
+ &delStaParams);
+
+ hdd_softap_sta_disassoc(pHostapdAdapter, &delStaParams);
EXIT();
return 0;
}
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 35891b74c9db..336407ba8de6 100755
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -12634,7 +12634,8 @@ VOS_STATUS hdd_softap_sta_deauth(hdd_adapter_t *pAdapter,
--------------------------------------------------------------------------*/
-void hdd_softap_sta_disassoc(hdd_adapter_t *pAdapter,v_U8_t *pDestMacAddress)
+void hdd_softap_sta_disassoc(hdd_adapter_t *pAdapter,
+ struct tagCsrDelStaParams *pDelStaParams)
{
#ifndef WLAN_FEATURE_MBSSID
v_CONTEXT_t pVosContext = (WLAN_HDD_GET_CTX(pAdapter))->pvosContext;
@@ -12645,13 +12646,13 @@ void hdd_softap_sta_disassoc(hdd_adapter_t *pAdapter,v_U8_t *pDestMacAddress)
hddLog( LOGE, "hdd_softap_sta_disassoc:(%p, false)", (WLAN_HDD_GET_CTX(pAdapter))->pvosContext);
//Ignore request to disassoc bcmc station
- if( pDestMacAddress[0] & 0x1 )
+ if( pDelStaParams->peerMacAddr[0] & 0x1 )
return;
#ifdef WLAN_FEATURE_MBSSID
- WLANSAP_DisassocSta(WLAN_HDD_GET_SAP_CTX_PTR(pAdapter), pDestMacAddress);
+ WLANSAP_DisassocSta(WLAN_HDD_GET_SAP_CTX_PTR(pAdapter), pDelStaParams);
#else
- WLANSAP_DisassocSta(pVosContext,pDestMacAddress);
+ WLANSAP_DisassocSta(pVosContext, pDelStaParams);
#endif
}
diff --git a/CORE/HDD/src/wlan_hdd_tx_rx.c b/CORE/HDD/src/wlan_hdd_tx_rx.c
index 07d42d665d66..b54989816c59 100644
--- a/CORE/HDD/src/wlan_hdd_tx_rx.c
+++ b/CORE/HDD/src/wlan_hdd_tx_rx.c
@@ -371,6 +371,7 @@ static void __hdd_mon_tx_mgmt_pkt(hdd_adapter_t* pAdapter)
struct ieee80211_hdr *hdr;
hdd_context_t *hdd_ctx;
int ret = 0;
+ struct tagCsrDelStaParams delStaParams;
if (pAdapter == NULL)
{
@@ -435,8 +436,6 @@ static void __hdd_mon_tx_mgmt_pkt(hdd_adapter_t* pAdapter)
if( (hdr->frame_control & HDD_FRAME_SUBTYPE_MASK)
== HDD_FRAME_SUBTYPE_DEAUTH )
{
- struct tagCsrDelStaParams delStaParams;
-
WLANSAP_PopulateDelStaParams(hdr->addr1,
eSIR_MAC_DEAUTH_LEAVING_BSS_REASON,
(SIR_MAC_MGMT_DEAUTH >> 4), &delStaParams);
@@ -446,7 +445,11 @@ static void __hdd_mon_tx_mgmt_pkt(hdd_adapter_t* pAdapter)
else if( (hdr->frame_control & HDD_FRAME_SUBTYPE_MASK)
== HDD_FRAME_SUBTYPE_DISASSOC )
{
- hdd_softap_sta_disassoc( pAdapter, hdr->addr1 );
+ WLANSAP_PopulateDelStaParams(hdr->addr1,
+ eSIR_MAC_DEAUTH_LEAVING_BSS_REASON,
+ (SIR_MAC_MGMT_DISASSOC >> 4),
+ &delStaParams);
+ hdd_softap_sta_disassoc( pAdapter, &delStaParams );
goto mgmt_handled;
}
}
diff --git a/CORE/SAP/inc/sapApi.h b/CORE/SAP/inc/sapApi.h
index 4a0fcd014d11..4ddd27fdeadd 100644
--- a/CORE/SAP/inc/sapApi.h
+++ b/CORE/SAP/inc/sapApi.h
@@ -1217,7 +1217,7 @@ VOS_STATUS
WLANSAP_DisassocSta
(
v_PVOID_t pvosGCtx,
- const v_U8_t *pPeerStaMac
+ struct tagCsrDelStaParams *pDelStaParams
);
/*==========================================================================
diff --git a/CORE/SAP/src/sapModule.c b/CORE/SAP/src/sapModule.c
index 5caf7c80e33f..4b4e861673f7 100644
--- a/CORE/SAP/src/sapModule.c
+++ b/CORE/SAP/src/sapModule.c
@@ -1576,7 +1576,7 @@ VOS_STATUS
WLANSAP_DisassocSta
(
v_PVOID_t pCtx,
- const v_U8_t *pPeerStaMac
+ struct tagCsrDelStaParams *pDelStaParams
)
{
ptSapContext pSapCtx = VOS_GET_SAP_CB(pCtx);
@@ -1593,7 +1593,7 @@ WLANSAP_DisassocSta
}
sme_RoamDisconnectSta(VOS_GET_HAL_CB(pSapCtx->pvosGCtx), pSapCtx->sessionId,
- pPeerStaMac);
+ pDelStaParams);
return VOS_STATUS_SUCCESS;
}
diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h
index 74deacfb5ded..4825ca3057a4 100644
--- a/CORE/SME/inc/sme_Api.h
+++ b/CORE/SME/inc/sme_Api.h
@@ -771,7 +771,7 @@ eHalStatus sme_RoamGetAssociatedStas(tHalHandle hHal, tANI_U8 sessionId,
\return eHalStatus SUCCESS Roam callback will be called to indicate actual results
-------------------------------------------------------------------------------*/
eHalStatus sme_RoamDisconnectSta(tHalHandle hHal, tANI_U8 sessionId,
- const tANI_U8 *pPeerMacAddr);
+ struct tagCsrDelStaParams *pDelStaParams);
/* ---------------------------------------------------------------------------
\fn sme_RoamDeauthSta
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index f74989ca35e6..befd30e949e9 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -2907,8 +2907,9 @@ eHalStatus csrRoamIssueDisassociate( tpAniSirGlobal pMac, tANI_U32 sessionId,
---------------------------------------------------------------------------*/
eHalStatus csrRoamIssueDisassociateStaCmd( tpAniSirGlobal pMac,
tANI_U32 sessionId,
- const tANI_U8 *pPeerMacAddr,
- tANI_U32 reason)
+ struct tagCsrDelStaParams
+ *pDelStaParams)
+
{
eHalStatus status = eHAL_STATUS_SUCCESS;
tSmeCmd *pCommand;
@@ -2925,8 +2926,10 @@ eHalStatus csrRoamIssueDisassociateStaCmd( tpAniSirGlobal pMac,
pCommand->command = eSmeCommandRoam;
pCommand->sessionId = (tANI_U8)sessionId;
pCommand->u.roamCmd.roamReason = eCsrForcedDisassocSta;
- vos_mem_copy(pCommand->u.roamCmd.peerMac, pPeerMacAddr, 6);
- pCommand->u.roamCmd.reason = (tSirMacReasonCodes)reason;
+ vos_mem_copy(pCommand->u.roamCmd.peerMac, pDelStaParams->peerMacAddr,
+ sizeof(tSirMacAddr));
+ pCommand->u.roamCmd.reason =
+ (tSirMacReasonCodes)pDelStaParams->reason_code;
status = csrQueueSmeCommand(pMac, pCommand, eANI_BOOLEAN_FALSE);
if( !HAL_STATUS_SUCCESS( status ) )
{
diff --git a/CORE/SME/src/csr/csrInsideApi.h b/CORE/SME/src/csr/csrInsideApi.h
index aa4a168eec4f..f04f6da6e76b 100644
--- a/CORE/SME/src/csr/csrInsideApi.h
+++ b/CORE/SME/src/csr/csrInsideApi.h
@@ -946,8 +946,7 @@ void csrCallRoamingCompletionCallback(tpAniSirGlobal pMac, tCsrRoamSession *pSes
---------------------------------------------------------------------------*/
eHalStatus csrRoamIssueDisassociateStaCmd(tpAniSirGlobal pMac,
tANI_U32 sessionId,
- const tANI_U8 *pPeerMacAddr,
- tANI_U32 reason);
+ struct tagCsrDelStaParams *pDelStaParams);
/* ---------------------------------------------------------------------------
\fn csrRoamIssueDeauthSta
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index 8bfcc7066fed..9a3de18b498f 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -4117,7 +4117,7 @@ eHalStatus sme_RoamStopBss(tHalHandle hHal, tANI_U8 sessionId)
\return eHalStatus SUCCESS Roam callback will be called to indicate actual results
-------------------------------------------------------------------------------*/
eHalStatus sme_RoamDisconnectSta(tHalHandle hHal, tANI_U8 sessionId,
- const tANI_U8 *pPeerMacAddr)
+ struct tagCsrDelStaParams *pDelStaParams)
{
eHalStatus status = eHAL_STATUS_FAILURE;
tpAniSirGlobal pMac = PMAC_STRUCT( hHal );
@@ -4133,8 +4133,7 @@ eHalStatus sme_RoamDisconnectSta(tHalHandle hHal, tANI_U8 sessionId,
{
if( CSR_IS_SESSION_VALID( pMac, sessionId ) )
{
- status = csrRoamIssueDisassociateStaCmd( pMac, sessionId, pPeerMacAddr,
- eSIR_MAC_DEAUTH_LEAVING_BSS_REASON);
+ status = csrRoamIssueDisassociateStaCmd( pMac, sessionId, pDelStaParams);
}
else
{