Send DELBA frame with proper reason code.

When BTC event received, Send DELBA with reason code 39
(Requested from peer STA due to timeout) to disable the
aggregation.

Change-Id: Ife7030805d09a8411592e1b95981ba4fa474eb1b
CRs-Fixed: 687791
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index f590573..9fe17d5 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -2330,7 +2330,8 @@
      *  is lost upon disassociation and reassociation.
      */
 
-    limDeleteBASessions(pMac, psessionEntry, BA_BOTH_DIRECTIONS);
+    limDeleteBASessions(pMac, psessionEntry, BA_BOTH_DIRECTIONS,
+                        eSIR_MAC_UNSPEC_FAILURE_REASON);
 
     pMlmReassocReq->listenInterval = (tANI_U16) val;
 
diff --git a/CORE/MAC/src/pe/lim/limUtils.c b/CORE/MAC/src/pe/lim/limUtils.c
index 05f28a2..2e2b0e7 100644
--- a/CORE/MAC/src/pe/lim/limUtils.c
+++ b/CORE/MAC/src/pe/lim/limUtils.c
@@ -5618,7 +5618,7 @@
 
 void 
 limDeleteBASessions(tpAniSirGlobal pMac, tpPESession pSessionEntry,
-                    tANI_U32 baDirection)
+                    tANI_U32 baDirection, tSirMacReasonCodes baReasonCode)
 {
     tANI_U32 i;
     tANI_U8 tid;
@@ -5646,14 +5646,14 @@
                                        (baDirection & BA_INITIATOR))
                         {
                             limPostMlmDelBAReq(pMac, pSta, eBA_INITIATOR, tid,
-                                               eSIR_MAC_UNSPEC_FAILURE_REASON,
+                                               baReasonCode,
                                                pSessionEntry);
                         }
                         if ((eBA_ENABLE == pSta->tcCfg[tid].fUseBARx) &&
                                         (baDirection & BA_RECIPIENT))
                         {
                             limPostMlmDelBAReq(pMac, pSta, eBA_RECIPIENT, tid,
-                                               eSIR_MAC_UNSPEC_FAILURE_REASON,
+                                               baReasonCode,
                                                pSessionEntry);
                         }
                     }
@@ -5671,14 +5671,14 @@
                                     (baDirection & BA_INITIATOR))
                     {
                         limPostMlmDelBAReq(pMac, pSta, eBA_INITIATOR, tid,
-                                           eSIR_MAC_UNSPEC_FAILURE_REASON,
+                                           baReasonCode,
                                            pSessionEntry);
                     }
                     if ((eBA_ENABLE == pSta->tcCfg[tid].fUseBARx) &&
                                     (baDirection & BA_RECIPIENT))
                     {
                         limPostMlmDelBAReq(pMac, pSta, eBA_RECIPIENT, tid,
-                                           eSIR_MAC_UNSPEC_FAILURE_REASON,
+                                           baReasonCode,
                                            pSessionEntry);
                     }
                 }
@@ -5704,7 +5704,8 @@
         pSessionEntry = peFindSessionBySessionId(pMac, i);
         if (pSessionEntry)
         {
-            limDeleteBASessions(pMac, pSessionEntry, BA_BOTH_DIRECTIONS);
+            limDeleteBASessions(pMac, pSessionEntry, BA_BOTH_DIRECTIONS,
+                                eSIR_MAC_UNSPEC_FAILURE_REASON);
         }
     }
 }
@@ -5727,7 +5728,8 @@
     {
         PELOGW(limLog(pMac, LOGW,
         "Deleting the BA for session %d as host got BTC event", sessionId);)
-        limDeleteBASessions(pMac, pSessionEntry, BA_RECIPIENT);
+        limDeleteBASessions(pMac, pSessionEntry, BA_RECIPIENT,
+                            eSIR_MAC_PEER_TIMEDOUT_REASON);
     }
 }
 
diff --git a/CORE/MAC/src/pe/lim/limUtils.h b/CORE/MAC/src/pe/lim/limUtils.h
index f2c95cc..7b9912a 100644
--- a/CORE/MAC/src/pe/lim/limUtils.h
+++ b/CORE/MAC/src/pe/lim/limUtils.h
@@ -350,7 +350,8 @@
 
 void limDeleteStaContext(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
 void limProcessAddBaInd(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
-void limDeleteBASessions(tpAniSirGlobal pMac, tpPESession pSessionEntry, tANI_U32 baDirection);
+void limDeleteBASessions(tpAniSirGlobal pMac, tpPESession pSessionEntry,
+                         tANI_U32 baDirection, tSirMacReasonCodes baReasonCode);
 void limDelPerBssBASessionsBtc(tpAniSirGlobal pMac);
 void limDelAllBASessions(tpAniSirGlobal pMac);
 void limDeleteDialogueTokenList(tpAniSirGlobal pMac);