Merge "Classification of CM logs [JIRA ID - ODUHIGH-275]"
[o-du/l2.git] / src / cu_stub / cu_stub.c
index 61867df..a94f24c 100644 (file)
 *******************************************************************************/
 
 /* This functions contains main() for cu_app */
-
+#include "common_def.h"
 #include "cu_stub.h"
 #include "cu_stub_sctp.h"
 #include "cu_stub_egtp.h"
+#include "du_log.h"
 
 #define CU_ID 1
 #define CU_NAME "ORAN_OAM_CU"
-#define DU_IP_V4_ADDR "10.0.2.20"
-#define CU_IP_V4_ADDR "10.0.2.25"
+#define DU_IP_V4_ADDR "192.168.130.81"
+#define CU_IP_V4_ADDR "192.168.130.82"
 #define DU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0001"
 #define CU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0011"
 #define DU_PORT 38472
@@ -63,7 +64,7 @@ void sctpNtfyInd(CmInetSctpNotification *ntfy)
 
 void init_log()
 {
-       openlog("CU_STUB",LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
+    openlog("CU_STUB",LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
 }
 /*******************************************************************
  *
@@ -84,10 +85,27 @@ void init_log()
  *
  * ****************************************************************/
 
-S16 tst()
+uint8_t tst()
 {
+   int retVal=0;
+   pthread_t conThrdId;
+   pthread_attr_t attr;
+
    init_log();   
-   DU_LOG("\nStarting CU_STUB");
+   DU_LOG("\nINFO   -->  CU_STUB : Starting CU_STUB\n");
+
+   /* Start thread to receive console input */
+   pthread_attr_init(&attr);
+   pthread_attr_setstacksize(&attr, (size_t)NULLD);
+   pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);
+   pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+   retVal = pthread_create(&conThrdId, &attr, cuConsoleHandler, NULLP);
+   if(retVal != 0)
+   {
+      DU_LOG("\nERROR  -->  CU_STUB :  Thread creation failed. Cause %d", retVal);
+   }
+   pthread_attr_destroy(&attr);
+
    /* Read CU configurations */
    readCuCfg();
 
@@ -99,9 +117,10 @@ S16 tst()
    sctpActvInit();
  
    /* Start CU-SCTP to listen on incoming connection */
-   sctpStartReq(); 
+   sctpCfgReq();
+   sctpStartReq();
 
-   RETVALUE(ROK);
+   return ROK;
 }
 
 /*******************************************************************
@@ -123,29 +142,24 @@ S16 tst()
 
 void readCuCfg()
 {
-   U32 ipv4_du, ipv4_cu;
+   uint32_t ipv4_du, ipv4_cu;
 
-   DU_LOG("\nReading CU configurations");
+   DU_LOG("\nDEBUG  -->  CU_STUB : Reading CU configurations");
 
    cmInetAddr((S8*)DU_IP_V4_ADDR, &ipv4_du);
    cmInetAddr((S8*)CU_IP_V4_ADDR, &ipv4_cu);
-   //U32 ipv6_int = inet_addr(DU_IP_V6_ADDR);
  
    cuCfgParams.cuId = CU_ID;
    strcpy(cuCfgParams.cuName, CU_NAME);
  
    /* DU IP Address and Port*/
-   cuCfgParams.sctpParams.duIpAddr.ipV4Pres = true;
    cuCfgParams.sctpParams.duIpAddr.ipV4Addr = ipv4_du;
    cuCfgParams.sctpParams.duIpAddr.ipV6Pres = false;
-   //strcpy(cuCfgParams.sctpParams.duIpAddr.ipV6Addr, (char*)DU_IP_V6_ADDR);
    cuCfgParams.sctpParams.duPort = DU_PORT;
 
    /* CU IP Address and Port*/
-   cuCfgParams.sctpParams.cuIpAddr.ipV4Pres = true;
    cuCfgParams.sctpParams.cuIpAddr.ipV4Addr = ipv4_cu;
    cuCfgParams.sctpParams.cuIpAddr.ipV6Pres = false;
-   //strcpy(cuCfgParams.sctpParams.cuIpAddr.ipV6Addr, DU_IP_V6_ADDR);
    cuCfgParams.sctpParams.cuPort = CU_PORT;
 
    /*PLMN*/
@@ -172,6 +186,36 @@ void readCuCfg()
    cuCfgParams.egtpParams.maxTunnelId = 10;
 
 } /* End of readCuCfg */
+
+/*******************************************************************
+ *
+ * @brief Handles Console input
+ *
+ * @details
+ *
+ *    Function : cuConsoleHandler
+ *
+ *    Functionality: Handles Console input
+ *
+ * @params[in] 
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+void *cuConsoleHandler(void *args)
+{
+   char ch;
+   while(true) 
+   {
+      /* Send DL user data to CU when user enters 'd' on console */
+      if((ch = getchar()) == 'd')
+      {
+         /* Start Pumping data from CU to DU */
+         DU_LOG("\nDEBUG  -->  EGTP: Sending DL User Data");
+         cuEgtpDatReq();      
+      } 
+   }
+}
 /**********************************************************************
          End of file
 **********************************************************************/