[Epic-ID: ODUHIGH-510][Task-ID: ODUHIGH-512] Implementation of E2 setup failure
[o-du/l2.git] / src / du_app / du_egtp.c
index 2a486c6..a5d63aa 100644 (file)
@@ -18,6 +18,7 @@
  
 /* This file contains all EGTP related functionality */
 #include "common_def.h"
+#include "du_tmr.h"
 #include "lrg.h"
 #include "lkw.x"
 #include "lrg.x"
 #include "legtp.h"
 #include "cm_inet.x"
 #include "du_app_mac_inf.h"
+#include "du_e2ap_mgr.h"
 #include "du_cfg.h"
 #include "du_egtp.h"
+#include "du_app_rlc_inf.h"
+#include "du_mgr.h"
 #include "du_utils.h"
 
 
@@ -61,6 +65,7 @@ uint8_t egtpActvInit(Ent entity, Inst inst, Region region, Reason reason)
   return ROK;
 }
 
+#ifdef CALL_FLOW_DEBUG_LOG
 /**************************************************************************
 * @brief Function prints the src dest and msg reached to egtp.
 *
@@ -157,6 +162,7 @@ void callFlowEgtpActvTsk(Pst *pst)
    }
    DU_LOG("\nCall Flow: %s -> %s : %s\n", sourceTask, destTask, message);
 }
+#endif
 
 /**************************************************************************
  * @brief Task Activation callback function. 
@@ -284,13 +290,11 @@ uint8_t egtpCfgReq(Pst *pst, EgtpConfig egtpCfg)
 
    memcpy(&egtpCb.egtpCfg, &egtpCfg, sizeof(EgtpConfig));
 
-   egtpCb.recvTptSrvr.addr.address = CM_INET_NTOH_UINT32(egtpCb.egtpCfg.localIp.ipV4Addr);
-   egtpCb.recvTptSrvr.addr.port = EGTP_RECVR_PORT;
+   egtpCb.localAddr.address = CM_INET_NTOH_UINT32(egtpCb.egtpCfg.localIp.ipV4Addr);
+   egtpCb.localAddr.port = egtpCb.egtpCfg.localPort;
 
-   egtpCb.dstCb.dstIp = CM_INET_NTOH_UINT32(egtpCb.egtpCfg.destIp.ipV4Addr);
-   egtpCb.dstCb.dstPort = egtpCb.egtpCfg.destPort;
-   egtpCb.dstCb.sendTptSrvr.addr.address = CM_INET_NTOH_UINT32(egtpCb.egtpCfg.localIp.ipV4Addr);
-   egtpCb.dstCb.sendTptSrvr.addr.port = egtpCb.egtpCfg.localPort;
+   egtpCb.dstCb.dstAddr.address = CM_INET_NTOH_UINT32(egtpCb.egtpCfg.destIp.ipV4Addr);
+   egtpCb.dstCb.dstAddr.port = egtpCb.egtpCfg.destPort;
    egtpCb.dstCb.numTunn = 0;
 
    ret = cmHashListInit(&(egtpCb.dstCb.teIdLst), 1024, sizeof(EgtpTeIdCb), FALSE, CM_HASH_KEYTYPE_UINT32_MOD, DU_APP_MEM_REGION, DU_POOL);
@@ -377,23 +381,15 @@ uint8_t egtpSrvOpenReq(Pst *pst)
    DU_LOG("\nDEBUG  -->  EGTP : Received EGTP open server request");
  
    sockType = CM_INET_DGRAM;
-   ret = egtpSrvOpenPrc(sockType, &(egtpCb.recvTptSrvr));
-       /* Opening and Binding receiver socket */
+   ret = egtpSrvOpenPrc(sockType);
+   /* Opening and Binding receiver socket */
    if(ret != ROK)
    {
       DU_LOG("\nERROR  -->  EGTP : Failed while opening receiver transport server");
       return ret;
    }
