Using TAPA Task to generated PHY Stub's slot indication [Issue-Id: ODUHIGH-348]
[o-du/l2.git] / src / du_app / du_mgr_main.c
index 712465d..d498830 100644 (file)
@@ -33,6 +33,7 @@
 #ifdef O1_ENABLE
 
 #include "O1Interface.h"
+#include "ConfigInterface.h"
 
 #endif
 
@@ -44,6 +45,10 @@ uint8_t rgActvTsk (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;
@@ -84,6 +89,55 @@ uint8_t duAppInit(SSTskId sysTskId)
    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
@@ -271,6 +325,44 @@ uint8_t lwrMacInit(SSTskId sysTskId)
    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
@@ -290,19 +382,20 @@ uint8_t lwrMacInit(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;
+   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)
@@ -310,7 +403,7 @@ uint8_t commonInit()
       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)
@@ -320,7 +413,7 @@ uint8_t commonInit()
    }
    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)
@@ -328,7 +421,7 @@ uint8_t commonInit()
       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)
@@ -336,7 +429,7 @@ uint8_t commonInit()
       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)
@@ -344,7 +437,17 @@ uint8_t commonInit()
       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)
@@ -383,6 +486,14 @@ uint8_t commonInit()
       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;
 }
 
@@ -443,7 +554,6 @@ uint8_t tst(void)
    if(start_O1_module() != ROK)
       return RFAILED;
 #endif
-
    //Initialize TAPA layers
    if(duInit() != ROK)
    {