Replaced old SSI function with new macros jira id - ODUHIGH-212
[o-du/l2.git] / src / 5gnrrlc / kw_lim.c
index 508a6f3..765e5e6 100755 (executable)
@@ -71,6 +71,7 @@ static int RLOG_FILE_ID=196;
 #include "kw_udx.x"
 #include "kw_dl.x"
 #include "kw_ul.x"
+#include "rlc_utils.h"
 
 #ifdef __cplusplus
 EXTERN "C" {
@@ -121,7 +122,7 @@ U8     status;
 #if (ERRCLASS & ERRCLS_INT_PAR)
    if (pst->dstInst >= MAX_RLC_INSTANCES)
    {
-      RETVALUE (RFAILED);
+      return  (RFAILED);
    }
 #endif
    tRlcCb = RLC_GET_RLCCB(pst->dstInst);
@@ -135,7 +136,7 @@ U8     status;
       
       KW_SEND_SAPID_ALARM(tRlcCb,suId,LKW_EVENT_LI_BND_CFM, LCM_CAUSE_INV_STATE);
 
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 
    if ((suId >= tRlcCb->genCfg.maxRguSaps) || (suId < 0))
@@ -144,7 +145,7 @@ U8     status;
       
       KW_SEND_SAPID_ALARM(tRlcCb,suId, LKW_EVENT_LI_BND_CFM, LCM_CAUSE_INV_SUID);
 
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 #endif /* ERRCLASS & ERRCLS_INT_PAR */
 
@@ -185,7 +186,7 @@ U8     status;
    /* Send an alarm with proper event and cause */
    KW_SEND_SAPID_ALARM(tRlcCb, suId, event, cause);
 
-   RETVALUE(ROK);
+   return ROK;
 } /* KwLiRguBndCfm */
 
 /**
@@ -206,7 +207,7 @@ U8     status;
  *
 */
 
-PUBLIC S16 RlcMacProcUlData(Pst *pst, SuId suId, RlcMacData *ulData)
+uint8_t RlcProcUlData(Pst *pst, RlcMacData *ulData)
 {
    U8              idx;
    U8              lcId;                    /* Logical Channel */
@@ -215,6 +216,7 @@ PUBLIC S16 RlcMacProcUlData(Pst *pst, SuId suId, RlcMacData *ulData)
    RguLchDatInd    dLchData[RGU_MAX_LC];  /* PDU info on dedicated logical channel */
    RguDDatIndInfo  *dLchUlDat;               /* UL data on dedicated logical channel */
    RguCDatIndInfo  *cLchUlDat;               /* UL data on common logical channel */
+   uint16_t        copyLen;
 
    /* Initializing dedicated logical channel Database */
    for(idx = 0; idx < RGU_MAX_LC; idx++)
@@ -227,31 +229,40 @@ PUBLIC S16 RlcMacProcUlData(Pst *pst, SuId suId, RlcMacData *ulData)
   
    /* Seggregate PDUs received on common and dedicated channels
     * and call common channel's handler */
-   for(idx = 0; idx< ulData->nmbPdu; idx++)
+   for(idx = 0; idx< ulData->numPdu; idx++)
    {
       if(ulData->pduInfo[idx].commCh)
       {
-         RLC_SHRABL_STATIC_BUF_ALLOC(pst->region, pst->pool, cLchUlDat, sizeof(RguCDatIndInfo));
-         cmMemset((U8*)cLchUlDat, (U8)0, sizeof(RguCDatIndInfo));
-       
-         cLchUlDat->cellId = ulData->cellId;
-         cLchUlDat->rnti   = ulData->rnti;
-         cLchUlDat->lcId   = ulData->pduInfo[idx].lcId;
-         cLchUlDat->pdu    = ulData->pduInfo[idx].pduBuf;
-         
-         KwLiRguCDatInd(pst, suId, cLchUlDat);
+        RLC_SHRABL_STATIC_BUF_ALLOC(pst->region, pst->pool, cLchUlDat, sizeof(RguCDatIndInfo));
+        cmMemset((U8*)cLchUlDat, (U8)0, sizeof(RguCDatIndInfo));
+
+        cLchUlDat->cellId = ulData->cellId;
+        GET_UE_IDX(ulData->rnti, cLchUlDat->rnti);
+        cLchUlDat->lcId   = ulData->pduInfo[idx].lcId;
+
+        /* Copy fixed buffer to message */
+        if(SGetMsg(RLC_MEM_REGION_UL, RLC_POOL, &cLchUlDat->pdu) != ROK)
+        {
+           DU_LOG("\nRLC : Memory allocation failed at RlcProcUlData");
+           return RFAILED;
+        }
+        reverseFixBuf(ulData->pduInfo[idx].pduBuf, ulData->pduInfo[idx].pduLen);
+        SCpyFixMsg(ulData->pduInfo[idx].pduBuf, cLchUlDat->pdu, 0, \
+              ulData->pduInfo[idx].pduLen, (MsgLen *)&copyLen);
+
+        KwLiRguCDatInd(pst, 0, cLchUlDat);
       } 
       else
       {
-         if(!dLchPduPres)
-         {
-            RLC_SHRABL_STATIC_BUF_ALLOC(pst->region, pst->pool, dLchUlDat, sizeof(RguDDatIndInfo));
-            dLchPduPres = TRUE;
-         }
-
-         lcId = ulData->pduInfo[idx].lcId;
-         dLchData[lcId].pdu.mBuf[dLchData[lcId].pdu.numPdu] = ulData->pduInfo[idx].pduBuf;
-         dLchData[lcId].pdu.numPdu++; 
+        if(!dLchPduPres)
+        {
+           RLC_SHRABL_STATIC_BUF_ALLOC(pst->region, pst->pool, dLchUlDat, sizeof(RguDDatIndInfo));
+           dLchPduPres = TRUE;
+        }
+
+        lcId = ulData->pduInfo[idx].lcId;
+        dLchData[lcId].pdu.mBuf[dLchData[lcId].pdu.numPdu] = ulData->pduInfo[idx].pduBuf;
+        dLchData[lcId].pdu.numPdu++; 
       }
    }
  
@@ -264,21 +275,21 @@ PUBLIC S16 RlcMacProcUlData(Pst *pst, SuId suId, RlcMacData *ulData)
 
       for(idx = 0; idx < RGU_MAX_LC; idx++)
       {
-         if(dLchData[idx].pdu.numPdu)
-         {
-            cmMemcpy((U8 *)&dLchUlDat->lchData[numDLch], (U8 *)&dLchData[idx], sizeof(RguLchDatInd));
-            numDLch++;      
-         }
+        if(dLchData[idx].pdu.numPdu)
+        {
+           cmMemcpy((U8 *)&dLchUlDat->lchData[numDLch], (U8 *)&dLchData[idx], sizeof(RguLchDatInd));
+           numDLch++;      
+        }
       }
       dLchUlDat->numLch = numDLch;
-      KwLiRguDDatInd(pst, suId, dLchUlDat);
+      KwLiRguDDatInd(pst, 0, dLchUlDat);
    }
     
 
    RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ulData, sizeof(RlcMacData));
