Initial commit for Bronze release
[o-du/l2.git] / src / cu_stub / cu_stub.c
index 00340e4..61867df 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "cu_stub.h"
 #include "cu_stub_sctp.h"
+#include "cu_stub_egtp.h"
 
 #define CU_ID 1
 #define CU_NAME "ORAN_OAM_CU"
 #define CU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0011"
 #define DU_PORT 38472
 #define CU_PORT 38472 
+#define DU_EGTP_PORT 39001
+#define CU_EGTP_PORT 39002
+#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
 
 /*******************************************************************
  *
@@ -50,6 +61,10 @@ void sctpNtfyInd(CmInetSctpNotification *ntfy)
 //TODO
 }
 
+void init_log()
+{
+       openlog("CU_STUB",LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
+}
 /*******************************************************************
  *
  * @brief Main function of CU APP
@@ -71,13 +86,17 @@ void sctpNtfyInd(CmInetSctpNotification *ntfy)
 
 S16 tst()
 {
-   printf("\nStarting cu_app");
-   
+   init_log();   
+   DU_LOG("\nStarting CU_STUB");
    /* Read CU configurations */
    readCuCfg();
 
+   /* Start CU-EGTP */
+   egtpActvInit();
+   egtpInitReq();
+
    /* Initializing SCTP global parameters */
-   sctpActvInit(0, 0, 0, 0);
+   sctpActvInit();
  
    /* Start CU-SCTP to listen on incoming connection */
    sctpStartReq(); 
@@ -106,7 +125,7 @@ void readCuCfg()
 {
    U32 ipv4_du, ipv4_cu;
 
-   printf("\nReading CU configurations");
+   DU_LOG("\nReading CU configurations");
 
    cmInetAddr((S8*)DU_IP_V4_ADDR, &ipv4_du);
    cmInetAddr((S8*)CU_IP_V4_ADDR, &ipv4_cu);
@@ -128,7 +147,30 @@ void readCuCfg()
    cuCfgParams.sctpParams.cuIpAddr.ipV6Pres = false;
    //strcpy(cuCfgParams.sctpParams.cuIpAddr.ipV6Addr, DU_IP_V6_ADDR);
    cuCfgParams.sctpParams.cuPort = CU_PORT;
-   
+
+   /*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;
+
+
+   /* EGTP Parameters */
+   cuCfgParams.egtpParams.localIp.ipV4Pres = TRUE;
+   cuCfgParams.egtpParams.localIp.ipV4Addr = ipv4_cu;
+   cuCfgParams.egtpParams.localPort = CU_EGTP_PORT;
+   cuCfgParams.egtpParams.destIp.ipV4Pres = TRUE;
+   cuCfgParams.egtpParams.destIp.ipV4Addr = ipv4_du;
+   cuCfgParams.egtpParams.destPort = DU_EGTP_PORT;
+   cuCfgParams.egtpParams.minTunnelId = 0;
+   cuCfgParams.egtpParams.maxTunnelId = 10;
+
 } /* End of readCuCfg */
 /**********************************************************************
          End of file