/* File : du_mgr_msg_router.c */
/* This file contains message handling functionality for DU APP */
#include "common_def.h"
+#include "du_tmr.h"
#include "lrg.h"
#include "legtp.h"
#include "lsctp.h"
#include "kwu.x"
#include "du_app_mac_inf.h"
#include "du_app_rlc_inf.h"
+#include "du_e2ap_mgr.h"
+#include "du_e2ap_msg_hdl.h"
#include "du_cfg.h"
#include "du_mgr.h"
#include "E2AP-PDU.h"
#include "du_sctp.h"
#include "F1AP-PDU.h"
#include "du_f1ap_msg_hdl.h"
-#include "du_e2ap_msg_hdl.h"
#include "du_app_mac_inf.h"
#include "du_ue_mgr.h"
#include "du_utils.h"
memset(duCb.ueCcchCtxt, 0, MAX_NUM_UE * sizeof(UeCcchCtxt));
duCb.numCfgCells = 0;
duCb.numActvCells = 0;
-
+ duCb.gnbDuUeF1apIdGenerator = 0;
+ cmLListInit(&duCb.reservedF1apPduList);
ODU_SET_PROC_ID(DU_PROC);
return ROK;
}
+#ifdef CALL_FLOW_DEBUG_LOG
+/**************************************************************************
+* @brief Function prints the src dest and msg reached to egtp.
+*
+* @details
+*
+* Function : callFlowduActvTsk
+*
+* Functionality:
+* Function prints the src dest and msg reached to egtp.
+*
+* @param[in] Pst *pst, Post structure of the primitive.
+*
+* @return void
+*
++***************************************************************************/
+
+void callFlowduActvTsk(Pst *pst)
+{
+ char sourceTask[50];
+ char destTask[50]="ENTDUAPP";
+ char message[100];
+
+ switch(pst->srcEnt)
+ {
+ case ENTDUAPP:
+ {
+ strcpy(sourceTask,"ENTDUAPP");
+ switch(pst->event)
+ {
+ case EVTCFG:
+ {
+ strcpy(message,"EVTCFG");
+ break;
+ }
+ default:
+ {
+ strcpy(message,"Invalid Event");
+ break;
+ }
+ }
+
+ break;
+ }
+ case ENTRLC:
+ {
+ strcpy(sourceTask,"ENTRLC");
+ switch(pst->event)
+ {
+ case LKW_EVT_CFG_CFM:
+ {
+ strcpy(message,"LKW_EVT_CFG_CFM");
+ break;
+ }
+ case LKW_EVT_CNTRL_CFM:
+ {
+ strcpy(message,"LKW_EVT_CNTRL_CFM");
+ break;
+ }
+ case LKW_EVT_STA_IND:
+ {
+ strcpy(message,"LKW_EVT_STA_IND");
+ break;
+ }
+ case EVENT_RLC_UE_CREATE_RSP:
+ {
+ strcpy(message,"EVENT_RLC_UE_CREATE_RSP");
+ break;
+ }
+ case EVENT_RLC_UE_RECONFIG_RSP:
+ {
+ strcpy(message,"EVENT_RLC_UE_RECONFIG_RSP");
+ break;
+ }
+ case EVENT_RLC_UE_DELETE_RSP:
+ {
+ strcpy(message,"EVENT_RLC_UE_DELETE_RSP");
+ break;
+ }
+ case EVENT_UL_RRC_MSG_TRANS_TO_DU:
+ {
+ strcpy(message,"EVENT_UL_RRC_MSG_TRANS_TO_DU");
+ break;
+ }
+ case EVENT_RRC_DELIVERY_MSG_TRANS_TO_DU:
+ {
+ strcpy(message,"EVENT_RRC_DELIVERY_MSG_TRANS_TO_DU");
+ break;
+ }
+ case EVENT_DL_RRC_MSG_RSP_TO_DU:
+ {
+ strcpy(message,"EVENT_DL_RRC_MSG_RSP_TO_DU");
+ break;
+ }
+ case EVENT_UL_USER_DATA_TRANS_TO_DU:
+ {
+ strcpy(message,"EVENT_UL_USER_DATA_TRANS_TO_DU");
+ break;
+ }
+ default:
+ {
+ strcpy(message,"Invalid Event");
+ }
+ }
+ break;
+ }
+ case ENTMAC:
+ {
+ strcpy(sourceTask,"ENTMAC");
+ switch(pst->event)
+ {
+ case EVTCFG:
+ {
+ strcpy(message,"EVTCFG");
+ break;
+ }
+ case EVTLRGCFGCFM:
+ {
+ strcpy(message,"EVTLRGCFGCFM");
+ break;
+ }
+ case EVTMACSCHGENCFGCFM:
+ {
+ strcpy(message,"EVTMACSCHGENCFGCFM");
+ break;
+ }
+ case EVENT_MAC_CELL_CONFIG_CFM:
+ {
+ strcpy(message,"EVENT_MAC_CELL_CONFIG_CFM");
+ break;
+ }
+ case EVENT_MAC_CELL_UP_IND:
+ {
+ strcpy(message,"EVENT_MAC_CELL_UP_IND");
+ break;
+ }
+ case EVENT_MAC_SLOT_IND:
+ {
+ strcpy(message,"EVENT_MAC_SLOT_IND");
+ break;
+ }
+ case EVENT_MAC_STOP_IND:
+ {
+ strcpy(message,"EVENT_MAC_STOP_IND");
+ break;
+ }
+ case EVENT_MAC_UL_CCCH_IND:
+ {
+ strcpy(message,"EVENT_MAC_UL_CCCH_IND");
+ break;
+ }
+ case EVENT_MAC_UE_CREATE_RSP:
+ {
+ strcpy(message,"EVENT_MAC_UE_CREATE_RSP");
+ break;
+ }
+ case EVENT_MAC_UE_RECONFIG_RSP:
+ {
+ strcpy(message,"EVENT_MAC_UE_RECONFIG_RSP");
+ break;
+ }
+ case EVENT_MAC_UE_DELETE_RSP:
+ {
+ strcpy(message,"EVENT_MAC_UE_DELETE_RSP");
+ break;
+ }
+ case EVENT_MAC_CELL_DELETE_RSP:
+ {
+ strcpy(message,"EVENT_MAC_CELL_DELETE_RSP");
+ break;
+ }
+ case EVENT_MAC_SLICE_CFG_RSP:
+ {
+ strcpy(message,"EVENT_MAC_SLICE_CFG_RSP");
+ break;
+ }
+ case EVENT_MAC_SLICE_RECFG_RSP:
+ {
+ strcpy(message,"EVENT_MAC_SLICE_RECFG_RSP");
+ break;
+ }
+ case EVENT_MAC_STATISTICS_RSP:
+ {
+ strcpy(message,"EVENT_MAC_STATISTICS_RSP");
+ break;
+ }
+ default:
+ {
+ strcpy(message,"Invalid Event");
+ break;
+ }
+ }
+
+ break;
+ }
+ case ENTSCTP:
+ {
+ strcpy(sourceTask,"ENTSCTP");
+ switch(pst->event)
+ {
+ case EVENT_CU_DATA:
+ {
+ strcpy(message,"EVENT_CU_DATA");
+ break;
+ }
+ case EVENT_SCTP_NTFY:
+ {
+ strcpy(message,"EVENT_SCTP_NTFY");
+ break;
+ }
+ case EVENT_RIC_DATA:
+ {
+ strcpy(message,"EVENT_RIC_DATA");
+ break;
+ }
+ default:
+ {
+ strcpy(message,"Invalid Event");
+ break;
+ }
+
+ }
+ break;
+ }
+ case ENTEGTP:
+ {
+ strcpy(sourceTask,"ENTEGTP");
+ switch(pst->event)
+ {
+ case EVTCFGCFM:
+ {
+ strcpy(message,"EVTCFGCFM");
+ break;
+ }
+ case EVTSRVOPENCFM:
+ {
+ strcpy(message,"EVTSRVOPENCFM");
+ break;
+ }
+ case EVTTNLMGMTCFM:
+ {
+ strcpy(message,"EVTTNLMGMTCFM");
+ break;
+ }
+ default:
+ {
+ strcpy(message,"Invalid Event");
+ break;
+ }
+ }
+ break;
+ }
+ default:
+ {
+ strcpy(sourceTask,"Invalid Source Entity Id");
+ break;
+ }
+ }
+ DU_LOG("\nCall Flow: %s -> %s : %s\n", sourceTask, destTask, message);
+}
+#endif
+
/**************************************************************************
* @brief Task Activation callback function.
*
uint8_t duActvTsk(Pst *pst, Buffer *mBuf)
{
uint8_t ret = ROK;
+
+#ifdef CALL_FLOW_DEBUG_LOG
+ callFlowduActvTsk(pst);
+#endif
switch(pst->srcEnt)
{
}
case EVENT_RLC_UE_CREATE_RSP:
{
- ret = unpackRlcUeCfgRsp(DuProcRlcUeCfgRsp, pst, mBuf);
+ ret = unpackRlcUeCreateRsp(DuProcRlcUeCreateRsp, pst, mBuf);
break;
}
case EVENT_RLC_UE_RECONFIG_RSP:
{
- ret = unpackRlcUeCfgRsp(DuProcRlcUeCfgRsp, pst, mBuf);
+ ret = unpackRlcUeReconfigRsp(DuProcRlcUeReconfigRsp, pst, mBuf);
break;
}
case EVENT_RLC_UE_DELETE_RSP:
ret = unpackRlcDlRrcMsgRspToDu(DuProcRlcDlRrcMsgRsp, pst, mBuf);
break;
}
+ case EVENT_RLC_MAX_RETRANSMISSION:
+ {
+ ret = unpackRlcMaxRetransInd(DuProcRlcMaxRetransInd, pst, mBuf);
+ break;
+ }
case EVENT_UL_USER_DATA_TRANS_TO_DU:
{
ret = unpackRlcUlUserDataToDu(DuProcRlcUlUserDataTrans, pst, mBuf);
break;
}
+ case EVENT_RLC_SLICE_PM_TO_DU:
+ {
+ ret = unpackRlcSlicePm(DuProcRlcSliceMetrics, pst, mBuf);
+ break;
+ }
+ case EVENT_RLC_UE_REESTABLISH_RSP:
+ {
+ ret = unpackRlcUeReestablishRsp(DuProcRlcUeReestablishRsp, pst, mBuf);
+ break;
+ }
default:
{
DU_LOG("\nERROR --> DU_APP : Invalid event %d received at duActvTsk from ENTRLC", \
ret = cmUnpkLrgCfgCfm(duHdlMacCfgComplete, pst, mBuf);
break;
}
- case EVTLRGCNTRLCFM:
- {
- break;
- }
case EVTMACSCHGENCFGCFM:
{
ret = cmUnpkLrgSchCfgCfm(duHdlSchCfgComplete, pst, mBuf);
ret = unpackMacCellUpInd(duHandleCellUpInd, pst, mBuf);
break;
}
+ case EVENT_MAC_SLOT_IND:
+ {
+ ret = unpackDuMacSlotInd(duHandleSlotInd, pst, mBuf);
+ break;
+ }
case EVENT_MAC_STOP_IND:
{
ret = unpackMacStopInd(duHandleStopInd, pst, mBuf);
}
case EVENT_MAC_UE_CREATE_RSP:
{
- ret = unpackDuMacUeCfgRsp(DuProcMacUeCfgRsp, pst, mBuf);
+ ret = unpackDuMacUeCreateRsp(DuProcMacUeCreateRsp, pst, mBuf);
break;
}
case EVENT_MAC_UE_RECONFIG_RSP:
{
- ret = unpackDuMacUeCfgRsp(DuProcMacUeCfgRsp, pst, mBuf);
+ ret = unpackDuMacUeRecfgRsp(DuProcMacUeRecfgRsp, pst, mBuf);
break;
}
case EVENT_MAC_UE_DELETE_RSP:
ret = unpackDuMacCellDeleteRsp(DuProcMacCellDeleteRsp, pst, mBuf);
break;
}
+ case EVENT_MAC_SLICE_CFG_RSP:
+ {
+ ret = unpackDuMacSliceCfgRsp(DuProcMacSliceCfgRsp, pst, mBuf);
+ break;
+ }
+ case EVENT_MAC_UE_SYNC_STATUS_IND:
+ {
+ ret = unpackDuMacUeSyncStatusInd(DuProcMacUeSyncStatusInd, pst, mBuf);
+ break;
+ }
+ case EVENT_MAC_SLICE_RECFG_RSP:
+ {
+ ret = unpackDuMacSliceRecfgRsp(DuProcMacSliceRecfgRsp, pst, mBuf);
+ break;
+ }
+ case EVENT_MAC_RACH_RESOURCE_RSP:
+ {
+ ret = unpackDuMacRachRsrcRsp(DuProcMacRachRsrcRsp, pst, mBuf);
+ break;
+ }
+ case EVENT_MAC_UE_RESET_RSP:
+ {
+ ret = unpackDuMacUeResetRsp(DuProcMacUeResetRsp, pst, mBuf);
+ break;
+ }
+ case EVENT_MAC_STATISTICS_RSP:
+ {
+ ret = unpackDuMacStatsRsp(DuProcMacStatsRsp, pst, mBuf);
+ break;
+ }
default:
{
DU_LOG("\nERROR --> DU_APP : Invalid event received at duActvTsk from ENTMAC");