UE CB creation at MAC and SCH [Issue-ID: ODUHIGH-177]
[o-du/l2.git] / src / 5gnrmac / mac_msg_hdl.c
index 7ed544a..aad5fc1 100644 (file)
@@ -14,7 +14,7 @@
 #   See the License for the specific language governing permissions and        #
 #   limitations under the License.                                             #
 ################################################################################
-*******************************************************************************/
+ *******************************************************************************/
 
 /* header include files -- defines (.h)  */
 #include "common_def.h"
@@ -83,10 +83,10 @@ MacSchDlRlcBoInfoFunc macSchDlRlcBoInfoOpts[]=
 int sendDlRlcBoInfoMacToSch(DlRlcBOInfo *dlBoInfo)
 {
    Pst pst;
+
    fillMacToSchPst(&pst);
    pst.event = EVENT_DL_RLC_BO_INFO_TO_SCH;
+
    return(*macSchDlRlcBoInfoOpts[pst.selector])(&pst, dlBoInfo);
 }
 
@@ -105,17 +105,17 @@ int sendDlRlcBoInfoMacToSch(DlRlcBOInfo *dlBoInfo)
  * @return ROK     - success
  *         RFAILED - failure
  *
 ****************************************************************/
+ ****************************************************************/
 int sendCrcIndMacToSch(CrcIndInfo *crcInd)
 {
    Pst pst;
+
    fillMacToSchPst(&pst);
    pst.event = EVENT_CRC_IND_TO_SCH;
+
    return(*macSchCrcIndOpts[pst.selector])(&pst, crcInd);
 }
+
 /*******************************************************************
  *
  * @brief Processes CRC Indication from PHY
@@ -136,7 +136,7 @@ int sendCrcIndMacToSch(CrcIndInfo *crcInd)
 uint16_t fapiMacCrcInd(Pst *pst, CrcInd *crcInd)
 {
    CrcIndInfo   crcIndInfo;
+
    DU_LOG("\nMAC : Received CRC indication");
 
    /* Considering one pdu and one preamble */ 
@@ -146,10 +146,10 @@ uint16_t fapiMacCrcInd(Pst *pst, CrcInd *crcInd)
    crcIndInfo.timingInfo.slot = crcInd->timingInfo.slot;
    crcIndInfo.numCrcInd = crcInd->crcInfo[0].numCb;
    crcIndInfo.crcInd[0] = crcInd->crcInfo[0].cbCrcStatus[0];
+
    return(sendCrcIndMacToSch(&crcIndInfo));
 }
+
 /*******************************************************************
  *
  * @brief Process Rx Data Ind at MAC
@@ -170,11 +170,11 @@ uint16_t fapiMacCrcInd(Pst *pst, CrcInd *crcInd)
 uint16_t fapiMacRxDataInd(Pst *pst, RxDataInd *rxDataInd)
 {
    uint16_t pduIdx;
+
    DU_LOG("\nMAC : Received Rx Data indication");
-  
+
    /* TODO : compare the handle received in RxDataInd with handle send in PUSCH
-        * PDU, which is stored in raCb */
+    * PDU, which is stored in raCb */
 
    for(pduIdx = 0; pduIdx < rxDataInd->numPdus; pduIdx++)
    {
@@ -251,7 +251,7 @@ uint16_t MacHdlCellStartReq(Pst *pst, MacCellStartInfo  *cellStartInfo)
    sendToLowerMac(START_REQUEST, 0, cellStartInfo);
 
    MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cellStartInfo, \
-          sizeof(MacCellStartInfo));
+        sizeof(MacCellStartInfo));
 
    return ROK;
 }
@@ -281,8 +281,8 @@ uint16_t MacHdlCellStopReq(Pst *pst, MacCellStopInfo  *cellStopInfo)
 #endif
 
    MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cellStopInfo, \
-          sizeof(MacCellStopInfo));
+        sizeof(MacCellStopInfo));
+
    return ROK;
 }
 
