summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadma, Santhosh Kumar <skpadma@codeaurora.org>2018-02-13 16:16:29 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2018-03-20 02:29:01 -0700
commit03aa52922f969ec8e6a49159f4b4c8999c439ed0 (patch)
treeaaf572a092e4a5f19b2c2d51a8e3a3ba0cde0290
parent9f2d4362ccfe0aa4a1c96e29335382a65581123a (diff)
qcacld-3.0: Always send assoc req/rsp
Currently driver sends rsn ie request and response as part of connect results update. Instead, send assoc request and assoc response always which will anyways have rsn ie request and response. Supplicant needs assoc response to proceed for OWE based connection. Change-Id: I7f022248a6ad2ad835826c94ccdfaccd5d6090bc CRs-Fixed: 2141429
-rw-r--r--core/hdd/src/wlan_hdd_assoc.c136
1 files changed, 69 insertions, 67 deletions
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c
index e7bf180cb1fb..7d3e9748a51a 100644
--- a/core/hdd/src/wlan_hdd_assoc.c
+++ b/core/hdd/src/wlan_hdd_assoc.c
@@ -2715,64 +2715,78 @@ static QDF_STATUS hdd_association_completion_handler(hdd_adapter_t *pAdapter,
pHddCtx->wiphy,
bss);
}
- if (pRoamInfo->u.pConnectedProfile->AuthType ==
- eCSR_AUTH_TYPE_FT_RSN
- || pRoamInfo->u.pConnectedProfile->AuthType ==
- eCSR_AUTH_TYPE_FT_RSN_PSK) {
- /* Association Response */
- pFTAssocRsp =
- (u8 *) (pRoamInfo->pbFrames +
- pRoamInfo->nBeaconLength +
- pRoamInfo->nAssocReqLength);
- if (pFTAssocRsp != NULL) {
+ /* Association Response */
+ pFTAssocRsp =
+ (u8 *) (pRoamInfo->pbFrames +
+ pRoamInfo->nBeaconLength +
+ pRoamInfo->nAssocReqLength);
+ if (pFTAssocRsp != NULL) {
+ /*
+ * pFTAssocRsp needs to point to the IEs
+ */
+ pFTAssocRsp += FT_ASSOC_RSP_IES_OFFSET;
+ hdd_debug("AssocRsp is now at %02x%02x",
+ (unsigned int)pFTAssocRsp[0],
+ (unsigned int)pFTAssocRsp[1]);
+ assocRsplen =
+ pRoamInfo->nAssocRspLength -
+ FT_ASSOC_RSP_IES_OFFSET;
+
+ hdd_debug("assocRsplen %d", assocRsplen);
+ hdd_debug("Assoc Rsp IE dump");
+ QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD,
+ QDF_TRACE_LEVEL_DEBUG,
+ pFTAssocRsp,
+ assocRsplen);
+ } else {
+ hdd_debug("AssocRsp is NULL");
+ assocRsplen = 0;
+ }
+
+ /* Association Request */
+ pFTAssocReq = (u8 *) (pRoamInfo->pbFrames +
+ pRoamInfo->nBeaconLength);
+ if (pFTAssocReq != NULL) {
+ if (!ft_carrier_on) {
/*
- * pFTAssocRsp needs to point to the IEs
+ * pFTAssocReq needs to point to
+ * the IEs
*/
- pFTAssocRsp += FT_ASSOC_RSP_IES_OFFSET;
- hdd_debug("AssocRsp is now at %02x%02x",
- (unsigned int)pFTAssocRsp[0],
- (unsigned int)pFTAssocRsp[1]);
- assocRsplen =
- pRoamInfo->nAssocRspLength -
- FT_ASSOC_RSP_IES_OFFSET;
+ pFTAssocReq +=
+ FT_ASSOC_REQ_IES_OFFSET;
+ hdd_debug("pFTAssocReq is now at %02x%02x",
+ (unsigned int)
+ pFTAssocReq[0],
+ (unsigned int)
+ pFTAssocReq[1]);
+ assocReqlen =
+ pRoamInfo->nAssocReqLength -
+ FT_ASSOC_REQ_IES_OFFSET;
} else {
- hdd_debug("AssocRsp is NULL");
- assocRsplen = 0;
+ /*
+ * This should contain only the
+ * FTIEs
+ */
+ assocReqlen =
+ pRoamInfo->nAssocReqLength;
}
- /* Association Request */
- pFTAssocReq = (u8 *) (pRoamInfo->pbFrames +
- pRoamInfo->nBeaconLength);
- if (pFTAssocReq != NULL) {
- if (!ft_carrier_on) {
- /*
- * pFTAssocReq needs to point to
- * the IEs
- */
- pFTAssocReq +=
- FT_ASSOC_REQ_IES_OFFSET;
- hdd_debug("pFTAssocReq is now at %02x%02x",
- (unsigned int)
- pFTAssocReq[0],
- (unsigned int)
- pFTAssocReq[1]);
- assocReqlen =
- pRoamInfo->nAssocReqLength -
- FT_ASSOC_REQ_IES_OFFSET;
- } else {
- /*
- * This should contain only the
- * FTIEs
- */
- assocReqlen =
- pRoamInfo->nAssocReqLength;
- }
- } else {
- hdd_debug("AssocReq is NULL");
- assocReqlen = 0;
- }
+ hdd_debug("assocReqlen %d", assocReqlen);
+ hdd_debug("Assoc/Reassoc Req IE dump");
+ QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD,
+ QDF_TRACE_LEVEL_DEBUG,
+ pFTAssocReq,
+ assocReqlen);
+ } else {
+ hdd_debug("AssocReq is NULL");
+ assocReqlen = 0;
+ }
+ if (pRoamInfo->u.pConnectedProfile->AuthType ==
+ eCSR_AUTH_TYPE_FT_RSN
+ || pRoamInfo->u.pConnectedProfile->AuthType ==
+ eCSR_AUTH_TYPE_FT_RSN_PSK) {
if (ft_carrier_on) {
if (!hddDisconInProgress &&
pRoamInfo->pBssDesc) {
@@ -2802,18 +2816,6 @@ static QDF_STATUS hdd_association_completion_handler(hdd_adapter_t *pAdapter,
(pAdapter->wdev.wiphy,
(int)pRoamInfo->pBssDesc->
channelId);
- hdd_debug(
- "assocReqlen %d assocRsplen %d",
- assocReqlen,
- assocRsplen);
-
- hdd_debug(
- "Reassoc Req IE dump");
- QDF_TRACE_HEX_DUMP(
- QDF_MODULE_ID_HDD,
- QDF_TRACE_LEVEL_DEBUG,
- pFTAssocReq,
- assocReqlen);
roam_bss =
hdd_cfg80211_get_bss(
pAdapter->wdev.wiphy,
@@ -2917,10 +2919,10 @@ static QDF_STATUS hdd_association_completion_handler(hdd_adapter_t *pAdapter,
pRoamInfo->
bssid.bytes,
pRoamInfo,
- reqRsnIe,
- reqRsnLength,
- rspRsnIe,
- rspRsnLength,
+ pFTAssocReq,
+ assocReqlen,
+ pFTAssocRsp,
+ assocRsplen,
WLAN_STATUS_SUCCESS,
GFP_KERNEL,
false,