summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaveen Rawat <naveenrawat@codeaurora.org>2016-11-22 10:46:21 -0800
committerqcabuildsw <qcabuildsw@localhost>2016-11-29 16:06:58 -0800
commit50f21628decbddaf06315f3c6f72d8e64f495aca (patch)
tree6ad33b24f07e9109012ad909a228b7e6cc5b9109
parent871e9819451f324f794e2d64d356f898b60ed9bf (diff)
qcacld-3.0: Populate roam_request qos params from sme_session
While preparing roam_scan_offload_request in csr, populate QoS parameters from current sme_session. Change-Id: I8ec26b61babf15b622d2a96b304f068c15f78795 CRs-Fixed: 1092258
-rw-r--r--core/mac/inc/ani_global.h7
-rw-r--r--core/mac/src/include/parser_api.h2
-rw-r--r--core/mac/src/pe/lim/lim_api.c1
-rw-r--r--core/mac/src/pe/lim/lim_send_frames_host_roam.c6
-rw-r--r--core/mac/src/pe/lim/lim_send_management_frames.c3
-rw-r--r--core/mac/src/sys/legacy/src/utils/src/parser_api.c10
-rw-r--r--core/sme/inc/csr_internal.h1
-rw-r--r--core/sme/src/csr/csr_api_roam.c13
-rw-r--r--core/wma/src/wma_scan_roam.c2
9 files changed, 19 insertions, 26 deletions
diff --git a/core/mac/inc/ani_global.h b/core/mac/inc/ani_global.h
index 7c3397dc7dd7..0a3af0e4bf25 100644
--- a/core/mac/inc/ani_global.h
+++ b/core/mac/inc/ani_global.h
@@ -606,13 +606,6 @@ typedef struct sAniSirLim {
/* UAPSD flag used on AP */
uint8_t gUapsdEnable;
- /* Used on STA, this is a static UAPSD mask setting
- * derived from SME_JOIN_REQ and SME_REASSOC_REQ. If a
- * particular AC bit is set, it means the AC is both
- * trigger enabled and delivery enabled.
- */
- uint8_t gUapsdPerAcBitmask;
-
/* Used on STA for AC downgrade. This is a dynamic mask
* setting which keep tracks of ACs being admitted.
* If bit is set to 0: That partiular AC is not admitted
diff --git a/core/mac/src/include/parser_api.h b/core/mac/src/include/parser_api.h
index 839ab35acc0a..9e14af5e7745 100644
--- a/core/mac/src/include/parser_api.h
+++ b/core/mac/src/include/parser_api.h
@@ -680,7 +680,7 @@ populate_dot11f_qos_caps_ap(tpAniSirGlobal pMac,
tpPESession psessionEntry);
void
-populate_dot11f_qos_caps_station(tpAniSirGlobal pMac,
+populate_dot11f_qos_caps_station(tpAniSirGlobal pMac, tpPESession session,
tDot11fIEQOSCapsStation *pDot11f);
tSirRetStatus
diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c
index 478868ab32b5..859dc822958a 100644
--- a/core/mac/src/pe/lim/lim_api.c
+++ b/core/mac/src/pe/lim/lim_api.c
@@ -234,7 +234,6 @@ static void __lim_init_vars(tpAniSirGlobal pMac)
/* WMM Related Flag */
pMac->lim.gUapsdEnable = 0;
- pMac->lim.gUapsdPerAcBitmask = 0;
/* QoS-AC Downgrade: Initially, no AC is admitted */
pMac->lim.gAcAdmitMask[SIR_MAC_DIRECTION_UPLINK] = 0;
diff --git a/core/mac/src/pe/lim/lim_send_frames_host_roam.c b/core/mac/src/pe/lim/lim_send_frames_host_roam.c
index 2039955c7e17..2bf89e122f2b 100644
--- a/core/mac/src/pe/lim/lim_send_frames_host_roam.c
+++ b/core/mac/src/pe/lim/lim_send_frames_host_roam.c
@@ -161,7 +161,8 @@ void lim_send_reassoc_req_with_ft_ies_mgmt_frame(tpAniSirGlobal mac_ctx,
}
if (qos_enabled)
- populate_dot11f_qos_caps_station(mac_ctx, &frm.QOSCapsStation);
+ populate_dot11f_qos_caps_station(mac_ctx, pe_session,
+ &frm.QOSCapsStation);
populate_dot11f_ext_supp_rates(mac_ctx,
POPULATE_DOT11F_RATES_OPERATIONAL, &frm.ExtSuppRates,
@@ -624,7 +625,8 @@ void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal pMac,
}
if (fQosEnabled)
- populate_dot11f_qos_caps_station(pMac, &frm.QOSCapsStation);
+ populate_dot11f_qos_caps_station(pMac, psessionEntry,
+ &frm.QOSCapsStation);
populate_dot11f_ext_supp_rates(pMac, POPULATE_DOT11F_RATES_OPERATIONAL,
&frm.ExtSuppRates, psessionEntry);
diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c
index 9e4ba6c8cca6..8db860f6420f 100644
--- a/core/mac/src/pe/lim/lim_send_management_frames.c
+++ b/core/mac/src/pe/lim/lim_send_management_frames.c
@@ -1732,7 +1732,8 @@ lim_send_assoc_req_mgmt_frame(tpAniSirGlobal mac_ctx,
}
}
if (qos_enabled)
- populate_dot11f_qos_caps_station(mac_ctx, &frm->QOSCapsStation);
+ populate_dot11f_qos_caps_station(mac_ctx, pe_session,
+ &frm->QOSCapsStation);
populate_dot11f_ext_supp_rates(mac_ctx,
POPULATE_DOT11F_RATES_OPERATIONAL, &frm->ExtSuppRates,
diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
index 4ecc5eb2cdb7..a352ef763e5f 100644
--- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c
+++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
@@ -1552,7 +1552,7 @@ populate_dot11f_qos_caps_ap(tpAniSirGlobal pMac,
} /* End PopulatedDot11fQOSCaps. */
void
-populate_dot11f_qos_caps_station(tpAniSirGlobal pMac,
+populate_dot11f_qos_caps_station(tpAniSirGlobal pMac, tpPESession pe_session,
tDot11fIEQOSCapsStation *pDot11f)
{
uint32_t val = 0;
@@ -1567,13 +1567,13 @@ populate_dot11f_qos_caps_station(tpAniSirGlobal pMac,
if (pMac->lim.gUapsdEnable) {
pDot11f->acbe_uapsd =
- LIM_UAPSD_GET(ACBE, pMac->lim.gUapsdPerAcBitmask);
+ LIM_UAPSD_GET(ACBE, pe_session->gUapsdPerAcBitmask);
pDot11f->acbk_uapsd =
- LIM_UAPSD_GET(ACBK, pMac->lim.gUapsdPerAcBitmask);
+ LIM_UAPSD_GET(ACBK, pe_session->gUapsdPerAcBitmask);
pDot11f->acvi_uapsd =
- LIM_UAPSD_GET(ACVI, pMac->lim.gUapsdPerAcBitmask);
+ LIM_UAPSD_GET(ACVI, pe_session->gUapsdPerAcBitmask);
pDot11f->acvo_uapsd =
- LIM_UAPSD_GET(ACVO, pMac->lim.gUapsdPerAcBitmask);
+ LIM_UAPSD_GET(ACVO, pe_session->gUapsdPerAcBitmask);
}
pDot11f->present = 1;
} /* End PopulatedDot11fQOSCaps. */
diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h
index c7db8fe155b8..5caf108b46ab 100644
--- a/core/sme/inc/csr_internal.h
+++ b/core/sme/inc/csr_internal.h
@@ -1002,6 +1002,7 @@ typedef struct tagCsrRoamSession {
bool disable_hi_rssi;
bool dhcp_done;
uint8_t disconnect_reason;
+ uint8_t uapsd_mask;
} tCsrRoamSession;
typedef struct tagCsrRoamStruct {
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index 4affbe198695..deea0524dd4e 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -13819,6 +13819,7 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId,
FL("CSR PERSONA=%d CSR CbMode %d"),
pProfile->csrPersona, pSession->bssParams.cbMode);
csr_join_req->uapsdPerAcBitmask = pProfile->uapsd_mask;
+ pSession->uapsd_mask = pProfile->uapsd_mask;
status =
csr_get_rate_set(pMac, pProfile,
(eCsrPhyMode) pProfile->phyMode,
@@ -16789,14 +16790,10 @@ csr_update_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
SIR_BTK_KEY_LEN);
}
#endif
- req_buf->AcUapsd.acbe_uapsd =
- SIR_UAPSD_GET(ACBE, mac_ctx->lim.gUapsdPerAcBitmask);
- req_buf->AcUapsd.acbk_uapsd =
- SIR_UAPSD_GET(ACBK, mac_ctx->lim.gUapsdPerAcBitmask);
- req_buf->AcUapsd.acvi_uapsd =
- SIR_UAPSD_GET(ACVI, mac_ctx->lim.gUapsdPerAcBitmask);
- req_buf->AcUapsd.acvo_uapsd =
- SIR_UAPSD_GET(ACVO, mac_ctx->lim.gUapsdPerAcBitmask);
+ req_buf->AcUapsd.acbe_uapsd = SIR_UAPSD_GET(ACBE, session->uapsd_mask);
+ req_buf->AcUapsd.acbk_uapsd = SIR_UAPSD_GET(ACBK, session->uapsd_mask);
+ req_buf->AcUapsd.acvi_uapsd = SIR_UAPSD_GET(ACVI, session->uapsd_mask);
+ req_buf->AcUapsd.acvo_uapsd = SIR_UAPSD_GET(ACVO, session->uapsd_mask);
}
#endif /* WLAN_FEATURE_ROAM_OFFLOAD */
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c
index 75e2a4488a6a..1e5066a7675d 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/core/wma/src/wma_scan_roam.c
@@ -805,7 +805,7 @@ QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle,
roam_req->assoc_ie.length);
}
- WMA_LOGE(FL("my_dbg: qos_caps: %d, qos_enabled: %d"),
+ WMA_LOGD(FL("qos_caps: %d, qos_enabled: %d"),
params->roam_offload_params.qos_caps,
params->roam_offload_params.qos_enabled);