wlan: Downgrade traffic when Medium time is 0
If AP is successfully accepting AddtS request but
providing medium time zero then Host needs to
downgrade traffic.
Change-Id: I40364f94401240cf3579cadb285f7430f2dbe49f
CRs-Fixed: 761674
diff --git a/CORE/HDD/src/wlan_hdd_tx_rx.c b/CORE/HDD/src/wlan_hdd_tx_rx.c
index 309ac2d..c608f51 100644
--- a/CORE/HDD/src/wlan_hdd_tx_rx.c
+++ b/CORE/HDD/src/wlan_hdd_tx_rx.c
@@ -1668,9 +1668,17 @@
{
/* 1. Check if ACM is set for this AC
* 2. If set, check if this AC had already admitted
- * 3. If not already admitted, downgrade the UP to next best UP */
+ * 3. If not already admitted, downgrade the UP to next best UP
+ * 4. Allow only when medium time is non zero when Addts accepted else downgrade traffic.
+ we opted downgrading over Delts when medium time is zero because while doing downgradig
+ driver is not clearing the wmm context so consider in subsequent roaming if AP (new or
+ same AP) accept the Addts with valid medium time no application support is required
+ where if we have opted delts Applications have to again do Addts or STA will never
+ go for Addts.*/
+
if(!pAdapter->hddWmmStatus.wmmAcStatus[ac].wmmAcAccessRequired ||
- pAdapter->hddWmmStatus.wmmAcStatus[ac].wmmAcTspecValid)
+ (pAdapter->hddWmmStatus.wmmAcStatus[ac].wmmAcTspecValid &&
+ pAdapter->hddWmmStatus.wmmAcStatus[ac].wmmAcTspecInfo.medium_time))
{
pPktMetaInfo->ucUP = pktNode->userPriority;
pPktMetaInfo->ucTID = pPktMetaInfo->ucUP;
diff --git a/CORE/SME/src/QoS/sme_Qos.c b/CORE/SME/src/QoS/sme_Qos.c
index 03924bf..aee50a8 100644
--- a/CORE/SME/src/QoS/sme_Qos.c
+++ b/CORE/SME/src/QoS/sme_Qos.c
@@ -7176,16 +7176,7 @@
{
//For downgrading purpose Hdd set WmmTspecValid to false during roaming
//So need to set that flag we need to call the hdd in successful case.
- if((hdd_status == SME_QOS_STATUS_SETUP_SUCCESS_IND)
-#if defined (WLAN_FEATURE_VOWIFI_11R)
- &&
- (!csrRoamIs11rAssoc(pMac))
-#endif
-#if defined(FEATURE_WLAN_ESE)
- &&
- (!csrRoamIsCCXAssoc(pMac))
-#endif
- )
+ if(hdd_status == SME_QOS_STATUS_SETUP_SUCCESS_IND)
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
"%s calling hdd_wmm_smecallback during roaming for ac = %d", __func__, ac);