[Epic-ID: ODUHIGH-538] Compilation fix 29/12529/12
authorlal.harshita <Harshita.Lal@radisys.com>
Wed, 14 Feb 2024 09:25:53 +0000 (14:55 +0530)
committerlal.harshita <Harshita.Lal@radisys.com>
Thu, 15 Feb 2024 08:42:29 +0000 (14:12 +0530)
Change-Id: I5549082bdf1d6a06df203bf326c7bb08cf8c3a44
Signed-off-by: lal.harshita <Harshita.Lal@radisys.com>
Dockerfile
Dockerfile-cu-stub
build/common/du_app.mak
build/config/odu_config.xml
build/odu/makefile
src/du_app/du_cfg.c
src/du_app/du_cfg.h
src/du_app/du_mgr_main.c

index 84b8383..76b6fc5 100644 (file)
@@ -5,7 +5,7 @@ FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0
 ADD . /opt/o-du-l2
 WORKDIR /opt/o-du-l2
 
-RUN apt-get update && apt-get install -y libpcap-dev
+RUN apt-get update && apt-get install -y libpcap-dev && apt-get install -y libxml2-dev
 
 RUN cd build/odu && make clean_odu odu MACHINE=BIT64 MODE=FDD
 
index e1efcd5..1512680 100644 (file)
@@ -3,7 +3,7 @@ FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0
 ADD . /opt/o-du-l2
 WORKDIR /opt/o-du-l2
 
-RUN apt-get update && apt-get install -y libpcap-dev
+RUN apt-get update && apt-get install -y libpcap-dev && apt-get install -y libxml2-dev
 
 RUN cd build/odu && make clean_cu cu_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
 
index ad15417..2be0cc6 100644 (file)
@@ -35,15 +35,13 @@ HDR_FILES+=$(wildcard $(CM_DIR)/lrg*.[hx])
 lib: $(LIB_DIR)/libduapp.a
 include $(COM_BUILD_DIR)/compile.mak
 
-ifdef XML_BASED_CONFIG
-I_OPTS+=-I/usr/include/libxml2
-endif
 I_OPTS+=-I$(ROOT_DIR)/src/mt
 I_OPTS+=-I$(ROOT_DIR)/src/codec_utils/common
 I_OPTS+=-I$(ROOT_DIR)/src/codec_utils/F1AP
 I_OPTS+=-I$(ROOT_DIR)/src/codec_utils/RRC
 I_OPTS+=-I$(ROOT_DIR)/src/codec_utils/E2AP
 I_OPTS+=-I$(ROOT_DIR)/src/codec_utils/E2SM_KPM
+I_OPTS+=-I/usr/include/libxml2
 
 ifeq ($(O1_ENABLE),YES)
 I_OPTS+=-I$(ROOT_DIR)/src/o1
index 97f7b9d..255fb64 100644 (file)
@@ -1,6 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<DU_CFG_PARAMS xmlns = "odu_config.xml">
+<DU_CFG_PARAMS xmlns = "urn:o-ran:odu:configuration">
+   <THREAD_AFFINITY>
+      <DU_APP_CORE>16</DU_APP_CORE>
+      <EGTP_CORE>27</EGTP_CORE>
+      <RLC_MAC_CORE>18</RLC_MAC_CORE>
+      <RLC_UL_CORE>22</RLC_UL_CORE>
+      <SCH_CORE>22</SCH_CORE>
+      <SCTP_CORE>25</SCTP_CORE>
+      <LOWER_MAC_CORE>21</LOWER_MAC_CORE>
+   </THREAD_AFFINITY>
    <DU_ID>1</DU_ID>
    <DU_NAME>ORAN OAM DU</DU_NAME>
    <MAX_NUM_DRB>29</MAX_NUM_DRB>
index 39fcf83..a1f4ffd 100644 (file)
@@ -74,7 +74,7 @@ endif
 # macro for output file name and makefile name
 #
 
-PLTFRM_FLAGS= -UMSPD -DODU -DINTEL_FAPI -UODU_MEMORY_DEBUG_LOG -DDEBUG_ASN_PRINT -UDEBUG_PRINT -DERROR_PRINT -USTART_DL_UL_DATA -UNR_DRX -UCALL_FLOW_DEBUG_LOG -UODU_SLOT_IND_DEBUG_LOG 
+PLTFRM_FLAGS=-UMSPD -DODU -DINTEL_FAPI -UODU_MEMORY_DEBUG_LOG -DDEBUG_ASN_PRINT -UDEBUG_PRINT -DERROR_PRINT -USTART_DL_UL_DATA -UNR_DRX -UCALL_FLOW_DEBUG_LOG -UODU_SLOT_IND_DEBUG_LOG 
 
 ifeq ($(MODE),TDD)
    PLTFRM_FLAGS += -DNR_TDD
