/* This file contains message handling functionality for DU cell management */
#include "common_def.h"
+#include "du_tmr.h"
#include "lrg.h"
#include "legtp.h"
#include "lrg.x"
#include "rgr.x"
#include "du_app_mac_inf.h"
#include "du_app_rlc_inf.h"
+#include "du_e2ap_mgr.h"
#include "du_cfg.h"
#include "du_mgr.h"
#include "du_utils.h"
packDuMacDlPcchInd /* Light weight-loose coupling */
};
+DuMacDlBroadcastReq packMacDlBroadcastReqOpts[] =
+{
+ packDuMacDlBroadcastReq, /* Loose coupling */
+ MacProcDlBroadcastReq, /* TIght coupling */
+ packDuMacDlBroadcastReq /* Light weight-loose coupling */
+};
/*******************************************************************
*
* @brief Processes cells to be activated
*
* Functionality: Send pcch indication to MAC
*
- * @Params[in] MacPcchInd *pcchInd
+ * @Params[in] DlPcchInd *pcchInd
* @return ROK - success
* RFAILED - failure
*
* ****************************************************************/
-uint8_t sendDlPcchIndToMac(MacPcchInd *pcchInd)
+uint8_t sendDlPcchIndToMac(DlPcchInd *pcchInd)
{
uint8_t ret = ROK;
Pst pst;
cellCb->cellStatus = ACTIVATED;
gCellStatus = CELL_UP;
- if(duCfgParam.tempSliceCfg.rrmPolicy)
- BuildAndSendSliceConfigReq(duCfgParam.tempSliceCfg.rrmPolicy, duCfgParam.tempSliceCfg.totalRrmPolicy, duCfgParam.tempSliceCfg.totalSliceCount);
+ if(duCfgParam.tempSliceCfg.numOfRrmPolicy)
+ BuildAndSendSliceConfigReq();
#ifdef O1_ENABLE
DU_LOG("\nINFO --> DU APP : Raise cell UP alarm for cell id=%d", cellId->cellId);
raiseCellAlrm(CELL_UP_ALARM_ID, cellId->cellId);
setCellOpState(cellId->cellId, ENABLED, ACTIVE);
#endif
-
+ duCfgParam.macCellCfg.cellCfg.opState = OP_ENABLED;
+ duCfgParam.macCellCfg.cellCfg.cellState = CELL_ACTIVE;
}
if((pst->selector == ODU_SELECTOR_LWLC) || (pst->selector == ODU_SELECTOR_TC))
if(deleteRsp)
{
- if(deleteRsp->result == SUCCESSFUL_RSP)
+ if(deleteRsp->status == SUCCESSFUL)
{
GET_CELL_IDX(deleteRsp->cellId, cellIdx);
DU_LOG("\nINFO --> DU APP : MAC CELL Delete Response : SUCCESS [CELL IDX : %d]", deleteRsp->cellId);
{
Pst pst;
uint8_t ret=ROK;
- MacCellDelete *cellDelete = NULLP;
+ MacCellDeleteReq *cellDelete = NULLP;
- DU_ALLOC_SHRABL_BUF(cellDelete, sizeof(MacCellDelete));
+ DU_ALLOC_SHRABL_BUF(cellDelete, sizeof(MacCellDeleteReq));
if(cellDelete)
{
cellDelete->cellId = cellId;
if(ret == RFAILED)
{
DU_LOG("\nERROR --> DU APP : sendCellDeleteReqToMac(): Failed to send Cell delete Req to MAC");
- DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cellDelete, sizeof(MacCellDelete));
+ DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cellDelete, sizeof(MacCellDeleteReq));
}
}
else
PCCH_Message_t *pcchMsg = NULLP;
asn_enc_rval_t encRetVal;
PagingRrc_t *pagingMsg = NULLP;
- MacPcchInd *macPcchInd = NULLP;
+ DlPcchInd *macPcchInd = NULLP;
uint8_t recordIdx = 0, ret = RFAILED;
/*As per 38.473 Sec 9.3.1.39,5G-S-TMSI :48 Bits >> Bytes and 0 UnusedBits */
memset(encBuf, 0, ENC_BUF_MAX_LEN);
encBufSize = 0;
/* Encode the PCCH RRC PDU as APER */
- encRetVal = aper_encode(&asn_DEF_PCCH_Message, 0, pcchMsg, PrepFinalEncBuf,\
+ encRetVal = uper_encode(&asn_DEF_PCCH_Message, 0, pcchMsg, PrepFinalEncBuf,\
encBuf);
if(encRetVal.encoded == ENCODE_FAIL)
{
DU_LOG("\nDEBUG --> F1AP : Created APER encoded buffer for RRC PDU for Pcch indication \n");
- DU_ALLOC_SHRABL_BUF(macPcchInd, sizeof(MacPcchInd));
+ DU_ALLOC_SHRABL_BUF(macPcchInd, sizeof(DlPcchInd));
if(macPcchInd == NULLP)
{
DU_LOG("\nERROR --> DU APP: BuildAndSendDlPcchIndToMac(); (macPcchInd) Memory Alloction failed!");
if(ret != ROK)
{
DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, macPcchInd->pcchPdu, macPcchInd->pduLen);
- DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, macPcchInd, sizeof(MacPcchInd));
+ DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, macPcchInd, sizeof(DlPcchInd));
break;
}
}
return ROK;
}
+
+/*******************************************************************
+ *
+ * @brief DU build and send dl broacast req and send it to MAC
+ *
+ * @details
+ *
+ * Function : duBuildAndSendDlBroadcastReq
+ *
+ * Functionality: DU build and send dl broacast req and send to MAC
+ *
+ *
+ * @params[in] cellId, crnti
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+
+uint8_t duBuildAndSendDlBroadcastReq()
+{
+ Pst pst;
+ uint8_t ret =ROK;
+ MacDlBroadcastReq *dlBroadcast=NULLP;
+
+ DU_LOG("\nDEBUG --> DU_APP : Building Dl broadcast request");
+
+ DU_ALLOC_SHRABL_BUF(dlBroadcast, sizeof(MacDlBroadcastReq));
+ if(dlBroadcast)
+ {
+ /*TODO - fill MAC DL Broadcast Request*/
+
+ FILL_PST_DUAPP_TO_MAC(pst, EVENT_MAC_DL_BROADCAST_REQ);
+
+ DU_LOG("\nDEBUG --> DU_APP: Sending Dl broadcast Request to MAC ");
+ ret = (*packMacDlBroadcastReqOpts[pst.selector])(&pst, dlBroadcast);
+ if(ret == RFAILED)
+ {
+ DU_LOG("\nERROR --> DU_APP: sendDlBroadcastReqToMac(): Failed to send Dl broadcast Req to MAC");
+ DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, dlBroadcast, sizeof(MacDlBroadcastReq));
+ }
+ }
+ else
+ {
+ DU_LOG("\nERROR --> DU_APP: sendDlBroadcastReqToMac(): Failed to allocate memory");
+ ret = RFAILED;
+ }
+
+ return ret;
+}
+
/**********************************************************************
End of file
**********************************************************************/