X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_egtp.c;h=b9de0c41298815c39182e1475b01e17c6b2b1765;hb=49856df248fd976b4a9882ca4e650fc0bc3e4ee3;hp=b895aa2961f2a7fa7387a20cd0a641d68451c3a6;hpb=62605166db94fd7d52f32de84dea8c7006e0f4c5;p=o-du%2Fl2.git diff --git a/src/du_app/du_egtp.c b/src/du_app/du_egtp.c index b895aa296..b9de0c412 100644 --- a/src/du_app/du_egtp.c +++ b/src/du_app/du_egtp.c @@ -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" @@ -25,13 +26,17 @@ #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" -/* Global variable declaration */ -EgtpGlobalCb egtpCb; +uint8_t unpackEgtpSrvOpenReq(EgtpSrvOpenReq func, Pst *pst, Buffer *mBuf); +uint8_t protType; +EgtpGlobalCb egtpCb; /* EGTP global control block */ /************************************************************************** * @brief Task Initiation callback function. * @@ -58,11 +63,12 @@ uint8_t egtpActvInit(Ent entity, Inst inst, Region region, Reason reason) memset (&egtpCb, 0, sizeof(EgtpGlobalCb)); protType = CM_INET_PROTO_UDP; - gDlDataRcvdCnt = 0; + gConfigInfo.gDlDataRcvdCnt = 0; return ROK; } +#ifdef CALL_FLOW_DEBUG_LOG /************************************************************************** * @brief Function prints the src dest and msg reached to egtp. * @@ -159,6 +165,7 @@ void callFlowEgtpActvTsk(Pst *pst) } DU_LOG("\nCall Flow: %s -> %s : %s\n", sourceTask, destTask, message); } +#endif /************************************************************************** * @brief Task Activation callback function. @@ -286,13 +293,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_DFLT_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); @@ -379,23 +384,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)); @@ -438,16 +435,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"); @@ -873,23 +870,22 @@ 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_DFLT_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"); return RFAILED; } - - DU_LOG("\nDEBUG --> EGTP : Message Sent"); + else + { + DU_LOG("\nDEBUG --> EGTP : Sent UL Message [%ld]", numDataSent+1); + numDataSent++; + } return ROK; } @@ -916,26 +912,22 @@ 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); + DU_LOG("\nDEBUG --> EGTP : Received DL Message[%ld]\n", gConfigInfo.gDlDataRcvdCnt + 1); //ODU_PRINT_MSG(recvBuf, 0 ,0); egtpHdlRecvData(recvBuf); - gDlDataRcvdCnt++; + gConfigInfo.gDlDataRcvdCnt++; + } }