[Epic-ID: ODUHIGH-488][Task-ID: ODUHIGH-498] Fix in DL data flow and trace alignment
[o-du/l2.git] / src / 5gnrrlc / rlc_layer_mgr.c
index 8fc762a..304e60e 100755 (executable)
@@ -173,10 +173,12 @@ static S16 rlcLmmGenCfg(RlcCb  *gCb,RlcGenCfg *cfg)
    rlcTqCp->nxtEnt = 0;
 
    gCb->rlcThpt.inst = gCb->init.inst;
-   gCb->rlcThpt.thptTmr.tmrEvnt = TMR_NONE;
-   gCb->rlcThpt.numActvUe = 0;
-   memset(gCb->rlcThpt.thptPerUe, 0, MAX_NUM_UE * sizeof(RlcThptPerUe));
+   gCb->rlcThpt.ueTputInfo.ueThptTmr.tmrEvnt = TMR_NONE;
+   gCb->rlcThpt.ueTputInfo.numActvUe = 0;
+   memset(gCb->rlcThpt.ueTputInfo.thptPerUe, 0, MAX_NUM_UE * sizeof(RlcThptPerUe));
 
+   gCb->rlcThpt.snssaiTputInfo.snssaiThptTmr.tmrEvnt = TMR_NONE;
+   
    if(gCb->genCfg.rlcMode == LKW_RLC_MODE_DL)
    {
       RLC_ALLOC(gCb,gCb->u.dlCb, sizeof (RlcDlCb));
@@ -262,9 +264,7 @@ static S16 rlcLmmGenCfg(RlcCb  *gCb,RlcGenCfg *cfg)
       rlcUtlInitToBeFreed(gCb, &(gCb->u.dlCb->toBeFreed));
       rlcUtlInitializeSelfPst(gCb);
 
-      if(SGetMsg(gCb->init.region, 
-                 gCb->init.pool,
-                 &(gCb->u.dlCb->selfPstMBuf)) != ROK)
+      if(ODU_GET_MSG_BUF(gCb->init.region, gCb->init.pool, &(gCb->u.dlCb->selfPstMBuf)) != ROK)
       {
          RLC_FREE(gCb,gCb->u.dlCb->udxDlSap, rlcSapSize);
          RLC_FREE(gCb,gCb->u.dlCb->rlcKwuDlSap, rlcSapSize);
@@ -396,13 +396,20 @@ static S16 rlcLmmGenCfg(RlcCb  *gCb,RlcGenCfg *cfg)
    if(gCb->genCfg.rlcMode == LKW_RLC_MODE_DL)
    {
       /* Starting timer to print throughput */
-      if((rlcChkTmr(gCb, (PTR)(&gCb->rlcThpt), EVENT_RLC_THROUGHPUT_TMR)) == FALSE)
+      if((rlcChkTmr(gCb, (PTR)(&gCb->rlcThpt), EVENT_RLC_UE_THROUGHPUT_TMR)) == FALSE)
       {
-         DU_LOG("\nINFO   --> RLC_DL : Starting Throughput timer");
-         rlcStartTmr(gCb, (PTR)(&gCb->rlcThpt), EVENT_RLC_THROUGHPUT_TMR);
+         DU_LOG("\nINFO    --> RLC_DL : Starting UE Throughput timer");
+         rlcStartTmr(gCb, (PTR)(&gCb->rlcThpt), EVENT_RLC_UE_THROUGHPUT_TMR);
       }
    }
+      /* Starting timer to print throughput */
+      if((rlcChkTmr(gCb, (PTR)(&gCb->rlcThpt), EVENT_RLC_SNSSAI_THROUGHPUT_TMR)) == FALSE)
+      {
+         DU_LOG("\nINFO    --> RLC_DL : Starting SNSSAI Throughput timer");
+         rlcStartTmr(gCb, (PTR)(&gCb->rlcThpt), EVENT_RLC_SNSSAI_THROUGHPUT_TMR);
+      }
 
+   
    return (LCM_REASON_NOT_APPL);
 } 
 
@@ -589,7 +596,7 @@ uint8_t RlcMiRlcConfigReq (Pst *pst,RlcMngmt *cfg)
       return (RFAILED);
    }
 
-   DU_LOG("\nDEBUG  --> RLC : RlcMiRlcConfigReq elmId(%d)", cfg->hdr.elmId.elmnt);
+   DU_LOG("\nDEBUG   -->  RLC : RlcMiRlcConfigReq elmId(%d)", cfg->hdr.elmId.elmnt);
 
    switch(cfg->hdr.elmId.elmnt)
    {
@@ -1524,7 +1531,7 @@ static Void rlcLmmCleanGblRsrcs(RlcCb *gCb)
             {
                if (gCb->u.dlCb->selfPstMBuf != NULL)
                {
-                  SPutMsg(gCb->u.dlCb->selfPstMBuf);
+                  ODU_PUT_MSG_BUF(gCb->u.dlCb->selfPstMBuf);
                }
                RLC_FREE(gCb,gCb->u.dlCb, sizeof (RlcDlCb));
             }
@@ -1608,14 +1615,16 @@ static S16 rlcLmmShutdown(RlcCb *gCb)
          }
       }
    }
-   
+
    if(gCb->genCfg.rlcMode == LKW_RLC_MODE_DL)
    {
       rlcDbmDlShutdown(gCb); 
+      rlcDelTputSnssaiList(gCb, DIR_DL);
    }
    else
    {
       rlcDbmUlShutdown(gCb);
+      rlcDelTputSnssaiList(gCb, DIR_UL);
    }
 
    rlcLmmCleanGblRsrcs(gCb);
@@ -2226,7 +2235,7 @@ S16 rlcLmmSendTrc(RlcCb *gCb,Event event,Buffer *mBuf)
               return RFAILED;
            }
 
-           if (SGetMsg(pst.region, pst.pool, &dstMbuf) != ROK)
+           if (ODU_GET_MSG_BUF(pst.region, pst.pool, &dstMbuf) != ROK)
            {
               DU_LOG("\nERROR  --> RLC : Memory Allocation failed");   
               return RFAILED;