-   RETVALUE(ROK);
+   return ROK;
    
-}/* End of RlcMacProcUlData */
+}/* End of RlcProcUlData */
 
 PUBLIC int   rlcDDatIndRcvd;
 PUBLIC int   rlcCDatIndRcvd;
@@ -322,7 +333,7 @@ RguCDatIndInfo   *datInd;
    if (pst->dstInst >= MAX_RLC_INSTANCES)
    {
       RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, datInd, sizeof(RguCDatIndInfo));
-      RETVALUE (RFAILED);
+      return  (RFAILED);
    }
 #endif
 
@@ -333,7 +344,7 @@ RguCDatIndInfo   *datInd;
    if (tRlcCb->genCfg.rlcMode == LKW_RLC_MODE_DL)
    {
       RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, datInd, sizeof(RguCDatIndInfo));
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 #endif
 
@@ -344,18 +355,18 @@ RguCDatIndInfo   *datInd;
       RLOG_ARG1(L_ERROR,DBG_LCID,datInd->lcId, "Invalid LcId, Max is [%d]",
          KW_MAX_LCH_PER_CELL);
       RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, datInd, sizeof(RguCDatIndInfo));
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 #endif /* (ERRCLASS & ERRCLS_DEBUG) */
 
    /* Fetch RbCb from lcId */
-   kwDbmFetchUlRbCbFromLchId(tRlcCb, 0, datInd->cellId, datInd->lcId, &rbCb);
+   kwDbmFetchUlRbCbFromLchId(tRlcCb, datInd->rnti, datInd->cellId, datInd->lcId, &rbCb);
    if (!rbCb)
    {
       RLOG_ARG1(L_ERROR, DBG_CELLID,datInd->cellId, "LcId [%d] not found",
          datInd->lcId);
       RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, datInd, sizeof(RguCDatIndInfo));
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 
    /* Dispatch to TM Module */
@@ -367,7 +378,7 @@ RguCDatIndInfo   *datInd;
 
    RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, datInd, sizeof(RguCDatIndInfo));
 
-   RETVALUE(ROK);
+   return ROK;
 } /* KwLiRguCDatInd */
 
 /**
@@ -409,7 +420,7 @@ RguDDatIndInfo   *datInd;
    if (pst->dstInst >= MAX_RLC_INSTANCES)
    {
        RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, datInd, sizeof(RguDDatIndInfo));
-       RETVALUE (RFAILED);
+       return  (RFAILED);
    }
 #endif
 
@@ -418,7 +429,7 @@ RguDDatIndInfo   *datInd;
    {
        RLOG1(L_DEBUG,"KwLiRguDDatInd(pst, suId(%d))recieved in DL Inst",suId);
        RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, datInd, sizeof(RguDDatIndInfo));
-       RETVALUE(RFAILED);
+       return RFAILED;
    }
 #endif
    kwUtlRcvFrmLi(RLC_GET_RLCCB(pst->dstInst),datInd);
@@ -430,7 +441,7 @@ RguDDatIndInfo   *datInd;
 #endif
 #endif
 
-   RETVALUE(ROK);
+   return ROK;
 } /* KwLiRguDDatInd */
 
 
