+ sizeof(MacCellStopInfo));
+
+ return ROK;
+}
+
+/*******************************************************************
+ *
+ * @brief Handles DL CCCH Ind from DU APP
+ *
+ * @details
+ *
+ * Function : MacProcDlCcchInd
+ *
+ * Functionality:
+ * Handles DL CCCH Ind from DU APP
+ *
+ * @params[in] Post structure pointer
+ * DL CCCH Ind pointer
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t MacProcDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo)
+{
+ uint16_t cellIdx;
+ uint16_t idx;
+ DlRlcBOInfo dlBoInfo;
+ memset(&dlBoInfo, 0, sizeof(DlRlcBOInfo));
+
+ DU_LOG("\nMAC : Handling DL CCCH IND");
+
+ GET_CELL_IDX(dlCcchIndInfo->cellId, cellIdx);
+
+ 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;
+ dlBoInfo.numLc++;
+
+ /* storing Msg4 Pdu in raCb */
+ if(macCb.macCell[cellIdx]->macRaCb[0].crnti == dlCcchIndInfo->crnti)
+ {
+ macCb.macCell[cellIdx]->macRaCb[0].msg4PduLen = dlCcchIndInfo->dlCcchMsgLen;
+ MAC_ALLOC(macCb.macCell[cellIdx]->macRaCb[0].msg4Pdu, \
+ macCb.macCell[cellIdx]->macRaCb[0].msg4PduLen);
+ if(macCb.macCell[cellIdx]->macRaCb[0].msg4Pdu)
+ {
+ for(idx = 0; idx < dlCcchIndInfo->dlCcchMsgLen; idx++)
+ {
+ macCb.macCell[cellIdx]->macRaCb[0].msg4Pdu[idx] =\
+ dlCcchIndInfo->dlCcchMsg[idx];
+ }
+ }
+ }
+ }
+ sendDlRlcBoInfoMacToSch(&dlBoInfo);
+
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, dlCcchIndInfo->dlCcchMsg, \
+ dlCcchIndInfo->dlCcchMsgLen);
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, dlCcchIndInfo, sizeof(DlCcchIndInfo));