X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fric_stub%2Fric_stub.c;h=245629f37104f8975b665e59acdd487bbd6107ae;hb=HEAD;hp=dd07ec48b5c4bd4b75c90f185a73955b32a38e3e;hpb=8660dd47a5ef27b62300fabf6b027852f1d5d026;p=o-du%2Fl2.git diff --git a/src/ric_stub/ric_stub.c b/src/ric_stub/ric_stub.c index dd07ec48b..245629f37 100644 --- a/src/ric_stub/ric_stub.c +++ b/src/ric_stub/ric_stub.c @@ -17,27 +17,18 @@ *******************************************************************************/ /* This functions contains main() for ric_app */ - -#include "ric_stub.h" +#include "common_def.h" #include "ric_stub_sctp.h" +#include "ric_stub.h" -#define RIC_ID 1 -#define RIC_NAME "ORAN_OAM_RIC" -#define DU_IP_V4_ADDR "10.0.2.20" -#define RIC_IP_V4_ADDR "10.0.2.30" -#define DU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0001" -#define RIC_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0011" -#define DU_PORT 38482 -#define RIC_PORT 38482 -#define RRC_VER 0 -#define EXT_RRC_VER 5 -#define PLMN_MCC0 3 -#define PLMN_MCC1 1 -#define PLMN_MCC2 1 -#define PLMN_MNC0 4 -#define PLMN_MNC1 8 -#define PLMN_MNC2 0 +#ifdef O1_ENABLE +#include "CmInterface.h" +#endif +#ifdef O1_ENABLE +extern StartupConfig g_cfg; +#endif + RicGlobalCb ricCb; /******************************************************************* * * @brief Handles SCTP notification @@ -60,18 +51,18 @@ void sctpNtfyInd(CmInetSctpNotification *ntfy) void init_log() { - openlog("CU_STUB",LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); + openlog("RIC_STUB",LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); } /******************************************************************* * - * @brief Main function of CU APP + * @brief Main function of E2 APP * * @details * * Function : main * * Functionality: - * - Reads CU related configurations + * - Reads RIC related configurations * - Initialize SCTP Parameters * - Start SCTP receiver thread * @@ -81,22 +72,21 @@ void init_log() * * ****************************************************************/ -S16 tst() +uint8_t tst() { init_log(); - DU_LOG("\nStarting RIC_STUB"); - /* Read CU configurations */ + DU_LOG("\nINFO --> RIC : Starting RIC_STUB"); + /* Read RIC configurations */ readRicCfg(); - /* Initializing SCTP global parameters */ - sctpActvInit(); - - /* Start CU-SCTP to listen on incoming connection */ + /* Start RIC-SCTP to listen on incoming connection */ sctpCfgReq(); + /*Sleep is introduced for GDB to increase the waiting time for RIC Configuration from DUAPP*/ + sleep(1); sctpStartReq(); - RETVALUE(ROK); + return ROK; } /******************************************************************* * @@ -117,37 +107,65 @@ S16 tst() void readRicCfg() { - U32 ipv4_du, ipv4_ric; + uint8_t *numDu; + uint32_t ipv4_du, ipv4_ric; - DU_LOG("\nReading RIC configurations"); + DU_LOG("\nINFO --> RIC : Reading RIC configurations"); - cmInetAddr((S8*)DU_IP_V4_ADDR, &ipv4_du); - cmInetAddr((S8*)RIC_IP_V4_ADDR, &ipv4_ric); - - cuCfgParams.cuId = RIC_ID; - strcpy(cuCfgParams.cuName, RIC_NAME); - - /* DU IP Address and Port*/ - cuCfgParams.sctpParams.duIpAddr.ipV4Addr = ipv4_du; - cuCfgParams.sctpParams.duIpAddr.ipV6Pres = false; - cuCfgParams.sctpParams.duPort = DU_PORT; + ricCb.ricCfgParams.ricId = RIC_ID; + strcpy(ricCb.ricCfgParams.ricName, RIC_NAME); +#ifdef O1_ENABLE + if( getStartupConfigForStub(&g_cfg) != ROK ) + { + DU_LOG("\nError --> RIC : Could not fetch startup "\ + "configurations from Netconf interface\n"); + exit(1); + } + + cmInetAddr((S8*)g_cfg.DU_IPV4_Addr, &ipv4_du); + cmInetAddr((S8*)g_cfg.RIC_IPV4_Addr, &ipv4_ric); + + ricCb.ricCfgParams.sctpParams.destCb[0].destIpAddr.ipV4Addr = ipv4_du; + ricCb.ricCfgParams.sctpParams.destCb[0].destIpAddr.ipV6Pres = false; + ricCb.ricCfgParams.sctpParams.destCb[0].destPort = g_cfg.RIC_Port; + + ricCb.ricCfgParams.sctpParams.localIpAddr.ipV4Addr = ipv4_ric; + ricCb.ricCfgParams.sctpParams.localIpAddr.ipV6Pres = false; + ricCb.ricCfgParams.sctpParams.e2SctpPort = g_cfg.RIC_Port; + ricCb.ricCfgParams.sctpParams.usage = BOTH_FUNCTIONALITY; + ricCb.ricCfgParams.sctpParams.numDestNode = 1; +#else /* RIC IP Address and Port*/ - cuCfgParams.sctpParams.ricIpAddr.ipV4Addr = ipv4_ric; - cuCfgParams.sctpParams.ricIpAddr.ipV6Pres = false; - cuCfgParams.sctpParams.ricPort = RIC_PORT; + memset(&ipv4_du, 0, sizeof(uint32_t)); + cmInetAddr((S8*)LOCAL_IP_RIC, &ipv4_ric); + ricCb.ricCfgParams.sctpParams.localIpAddr.ipV4Addr = ipv4_ric; + ricCb.ricCfgParams.sctpParams.localIpAddr.ipV6Pres = false; + ricCb.ricCfgParams.sctpParams.e2SctpPort = E2_SCTP_PORT; + ricCb.ricCfgParams.sctpParams.usage = BOTH_FUNCTIONALITY; + + ricCb.ricCfgParams.sctpParams.numDestNode = 0; + numDu = &ricCb.ricCfgParams.sctpParams.numDestNode; + while(*numDu < NUM_E2_ASSOC) + { + /* DU IP Address and Port*/ + memset(&ipv4_du, 0, sizeof(uint32_t)); + cmInetAddr((S8*)REMOTE_IP_DU[*numDu], &ipv4_du); + ricCb.ricCfgParams.sctpParams.destCb[*numDu].destIpAddr.ipV4Addr = ipv4_du; + ricCb.ricCfgParams.sctpParams.destCb[*numDu].destIpAddr.ipV6Pres = false; + ricCb.ricCfgParams.sctpParams.destCb[*numDu].destPort = E2_SCTP_PORT; + + (*numDu)++; + } +#endif /*PLMN*/ - cuCfgParams.plmn.mcc[0] = PLMN_MCC0; - cuCfgParams.plmn.mcc[1] = PLMN_MCC1; - cuCfgParams.plmn.mcc[2] = PLMN_MCC2; - cuCfgParams.plmn.mnc[0] = PLMN_MNC0; - cuCfgParams.plmn.mnc[1] = PLMN_MNC1; - cuCfgParams.plmn.mnc[2] = PLMN_MNC2; - - /*RRC Version*/ - cuCfgParams.rrcVersion.rrcVer = RRC_VER; - cuCfgParams.rrcVersion.extRrcVer = EXT_RRC_VER; + ricCb.ricCfgParams.plmn.mcc[0] = PLMN_MCC0; + ricCb.ricCfgParams.plmn.mcc[1] = PLMN_MCC1; + ricCb.ricCfgParams.plmn.mcc[2] = PLMN_MCC2; + ricCb.ricCfgParams.plmn.mnc[0] = PLMN_MNC0; + ricCb.ricCfgParams.plmn.mnc[1] = PLMN_MNC1; + ricCb.ricCfgParams.plmn.mnc[2] = PLMN_MNC2; } /* End of readCuCfg */ /**********************************************************************