[Epic-ID: ODUHIGH-464][Task-ID: ODUHIGH-483] Memeory related fix in FDD and TDD mode
[o-du/l2.git] / src / 5gnrmac / rg_lim.c
index 44c0451..e426f8f 100755 (executable)
 @brief It has APIs exposed by Lower Interface Modulue of MAC. It acts as an 
 Interface handler for lower interface APIs.
 */
-static const char* RLOG_MODULE_NAME="MAC";
-static int RLOG_FILE_ID=182;
-static int RLOG_MODULE_ID=4096;
 /* header include files -- defines (.h) */
-#include "envopt.h"        /* environment options */
-#include "envdep.h"        /* environment dependent */
-#include "envind.h"        /* environment independent */
-#include "gen.h"           /* general layer */
-#include "ssi.h"           /* system services */
-#include "cm5.h"           /* common timers defines */
-#include "cm_hash.h"       /* common hash list defines */
-#include "cm_llist.h"      /* common linked list defines */
-#include "cm_mblk.h"       /* memory management */
-#include "cm_tkns.h"       /* common tokens */
-#include "cm_lte.h"       /* common tokens */
+#include "common_def.h"
 #include "rgu.h"           /* RGU defines */
 #include "tfu.h"           /* RGU defines */
 #include "lrg.h"           /* layer management defines for LTE-MAC */
@@ -55,139 +42,27 @@ static int RLOG_MODULE_ID=4096;
 #include "rg_env.h"        /* customisable defines and macros for MAC */
 #include "rg.h"            /* defines and macros for MAC */
 
-
 /* header/extern include files (.x) */
-#include "gen.x"           /* general layer typedefs */
-#include "ssi.x"           /* system services typedefs */
-#include "cm5.x"           /* common timers */
-#include "cm_hash.x"       /* common hash list */
-#include "cm_lib.x"        /* common library */
-#include "cm_llist.x"      /* common linked list */
-#include "cm_mblk.x"       /* memory management */
-#include "cm_tkns.x"       /* common tokens */
-#include "cm_lte.x"       /* common tokens */
 #include "rgu.x"           /* RGU types */
 #include "tfu.x"           /* RGU types */
 #include "lrg.x"           /* layer management typedefs for MAC */
 #include "crg.x"           /* layer management typedefs for MAC */
 #include "rg_sch_inf.x"    /* SCH interface typedefs */
 #include "rg_prg.x"    /* PRG interface typedefs */
-#include "mac_interface.h"
 #include "rg.x"            /* typedefs for MAC */
 
-/* local defines */
-
-/* local typedefs */
 /* local externs */
