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=0f36cb52d59e901d88b93dca637b3e019354e74d;hpb=03343a6a545fb0f5bd36fb309a5dee153831c54f;p=o-du%2Fl2.git diff --git a/src/ric_stub/ric_stub.c b/src/ric_stub/ric_stub.c index 0f36cb52d..245629f37 100644 --- a/src/ric_stub/ric_stub.c +++ b/src/ric_stub/ric_stub.c @@ -18,42 +18,17 @@ /* This functions contains main() for ric_app */ #include "common_def.h" -#include "ric_stub.h" #include "ric_stub_sctp.h" -#include "du_log.h" +#include "ric_stub.h" #ifdef O1_ENABLE #include "CmInterface.h" #endif -#define RIC_ID 1 -#define RIC_NAME "ORAN_OAM_RIC" - -#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" - -#ifndef O1_ENABLE - -#define DU_IP_V4_ADDR "192.168.130.81" -#define RIC_IP_V4_ADDR "192.168.130.80" -#define DU_PORT 36421 -#define RIC_PORT 36421 - -#endif - -#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 extern StartupConfig g_cfg; #endif - + RicGlobalCb ricCb; /******************************************************************* * * @brief Handles SCTP notification @@ -107,6 +82,8 @@ uint8_t tst() /* 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(); return ROK; @@ -130,10 +107,13 @@ uint8_t tst() void readRicCfg() { + uint8_t *numDu; uint32_t ipv4_du, ipv4_ric; DU_LOG("\nINFO --> RIC : Reading RIC configurations"); + ricCb.ricCfgParams.ricId = RIC_ID; + strcpy(ricCb.ricCfgParams.ricName, RIC_NAME); #ifdef O1_ENABLE if( getStartupConfigForStub(&g_cfg) != ROK ) { @@ -144,35 +124,48 @@ void readRicCfg() 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; - ricCfgParams.sctpParams.duPort = g_cfg.RIC_Port; - ricCfgParams.sctpParams.ricPort = g_cfg.RIC_Port; -#else - cmInetAddr((S8*)DU_IP_V4_ADDR, &ipv4_du); - cmInetAddr((S8*)RIC_IP_V4_ADDR, &ipv4_ric); - - ricCfgParams.sctpParams.duPort = DU_PORT; - ricCfgParams.sctpParams.ricPort = RIC_PORT; -#endif - - ricCfgParams.ricId = RIC_ID; - strcpy(ricCfgParams.ricName, RIC_NAME); - - /* DU IP Address and Port*/ - ricCfgParams.sctpParams.duIpAddr.ipV4Addr = ipv4_du; - ricCfgParams.sctpParams.duIpAddr.ipV6Pres = false; + 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*/ - ricCfgParams.sctpParams.ricIpAddr.ipV4Addr = ipv4_ric; - ricCfgParams.sctpParams.ricIpAddr.ipV6Pres = false; + 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*/ - ricCfgParams.plmn.mcc[0] = PLMN_MCC0; - ricCfgParams.plmn.mcc[1] = PLMN_MCC1; - ricCfgParams.plmn.mcc[2] = PLMN_MCC2; - ricCfgParams.plmn.mnc[0] = PLMN_MNC0; - ricCfgParams.plmn.mnc[1] = PLMN_MNC1; - ricCfgParams.plmn.mnc[2] = PLMN_MNC2; + 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 */ /**********************************************************************