diff options
| author | Srinivas Girigowda <sgirigow@qca.qualcomm.com> | 2014-07-21 13:12:31 -0700 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-07-25 10:36:55 -0700 |
| commit | d8ac830feae7b52ff7de720f26a81d2a8b8d34df (patch) | |
| tree | e7284ab696d7f92a4efd962de7097dd4d2ee680b | |
| parent | 96757b2e2b6a1da744dcfc88178349a9d83493bb (diff) | |
qcacld: WMA_TLSHIM: Roaming sessionization
Changes required to address STA+STA roaming requirements
Change-Id: I6d3a592c129a63f51d7b6ff7854e42acb37c4bd1
CRs-Fixed: 683121
| -rw-r--r-- | CORE/CLD_TXRX/TLSHIM/tl_shim.c | 1 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 16 | ||||
| -rw-r--r-- | CORE/WDA/inc/wlan_qct_wda.h | 4 | ||||
| -rw-r--r-- | CORE/WDI/DP/inc/wlan_qct_wdi_ds.h | 3 |
4 files changed, 19 insertions, 5 deletions
diff --git a/CORE/CLD_TXRX/TLSHIM/tl_shim.c b/CORE/CLD_TXRX/TLSHIM/tl_shim.c index 08856ba4c4fb..517c1a6bff3e 100644 --- a/CORE/CLD_TXRX/TLSHIM/tl_shim.c +++ b/CORE/CLD_TXRX/TLSHIM/tl_shim.c @@ -622,6 +622,7 @@ static int tlshim_mgmt_rx_process(void *context, u_int8_t *data, * was found. */ rx_pkt->pkt_meta.roamCandidateInd = saved_beacon ? 1 : 0; + rx_pkt->pkt_meta.sessionId = vdev_id; /* Why not just use rx_event->hdr.buf_len? */ wbuf = adf_nbuf_alloc(NULL, roundup(hdr->buf_len, 4), diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 2ce7f2ebb2e9..f3ea39b0d01c 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -7915,9 +7915,16 @@ VOS_STATUS wma_process_roam_scan_req(tp_wma_handle wma_handle, wma_roam_scan_offload_end_connect(wma_handle); if (roam_req->StartScanReason == REASON_OS_REQUESTED_ROAMING_NOW) { vos_msg_t vosMsg; + tSirRoamOffloadScanRsp *scan_offload_rsp; + scan_offload_rsp = vos_mem_malloc(sizeof(*scan_offload_rsp)); + if (!scan_offload_rsp) { + WMA_LOGE("%s: Alloc failed for scan_offload_rsp", __func__); + return VOS_STATUS_E_NOMEM; + } vosMsg.type = eWNI_SME_ROAM_SCAN_OFFLOAD_RSP; - vosMsg.bodyptr = NULL; - vosMsg.bodyval = roam_req->StartScanReason; + scan_offload_rsp->sessionId = roam_req->sessionId; + scan_offload_rsp->reason = roam_req->StartScanReason; + vosMsg.bodyptr = scan_offload_rsp; /* * Since REASSOC request is processed in Roam_Scan_Offload_Rsp * post a dummy rsp msg back to SME with proper reason code. @@ -15387,7 +15394,7 @@ static void wma_config_plm(tp_wma_handle wma, tpSirPlmReq plm) * check for PNO completion (by checking NLO match event) and post PNO * completion back to SME if PNO operation is completed successfully. */ -void wma_scan_cache_updated_ind(tp_wma_handle wma) +void wma_scan_cache_updated_ind(tp_wma_handle wma, u_int8_t sessionId) { tSirPrefNetworkFoundInd *nw_found_ind; VOS_STATUS status; @@ -15417,6 +15424,7 @@ void wma_scan_cache_updated_ind(tp_wma_handle wma) nw_found_ind->mesgType = eWNI_SME_PREF_NETWORK_FOUND_IND; nw_found_ind->mesgLen = len; + nw_found_ind->sessionId = sessionId; vos_msg.type = eWNI_SME_PREF_NETWORK_FOUND_IND; vos_msg.bodyptr = (void *) nw_found_ind; @@ -20708,7 +20716,7 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg) break; case WDA_SME_SCAN_CACHE_UPDATED: - wma_scan_cache_updated_ind(wma_handle); + wma_scan_cache_updated_ind(wma_handle, msg->bodyval); break; #endif #if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD) diff --git a/CORE/WDA/inc/wlan_qct_wda.h b/CORE/WDA/inc/wlan_qct_wda.h index 93a0791fb770..8961ea322dba 100644 --- a/CORE/WDA/inc/wlan_qct_wda.h +++ b/CORE/WDA/inc/wlan_qct_wda.h @@ -678,6 +678,8 @@ tANI_U8 WDA_MapChannel(tANI_U8); (((t_packetmeta *)pRxMeta)->offloadScanLearn) #define WDA_GET_ROAMCANDIDATEIND(pRxMeta) \ (((t_packetmeta *)pRxMeta)->roamCandidateInd) +#define WDA_GET_SESSIONID(pRxMeta) \ + (((t_packetmeta *)pRxMeta)->sessionId) #endif @@ -840,6 +842,8 @@ tANI_U8 WDA_MapChannel(tANI_U8); # define WDA_GET_OFFLOADSCANLEARN(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->offloadScanLearn) /* WDA_GET_ROAMCANDIDATEIND **************************************************/ # define WDA_GET_ROAMCANDIDATEIND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->roamCandidateInd) +# define WDA_GET_SESSIONID(pRxMeta) \ + (((WDI_DS_RxMetaInfoType*)(pRxMeta))->sessionId) #endif /* WDA_GET_RX_RSSI_DB ********************************************************/ // Volans RF diff --git a/CORE/WDI/DP/inc/wlan_qct_wdi_ds.h b/CORE/WDI/DP/inc/wlan_qct_wdi_ds.h index 141c2dc508a6..fcd868fceaa8 100644 --- a/CORE/WDI/DP/inc/wlan_qct_wdi_ds.h +++ b/CORE/WDI/DP/inc/wlan_qct_wdi_ds.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2013 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2014 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -154,6 +154,7 @@ typedef struct wpt_uint32 offloadScanLearn; wpt_uint32 roamCandidateInd; #endif + wpt_uint32 sessionId; } WDI_DS_RxMetaInfoType; typedef struct sPktMetaInfo |
