#include "du_sctp.h"
#include "du_egtp.h"
+#ifdef O1_ENABLE
+
+#include "O1Interface.h"
+#include "ConfigInterface.h"
+
+#endif
+
uint8_t rlcUlActvTsk (Pst *, Buffer *);
uint8_t rlcUlActvInit (Ent, Inst, Region, Reason);
uint8_t rlcDlActvTsk (Pst *, Buffer *);
uint8_t rgActvInit (Ent, Inst, Region, Reason);
uint8_t lwrMacActvTsk(Pst *, Buffer *);
uint8_t lwrMacActvInit(Ent, Inst, Region, Reason);
+#ifndef INTEL_WLS_MEM
+uint8_t phyStubActvTsk(Pst *, Buffer *);
+uint8_t phyStubActvInit(Ent, Inst, Region, Reason);
+#endif
/* Global variable */
DuCfgParams duCfgParam;
return ROK;
}
+#ifdef O1_ENABLE
+/*******************************************************************
+ *
+ * @brief Bring the cell Up
+ *
+ * @details
+ *
+ * Function : bringCellUp
+ *
+ * Functionality:
+ * - Bring the cell Up when requested from OAM
+ *
+ * @params[in] Cell Id
+ * @return true - success
+ * false - failure
+ *
+ * ****************************************************************/
+
+bool bringCellUp(uint16_t cellId)
+{
+ duProcCfgComplete();
+ BuildAndSendF1SetupReq();
+ return true;
+}
+
+/*******************************************************************
+ *
+ * @brief Bring the cell Down
+ *
+ * @details
+ *
+ * Function : bringCellDown
+ *
+ * Functionality:
+ * - Bring the cell Down when requested from OAM
+ *
+ * @params[in] Cell Id
+ * @return true - success
+ * false - failure
+ *
+ * ****************************************************************/
+
+bool bringCellDown(uint16_t cellId)
+{
+ BuildAndSendDUConfigUpdate(SERV_CELL_TO_DELETE);
+ return true;
+}
+#endif
+
/*******************************************************************
*
* @brief Initializes EGTP
return ROK;
}
+#ifndef INTEL_WLS_MEM
+/*******************************************************************
+ *
+ * @brief Initializes Phy stub slot indication generator task
+ *
+ * @details
+ *
+ * Function : phyStubInit
+ *
+ * Functionality:
+ * - Registers and attaches TAPA tasks for Phy stub's slot
+ * indication generator
+ *
+ * @params[in] system task ID
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t phyStubInit(SSTskId sysTskId)
+{
+ /* Register PHY stub slot indication TAPA Task */
+ if(ODU_REG_TTSK((Ent)ENTPHYSTUB, (Inst)0, (Ttype)TTNORM, (Prior)PRIOR0,
+ phyStubActvInit, (ActvTsk)phyStubActvTsk) != ROK)
+ {
+ return RFAILED;
+ }
+ /* Attach Phy stub slot indication TAPA Task */
+ if (ODU_ATTACH_TTSK((Ent)ENTPHYSTUB, (Inst)0, sysTskId)!= ROK)
+ {
+ return RFAILED;
+ }
+
+ DU_LOG("\nINFO --> DU_APP : PHY stub slot indication TAPA task created and registered to %d sys task",
+ sysTskId);
+ return ROK;
+}
+#endif
+
/*******************************************************************
*
* @brief Initializes system and TAPA tasks
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;
+ SSTskId du_app_stsk, egtp_stsk, sctp_stsk, rlc_ul_stsk, rlc_mac_cl_stsk, lwr_mac_stsk, phy_stub_slot_ind_stsk;
pthread_attr_t attr;
ODU_SET_PROC_ID(DU_PROC);
+ /* 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)
{
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, 15, 0);
+ ODU_SET_THREAD_AFFINITY(&du_app_stsk, SS_AFFINITY_MODE_EXCL, 16, 0);
/* system task for EGTP */
if(ODU_CREATE_TASK(PRIOR0, &egtp_stsk) != ROK)
DU_LOG("\nERROR --> DU_APP : System Task creation for EGTP failed");
return RFAILED;
}
- ODU_SET_THREAD_AFFINITY(&egtp_stsk, SS_AFFINITY_MODE_EXCL, 16, 0);
+ ODU_SET_THREAD_AFFINITY(&egtp_stsk, SS_AFFINITY_MODE_EXCL, 17, 0);
/* system task for RLC_DL and MAC */
if(ODU_CREATE_TASK(PRIOR0, &rlc_mac_cl_stsk) != ROK)
}
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
- ODU_SET_THREAD_AFFINITY(&rlc_mac_cl_stsk, SS_AFFINITY_MODE_EXCL, 17, 0);
+ ODU_SET_THREAD_AFFINITY(&rlc_mac_cl_stsk, SS_AFFINITY_MODE_EXCL, 18, 0);
/* system task for RLC UL */
if(ODU_CREATE_TASK(PRIOR1, &rlc_ul_stsk) != 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, 18, 0);
+ ODU_SET_THREAD_AFFINITY(&rlc_ul_stsk, SS_AFFINITY_MODE_EXCL, 19, 0);
/* system task for SCTP receiver thread */
if(ODU_CREATE_TASK(PRIOR0, &sctp_stsk) != ROK)
DU_LOG("\nERROR --> DU_APP : System Task creation for SCTP failed");
return RFAILED;
}
- ODU_SET_THREAD_AFFINITY(&sctp_stsk, SS_AFFINITY_MODE_EXCL, 19, 0);
+ ODU_SET_THREAD_AFFINITY(&sctp_stsk, SS_AFFINITY_MODE_EXCL, 20, 0);
/* system task for lower-mac receiver thread */
if(ODU_CREATE_TASK(PRIOR0, &lwr_mac_stsk) != 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, 20, 0);
+ ODU_SET_THREAD_AFFINITY(&lwr_mac_stsk, SS_AFFINITY_MODE_EXCL, 21, 0);
+
+#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)
+ {
+ DU_LOG("\nERROR --> DU_APP : System Task creation for Phy stub slot indication generator failed. MAX STSK [%d]", SS_MAX_STSKS);
+ return RFAILED;
+ }
+
+#endif
/* Create TAPA tasks */
if(duAppInit(du_app_stsk) != ROK)
return RFAILED;
}
+#ifndef INTEL_WLS_MEM
+ if(phyStubInit(phy_stub_slot_ind_stsk) != ROK)
+ {
+ DU_LOG("\nERROR --> DU_APP : PHY stub slot indication Tapa Task initialization failed");
+ return RFAILED;
+ }
+#endif
+
return ROK;
}
{
init_log();
+#ifdef O1_ENABLE
+ if(start_O1_module() != ROK)
+ return RFAILED;
+#endif
//Initialize TAPA layers
if(duInit() != ROK)
{
//Read all the configs from du_utils.c into duCfgParams
duReadCfg();
+#ifdef O1_ENABLE
+ //Send VES PNF registration message to SMO
+ sendPnfRegistration();
+#endif
+
return ROK;
+
}/* end of main()*/
/**********************************************************************