UL data path changes at Phy stub, RLC UL UM and DU APP [Issue-ID: ODUHIGH-262]
[o-du/l2.git] / src / 5gnrrlc / kw_udx_ul.c
index b83bfe7..8e210d9 100755 (executable)
@@ -60,11 +60,11 @@ static int RLOG_FILE_ID=204;
 #include "kw_dl.x"
 #include "kw_ul.x"
 
-#include "rlc.h"
 #include "du_app_rlc_inf.h"
 #include "rlc_mgr.h"
+#include "rlc_utils.h"
 
-#define KW_MODULE KW_DBGMASK_UDX
+#define RLC_MODULE RLC_DBGMASK_UDX
 /* local defines */
 
 /* local externs */
@@ -72,7 +72,7 @@ static int RLOG_FILE_ID=204;
 /* forward references */
 
 /* public variable declarations */
-EXTERN S16 kwHdlCrlcUlCfgReq ARGS((RlcCb  *gCb,RlcUlCfgTmpData *cfgTmpData,
+S16 rlcHdlCrlcUlCfgReq ARGS((RlcCb  *gCb,RlcUlCfgTmpData *cfgTmpData,
                                   RlcCfgCfmInfo *cfmInfo, RlcCfgCfmInfo *cfgCfm));
 
 /**
@@ -96,83 +96,74 @@ EXTERN S16 kwHdlCrlcUlCfgReq ARGS((RlcCb  *gCb,RlcUlCfgTmpData *cfgTmpData,
  *    -# RFAILED
  */
 
-#ifdef ANSI
-PUBLIC S16 rlcUlUdxBndCfm
+S16 rlcUlUdxBndCfm
 (
 Pst    *pst,  
 SuId   suId, 
-U8     status 
+uint8_t status 
 )
-#else
-PUBLIC S16 rlcUlUdxBndCfm (pst, suId, status)
-Pst    *pst; 
-SuId   suId;   
-U8     status; 
-#endif
 {
-   U16            event;        
-   U16            cause;       
-   KwUdxUlSapCb   *udxSap;   /* RGU SAP Control Block */
+   uint16_t        event;        
+   uint16_t        cause;       
+   RlcUdxUlSapCb   *udxSap;   /* RGU SAP Control Block */
    RlcCb           *tRlcCb;
 
-   TRC3(rlcUlUdxBndCfm)
-
 #if (ERRCLASS & ERRCLS_INT_PAR)
    if (pst->dstInst >= MAX_RLC_INSTANCES)
    {
-      RETVALUE (RFAILED);
+      return  (RFAILED);
    }
 #endif
    tRlcCb = RLC_GET_RLCCB(pst->dstInst);
 
-   KWDBGP_BRIEF(tRlcCb, "rlcUlUdxBndCfm(post, suId(%d), status(%d)\n", 
+   RLCDBGP_BRIEF(tRlcCb, "rlcUlUdxBndCfm(post, suId(%d), status(%d)\n", 
                 suId, status);
 
 #if (ERRCLASS & ERRCLS_INT_PAR)
    if (tRlcCb->init.cfgDone != TRUE)
    {
       RLOG0(L_FATAL, "General configuration not done");
-      KW_SEND_SAPID_ALARM(tRlcCb,suId, 
+      RLC_SEND_SAPID_ALARM(tRlcCb,suId, 
                           LKW_EVENT_LI_BND_CFM, LCM_CAUSE_INV_STATE);
 
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 
    if (suId < 0)
    {
       RLOG0(L_ERROR, "Invalid suId");
-      KW_SEND_SAPID_ALARM(tRlcCb,suId, 
+      RLC_SEND_SAPID_ALARM(tRlcCb,suId, 
                            LKW_EVENT_LI_BND_CFM, LCM_CAUSE_INV_SUID);
 
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 #endif /* ERRCLASS & ERRCLS_INT_PAR */
 
    udxSap = tRlcCb->u.ulCb->udxUlSap + suId;
 
-   KWDBGP_DETAIL(tRlcCb, "KwLiRguBndCfm: For RGU SAP state=%d\n", 
+   RLCDBGP_DETAIL(tRlcCb, "RlcLiRguBndCfm: For RGU SAP state=%d\n", 
                  udxSap->state);
 
    /* Check rguSap state */
    switch (udxSap->state)
    {
-      case KW_SAP_BINDING:
+      case RLC_SAP_BINDING:
       {
-         if(TRUE == kwChkTmr(tRlcCb,(PTR)udxSap,KW_EVT_WAIT_BNDCFM))
+         if(TRUE == rlcChkTmr(tRlcCb,(PTR)udxSap,EVENT_RLC_WAIT_BNDCFM))
          {
-             kwStopTmr (tRlcCb,(PTR)udxSap, KW_EVT_WAIT_BNDCFM);
+             rlcStopTmr (tRlcCb,(PTR)udxSap, EVENT_RLC_WAIT_BNDCFM);
          }
          udxSap->retryCnt = 0;
           
          if (status == CM_BND_OK)
          {
-            udxSap->state = KW_SAP_BND;
+            udxSap->state = RLC_SAP_BND;
             event = LCM_EVENT_BND_OK;
             cause = LKW_CAUSE_SAP_BNDENB;
          }
          else
          {
-            udxSap->state = KW_SAP_CFG;
+            udxSap->state = RLC_SAP_CFG;
             event = LCM_EVENT_BND_FAIL;
             cause = LKW_CAUSE_UNKNOWN;
          }
@@ -185,9 +176,9 @@ U8     status;
         break;
    }
    /* Send an alarm with proper event and cause */
-   KW_SEND_SAPID_ALARM(tRlcCb,suId, event, cause);
+   RLC_SEND_SAPID_ALARM(tRlcCb,suId, event, cause);
 
-   RETVALUE(ROK);
+   return ROK;
 } 
 
 /**
@@ -205,19 +196,12 @@ U8     status;
  *    -# ROK 
  *    -# RFAILED
  */
-#ifdef ANSI
-PUBLIC S16 rlcUlUdxCfgCfm
+S16 rlcUlUdxCfgCfm
 (
 Pst             *pst,  
 SuId            suId, 
 RlcCfgCfmInfo   *cfmInfo  
 )
-#else
-PUBLIC S16 rlcUlUdxCfgCfm (pst, suId, cfmInfo)
-Pst             *pst;   
-SuId            suId;  
-RlcCfgCfmInfo   *cfmInfo;  
-#endif
 {
    RlcCb             *tRlcCb;
    RlcCfgCfmInfo    *cfgCfm;
@@ -225,8 +209,6 @@ RlcCfgCfmInfo   *cfmInfo;
    Pst rspPst;
    memset(&rspPst, 0, sizeof(Pst));
 
-   TRC3(rlcUlUdxCfgCfm)
-
 #if (ERRCLASS & ERRCLS_INT_PAR)
    if (pst->dstInst >= MAX_RLC_INSTANCES)
    {
@@ -234,43 +216,43 @@ RlcCfgCfmInfo   *cfmInfo;
                          pst->pool,
                         cfmInfo,
                          sizeof(RlcCfgCfmInfo));
-      RETVALUE (RFAILED);
+      return  (RFAILED);
    }
 #endif
    tRlcCb = RLC_GET_RLCCB(pst->dstInst);
-   KWDBGP_BRIEF(tRlcCb, " suId(%d)\n", suId);
+   RLCDBGP_BRIEF(tRlcCb, " suId(%d)\n", suId);
 
 #if (ERRCLASS & ERRCLS_INT_PAR)
    if (suId < 0)
    {
       RLOG0(L_ERROR, "Invalid suId");
-      KW_SEND_SAPID_ALARM(tRlcCb,suId, 
+      RLC_SEND_SAPID_ALARM(tRlcCb,suId, 
                            LKW_EVENT_LI_BND_CFM, LCM_CAUSE_INV_SUID);
       RLC_FREE_SHRABL_BUF(pst->region,
                          pst->pool,
                         cfmInfo,
                          sizeof(RlcCfgCfmInfo));
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 #endif /* ERRCLASS & ERRCLS_INT_PAR */
 
-   if(ROK != kwDbmFindUlTransaction(tRlcCb,cfmInfo->transId, &cfgTmpData))
+   if(ROK != rlcDbmFindUlTransaction(tRlcCb,cfmInfo->transId, &cfgTmpData))
    {
       RLOG0(L_ERROR, "Invalid transId");
       RLC_FREE_SHRABL_BUF(pst->region,
                          pst->pool,
                         cfmInfo,
                          sizeof(RlcCfgCfmInfo));
-      RETVALUE (RFAILED);
+      return  (RFAILED);
    }
 
-   if(ROK != kwDbmDelUlTransaction(tRlcCb, cfgTmpData))
+   if(ROK != rlcDbmDelUlTransaction(tRlcCb, cfgTmpData))
    {
       RLC_FREE_SHRABL_BUF(pst->region,
                          pst->pool,
                         cfmInfo,
                          sizeof(RlcCfgCfmInfo));
-       RETVALUE(RFAILED);
+       return RFAILED;
    }
       /* Allocate memory and memset to 0 for cfmInfo */
    RLC_ALLOC(tRlcCb,cfgCfm, sizeof(RlcCfgCfmInfo));
@@ -282,12 +264,19 @@ RlcCfgCfmInfo   *cfmInfo;
                          pst->pool,
                         cfmInfo,
                          sizeof(RlcCfgCfmInfo));
-       RETVALUE(RFAILED);
+       return RFAILED;
    }
 #endif /* ERRCLASS & ERRCLS_ADD_RES */
-   kwHdlCrlcUlCfgReq(tRlcCb,cfgTmpData, cfmInfo, cfgCfm);
-   FILL_PST_RLC_TO_DUAPP(rspPst, tRlcCb->genCfg.lmPst.dstProcId, RLC_UL_INST, EVENT_RLC_UL_UE_CREATE_RSP);
-   SendRlcUlUeCreateRspToDu(&rspPst, cfgCfm);
+   rlcHdlCrlcUlCfgReq(tRlcCb,cfgTmpData, cfmInfo, cfgCfm);
+   if(tRlcCb->u.ulCb->rlcUlUdxEventType == EVENT_RLC_UE_CREATE_REQ)
+   {
+      FILL_PST_RLC_TO_DUAPP(rspPst, RLC_UL_INST, EVENT_RLC_UE_CREATE_RSP);
+   }
+   else if(tRlcCb->u.ulCb->rlcUlUdxEventType == EVENT_RLC_UE_RECONFIG_REQ)
+   {
+      FILL_PST_RLC_TO_DUAPP(rspPst, RLC_UL_INST, EVENT_RLC_UE_RECONFIG_RSP);
+   }
+   SendRlcUeRspToDu(&rspPst, cfgCfm);
 
    /* free the memory from DL */
    RLC_FREE_SHRABL_BUF(pst->region,
@@ -299,7 +288,7 @@ RlcCfgCfmInfo   *cfmInfo;
    RLC_PST_FREE(pst->region, pst->pool, cfgTmpData->cfgInfo, sizeof(RlcCfgInfo));
    RLC_FREE(tRlcCb,cfgTmpData,sizeof(RlcUlCfgTmpData));
    
-   RETVALUE(ROK);
+   return ROK;
 } 
 
 /**
@@ -318,54 +307,44 @@ RlcCfgCfmInfo   *cfmInfo;
  *      -# RFAILED
  */
 
-#ifdef ANSI
-PUBLIC S16 rlcUlUdxUeIdChgCfm
+S16 rlcUlUdxUeIdChgCfm
 (
 Pst        *pst,          
 SuId       suId,           
-U32        transId,
+uint32_t        transId,
 CmStatus   status
 )
-#else
-PUBLIC S16 rlcUlUdxUeIdChgCfm (pst, suId, cfmInfo)
-Pst        *pst;         
-SuId       suId;        
-U32        transId;
-CmStatus   status;
-#endif
 {
    RlcCb             *tRlcCb;
    RlcUlCfgTmpData   *cfgTmpData;
 
-   TRC3(rlcUlUdxUeIdChgCfm)
-
 #if (ERRCLASS & ERRCLS_INT_PAR)
    if (pst->dstInst >= MAX_RLC_INSTANCES)
    {
-      RETVALUE (RFAILED);
+      return  (RFAILED);
    }
 #endif
    tRlcCb = RLC_GET_RLCCB(pst->dstInst);
 
-   KWDBGP_BRIEF(tRlcCb, " suId(%d) \n", suId);
+   RLCDBGP_BRIEF(tRlcCb, " suId(%d) \n", suId);
 
 #if (ERRCLASS & ERRCLS_INT_PAR)
    if (suId < 0)
    {
       RLOG0(L_ERROR, "Invalid suId");
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 #endif /* ERRCLASS & ERRCLS_INT_PAR */
 
-   if(ROK != kwDbmFindUlTransaction(tRlcCb, transId, &cfgTmpData))
+   if(ROK != rlcDbmFindUlTransaction(tRlcCb, transId, &cfgTmpData))
    {
       RLOG0(L_ERROR, "Invalid transId");
-      RETVALUE (RFAILED);
+      return  (RFAILED);
    }
 
-   if(ROK != kwDbmDelUlTransaction(tRlcCb, cfgTmpData))
+   if(ROK != rlcDbmDelUlTransaction(tRlcCb, cfgTmpData))
    {
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 
    if(status.status == CKW_CFG_CFM_OK)
@@ -375,14 +354,14 @@ CmStatus   status;
       rlcCfgApplyUlUeIdChng(tRlcCb, cfgTmpData->ueInfo, cfgTmpData->newUeInfo, cfgTmpData);
    }
    }
-   KwUiCkwUeIdChgCfm(&(tRlcCb->u.ulCb->ckwSap.pst),
+   RlcUiCkwUeIdChgCfm(&(tRlcCb->u.ulCb->ckwSap.pst),
                      tRlcCb->u.ulCb->ckwSap.suId,
                      transId,cfgTmpData->ueInfo,status);
    /* only newUeInfo needs to be freed here, ueInfo would be freed at the 
       interface or by he receipient in case of tight coupling */
    RLC_PST_FREE(pst->region, pst->pool, cfgTmpData->newUeInfo, sizeof(CkwUeInfo));
-   RLC_FREE_WC(tRlcCb, cfgTmpData, sizeof (RlcUlCfgTmpData));
-   RETVALUE(ROK);
+   RLC_FREE(tRlcCb, cfgTmpData, sizeof (RlcUlCfgTmpData));
+   return ROK;
 } 
 
 /**
@@ -396,7 +375,7 @@ CmStatus   status;
  *      -# ROK 
  *      -# RFAILED
  */
-PUBLIC S16  rlcUlUdxStaProhTmrStart
+S16  rlcUlUdxStaProhTmrStart
 (
 Pst*         pst,
 SuId         suId,
@@ -409,23 +388,23 @@ CmLteRlcId   *rlcId
 #if (ERRCLASS & ERRCLS_INT_PAR)
    if (pst->dstInst >= MAX_RLC_INSTANCES)
    {
-      RETVALUE (RFAILED);
+      return  (RFAILED);
    }
 #endif
    tRlcCb = RLC_GET_RLCCB(pst->dstInst);
 
-   kwDbmFetchUlRbCbByRbId(tRlcCb, rlcId, &rbCb);
+   rlcDbmFetchUlRbCbByRbId(tRlcCb, rlcId, &rbCb);
    if (rbCb == NULLP)
    {    
       RLOG_ARG2(L_ERROR, DBG_UEID,rlcId->ueId, "CellId [%u]:RbId[%d] not found",
             rlcId->cellId,rlcId->rbId);
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 
    /* Start staProhTmr */
-   kwStartTmr(tRlcCb,(PTR)rbCb, KW_EVT_AMUL_STA_PROH_TMR);
+   rlcStartTmr(tRlcCb,(PTR)rbCb, EVENT_RLC_AMUL_STA_PROH_TMR);
 
-   RETVALUE (ROK);
+   return  (ROK);
 } 
 
 /**
@@ -441,25 +420,17 @@ CmLteRlcId   *rlcId
  *    -# ROK 
  *    -# RFAILED
  */
-#ifdef ANSI
-PUBLIC S16 kwHdlCrlcUlCfgReq
+S16 rlcHdlCrlcUlCfgReq
 (
 RlcCb             *gCb,
 RlcUlCfgTmpData   *cfgTmpData,
 RlcCfgCfmInfo    *cfmInfo,
 RlcCfgCfmInfo    *cfgCfm
 )
-#else
-PUBLIC S16 kwHdlCrlcUlCfgReq(gCb,cfgTmpData,cfmInfo,cfmInfo)
-RlcCb             *gCb;
-RlcUlCfgTmpData   *cfgTmpData;
-RlcCfgCfmInfo    *cfmInfo;
-RlcCfgCfmInfo    *cfgCfm;
-#endif
 {
    RlcCfgInfo   *cfg;
-   U32          idx;
-   U32          maxEnt;
+   uint32_t     idx;
+   uint32_t     maxEnt;
    
    cfg = cfgTmpData->cfgInfo;
    maxEnt = (cfg->numEnt < CKW_MAX_ENT_CFG)? cfg->numEnt:CKW_MAX_ENT_CFG;
@@ -479,17 +450,17 @@ RlcCfgCfmInfo    *cfgCfm;
          case CKW_CFG_MODIFY:
          case CKW_CFG_DELETE:
             {
-               if (entCfg->dir == KW_DIR_UL)
+               if (entCfg->dir == RLC_DIR_UL)
                {
-                  KW_MEM_CPY(entCfgCfm, 
+                  RLC_MEM_CPY(entCfgCfm, 
                              &cfgTmpData->cfgEntData[idx].entUlCfgCfm, 
                              sizeof(RlcEntCfgCfmInfo)); 
                }
-               else if (entCfg->dir == KW_DIR_DL)
+               else if (entCfg->dir == RLC_DIR_DL)
                {
-                  KW_MEM_CPY(entCfgCfm, entDlCfgCfm, sizeof(RlcEntCfgCfmInfo)); 
+                  RLC_MEM_CPY(entCfgCfm, entDlCfgCfm, sizeof(RlcEntCfgCfmInfo)); 
                }
-               else if(entCfg->dir == KW_DIR_BOTH)
+               else if(entCfg->dir == RLC_DIR_BOTH)
                {
                   if (entDlCfgCfm->status.status != CKW_CFG_CFM_OK)
                   {
@@ -505,11 +476,11 @@ RlcCfgCfmInfo    *cfgCfm;
                                     &cfgTmpData->cfgEntData[idx],
                                     cfgTmpData);
                   }
-                  KW_MEM_CPY(entCfgCfm, entDlCfgCfm, sizeof(RlcEntCfgCfmInfo)); 
+                  RLC_MEM_CPY(entCfgCfm, entDlCfgCfm, sizeof(RlcEntCfgCfmInfo)); 
                }
                else
                {
-                           KW_CFG_FILL_CFG_CFM(entCfgCfm, entCfg->rbId, entCfg->rbType,
+                           RLC_CFG_FILL_CFG_CFM(entCfgCfm, entCfg->rbId, entCfg->rbType,
                                           CKW_CFG_CFM_NOK, CKW_CFG_REAS_INVALID_DIR);
                   RLOG_ARG2(L_ERROR,DBG_UEID,cfg->ueId,"RBID[%d] direction[%d] is invalid",
                          entCfg->rbId,entCfg->dir);
@@ -519,19 +490,19 @@ RlcCfgCfmInfo    *cfgCfm;
 
          case CKW_CFG_REESTABLISH:
             {
-               if (entCfg->dir == KW_DIR_UL)
+               if (entCfg->dir == RLC_DIR_UL)
                {
-                  KW_MEM_CPY(entCfgCfm, 
+                  RLC_MEM_CPY(entCfgCfm, 
                              &cfgTmpData->cfgEntData[idx].entUlCfgCfm, 
                              sizeof(RlcEntCfgCfmInfo)); 
                }
-               else if (entCfg->dir == KW_DIR_DL)
+               else if (entCfg->dir == RLC_DIR_DL)
                {
-                  KW_MEM_CPY(entCfgCfm, entDlCfgCfm, sizeof(RlcEntCfgCfmInfo)); 
+                  RLC_MEM_CPY(entCfgCfm, entDlCfgCfm, sizeof(RlcEntCfgCfmInfo)); 
                }
                else
                {
-                  if (entCfg->dir & KW_DIR_UL)
+                  if (entCfg->dir & RLC_DIR_UL)
                   {
                      /* Reestablish indication is sent from UL Instance only*/
                      if (entDlCfgCfm->status.status == CKW_CFG_CFM_OK)
@@ -540,7 +511,7 @@ RlcCfgCfmInfo    *cfgCfm;
                                              cfg->cellId, TRUE, 
                                              &cfgTmpData->cfgEntData[idx]);
                      }
-                     KW_MEM_CPY(entCfgCfm, entDlCfgCfm, sizeof(RlcEntCfgCfmInfo)); 
+                     RLC_MEM_CPY(entCfgCfm, entDlCfgCfm, sizeof(RlcEntCfgCfmInfo)); 
                   }
                }
                break;
@@ -550,13 +521,13 @@ RlcCfgCfmInfo    *cfgCfm;
                if (cfgTmpData->cfgEntData[idx].entUlCfgCfm.status.status == CKW_CFG_CFM_OK)
                {
                   rlcCfgApplyDelUlUe(gCb, cfgTmpData);
-                  KW_MEM_CPY(entCfgCfm, 
+                  RLC_MEM_CPY(entCfgCfm, 
                              &cfgTmpData->cfgEntData[idx].entUlCfgCfm, 
                              sizeof(RlcEntCfgCfmInfo)); 
                }
                else
                {
-                   KW_MEM_CPY(entCfgCfm, entDlCfgCfm,
+                   RLC_MEM_CPY(entCfgCfm, entDlCfgCfm,
                               sizeof(RlcEntCfgCfmInfo)); 
                }
                break;
@@ -566,20 +537,20 @@ RlcCfgCfmInfo    *cfgCfm;
                if (cfgTmpData->cfgEntData[idx].entUlCfgCfm.status.status == CKW_CFG_CFM_OK)
                {
                   rlcCfgApplyDelUlCell(gCb, cfgTmpData);
-                  KW_MEM_CPY(entCfgCfm, 
+                  RLC_MEM_CPY(entCfgCfm, 
                              &cfgTmpData->cfgEntData[idx].entUlCfgCfm, 
                              sizeof(RlcEntCfgCfmInfo)); 
                }
                else
                {
-                   KW_MEM_CPY(entCfgCfm, entDlCfgCfm,
+                   RLC_MEM_CPY(entCfgCfm, entDlCfgCfm,
                               sizeof(RlcEntCfgCfmInfo)); 
                }
                break;
             }
          default:
             {
-               KW_CFG_FILL_CFG_CFM(entCfgCfm, entCfg->rbId, entCfg->rbType,
+               RLC_CFG_FILL_CFG_CFM(entCfgCfm, entCfg->rbId, entCfg->rbType,
                                    CKW_CFG_CFM_NOK, CKW_CFG_REAS_INVALID_CFG);
 
                RLOG0(L_ERROR,"Invalid configuration type");
@@ -593,7 +564,7 @@ RlcCfgCfmInfo    *cfgCfm;
    cfgCfm->cellId = cfg->cellId;
    cfgCfm->numEnt = cfg->numEnt;
 
-   RETVALUE(ROK);
+   return ROK;
 }
 #ifdef __cplusplus
 }