-   /* Opening and Binding sender socket */
-       ret = egtpSrvOpenPrc(sockType, &(egtpCb.dstCb.sendTptSrvr));
-   if(ret != ROK)
-   {
-      DU_LOG("\nERROR  -->  EGTP : Failed while opening sender transport server");
-      return ret;
-   }
 
-   DU_LOG("\nDEBUG   -->  EGTP : Receiver socket[%d] and Sender socket[%d] open", egtpCb.recvTptSrvr.sockFd.fd,\
-   egtpCb.dstCb.sendTptSrvr.sockFd.fd);
+   DU_LOG("\nDEBUG   -->  EGTP : Socket [%d] is open", egtpCb.sockFd.fd);
 
    /* Start Socket polling */
    memset(&egtpPst, 0, sizeof(egtpPst));
@@ -436,16 +432,16 @@ uint8_t egtpSrvOpenReq(Pst *pst)
  *
  * ****************************************************************/
 
-uint8_t egtpSrvOpenPrc(uint8_t sockType, EgtpTptSrvr *server)
+uint8_t egtpSrvOpenPrc(uint8_t sockType)
 {
    S8 ret=ROK;
-   ret = cmInetSocket(sockType, &(server->sockFd), protType); 
+   ret = cmInetSocket(sockType, &(egtpCb.sockFd), protType); 
        if(ret != ROK)
    {  
       DU_LOG("\nERROR  -->  EGTP : Failed to open UDP socket");
       return ret;
    }
-   ret = cmInetBind(&(server->sockFd), &(server->addr));  
+   ret = cmInetBind(&(egtpCb.sockFd), &(egtpCb.localAddr));  
    if(ret != ROK)
    {  
       DU_LOG("\nERROR  -->  EGTP : Failed to bind socket");
@@ -871,17 +867,12 @@ uint8_t egtpSendMsg(Buffer *mBuf)
    uint8_t        ret;
    uint16_t       txLen;
    CmInetMemInfo  info;
-   CmInetAddr     dstAddr;
    static uint64_t numDataSent = 0;
 
    info.region = DU_APP_MEM_REGION;
    info.pool = DU_POOL;
 
-   dstAddr.port = EGTP_RECVR_PORT;
-   dstAddr.address = egtpCb.dstCb.dstIp;
-
-   ret = cmInetSendMsg(&(egtpCb.dstCb.sendTptSrvr.sockFd), &dstAddr, &info, \
-      mBuf, (int16_t *)&txLen, CM_INET_NO_FLAG);
+   ret = cmInetSendMsg(&egtpCb.sockFd, &egtpCb.dstCb.dstAddr, &info, mBuf, (int16_t *)&txLen, CM_INET_NO_FLAG);
    if(ret != ROK && ret != RWOULDBLOCK)
    {
       DU_LOG("\nERROR  -->  EGTP : Failed sending the message");
@@ -918,20 +909,15 @@ uint8_t egtpRecvMsg()
    uint8_t        ret;           /* Return value */
    uint16_t       bufLen;        /* Length of received buffer */
    Buffer         *recvBuf;      /* Received buffer */
-   CmInetAddr     fromAddr;      /* Egtp data sender address */
    CmInetMemInfo  memInfo;       /* Buffer allocation info */
 
    memInfo.region = DU_APP_MEM_REGION;
    memInfo.pool   = DU_POOL;
     
-   fromAddr.port = egtpCb.dstCb.dstPort;
-   fromAddr.address = egtpCb.dstCb.dstIp;
-
    while(true)
    {
       bufLen = -1;
-      ret = cmInetRecvMsg(&(egtpCb.recvTptSrvr.sockFd), &fromAddr, &memInfo, \
-         &recvBuf, (int16_t *)&bufLen, CM_INET_NO_FLAG);
+      ret = cmInetRecvMsg(&egtpCb.sockFd, &egtpCb.dstCb.dstAddr, &memInfo, &recvBuf, (int16_t *)&bufLen, CM_INET_NO_FLAG);
       if(ret == ROK && recvBuf != NULLP)
       {  
          DU_LOG("\nDEBUG  -->  EGTP : Received DL Message[%ld]\n", gDlDataRcvdCnt + 1);