#include "du_app_mac_inf.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;
/**************************************************************************
* @brief Task Initiation callback function.
return ROK;
}
+#ifdef CALL_FLOW_DEBUG_LOG
/**************************************************************************
* @brief Function prints the src dest and msg reached to egtp.
*
}
DU_LOG("\nCall Flow: %s -> %s : %s\n", sourceTask, destTask, message);
}
+#endif
/**************************************************************************
* @brief Task Activation callback function.
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);
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));
*
* ****************************************************************/
-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");
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;
}
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);
//ODU_PRINT_MSG(recvBuf, 0 ,0);
egtpHdlRecvData(recvBuf);
gDlDataRcvdCnt++;
+
}
}