@@ -109,10 +109,7 @@ export BUILD
 export I_OPTS
 
 # Add to the linker options the platform specific components
-L_OPTS+=-lnsl -lrt -lm -lpthread -lsctp
-ifdef XML_BASED_CONFIG
-L_OPTS+=-lxml2
-endif
+L_OPTS+=-lnsl -lrt -lm -lpthread -lsctp -lxml2
 
 ifeq ($(PHY), INTEL_L1)
        L_OPTS+=-L/root/Intel-L1-20.11.1/phy/wls_lib/ -lwls                         \
index eccec22..e808132 100644 (file)
 /* This file contains all utility functions */
 #include "common_def.h"
 
-#ifdef XML_BASED_CONFIG
 #include <libxml/parser.h>
 #include <libxml/tree.h>
 #include <libxml/xmlmemory.h>
 #include <arpa/inet.h>
-#endif
 
 #include "du_tmr.h"
 #include "legtp.h"
@@ -5475,7 +5473,6 @@ uint8_t parseDuCfgParams(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur)
  * ****************************************************************/
 uint8_t duReadCfg()
 {
-#ifdef XML_BASED_CONFIG
    const char *filename = "../build/config/odu_config.xml";
    xmlDocPtr doc = NULLP;
    xmlNodePtr cur = NULLP;
@@ -5489,7 +5486,7 @@ uint8_t duReadCfg()
    }
 
    cur = xmlDocGetRootElement(doc);
-   ns = xmlSearchNsByHref(doc, cur, (const xmlChar *)"odu_config.xml");
+   ns = xmlSearchNsByHref(doc, cur, (const xmlChar *)"urn:o-ran:odu:configuration");
    if(ns == NULL)
    {
       DU_LOG("\nERROR  --> DU_APP: XML Namespace not found.\n");
@@ -5498,17 +5495,16 @@ uint8_t duReadCfg()
       return RFAILED;
    }
 
+#ifdef XML_BASED_CONFIG
    parseDuCfgParams(doc, ns, cur);
+#endif
 
    xmlFreeDoc(doc);
    xmlCleanupParser();
-#endif
 
    Pst pst;
    Buffer *mBuf;
 
-   memset(&duCfgParam, 0, sizeof(DuCfgParams));
-
    /* Read configs into duCfgParams */
    if(readCfg() != ROK)
    {
index aacb3e8..14007fd 100644 (file)
@@ -1247,6 +1247,18 @@ typedef struct sib1Params
    SrvCellCfgCommSib     srvCellCfgCommSib;
 }Sib1Params;
 
+typedef struct threadInfo
+{
+   SSTskId duAppSTskId;
+   SSTskId egtpSTskId;
+   SSTskId sctpSTskId;
+   SSTskId rlcUlSTskId;
+   SSTskId rlcMacSTskId;
+   SSTskId schSTskId;
+   SSTskId lwrMacSTskId;
+   SSTskId phyStubSlotIndSTskId;
+}ThreadInfo;
+
 typedef struct duCfgParams
 {  
    uint32_t           duId;
@@ -1254,6 +1266,7 @@ typedef struct duCfgParams
    uint16_t           maxNumDrb;
    uint16_t           maxSupportedUes;
    uint32_t           maxUe;
+   ThreadInfo         threadInfo;
    SctpParams         sctpParams;                  /* SCTP Params */
    F1EgtpParams       egtpParams;                  /* EGTP Params */
    SchedulerCfg       schedCfg;
index d17d93d..724d21b 100644 (file)
@@ -581,7 +581,7 @@ 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;
@@ -592,7 +592,7 @@ uint8_t commonInit()
 #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;
@@ -603,7 +603,7 @@ uint8_t commonInit()
 #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;
@@ -615,7 +615,7 @@ uint8_t commonInit()
 #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;
@@ -625,7 +625,7 @@ uint8_t commonInit()
 #endif
    
    /* system task for SCH */
-   if(ODU_CREATE_TASK(PRIOR1, &sch_stsk) != ROK)
+   if(ODU_CREATE_TASK(PRIOR1, &duCfgParam.threadInfo.schSTskId) != ROK)
    {
       DU_LOG("\nERROR  -->  DU_APP : System Task creation for SCH failed");
       return RFAILED;
@@ -635,7 +635,7 @@ uint8_t commonInit()
 #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;
@@ -645,7 +645,7 @@ uint8_t commonInit()
 #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;
@@ -656,7 +656,7 @@ uint8_t commonInit()
 
 #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;
@@ -665,50 +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(schInit(sch_stsk) != ROK)
+   if(schInit(duCfgParam.threadInfo.schSTskId) != ROK)
    {
       DU_LOG("\nERROR  -->  DU_APP : SCH Tapa Task initialization failed");
       return RFAILED;
    }
 
-   if(lwrMacInit(lwr_mac_stsk) != ROK)
+   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;
@@ -775,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)
    {