X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_mgr_ex_ms.c;h=76fabd659ab62163b24b4fe6cb2b2f2d57b2b908;hb=2193e4cf01012809495be026097e8d7eacb9f0ac;hp=6635832839716bd6dbf40fa1e82ae7e018d3c47a;hpb=829bbd114f1c3dc00c1da47bca0a8207c049df3f;p=o-du%2Fl2.git diff --git a/src/du_app/du_mgr_ex_ms.c b/src/du_app/du_mgr_ex_ms.c index 663583283..76fabd659 100644 --- a/src/du_app/du_mgr_ex_ms.c +++ b/src/du_app/du_mgr_ex_ms.c @@ -14,12 +14,37 @@ # See the License for the specific language governing permissions and # # limitations under the License. # ################################################################################ -*******************************************************************************/ - -/* This file contains message handling functionality for DU cell management */ + *******************************************************************************/ +/* This file contains message handling functionality for DU APP */ +#include "common_def.h" +#include "lrg.h" +#include "legtp.h" +#include "lsctp.h" +#include "legtp.h" +#include "lkw.h" +#include "kwu.h" +#include "lrg.x" +#include "lkw.x" +#include "kwu.x" +#include "du_app_mac_inf.h" +#include "du_app_rlc_inf.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" +extern uint8_t unpackRlcConfigCfm(RlcConfigCfm func,Pst *pst, Buffer *mBuf); +extern uint8_t cmUnpkLkwCntrlCfm(LkwCntrlCfm func,Pst *pst, Buffer *mBuf); +extern uint8_t cmUnpkLrgCfgCfm(LrgCfgCfm func,Pst *pst, Buffer *mBuf); +extern uint8_t cmUnpkKwuDatInd(KwuDatInd func,Pst *pst, Buffer *mBuf); +extern uint8_t cmUnpkLrgSchCfgCfm(LrgSchCfgCfm func,Pst *pst,Buffer *mBuf); /************************************************************************** * @brief Task Initiation callback function. * @@ -40,9 +65,39 @@ * @return ROK - success * RFAILED - failure ***************************************************************************/ -S16 duActvInit(Ent entity, Inst inst, Region region, Reason reason) +uint8_t duActvInit(Ent entity, Inst inst, Region region, Reason reason) { -//TODO: TBD + uint8_t id; + + memset(&duCb, 0, sizeof(DuCb)); + + duCb.init.procId = ODU_GET_PROCID(); + duCb.init.ent = entity; + duCb.init.inst = inst; + duCb.init.region = region; + duCb.init.reason = reason; + duCb.init.cfgDone = FALSE; + duCb.init.pool = DU_POOL; + duCb.init.acnt = FALSE; + duCb.init.trc = FALSE; + duCb.init.usta = TRUE; + duCb.mem.region = DFLT_REGION; + duCb.mem.pool = DU_POOL; + + duCb.f1Status = FALSE; + duCb.e2Status = FALSE; + + for(id = 0; id < MAX_NUM_CELL; id ++) + { + duCb.cfgCellLst[id] = NULL; + duCb.actvCellLst[id] = NULL; + } + duCb.numUe = 0; + memset(duCb.ueCcchCtxt, 0, MAX_NUM_UE * sizeof(UeCcchCtxt)); + duCb.numCfgCells = 0; + duCb.numActvCells = 0; + + ODU_SET_PROC_ID(DU_PROC); return ROK; @@ -68,114 +123,205 @@ S16 duActvInit(Ent entity, Inst inst, Region region, Reason reason) * RFAILED - failure * ***************************************************************************/ -S16 duActvTsk(Pst *pst, Buffer *mBuf) +uint8_t duActvTsk(Pst *pst, Buffer *mBuf) { - S16 ret = ROK; + uint8_t ret = ROK; switch(pst->srcEnt) { case ENTDUAPP: - { - switch(pst->event) - { - case EVTCFG: - { - duProcCfgComplete(); - SPutMsg(mBuf); - break; - } - default: - { - printf("\nInvalid event received at duActvTsk from ENTDUAPP"); - SPutMsg(mBuf); - ret = RFAILED; - } - } - - break; - } - case ENTF1AP: - { - - break; - } - case ENTRG: //TODO: Layer cfg for RLC UL, DL and MAC must be done - { - switch(pst->event) - { - //Config complete - case EVTCFG: - { - //TODO: Implement duEstablishSctpToCu(); - SPutMsg(mBuf); - break; - } - default: - { - printf("\nInvalid event received at duActvTsk from ENTRG"); - SPutMsg(mBuf); - ret = RFAILED; + { + switch(pst->event) + { + case EVTCFG: + { + DU_LOG("\n****** Received initial configs at DU APP ******\n"); + duProcCfgComplete(); + ODU_PUT_MSG_BUF(mBuf); + break; + } + default: + { + DU_LOG("\nDU_APP : Invalid event received at duActvTsk from ENTDUAPP"); + ODU_PUT_MSG_BUF(mBuf); + ret = RFAILED; + } + } + + break; + } + case ENTRLC: + { + switch(pst->event) + { + case LKW_EVT_CFG_CFM: + { + ret = unpackRlcConfigCfm(DuHdlRlcCfgComplete, pst, mBuf); + break; + } + case LKW_EVT_CNTRL_CFM: + { + ret = cmUnpkLkwCntrlCfm(duHdlRlcCntrlCfgComplete, pst, mBuf); + break; + } + case LKW_EVT_STA_IND: + { + break; + } + case EVENT_RLC_UL_UE_CREATE_RSP: + { + ret = unpackRlcUlUeCreateRsp(DuProcRlcUlUeCreateRsp, pst, mBuf); + break; + } + case EVENT_UL_RRC_MSG_TRANS_TO_DU: + { + ret = unpackRlcUlRrcMsgToDu(DuProcRlcUlRrcMsgTrans, pst, mBuf); + break; } - } + case EVENT_RRC_DELIVERY_MSG_TRANS_TO_DU: + { + ret = unpackRrcDeliveryReportToDu(DuProcRlcRrcDeliveryReport, pst, mBuf); + break; + } + default: + { + DU_LOG("\nDU_APP : Invalid event %d received at duActvTsk from ENTRLC", \ + pst->event); + ODU_PUT_MSG_BUF(mBuf); + ret = RFAILED; + } + } + break; + } + case ENTMAC: + { + switch(pst->event) + { + //Config complete + case EVTCFG: + { + ODU_PUT_MSG_BUF(mBuf); + break; + } + case EVTLRGCFGCFM: + { + ret = cmUnpkLrgCfgCfm(duHdlMacCfgComplete, pst, mBuf); + break; + } + case EVTLRGCNTRLCFM: + { + break; + } + case EVTMACSCHGENCFGCFM: + { + ret = cmUnpkLrgSchCfgCfm(duHdlSchCfgComplete, pst, mBuf); + break; + } + case EVENT_MAC_CELL_CONFIG_CFM: + { + ret = unpackMacCellCfgCfm(duHandleMacCellCfgCfm, pst, mBuf); + break; + } + case EVENT_MAC_SLOT_IND: + { + ret = unpackMacSlotInd(duHandleSlotInd, pst, mBuf); + break; + } + case EVENT_MAC_STOP_IND: + { + ret = unpackMacStopInd(duHandleStopInd, pst, mBuf); + break; + } + case EVENT_MAC_UL_CCCH_IND: + { + ret = unpackMacUlCcchInd(duHandleUlCcchInd, pst, mBuf); + break; + } + case EVENT_MAC_UE_CREATE_RSP: + { + ret = unpackDuMacUeCreateRsp(DuHandleMacUeCreateRsp, pst, mBuf); + break; + } + + default: + { + DU_LOG("\nDU_APP : Invalid event received at duActvTsk from ENTMAC"); + ODU_PUT_MSG_BUF(mBuf); + ret = RFAILED; + } + } - break; - } + break; + } case ENTSCTP: - { - switch(pst->event) - { - case EVTSCTPUP: - { - //Setup F1-C - SPutMsg(mBuf); - break; - } - default: - { - printf("\nInvalid event received at duActvTsk from ENTRG"); - SPutMsg(mBuf); - ret = RFAILED; - } + { + switch(pst->event) + { + case EVENT_CU_DATA: + { + F1APMsgHdlr(mBuf); + break; + } + case EVENT_SCTP_NTFY: + { + ret = cmUnpkSctpNtfy(duSctpNtfyHdl, pst, mBuf); + break; + } + case EVENT_RIC_DATA: + { + E2APMsgHdlr(mBuf); + break; + } + default: + { + DU_LOG("\nDU_APP : Invalid event received at duActvTsk from ENTSCTP"); + ret = RFAILED; + } - } - } + } + ODU_PUT_MSG_BUF(mBuf); + break; + } + case ENTEGTP: + { + switch(pst->event) + { + case EVTCFGCFM: + { + unpackEgtpCfgCfm(duHdlEgtpCfgComplete, mBuf); + break; + } + case EVTSRVOPENCFM: + { + unpackEgtpSrvOpenCfm(duHdlEgtpSrvOpenComplete, mBuf); + break; + } + case EVTTNLMGMTCFM: + { + unpackEgtpTnlMgmtCfm(duHdlEgtpTnlMgmtCfm, mBuf); + break; + } + default: + { + DU_LOG("\nDU_APP : Invalid event[%d] received at duActvTsk from ENTEGTP", pst->event); + ret = RFAILED; + } + } + ODU_PUT_MSG_BUF(mBuf); + break; + } default: - { - printf("\n DU APP can not process message from Entity %d", pst->srcEnt); - SPutMsg(mBuf); - ret = RFAILED; - } + { + DU_LOG("\nDU_APP : DU APP can not process message from Entity %d", pst->srcEnt); + ODU_PUT_MSG_BUF(mBuf); + ret = RFAILED; + } } - - SExitTsk(); + ODU_EXIT_TASK(); return ret; } -/************************************************************************** - * @brief Function to invoke DU Layer Configs - * - * @details - * - * Function : duProcCfgComplete - * - * Functionality: - * Initiates Configs towards layers of DU - * - * @param[in] void - * @return ROK - success - * RFAILED - failure - * - ***************************************************************************/ -S16 duProcCfgComplete() -{ -//TBD: invoke SCTP/layer config - -// duHdlRlcUlCfgEvent(); - - return ROK; -} - /********************************************************************** - End of file -**********************************************************************/ + End of file + **********************************************************************/