*******************************************************************************/
/* 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
/*******************************************************************
*
*
* ****************************************************************/
-S16 tst()
+uint8_t tst()
{
init_log();
- DU_LOG("\nStarting RIC_STUB");
+ DU_LOG("\nINFO --> RIC : Starting RIC_STUB");
/* Read RIC configurations */
readRicCfg();
/* 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;
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);
-
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;
- ricCfgParams.sctpParams.duPort = DU_PORT;
-
- /* RIC IP Address and Port*/
- ricCfgParams.sctpParams.ricIpAddr.ipV4Addr = ipv4_ric;
- ricCfgParams.sctpParams.ricIpAddr.ipV6Pres = false;
- ricCfgParams.sctpParams.ricPort = RIC_PORT;
+#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);
+
+ ricCfgParams.sctpParams.sctpAssoc[0].duIpAddr.ipV4Addr = ipv4_du;
+ ricCfgParams.sctpParams.sctpAssoc[0].duIpAddr.ipV6Pres = false;
+ ricCfgParams.sctpParams.sctpAssoc[0].duPort = g_cfg.RIC_Port;
+
+ ricCfgParams.sctpParams.sctpAssoc[0].ricIpAddr.ipV4Addr = ipv4_ric;
+ ricCfgParams.sctpParams.sctpAssoc[0].ricIpAddr.ipV6Pres = false;
+ ricCfgParams.sctpParams.sctpAssoc[0].ricPort = g_cfg.RIC_Port;
+
+ ricCfgParams.sctpParams.numDu = 1;
+
+#else
+ ricCfgParams.sctpParams.numDu = 0;
+ numDu = &ricCfgParams.sctpParams.numDu;
+ while(*numDu < MAX_DU_SUPPORTED)
+ {
+ /* DU IP Address and Port*/
+ memset(&ipv4_du, 0, sizeof(uint32_t));
+ cmInetAddr((S8*)DU_IP_V4_ADDR[*numDu], &ipv4_du);
+ ricCfgParams.sctpParams.sctpAssoc[*numDu].duIpAddr.ipV4Addr = ipv4_du;
+ ricCfgParams.sctpParams.sctpAssoc[*numDu].duIpAddr.ipV6Pres = false;
+ ricCfgParams.sctpParams.sctpAssoc[*numDu].duPort = DU_SCTP_PORT[*numDu];
+
+ /* RIC IP Address and Port*/
+ memset(&ipv4_du, 0, sizeof(uint32_t));
+ cmInetAddr((S8*)RIC_IP_V4_ADDR, &ipv4_ric);
+ ricCfgParams.sctpParams.sctpAssoc[*numDu].ricIpAddr.ipV4Addr = ipv4_ric;
+ ricCfgParams.sctpParams.sctpAssoc[*numDu].ricIpAddr.ipV6Pres = false;
+ ricCfgParams.sctpParams.sctpAssoc[*numDu].ricPort = RIC_SCTP_PORT_TO_DU[*numDu];
+ (*numDu)++;
+ }
+#endif
/*PLMN*/
ricCfgParams.plmn.mcc[0] = PLMN_MCC0;