[Epic-ID: ODUHIGH-488][Task-ID: ODUHIGH-501] WG8 Alignment | UE RLC Re-establishment...
[o-du/l2.git] / src / 5gnrrlc / rlc_dl_ul_inf_ul.c
index 2379c7e..b7eb803 100755 (executable)
@@ -193,6 +193,7 @@ SuId            suId,
 RlcCfgCfmInfo   *cfmInfo  
 )
 {
+   uint8_t cfgIdx=0;
    RlcCb             *tRlcCb;
    RlcCfgCfmInfo    *cfgCfm;
    RlcUlCfgTmpData   *cfgTmpData;
@@ -279,12 +280,26 @@ RlcCfgCfmInfo   *cfmInfo
       }
       RLC_FREE(tRlcCb, cfgCfm, sizeof(RlcCfgCfmInfo));
    }
+   else if  (tRlcCb->u.ulCb->rlcUlUdxEventType == EVENT_RLC_UE_REESTABLISH_REQ)
+   {
+      if(sendRlcUeReestablishRspToDu(cfgCfm->cellId, cfgCfm->ueId, SUCCESSFUL) != ROK)
+      {
+         DU_LOG("ERROR  --> RLC_UL: rlcUlUdxCfgCfm(): Failed to send UE Reestablishment response to DU ");
+         RLC_FREE(tRlcCb, cfgCfm, sizeof(RlcCfgCfmInfo));
+         return RFAILED;
+      }
+      RLC_FREE(tRlcCb, cfgCfm, sizeof(RlcCfgCfmInfo));
+   }
 
    /* free the memory from DL */
    RLC_FREE_SHRABL_BUF(pst->region, pst->pool, cfmInfo, sizeof(RlcCfgCfmInfo));
 
    /* free the cfgInfo that came from LM */
-   RLC_PST_FREE(pst->region, pst->pool, cfgTmpData->cfgInfo, sizeof(RlcCfgInfo));
+   for(cfgIdx=0; cfgIdx<cfgTmpData->cfgInfo->numEnt; cfgIdx++)
+   {
+      RLC_FREE(tRlcCb, cfgTmpData->cfgInfo->entCfg[cfgIdx].snssai, sizeof(Snssai)); 
+   }
+   RLC_FREE(tRlcCb, cfgTmpData->cfgInfo, sizeof(RlcCfgInfo));
    RLC_FREE(tRlcCb,cfgTmpData,sizeof(RlcUlCfgTmpData));
    
    return ROK;