X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_mgr_main.c;h=724d21b3675b92e0cb86b55a1936f9587ae549d6;hb=9bfd39713f94e019675b4a255855177462b39bbd;hp=0d171a510b87db207b4f3d0096b86bf17f502057;hpb=6bd517aac8dc6e3166389be3f468c58ba56d5608;p=o-du%2Fl2.git diff --git a/src/du_app/du_mgr_main.c b/src/du_app/du_mgr_main.c index 0d171a510..724d21b36 100644 --- a/src/du_app/du_mgr_main.c +++ b/src/du_app/du_mgr_main.c @@ -18,17 +18,21 @@ /* This file is the entry point for DU APP */ #include "common_def.h" +#include "du_tmr.h" #include "lrg.h" #include "legtp.h" #include "lrg.x" #include "lkw.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_mgr_main.h" #include "du_sctp.h" #include "du_egtp.h" +#include "du_cell_mgr.h" +#include "du_f1ap_msg_hdl.h" #ifdef O1_ENABLE @@ -40,8 +44,10 @@ uint8_t rlcUlActvTsk (Pst *, Buffer *); uint8_t rlcUlActvInit (Ent, Inst, Region, Reason); uint8_t rlcDlActvTsk (Pst *, Buffer *); uint8_t rlcDlActvInit (Ent, Inst, Region, Reason); -uint8_t rgActvTsk (Pst *, Buffer *); -uint8_t rgActvInit (Ent, Inst, Region, Reason); +uint8_t macActvTsk (Pst *, Buffer *); +uint8_t macActvInit (Ent, Inst, Region, Reason); +uint8_t schActvTsk (Pst *, Buffer *); +uint8_t schActvInit(Ent, Inst, Region, Reason); uint8_t lwrMacActvTsk(Pst *, Buffer *); uint8_t lwrMacActvInit(Ent, Inst, Region, Reason); #ifndef INTEL_WLS_MEM @@ -160,13 +166,11 @@ uint8_t setRrmPolicy(RrmPolicyList rrmPolicy[], uint8_t policyNum) { if(duCb.sliceState == SLICE_INFO_NOT_AVAILABLE) { - BuildAndSendSliceConfigReq(duCfgParam.tempSliceCfg.rrmPolicy, duCfgParam.tempSliceCfg.totalRrmPolicy,\ - duCfgParam.tempSliceCfg.totalSliceCount); + BuildAndSendSliceConfigReq(); } else { - BuildAndSendSliceReCfgReq(duCfgParam.tempSliceCfg.rrmPolicy, duCfgParam.tempSliceCfg.totalRrmPolicy,\ - duCfgParam.tempSliceCfg.totalSliceCount); + BuildAndSendSliceRecfgReq(); } } } @@ -362,6 +366,7 @@ uint8_t sctpInit(SSTskId sysTskId) sysTskId); return ROK; } + /******************************************************************* * * @brief Initializes RLC DL, MAC TAPA task @@ -394,7 +399,7 @@ uint8_t rlcDlInit(SSTskId sysTskId) /* Register MAC TAPA Task */ if(ODU_REG_TTSK((Ent)ENTMAC, (Inst)0, (Ttype)TTNORM, (Prior)PRIOR0, - rgActvInit, (ActvTsk)rgActvTsk) != ROK) + macActvInit, (ActvTsk)macActvTsk) != ROK) { return RFAILED; } @@ -403,9 +408,42 @@ uint8_t rlcDlInit(SSTskId sysTskId) { return RFAILED; } + return ROK; + } - DU_LOG("\nINFO --> DU_APP : RLC DL and MAC TAPA task created and registered to \ - %d sys task", sysTskId); +/******************************************************************* + * + * @brief Initializes SCH TAPA task + * + * @details + * + * Function : schInit + * + * Functionality: + * - Registers and attaches TAPA tasks for SCH + * + * @params[in] system task ID + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ + uint8_t schInit(SSTskId sysTskId) + { + /* Register SCH TAPA Task */ + if(ODU_REG_TTSK((Ent)ENTMAC, (Inst)SCH_INST_START, (Ttype)TTNORM, (Prior)PRIOR0, + schActvInit, (ActvTsk)schActvTsk) != ROK) + { + return RFAILED; + } + /* Attach SCH Task */ + if (ODU_ATTACH_TTSK((Ent)ENTMAC, (Inst)SCH_INST_START, sysTskId)!= ROK) + { + return RFAILED; + } + + + DU_LOG("\nINFO --> DU_APP : SCH TAPA task created and registered to \ + %d sys task", sysTskId); return ROK; } @@ -535,7 +573,7 @@ uint8_t phyStubInit(SSTskId sysTskId) uint8_t commonInit() { /* Declare system task Ids */ - SSTskId du_app_stsk, egtp_stsk, sctp_stsk, rlc_ul_stsk, rlc_mac_cl_stsk, lwr_mac_stsk, phy_stub_slot_ind_stsk; + SSTskId du_app_stsk, egtp_stsk, sctp_stsk, rlc_ul_stsk, rlc_mac_cl_stsk, sch_stsk, lwr_mac_stsk, phy_stub_slot_ind_stsk; pthread_attr_t attr; @@ -543,58 +581,82 @@ uint8_t commonInit() /* Intel L1 using core 0-15. ODU-High using 16-21 */ /* system task for DU APP */ - if(ODU_CREATE_TASK(PRIOR0, &du_app_stsk) != ROK) + if(ODU_CREATE_TASK(PRIOR0, &duCfgParam.threadInfo.duAppSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : System Task creation for DU APP failed"); return RFAILED; } - //ODU_SET_THREAD_AFFINITY(&du_app_stsk, SS_AFFINITY_MODE_EXCL, 16, 0); + +#ifdef INTEL_THREAD_AFFINITY + ODU_SET_THREAD_AFFINITY(&du_app_stsk, SS_AFFINITY_MODE_EXCL, 16, 0); +#endif /* system task for EGTP */ - if(ODU_CREATE_TASK(PRIOR0, &egtp_stsk) != ROK) + if(ODU_CREATE_TASK(PRIOR0, &duCfgParam.threadInfo.egtpSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : System Task creation for EGTP failed"); return RFAILED; } - //ODU_SET_THREAD_AFFINITY(&egtp_stsk, SS_AFFINITY_MODE_EXCL, 27, 0); + +#ifdef INTEL_THREAD_AFFINITY + ODU_SET_THREAD_AFFINITY(&egtp_stsk, SS_AFFINITY_MODE_EXCL, 27, 0); +#endif /* system task for RLC_DL and MAC */ - if(ODU_CREATE_TASK(PRIOR0, &rlc_mac_cl_stsk) != ROK) + if(ODU_CREATE_TASK(PRIOR0, &duCfgParam.threadInfo.rlcMacSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : System Task creation for RLC DL/MAC failed"); return RFAILED; } pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); - //ODU_SET_THREAD_AFFINITY(&rlc_mac_cl_stsk, SS_AFFINITY_MODE_EXCL, 18, 0); +#ifdef INTEL_THREAD_AFFINITY + ODU_SET_THREAD_AFFINITY(&rlc_mac_cl_stsk, SS_AFFINITY_MODE_EXCL, 18, 0); +#endif /* system task for RLC UL */ - if(ODU_CREATE_TASK(PRIOR1, &rlc_ul_stsk) != ROK) + if(ODU_CREATE_TASK(PRIOR1, &duCfgParam.threadInfo.rlcUlSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : System Task creation for RLC UL failed"); return RFAILED; } - //ODU_SET_THREAD_AFFINITY(&rlc_ul_stsk, SS_AFFINITY_MODE_EXCL, 22, 0); +#ifdef INTEL_THREAD_AFFINITY + ODU_SET_THREAD_AFFINITY(&rlc_ul_stsk, SS_AFFINITY_MODE_EXCL, 22, 0); +#endif + + /* system task for SCH */ + if(ODU_CREATE_TASK(PRIOR1, &duCfgParam.threadInfo.schSTskId) != ROK) + { + DU_LOG("\nERROR --> DU_APP : System Task creation for SCH failed"); + return RFAILED; + } +#ifdef INTEL_THREAD_AFFINITY + ODU_SET_THREAD_AFFINITY(&sch_stsk, SS_AFFINITY_MODE_EXCL, 22, 0); +#endif /* system task for SCTP receiver thread */ - if(ODU_CREATE_TASK(PRIOR0, &sctp_stsk) != ROK) + if(ODU_CREATE_TASK(PRIOR0, &duCfgParam.threadInfo.sctpSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : System Task creation for SCTP failed"); return RFAILED; } - //ODU_SET_THREAD_AFFINITY(&sctp_stsk, SS_AFFINITY_MODE_EXCL, 25, 0); +#ifdef INTEL_THREAD_AFFINITY + ODU_SET_THREAD_AFFINITY(&sctp_stsk, SS_AFFINITY_MODE_EXCL, 25, 0); +#endif /* system task for lower-mac receiver thread */ - if(ODU_CREATE_TASK(PRIOR0, &lwr_mac_stsk) != ROK) + if(ODU_CREATE_TASK(PRIOR0, &duCfgParam.threadInfo.lwrMacSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : System Task creation for Lower MAC failed"); return RFAILED; } - //ODU_SET_THREAD_AFFINITY(&lwr_mac_stsk, SS_AFFINITY_MODE_EXCL, 21, 0); +#ifdef INTEL_THREAD_AFFINITY + ODU_SET_THREAD_AFFINITY(&lwr_mac_stsk, SS_AFFINITY_MODE_EXCL, 21, 0); +#endif #ifndef INTEL_WLS_MEM /* system task for phy stub's slot indication generator thread */ - if(ODU_CREATE_TASK(PRIOR0, &phy_stub_slot_ind_stsk) != ROK) + if(ODU_CREATE_TASK(PRIOR0, &duCfgParam.threadInfo.phyStubSlotIndSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : System Task creation for Phy stub slot indication generator failed. MAX STSK [%d]", SS_MAX_STSKS); return RFAILED; @@ -603,44 +665,50 @@ uint8_t commonInit() #endif /* Create TAPA tasks */ - if(duAppInit(du_app_stsk) != ROK) + if(duAppInit(duCfgParam.threadInfo.duAppSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : DU APP TAPA Task initialization failed"); return RFAILED; } - if(egtpInit(egtp_stsk) != ROK) + if(egtpInit(duCfgParam.threadInfo.egtpSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : EGTP TAPA Task initialization failed"); return RFAILED; } - if(sctpInit(sctp_stsk) != ROK) + if(sctpInit(duCfgParam.threadInfo.sctpSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : SCTP TAPA Task initialization failed"); return RFAILED; } - if(rlcDlInit(rlc_mac_cl_stsk) != ROK) + if(rlcDlInit(duCfgParam.threadInfo.rlcMacSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : RLC DL Tapa Task initialization failed"); return RFAILED; } - if(rlcUlInit(rlc_ul_stsk) != ROK) + if(rlcUlInit(duCfgParam.threadInfo.rlcUlSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : RLC UL Tapa Task initialization failed"); return RFAILED; } - if(lwrMacInit(lwr_mac_stsk) != ROK) + if(schInit(duCfgParam.threadInfo.schSTskId) != ROK) + { + DU_LOG("\nERROR --> DU_APP : SCH Tapa Task initialization failed"); + return RFAILED; + } + + if(lwrMacInit(duCfgParam.threadInfo.lwrMacSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : Lower MAC Tapa Task initialization failed"); return RFAILED; } #ifndef INTEL_WLS_MEM - if(phyStubInit(phy_stub_slot_ind_stsk) != ROK) + if(phyStubInit(duCfgParam.threadInfo.phyStubSlotIndSTskId) != ROK) { DU_LOG("\nERROR --> DU_APP : PHY stub slot indication Tapa Task initialization failed"); return RFAILED; @@ -707,6 +775,9 @@ uint8_t tst(void) if(start_O1_module() != ROK) return RFAILED; #endif + + memset(&duCfgParam, 0, sizeof(DuCfgParams)); + //Initialize TAPA layers if(duInit() != ROK) {