@@ -307,42 +307,42 @@ uint16_t MacHdlDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo)
 {
    uint16_t idx;
    DlRlcBOInfo  dlBoInfo;
-       memset(&dlBoInfo, 0, sizeof(DlRlcBOInfo));
+   memset(&dlBoInfo, 0, sizeof(DlRlcBOInfo));
 
    DU_LOG("\nMAC : Handling DL CCCH IND");
-   
+
    /* TODO : Fill DL RLC Buffer status info */
    dlBoInfo.cellId = dlCcchIndInfo->cellId;
    dlBoInfo.crnti = dlCcchIndInfo->crnti;
    dlBoInfo.numLc = 0;
-   
+
    if(dlCcchIndInfo->msgType == RRC_SETUP)
    {
       dlBoInfo.boInfo[dlBoInfo.numLc].lcId = SRB_ID_0;    // SRB ID 0 for msg4
       dlBoInfo.boInfo[SRB_ID_0].dataVolume = \
-        dlCcchIndInfo->dlCcchMsgLen;
+         dlCcchIndInfo->dlCcchMsgLen;
       dlBoInfo.numLc++;
 
       /* storing Msg4 Pdu in raCb */
       if(macCb.macCell->macRaCb[0].crnti == dlCcchIndInfo->crnti)
       {
-         macCb.macCell->macRaCb[0].msg4PduLen = dlCcchIndInfo->dlCcchMsgLen;
-         MAC_ALLOC(macCb.macCell->macRaCb[0].msg4Pdu, macCb.macCell->macRaCb[0]\
-         .msg4PduLen);
-         if(macCb.macCell->macRaCb[0].msg4Pdu)
-         {
-                          for(idx = 0; idx < dlCcchIndInfo->dlCcchMsgLen; idx++)
-                               {
-               macCb.macCell->macRaCb[0].msg4Pdu[idx] =\
-                                         dlCcchIndInfo->dlCcchMsg[idx];
-                          }
-         }
+        macCb.macCell->macRaCb[0].msg4PduLen = dlCcchIndInfo->dlCcchMsgLen;
+        MAC_ALLOC(macCb.macCell->macRaCb[0].msg4Pdu, \
+           macCb.macCell->macRaCb[0].msg4PduLen);
+        if(macCb.macCell->macRaCb[0].msg4Pdu)
+        {
+           for(idx = 0; idx < dlCcchIndInfo->dlCcchMsgLen; idx++)
+           {
+              macCb.macCell->macRaCb[0].msg4Pdu[idx] =\
+                 dlCcchIndInfo->dlCcchMsg[idx];
+           }
+        }
       }
    }
    sendDlRlcBoInfoMacToSch(&dlBoInfo);
-   
+
    MAC_FREE_SHRABL_BUF(pst->region, pst->pool, dlCcchIndInfo->dlCcchMsg, \
-      dlCcchIndInfo->dlCcchMsgLen);
+        dlCcchIndInfo->dlCcchMsgLen);
    MAC_FREE_SHRABL_BUF(pst->region, pst->pool, dlCcchIndInfo, sizeof(DlCcchIndInfo));
    return ROK;
 