@@ -511,7 +522,7 @@ PUBLIC uint16_t RlcMacProcSchedRep(Pst *pst, SuId suId, RlcMacSchedRepInfo *schR
    
    RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, schRep, sizeof(RlcMacSchedRepInfo));
 
-   RETVALUE(ROK);
+   return ROK;
 }
 
 /**
@@ -555,7 +566,7 @@ RguCStaIndInfo   *staInd;
    if (pst->dstInst >= MAX_RLC_INSTANCES)
    {
       RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, staInd, sizeof(RguCStaIndInfo));
-      RETVALUE (RFAILED);
+      return  (RFAILED);
    }
 #endif
 
@@ -570,7 +581,7 @@ RguCStaIndInfo   *staInd;
             EKW040, 
             (ErrVal) suId,
             "KwLiRguCStaInd: Invalid RGU suId\n");
-      RETVALUE(RFAILED)
+      return RFAILED
    }
    if (tRlcCb->genCfg.rlcMode == LKW_RLC_MODE_UL)
    {
@@ -578,7 +589,7 @@ RguCStaIndInfo   *staInd;
              "Received in RLC UL CELLID:%d",
              staInd->cellId);
        RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, staInd, sizeof(RguCStaIndInfo));
-       RETVALUE(RFAILED);
+       return RFAILED;
    }
 #endif
 
@@ -593,7 +604,7 @@ RguCStaIndInfo   *staInd;
             KW_MAX_LCH_PER_CELL,
             staInd->cellId);
       RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, staInd, sizeof(RguCStaIndInfo));
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 #endif /* (ERRCLASS & ERRCLS_DEBUG) */
    /* Fertch RbCb from lcId */
@@ -604,7 +615,7 @@ RguCStaIndInfo   *staInd;
             "LcId [%d] not found CELLID:%d",
             staInd->lcId);
       RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, staInd, sizeof(RguCStaIndInfo));
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 
    /* Dispatch to TM Module */
@@ -626,7 +637,7 @@ RguCStaIndInfo   *staInd;
 #else
    RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, staInd, sizeof(RguCStaIndInfo));
 #endif
-   RETVALUE(ROK);
+   return ROK;
 } /* KwLiRguCStaInd */
 
 /**
@@ -669,7 +680,7 @@ RguDStaIndInfo   *staInd;
    if (pst->dstInst >= MAX_RLC_INSTANCES)
    {
       RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, staInd, sizeof(RguDStaIndInfo));
-      RETVALUE (RFAILED);
+      return  (RFAILED);
    }
 #endif
 
@@ -680,7 +691,7 @@ RguDStaIndInfo   *staInd;
    {
        RLOG_ARG0(L_ERROR,DBG_CELLID,staInd->cellId,"Received in RLC UL ");
        RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, staInd, sizeof(RguDStaIndInfo));
-       RETVALUE(RFAILED);
+       return RFAILED;
    }
    if ((suId >= gCb->genCfg.maxRguSaps) || (suId < 0))
    {
@@ -689,14 +700,14 @@ RguDStaIndInfo   *staInd;
             EKW040, 
             (ErrVal) suId,
             "KwLiRguDStaInd: Invalid RGU suId\n");
-      RETVALUE(RFAILED)
+      return RFAILED
    }
 #endif
    kwUtlSndToLi(gCb, suId, staInd);
 
    /* kw002.201 :Freeing from proper region */
    RLC_SHRABL_STATIC_BUF_FREE(pst->region, pst->pool, staInd, sizeof(RguDStaIndInfo));
-   RETVALUE(ROK);
+   return ROK;
 } /* KwLiRguDStaInd */
 
 /**
@@ -772,7 +783,7 @@ RguFlowCntrlInd  *flowCntrlInd;
          }
       }
    }
-   RETVALUE(ROK);
+   return ROK;
 }
 /* kw005.201 added support for L2 Measurement */
 #ifdef LTE_L2_MEAS
@@ -829,7 +840,7 @@ RguHarqStatusInd   *staInd;
    ret = kwDbmFetchDlUeCb(tRlcCb, ueKey.ueId, ueKey.cellId, &ueCb);
    if (ret != ROK )
    {
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 
    /*Call kwUtlProcHarqInd as many times as number of Tbs present*/
@@ -838,7 +849,7 @@ RguHarqStatusInd   *staInd;
       kwUtlProcHarqInd(tRlcCb, staInd, ueCb, tbIdx);
    }
 
-   RETVALUE(ROK);
+   return ROK;
 } /* KwLiRguHqStaInd */
 #endif /* LTE_L2_MEAS */