X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fdu_app%2Fdu_mgr_msg_router.c;h=a1112d0515c65abb093e34ce2da21edc68c59350;hb=6dc8a4c17da24847b3a3aee91b37151f77a8a5bc;hp=45ec532321a16a7ede9f2ffe8554db3d6a788160;hpb=70e1fb5996d93ef4973ffb654ee6a66228e9031c;p=o-du%2Fl2.git diff --git a/src/du_app/du_mgr_msg_router.c b/src/du_app/du_mgr_msg_router.c index 45ec53232..a1112d051 100644 --- a/src/du_app/du_mgr_msg_router.c +++ b/src/du_app/du_mgr_msg_router.c @@ -18,6 +18,7 @@ /* 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" @@ -29,13 +30,14 @@ #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" @@ -96,13 +98,286 @@ uint8_t duActvInit(Ent entity, Inst inst, Region region, Reason reason) 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; + } + case EVENT_MAC_STATISTICS_IND: + { + strcpy(message,"EVENT_MAC_STATISTICS_IND"); + break; + } + case EVENT_MAC_STATS_DELETE_RSP: + { + strcpy(message,"EVENT_MAC_STATS_DELETE_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. * @@ -126,6 +401,10 @@ uint8_t duActvInit(Ent entity, Inst inst, Region region, Reason reason) uint8_t duActvTsk(Pst *pst, Buffer *mBuf) { uint8_t ret = ROK; + +#ifdef CALL_FLOW_DEBUG_LOG + callFlowduActvTsk(pst); +#endif switch(pst->srcEnt) { @@ -170,12 +449,12 @@ uint8_t duActvTsk(Pst *pst, Buffer *mBuf) } 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: @@ -198,11 +477,26 @@ uint8_t duActvTsk(Pst *pst, Buffer *mBuf) 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", \ @@ -228,10 +522,6 @@ uint8_t duActvTsk(Pst *pst, Buffer *mBuf) ret = cmUnpkLrgCfgCfm(duHdlMacCfgComplete, pst, mBuf); break; } - case EVTLRGCNTRLCFM: - { - break; - } case EVTMACSCHGENCFGCFM: { ret = cmUnpkLrgSchCfgCfm(duHdlSchCfgComplete, pst, mBuf); @@ -247,6 +537,11 @@ uint8_t duActvTsk(Pst *pst, Buffer *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); @@ -259,12 +554,12 @@ uint8_t duActvTsk(Pst *pst, Buffer *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: @@ -277,6 +572,46 @@ uint8_t duActvTsk(Pst *pst, Buffer *mBuf) 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; + } + case EVENT_MAC_STATISTICS_IND: + { + ret = unpackDuMacStatsInd(DuProcMacStatsInd, pst, mBuf); + break; + } + case EVENT_MAC_STATS_DELETE_RSP: + { + ret = unpackDuMacStatsDeleteRsp(DuProcMacStatsDeleteRsp, pst, mBuf); + break; + } default: { DU_LOG("\nERROR --> DU_APP : Invalid event received at duActvTsk from ENTMAC");