@@ -368,74 +368,47 @@ uint16_t MacHdlDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo)
 uint16_t macSendUlCcchInd(uint8_t *rrcContainer, uint16_t cellId, uint16_t crnti)
 {
    Pst pst;
-       uint8_t ret = ROK;
+   uint8_t ret = ROK;
    UlCcchIndInfo *ulCcchIndInfo = NULLP;
 
    MAC_ALLOC_SHRABL_BUF(ulCcchIndInfo, sizeof(UlCcchIndInfo));
    if(!ulCcchIndInfo)
    {
-               DU_LOG("\nMAC: Memory failed in macSendUlCcchInd");
-               return RFAILED;
-       }
-
-       ulCcchIndInfo->cellId = cellId;
-       ulCcchIndInfo->crnti  = crnti;
-       ulCcchIndInfo->ulCcchMsg = rrcContainer;
-
-       /* Fill Pst */
-       pst.selector  = ODU_SELECTOR_LWLC;
-       pst.srcEnt    = ENTRG;
-       pst.dstEnt    = ENTDUAPP;
-       pst.dstInst   = 0;
-       pst.srcInst   = macCb.macInst;
-       pst.dstProcId = rgCb[pst.srcInst].rgInit.procId;
-       pst.srcProcId = rgCb[pst.srcInst].rgInit.procId;
-       pst.region    = MAC_MEM_REGION;
-       pst.pool      = MAC_POOL;
-       pst.event     = EVENT_MAC_UL_CCCH_IND;
-       pst.route     = 0;
-       pst.prior     = 0;
-       pst.intfVer   = 0;
-
-       if(MacDuAppUlCcchInd(&pst, ulCcchIndInfo) != ROK)
-       {
-               DU_LOG("\nMAC: Failed to send UL CCCH Ind to DU APP");
-               MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, ulCcchIndInfo->ulCcchMsg,
-                               strlen((const char*)ulCcchIndInfo->ulCcchMsg));
-               MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, ulCcchIndInfo, sizeof(UlCcchIndInfo));
-               ret = RFAILED;
-       }
-       return ret;
-}
+      DU_LOG("\nMAC: Memory failed in macSendUlCcchInd");
+      return RFAILED;
+   }
 
-/*******************************************************************
- *
- * @brief Handles Ue Create Request from DU APP
- *
- * @details
- *
- *    Function : MacHdlUeCreateReq
- *
- *    Functionality:
- *      Handles Ue create Request from DU APP
- *
- * @params[in] Post structure pointer
- *             MacUeCfg pointer 
- * @return ROK     - success
- *         RFAILED - failure
- *
- * ****************************************************************/
-uint8_t MacHdlUeCreateReq(Pst *pst, MacUeCfg *ueCfg)
-{
-   /* TODO : Create MAC UE Context.
-                 Copy Tx Pdu from raCb
-                                Delete RaCb
-                                Send MacUeContext to SCH */
-   MAC_FREE_SHRABL_BUF(pst->region, pst->pool, ueCfg, sizeof(MacUeCfg));
-   return ROK;
+   ulCcchIndInfo->cellId = cellId;
+   ulCcchIndInfo->crnti  = crnti;
+   ulCcchIndInfo->ulCcchMsg = rrcContainer;
+
+   /* Fill Pst */
+   pst.selector  = ODU_SELECTOR_LWLC;
+   pst.srcEnt    = ENTRG;
+   pst.dstEnt    = ENTDUAPP;
+   pst.dstInst   = 0;
+   pst.srcInst   = macCb.macInst;
+   pst.dstProcId = rgCb[pst.srcInst].rgInit.procId;
+   pst.srcProcId = rgCb[pst.srcInst].rgInit.procId;
+   pst.region    = MAC_MEM_REGION;
+   pst.pool      = MAC_POOL;
+   pst.event     = EVENT_MAC_UL_CCCH_IND;
+   pst.route     = 0;
+   pst.prior     = 0;
+   pst.intfVer   = 0;
+
+   if(MacDuAppUlCcchInd(&pst, ulCcchIndInfo) != ROK)
+   {
+      DU_LOG("\nMAC: Failed to send UL CCCH Ind to DU APP");
+      MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, ulCcchIndInfo->ulCcchMsg,
+           strlen((const char*)ulCcchIndInfo->ulCcchMsg));
+      MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, ulCcchIndInfo, sizeof(UlCcchIndInfo));
+      ret = RFAILED;
+   }
+   return ret;
 }
 
 /**********************************************************************
-         End of file
-**********************************************************************/
+  End of file
+ **********************************************************************/