-PRIVATE S16  rgLIMValidateSap ARGS((Inst inst,SuId suId));
-PRIVATE Void rgLIMUtlFreeDatIndEvnt ARGS((TfuDatIndInfo *datInd,
+#ifdef UNUSED_FUNC
+static S16  rgLIMValidateSap ARGS((Inst inst,SuId suId));
+#endif
+static Void rgLIMUtlFreeDatIndEvnt ARGS((TfuDatIndInfo *datInd,
                                           Bool error));
 #ifdef RG_UNUSED
-PRIVATE Void rgLIMUtlFreeDatReqEvnt ARGS((TfuDatReqInfo *datReq,
+static Void rgLIMUtlFreeDatReqEvnt ARGS((TfuDatReqInfo *datReq,
                                           Bool error));
 #endif
 /* forward references */
 
-/**
- * @brief This API is invoked to send TFU SAP bind request to PHY.
- *
- * @details
- *
- *     Function : rgLIMTfuBndReq
- *      
- *      This API is invoked to send TFU SAP bind request to PHY. It fills in 
- *      the Pst structure, spId and suId values and invokes bind request
- *      primitive at TFU.
- *           
- *  @param[in]  Inst        inst
- *  @param[in]  SuId            suId 
- *  @param[in]  SpId            spId
- *  @return  S16
- *      -# ROK 
- *      -# RFAILED 
- **/
-#ifdef ANSI
-PUBLIC S16 rgLIMTfuBndReq
-(
-Inst    inst,
-SuId    suId, 
-SpId    spId
-)
-#else
-PUBLIC S16 rgLIMTfuBndReq(inst,suId, spId)
-Inst    inst;
-SuId    suId; 
-SpId    spId;
-#endif
-{
-   S16         ret;
-   RgLowSapCb  *tfuSap;
-   Pst         pst;
-
-   TRC2(rgLIMTfuBndReq);
-
-   /* Get the lower SAP control block from the layer control block. */
-   tfuSap = &(rgCb[inst].tfuSap);
-   (Void)cmMemcpy ((U8*)&pst, (U8*)&(tfuSap->sapCfg.sapPst), sizeof(Pst));
-   if((ret = RgLiTfuBndReq (&pst, suId, spId)) != ROK)
-   {
-      RLOG0(L_ERROR,"Call to RgLiTfuBndReq() failed");
-   }
-   RETVALUE(ret);
-}  /* rgLIMTfuBndReq */
-
-
-/**
- * @brief This API is invoked to send TFU SAP unbind request to PHY.
- *
- * @details
- *
- *     Function : rgLIMTfuBndReq
- *      
- *      This API is invoked to send TFU SAP unbind request to PHY. It fills in 
- *      the Pst structure and spId value and invokes unbind request
- *      primitive at TFU.
- *           
- *  @param[in]  Inst        inst
- *  @param[in]  SpId            spId
- *  @param[in]  Reason          reason 
- *  @return  S16
- *      -# ROK 
- *      -# RFAILED 
- **/
-#ifdef ANSI
-PUBLIC S16 rgLIMTfuUbndReq
-(
-Inst    inst,
-SpId    spId, 
-Reason  reason
-)
-#else
-PUBLIC S16 rgLIMTfuUbndReq(inst,spId, reason)
-Inst    inst;
-SpId    spId; 
-Reason  reason;
-#endif
-{
-   S16         ret;
-   RgLowSapCb  *tfuSap;
-   Pst         pst;
-
-   TRC2(rgLIMTfuUbndReq);
-
-   /* Get the lower SAP control block from the layer control block. */
-   tfuSap = &(rgCb[inst].tfuSap);
-   cmMemcpy ((U8*)&pst, (U8*)&(tfuSap->sapCfg.sapPst), sizeof(Pst));
-   if((ret = RgLiTfuUbndReq (&pst, tfuSap->sapCfg.spId, reason)) != ROK)
-   {
-      RLOG0(L_ERROR,"Call to RgLiTfuUbndReq() failed");
-   }
-   RETVALUE(ret);
-
-}  /* rgLIMTfuUbndReq */
-
-
 /**
  * @brief Bind confirm API for TFU SAP 
  *
@@ -200,30 +75,22 @@ Reason  reason;
  *           
  *  @param[in]  Pst   *pst 
  *  @param[in]  SuId  suId 
- *  @param[in]  U8    status
+ *  @param[in]  uint8_t    status
  *  @return  S16
  *      -# ROK 
  *      -# RFAILED 
  **/
-#ifdef ANSI
-PUBLIC S16 RgLiTfuBndCfm 
+S16 RgLiTfuBndCfm 
 (
 Pst     *pst,
 SuId    suId, 
-U8      status
+uint8_t status
 )
-#else
-PUBLIC S16 RgLiTfuBndCfm(pst, suId, status)
-Pst     *pst; 
-SuId    suId; 
-U8      status;
-#endif
 {
    Inst inst;
    S16 ret;
    RgLowSapCb  *tfuSap;
 
-   TRC3(RgLiTfuBndCfm);
 
 
    RG_IS_INST_VALID(pst->dstInst);
@@ -234,12 +101,12 @@ U8      status;
 
    if (suId != tfuSap->sapCfg.suId)
    {
-      RLOG2(L_ERROR,"Incorrect SuId. Configured (%d) Recieved (%d)",
+      DU_LOG("\nERROR  -->  MAC : Incorrect SuId. Configured (%d) Recieved (%d)",
             tfuSap->sapCfg.suId, suId);
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
    ret = rgLMMBndCfm (pst, suId, status);
-   RETVALUE(ret);
+   return (ret);
 }  /* RgLiTfuBndCfm */
 
  /** @brief This function Validates the SAP information received along with the
@@ -252,40 +119,30 @@ U8      status;
   *   -# ROK
   *   -# RFAILED
   */
-#ifdef ANSI
-PRIVATE S16 rgLIMValidateSap
-(
- Inst    inst,
- SuId    suId
-)
-#else
-PRIVATE S16 rgLIMValidateSap(inst,suId)
- Inst    inst;
- SuId    suId;
-#endif
+#ifdef UNUSED_FUNC
+static S16 rgLIMValidateSap(Inst  inst,SuId suId)
 {
    RgLowSapCb  *tfuSap;
 
-   TRC2(rgLIMValidateSap)
 
    tfuSap = &(rgCb[inst].tfuSap);
 
    /* First lets check the suId */
    if( suId != tfuSap->sapCfg.suId)
    {
-      RLOG2(L_ERROR,"Incorrect SuId. Configured (%d) Recieved (%d)",
+      DU_LOG("\nERROR  -->  MAC : Incorrect SuId. Configured (%d) Recieved (%d)",
             tfuSap->sapCfg.suId, suId);
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
    if (tfuSap->sapSta.sapState != LRG_BND)
    {
-      RLOG1(L_ERROR,"Lower SAP not enabled SuId (%d)",
+      DU_LOG("\nERROR  -->  MAC : Lower SAP not enabled SuId (%d)",
             tfuSap->sapCfg.suId);
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
-   RETVALUE(ROK);
+   return ROK;
 } /* end of rgLIMValidateSap */
-
+#endif
 /** @brief This function frees up the TfuDatIndInfo structure
  *
  * @details
@@ -299,23 +156,12 @@ PRIVATE S16 rgLIMValidateSap(inst,suId)
  * @param  [in] Bool          *error
  * @return 
  */
-#ifdef ANSI
-PRIVATE Void rgLIMUtlFreeDatIndEvnt 
-(
- TfuDatIndInfo *datInd,
- Bool          error
- )
-#else
-PRIVATE Void rgLIMUtlFreeDatIndEvnt(datInd, error)
- TfuDatIndInfo *datInd;
- Bool          error;
-#endif
+static Void rgLIMUtlFreeDatIndEvnt(TfuDatIndInfo *datInd,Bool error)
 {
 
    TfuDatInfo     *datInfo;
    CmLList        *node;
 
-   TRC2(rgLIMUtlFreeDatIndEvnt);
    /* Steps of freeing up the TfuDatInd.
     * 1. loop through the datIndLst and free up all the buffers.
     * 2. free up the whole event
@@ -331,7 +177,7 @@ PRIVATE Void rgLIMUtlFreeDatIndEvnt(datInd, error)
       }
    }
    RG_FREE_MEM(datInd);
-   RETVOID;
+   return;
 } /* end of rgLIMUtlFreeDatIndEvnt*/
 
 /**
@@ -351,27 +197,19 @@ PRIVATE Void rgLIMUtlFreeDatIndEvnt(datInd, error)
  *      -# ROK 
  *      -# RFAILED 
  **/
-#ifdef ANSI
-PUBLIC S16 RgLiTfuDatInd
+S16 RgLiTfuDatInd
 (
 Pst                *pst, 
 SuId               suId, 
 TfuDatIndInfo    *datInd
 )
-#else
-PUBLIC S16 RgLiTfuDatInd(pst, suId, datInd)
-Pst                *pst; 
-SuId               suId; 
-TfuDatIndInfo    *datInd;
-#endif
 {
    Inst             inst;
    S16              ret;
-   VOLATILE U32     startTime=0;
+   volatile uint32_t     startTime=0;
 
-   TRC3(RgLiTfuDatInd);
 
-  // printf("5GTF:: DatindRcvd\n");
+  // DU_LOG("5GTF:: DatindRcvd\n");
 
    RG_IS_INST_VALID(pst->dstInst);
    inst = pst->dstInst - RG_INST_START;
@@ -381,9 +219,9 @@ TfuDatIndInfo    *datInd;
 #ifndef NO_ERRCLS 
    if ((ret = rgLIMValidateSap (inst,suId)) != ROK)
    {
-      RLOG_ARG0(L_ERROR,DBG_CELLID,datInd->cellId,"SAP Validation failed");
+      DU_LOG("\nERROR  -->  MAC : SAP Validation failed");
       rgLIMUtlFreeDatIndEvnt(datInd, TRUE);
-      RETVALUE(ret);
+      return (ret);
    }
 #endif
    /* Now call the TOM (Tfu ownership module) primitive to process further */
@@ -404,7 +242,7 @@ TfuDatIndInfo    *datInd;
    /*stoping Task*/
    SStopTask(startTime, PID_MAC_TFU_DATIND);
 
-   RETVALUE(ret);
+   return (ret);
 }  /* RgLiTfuDatInd*/
 
 #ifdef RG_UNUSED
@@ -421,24 +259,13 @@ TfuDatIndInfo    *datInd;
  * @param  [in] Bool          *error
  * @return 
  */
-#ifdef ANSI
-PRIVATE Void rgLIMUtlFreeDatReqEvnt
-(
- TfuDatReqInfo *datReq,
- Bool          error
- )
-#else
-PRIVATE Void rgLIMUtlFreeDatReqEvnt(datReq, error)
- TfuDatReqInfo *datReq;
- Bool          error;
-#endif
+static Void rgLIMUtlFreeDatReqEvnt(TfuDatReqInfo *datReq,Bool  error)
 {
 
    TfuDatReqPduInfo *datInfo;
    CmLList          *node;
-   U8               i;
+   uint8_t          i;
 
-   TRC2(rgLIMUtlFreeDatReqEvnt);
    /* Steps of freeing up the TfuDatReq.
     * 1. Free the bch buffer.
     * 2. loop through the pdus list and free up all the buffers.
@@ -468,69 +295,9 @@ PRIVATE Void rgLIMUtlFreeDatReqEvnt(datReq, error)
       }
    }
    RG_FREE_MEM(datReq);
-   RETVOID;
+   return;
 } /* end of rgLIMUtlFreeDatReqEvnt*/
 #endif
-/**
- * @brief This API is invoked to send Data to PHY.
- *
- * @details
- *
- *     Function : rgLIMTfuDatReq
- *      
- *      This API is invoked to send Data to PHY. It 
- *      fills in the Pst structure, spId value and invokes Data
- *      request primitive at TFU.
- *           
- *  @param[in]  Inst        inst
- *  @param[in]  TfuDatReqInfo *datReq
- *  @return  S16
- *      -# ROK 
- *      -# RFAILED 
- **/
-#ifdef ANSI
-PUBLIC S16 rgLIMTfuDatReq 
-(
-Inst          inst,
-TfuDatReqInfo *datReq
-)
-#else
-PUBLIC S16 rgLIMTfuDatReq(inst,datReq)
-Inst          inst;
-TfuDatReqInfo *datReq;
-#endif
-{
-   S16         ret;
-   RgLowSapCb  *tfuSap;
-
-   TRC2(rgLIMTfuDatReq)
-
-   /* Get the lower SAP control block from the layer control block. */
-   tfuSap = &(rgCb[inst].tfuSap);
-
-#ifndef NO_ERRCLS
-   if (tfuSap->sapSta.sapState != LRG_BND)
-   {
-      RLOG_ARG1(L_ERROR,DBG_CELLID,datReq->cellId,"Lower SAP not bound (%d)",
-            tfuSap->sapSta.sapState);
-#ifdef RG_UNUSED
-      /* This case will never be hit if sap is not bound then we dont get TTI */
-      rgLIMUtlFreeDatReqEvnt(datReq, TRUE);
-#endif
-      RETVALUE(RFAILED);
-   }
-#endif
-
-   tfuSap->sapSts.numPduTxmit += datReq->pdus.count; 
-
-   /* Using existing pst - for optimization */
-   if((ret = RgLiTfuDatReq (&tfuSap->sapCfg.sapPst, tfuSap->sapCfg.spId, 
-                            datReq)) != ROK)
-   {
-      RLOG_ARG0(L_ERROR,DBG_CELLID,datReq->cellId,"Call to RgLiTfuDatReq() failed");
-   }
-   RETVALUE(ret);
-}  /* rgLIMTfuDatReq*/
 
 #ifdef L2_OPTMZ
 /**
@@ -550,22 +317,11 @@ TfuDatReqInfo *datReq;
  *      -# ROK 
  *      -# RFAILED 
  **/
-#ifdef ANSI
-PUBLIC S16 rgLIMTfuDelDatReq 
-(
-Inst          inst,
-TfuDelDatReqInfo *delDatReq
-)
-#else
-PUBLIC S16 rgLIMTfuDatReq(inst,delDatReq)
-Inst          inst;
-TfuDelDatReqInfo *delDatReq;
-#endif
+S16 rgLIMTfuDelDatReq(Inst inst,TfuDelDatReqInfo *delDatReq)
 {
    S16         ret;
    RgLowSapCb  *tfuSap;
 
-   TRC2(rgLIMTfuDelDatReq)
 
    /* Get the lower SAP control block from the layer control block. */
    tfuSap = &(rgCb[inst].tfuSap);
@@ -573,80 +329,21 @@ TfuDelDatReqInfo *delDatReq;
 #ifndef NO_ERRCLS
    if (tfuSap->sapSta.sapState != LRG_BND)
    {
-      RLOG_ARG1(L_ERROR,DBG_CELLID,delDatReq->cellId,"Lower SAP not bound (%d)",
+      DU_LOG("\nERROR  -->  MAC : Lower SAP not bound (%d)",
             tfuSap->sapSta.sapState);
-      RETVALUE(RFAILED);
+      return RFAILED;
    }
 #endif
 
    if((ret = RgLiTfuDelDatReq (&tfuSap->sapCfg.sapPst, tfuSap->sapCfg.spId, 
                             delDatReq)) != ROK)
    {
-      RLOG_ARG0(L_ERROR,DBG_CELLID,delDatReq->cellId,"Call to RgLiTfuDelDatReq() failed");
+      DU_LOG("\nERROR  -->  MAC : Call to RgLiTfuDelDatReq() failed");
    }
-   RETVALUE(ret);
+   return (ret);
 }  /* rgLIMTfuDatReq*/
 #endif /*L2_OPTMZ */
 
-/**
- * @brief Transmission time interval indication from PHY.
- *
- * @details
- *
- *     Function : RgLiTfuTtiInd 
- *      
- *      This API is invoked by PHY to indicate TTI indication to MAC for a cell.
- *           
- *  @param[in]  Pst            *pst
- *  @param[in]  SuId           suId 
- *  @param[in]  TfuTtiIndInfo  *ttiInd
- *  @return  S16
- *      -# ROK 
- *      -# RFAILED 
- **/
-#ifdef ANSI
-PUBLIC S16 RgLiTfuTtiInd 
-(
-Pst                 *pst, 
-SuId                suId, 
-TfuTtiIndInfo       *ttiInd
-)
-#else
-PUBLIC S16 RgLiTfuTtiInd(pst, suId, ttiInd)
-Pst                 *pst; 
-SuId                suId; 
-TfuTtiIndInfo       *ttiInd;
-#endif
-{
-   S16              ret;
-   VOLATILE U32     startTime=0;
-   Inst             inst;
-
-   TRC3(RgLiTfuTtiInd);
-
-   RG_IS_INST_VALID(pst->dstInst);
-   inst = pst->dstInst - RG_INST_START;
-   /*starting Task*/
-   SStartTask(&startTime, PID_MAC_TTI_IND);
-
-#ifdef NO_ERRCLS
-   if ((ret = rgLIMValidateSap (pst->dstInst - RG_INST_START,suId)) != ROK)
-   {
-      RLOG_ARG0(L_ERROR,DBG_CELLID,ttiInd->cells[0].cellId,"SAP Validation failed");
-      RETVALUE(ret);
-   }
-#endif
-
-   /* Now call the TOM (Tfu ownership module) primitive to process further */
-   ret = rgTOMTtiInd(inst,ttiInd);
-
-
-   /*stoping Task*/
-   SStopTask(startTime, PID_MAC_TTI_IND);
-
-   RETVALUE(ret);
-}  /* RgLiTfuTtiInd */
-
 #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
  /**
  * @brief Transmission of non-rt indication from CL.
@@ -663,29 +360,18 @@ TfuTtiIndInfo       *ttiInd;
  *      -# ROK 
  *      -# RFAILED 
  **/
-#ifdef ANSI
-PUBLIC S16 RgLiTfuNonRtInd
-(
-Pst                 *pst,
-SuId                suId
-)
-#else
-PUBLIC S16 RgLiTfuNonRtInd(pst, suId)
-Pst                 *pst;
-SuId                suId;
-#endif
+S16 RgLiTfuNonRtInd(Pst  *pst,SuId  suId)
 {
-   TRC3(RgLiTfuNonRtInd);
 
 #ifdef NO_ERRCLS
    if (rgLIMValidateSap (pst->dstInst - RG_INST_START, suId) != ROK)
    {
-      RGDBGERRNEW(pst->dstInst - RG_INST_START, (rgPBuf(pst->dstInst - RG_INST_START),"RgLiTfuNonRtInd() SAP Validation failed.\n"));
-      RETVALUE(RFAILED);
+      DU_LOG("\nERROR  -->  MAC : RgLiTfuNonRtInd() SAP Validation failed.\n");
+      return RFAILED;
    }
 #endif
    rgDHMFreeTbBufs(pst->dstInst - RG_INST_START);
-   RETVALUE(ROK);
+   return ROK;
 }  /* RgLiTfuNonRtInd */
 
 #endif