[Epic-ID: ODUHIGH-462][Task-ID: ODUHIGH-472] Implementation of DL Harq Rtt timer...
[o-du/l2.git] / src / 5gnrsch / sch_harq_dl.c
index c5cebed..b60ae93 100644 (file)
@@ -26,6 +26,9 @@
 #include "sch.h"
 #include "sch_utils.h"
 #include "cm_llist.h"
+#ifdef NR_DRX
+#include "sch_drx.h"
+#endif
 
 SchMacDlReleaseHarqFunc schMacDlReleaseHarqOpts[] =
 {
@@ -212,10 +215,13 @@ uint8_t schDlGetAvlHqProcess(SchCellCb *cellCb, SchUeCb *ueCb, SchDlHqProcCb **h
  **/
 void schDlReleaseHqProcess(SchDlHqProcCb *hqP)
 {
-   cmLListDeleteLList(&hqP->dlLcPrbEst.dedLcList);
-   cmLListDeleteLList(&hqP->dlLcPrbEst.defLcList);
-   schDlHqDeleteFromInUseList(hqP);
-   schDlHqAddToFreeList(hqP);
+   if(hqP)
+   {
+      cmLListDeleteLList(&hqP->dlLcPrbEst.dedLcList);
+      cmLListDeleteLList(&hqP->dlLcPrbEst.defLcList);
+      schDlHqDeleteFromInUseList(hqP);
+      schDlHqAddToFreeList(hqP);
+   }
 }
 
 /*******************************************************************
@@ -392,7 +398,16 @@ void schDlHqFeedbackUpdate(SchDlHqProcCb *hqP, uint8_t fdbk1, uint8_t fdbk2)
             else
             {
                schDlHqTbFail(hqP, tbIdx, FALSE);
-               addUeToBeScheduled(hqP->hqEnt->cell, hqP->hqEnt->ue->ueId);
+#ifdef NR_DRX
+               if(hqP->hqEnt->ue->ueDrxInfoPres == true)
+               {
+                  schDrxStrtDlHqRttTmr(hqP);
+               }
+               else
+#endif
+               {
+                  addUeToBeScheduled(hqP->hqEnt->cell, hqP->hqEnt->ue->ueId);
+               }
             }
          }
       }