X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcu_stub%2Fcu_stub_egtp.c;h=2a0e79c031d4ab933294b3d0957803bebebeb112;hb=834004e09017b5b86cb738be98a7a1be79c0a9b0;hp=dfdacbbb0edcc0b8d531a99f436e41735bde40d9;hpb=694adde1a08c393a8443fd5bbd4f036f5cf85403;p=o-du%2Fl2.git diff --git a/src/cu_stub/cu_stub_egtp.c b/src/cu_stub/cu_stub_egtp.c index dfdacbbb0..2a0e79c03 100644 --- a/src/cu_stub/cu_stub_egtp.c +++ b/src/cu_stub/cu_stub_egtp.c @@ -47,7 +47,7 @@ EgtpGlobalCb egtpCb; ***************************************************************************/ S16 egtpActvInit() { - DU_LOG("\n\nEGTP : Initializing"); + DU_LOG("\n\nDEBUG --> EGTP : Initializing"); memset (&egtpCb, 0, sizeof(EgtpGlobalCb)); protType = CM_INET_PROTO_UDP; return ROK; @@ -81,14 +81,14 @@ uint8_t egtpInitReq() ret = cuEgtpCfgReq(); if(ret != ROK) { - DU_LOG("\nEGTP : Configuration failed"); + DU_LOG("\nERROR --> EGTP : Configuration failed"); return (ret); } ret = cuEgtpSrvOpenReq(); if(ret != ROK) { - DU_LOG("\nEGTP : Transport server open request failed"); + DU_LOG("\nERROR --> EGTP : Transport server open request failed"); return (ret); } @@ -98,7 +98,7 @@ uint8_t egtpInitReq() ret = cuEgtpTnlMgmtReq(tnlEvt); if(ret != ROK) { - DU_LOG("\n EGTP : Tunnel management request failed"); + DU_LOG("\nERROR --> EGTP : Tunnel management request failed"); return RFAILED; } @@ -121,29 +121,29 @@ uint8_t egtpInitReq() * ***********************************************************************/ S16 cuEgtpCfgReq() { - U8 ret; + uint8_t ret; memcpy(&egtpCb.egtpCfg, &cuCfgParams.egtpParams, sizeof(EgtpParams)); - egtpCb.recvTptSrvr.addr.address = CM_INET_NTOH_U32(egtpCb.egtpCfg.localIp.ipV4Addr); + egtpCb.recvTptSrvr.addr.address = CM_INET_NTOH_UINT32(egtpCb.egtpCfg.localIp.ipV4Addr); egtpCb.recvTptSrvr.addr.port = EGTP_DFLT_PORT; - egtpCb.dstCb.dstIp = CM_INET_NTOH_U32(egtpCb.egtpCfg.destIp.ipV4Addr); + 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_U32(egtpCb.egtpCfg.localIp.ipV4Addr); + egtpCb.dstCb.sendTptSrvr.addr.address = CM_INET_NTOH_UINT32(egtpCb.egtpCfg.localIp.ipV4Addr); egtpCb.dstCb.sendTptSrvr.addr.port = egtpCb.egtpCfg.localPort; egtpCb.dstCb.numTunn = 0; - ret = cmHashListInit(&(egtpCb.dstCb.teIdLst), 1024, sizeof(EgtpTeIdCb), FALSE, CM_HASH_KEYTYPE_U32MOD, CU_APP_MEM_REG, CU_POOL); + ret = cmHashListInit(&(egtpCb.dstCb.teIdLst), 1024, sizeof(EgtpTeIdCb), FALSE, CM_HASH_KEYTYPE_UINT32_MOD, CU_APP_MEM_REG, CU_POOL); if(ret != ROK) { - DU_LOG("\nEGTP : TeId hash list initialization failed"); + DU_LOG("\nERROR --> EGTP : TeId hash list initialization failed"); return RFAILED; } else { - DU_LOG("\nEGTP : Configuration successful"); + DU_LOG("\nINFO --> EGTP : Configuration successful"); } return ROK; @@ -169,40 +169,41 @@ S16 cuEgtpCfgReq() S16 cuEgtpSrvOpenReq(Pst *pst) { - U8 ret; + uint8_t ret; - DU_LOG("\nEGTP : Received open server request"); + DU_LOG("\nINFO --> EGTP : Received open server request"); sockType = CM_INET_DGRAM; if((ret = (cmInetSocket(sockType, &(egtpCb.recvTptSrvr.sockFd), protType))) != ROK) { - DU_LOG("\nEGTP : Failed to open UDP socket"); + DU_LOG("\nERROR --> EGTP : Failed to open UDP socket"); return RFAILED; } ret = cmInetBind(&(egtpCb.recvTptSrvr.sockFd), &(egtpCb.recvTptSrvr.addr)); if(ret != ROK) { - DU_LOG("\nEGTP : Failed to bind socket"); + DU_LOG("\nERROR --> EGTP : Failed to bind socket"); return RFAILED; } if(ret = (cmInetSocket(sockType, &(egtpCb.dstCb.sendTptSrvr.sockFd), protType)) != ROK) { - DU_LOG("\nEGTP : Failed to open UDP socket"); + DU_LOG("\nERROR --> EGTP : Failed to open UDP socket"); return RFAILED; } ret = cmInetBind(&(egtpCb.dstCb.sendTptSrvr.sockFd), &(egtpCb.dstCb.sendTptSrvr.addr)); if(ret != ROK) { - DU_LOG("\nEGTP : Failed to bind socket"); + DU_LOG("\nERROR --> EGTP : Failed to bind socket"); return RFAILED; } /* TODO: set socket options */ - DU_LOG("\nEGTP : Receiver socket[%d] and Sender socket[%d] open", egtpCb.recvTptSrvr.sockFd.fd, egtpCb.dstCb.sendTptSrvr.sockFd.fd); + DU_LOG("\nINFO --> EGTP : Receiver socket[%d] and Sender socket[%d] open", egtpCb.recvTptSrvr.sockFd.fd,\ + egtpCb.dstCb.sendTptSrvr.sockFd.fd); return ROK; } /* cuEgtpSrvOpenReq */ @@ -228,7 +229,7 @@ S16 cuEgtpTnlMgmtReq(EgtpTnlEvt tnlEvt) { S8 ret; - DU_LOG("\nEGTP : Received tunnel management request"); + DU_LOG("\nINFO --> EGTP : Received tunnel management request"); switch(tnlEvt.action) { case EGTP_TNL_MGMT_ADD: @@ -248,7 +249,7 @@ S16 cuEgtpTnlMgmtReq(EgtpTnlEvt tnlEvt) } default: { - DU_LOG("\nEGTP : Invalid tunnel management action[%d]", tnlEvt.action); + DU_LOG("\nERROR --> EGTP : Invalid tunnel management action[%d]", tnlEvt.action); ret = RFAILED; } } @@ -278,13 +279,13 @@ S16 cuEgtpTnlAdd(EgtpTnlEvt tnlEvt) EgtpMsgHdr preDefHdr; /* pre-define header for this tunnel */ - DU_LOG("\nEGTP : Tunnel addition : LocalTeid[%d] Remote Teid[%d]", tnlEvt.lclTeid, tnlEvt.remTeid); + DU_LOG("\nINFO --> EGTP : Tunnel addition : LocalTeid[%d] Remote Teid[%d]", tnlEvt.lclTeid, tnlEvt.remTeid); CU_ALLOC(teidCb, (Size)sizeof(EgtpTeIdCb)); if(teidCb == NULLP) { - DU_LOG("\nEGTP : Memory allocation failed"); + DU_LOG("\nERROR --> EGTP : Memory allocation failed"); return RFAILED; } @@ -293,10 +294,10 @@ S16 cuEgtpTnlAdd(EgtpTnlEvt tnlEvt) teidCb->teId = tnlEvt.lclTeid; teidCb->remTeId = tnlEvt.remTeid; - ret = cmHashListInsert(&(egtpCb.dstCb.teIdLst), (PTR)teidCb, (U8 *)&(teidCb->teId), sizeof(U32)); + ret = cmHashListInsert(&(egtpCb.dstCb.teIdLst), (PTR)teidCb, (uint8_t *)&(teidCb->teId), sizeof(uint32_t)); if(ret != ROK) { - DU_LOG("\nEGTP : Failed to insert in hash list"); + DU_LOG("\nERROR --> EGTP : Failed to insert in hash list"); CU_FREE(teidCb, (Size)sizeof(EgtpTeIdCb)); return RFAILED; } @@ -310,7 +311,7 @@ S16 cuEgtpTnlAdd(EgtpTnlEvt tnlEvt) preDefHdr.extHdr.udpPort.pres = FALSE; preDefHdr.nPdu.pres = FALSE; - cuEgtpEncodeHdr((U8 *)teidCb->preEncodedHdr.hdr, &preDefHdr, &(teidCb->preEncodedHdr.cnt)); + cuEgtpEncodeHdr((uint8_t *)teidCb->preEncodedHdr.hdr, &preDefHdr, &(teidCb->preEncodedHdr.cnt)); /* SPutSBuf(CU_APP_MEM_REG, CU_POOL, (Data *)teidCb, (Size)sizeof(EgtpTeIdCb));*/ @@ -338,12 +339,12 @@ S16 cuEgtpTnlMod(EgtpTnlEvt tnlEvt) S16 ret; EgtpTeIdCb *teidCb = NULLP; - printf("\nTunnel modification : LocalTeid[%d] Remote Teid[%d]", tnlEvt.lclTeid, tnlEvt.remTeid); + DU_LOG("\nDEBUG --> CU_STUB : Tunnel modification : LocalTeid[%d] Remote Teid[%d]", tnlEvt.lclTeid, tnlEvt.remTeid); - cmHashListFind(&(egtpCb.dstCb.teIdLst), (U8 *)&(tnlEvt.teId), sizeof(U32), 0, (PTR *)&teidCb); + cmHashListFind(&(egtpCb.dstCb.teIdLst), (uint8_t *)&(tnlEvt.teId), sizeof(uint32_t), 0, (PTR *)&teidCb); if(teidCb == NULLP) { - printf("\nTunnel id not found"); + DU_LOG("\nDEBUG --> CU_STUBTunnel id not found"); return RFAILED; } @@ -372,12 +373,12 @@ S16 cuEgtpTnlDel(EgtpTnlEvt tnlEvt) { EgtpTeIdCb *teidCb = NULLP; - DU_LOG("\nEGTP : Tunnel deletion : Local Teid[%d] Remote Teid[%d]", tnlEvt.lclTeid, tnlEvt.remTeid); + DU_LOG("\nDEBUG --> EGTP : Tunnel deletion : Local Teid[%d] Remote Teid[%d]", tnlEvt.lclTeid, tnlEvt.remTeid); - cmHashListFind(&(egtpCb.dstCb.teIdLst), (U8 *)&(tnlEvt.lclTeid), sizeof(U32), 0, (PTR *)&teidCb); + cmHashListFind(&(egtpCb.dstCb.teIdLst), (uint8_t *)&(tnlEvt.lclTeid), sizeof(uint32_t), 0, (PTR *)&teidCb); if(teidCb == NULLP) { - DU_LOG("\nEGTP : Tunnel id[%d] not configured", tnlEvt.lclTeid); + DU_LOG("\nERROR --> EGTP : Tunnel id[%d] not configured", tnlEvt.lclTeid); return RFAILED; } @@ -405,12 +406,12 @@ S16 cuEgtpTnlDel(EgtpTnlEvt tnlEvt) * RFAILED - failure * * ****************************************************************/ -S16 cuEgtpEncodeHdr(U8 *preEncodedHdr, EgtpMsgHdr *preDefHdr, U8 *hdrIdx) +S16 cuEgtpEncodeHdr(uint8_t *preEncodedHdr, EgtpMsgHdr *preDefHdr, uint8_t *hdrIdx) { - U8 tmpByte = 0; /* Stores one byte of data for enc */ - U8 cnt = EGTP_MAX_HDR_LEN; /* Stores the position */ + uint8_t tmpByte = 0; /* Stores one byte of data for enc */ + uint8_t cnt = EGTP_MAX_HDR_LEN; /* Stores the position */ Bool extPres = FALSE; /* Flag for indication of S, E or P presense flag */ - U16 nwWord = 0; + uint16_t nwWord = 0; /* Encoding header */ tmpByte |= EGTP_MASK_BIT6; /* Setting 6th LSB of 1st byte as version */ @@ -441,12 +442,12 @@ S16 cuEgtpEncodeHdr(U8 *preEncodedHdr, EgtpMsgHdr *preDefHdr, U8 *hdrIdx) /* Encode Tunnel endpoint */ preEncodedHdr[--cnt] = 0; preEncodedHdr[--cnt] = 0; - nwWord = (U16)(GetHiWord(preDefHdr->teId)); - preEncodedHdr[--cnt] = (U8)(GetHiByte(nwWord)); - preEncodedHdr[--cnt] = (U8)(GetLoByte(nwWord)); - nwWord = (U16)(GetLoWord(preDefHdr->teId)); - preEncodedHdr[--cnt] = (U8)(GetHiByte(nwWord)); - preEncodedHdr[--cnt] = (U8)(GetLoByte(nwWord)); + nwWord = (uint16_t)(GetHiWord(preDefHdr->teId)); + preEncodedHdr[--cnt] = (uint8_t)(GetHiByte(nwWord)); + preEncodedHdr[--cnt] = (uint8_t)(GetLoByte(nwWord)); + nwWord = (uint16_t)(GetLoWord(preDefHdr->teId)); + preEncodedHdr[--cnt] = (uint8_t)(GetHiByte(nwWord)); + preEncodedHdr[--cnt] = (uint8_t)(GetLoByte(nwWord)); /* Encode sequence number */ if(preDefHdr->seqNum.pres) @@ -505,19 +506,19 @@ S16 cuEgtpHdlRecvMsg(Buffer *mBuf) cuEgtpDecodeHdr(mBuf); /* Start Pumping data from CU to DU */ - return (cuEgtpDatReq()); + //return (cuEgtpDatReq()); } S16 cuEgtpDecodeHdr(Buffer *mBuf) { EgtpMsg egtpMsg; - U8 tmpByte[5]; /* Holds one byte of data after Dec */ - U8 version = 0; /* Holds the version type, decoded */ + uint8_t tmpByte[5]; /* Holds one byte of data after Dec */ + uint8_t version = 0; /* Holds the version type, decoded */ MsgLen msgLen = 0; /* Holds the msgLen from the Hdr */ MsgLen bufLen = 0; /* Holds the total buffer length */ - U8 extHdrType = 0; /* Holds the Extension hdr type */ - U8 extHdrLen = 0; /* Extension hdr length */ + uint8_t extHdrType = 0; /* Holds the Extension hdr type */ + uint8_t extHdrLen = 0; /* Extension hdr length */ Bool extPres = FALSE; /* Flag for indication of S, E or P presense flag */ ODU_GET_MSG_LEN(mBuf, &bufLen); @@ -617,7 +618,7 @@ S16 cuEgtpDecodeHdr(Buffer *mBuf) ODU_REM_PRE_MSG(&extHdrType, mBuf); } - DU_LOG("\nEGTP : Message Buffer after decoding header "); + DU_LOG("\nDEBUG --> EGTP : Message Buffer after decoding header "); ODU_PRINT_MSG(mBuf, 0, 0); return ROK; @@ -626,7 +627,7 @@ S16 cuEgtpDecodeHdr(Buffer *mBuf) S16 cuEgtpDatReq() { - U8 cnt = 0; + uint8_t cnt = 0; EgtpMsg egtpMsg; /* Build Application message that is supposed to come from app to egtp */ @@ -636,9 +637,9 @@ S16 cuEgtpDatReq() BuildEgtpMsg(&egtpMsg); /* Send Message to peer */ - while(cnt < 1) + while(cnt < 200) { - DU_LOG("\nEGTP : Sending message[%d]", cnt+1); + DU_LOG("\nDEBUG --> EGTP : Sending message[%d]", cnt+1); cuEgtpSendMsg(egtpMsg.msg); cnt++; } @@ -660,14 +661,14 @@ S16 BuildAppMsg(EgtpMsg *egtpMsg) { if(ODU_ADD_POST_MSG_MULT((Data *)data, datSize, mBuf) != ROK) { - DU_LOG("\nEGTP : ODU_ADD_POST_MSG_MULT failed"); + DU_LOG("\nERROR --> EGTP : ODU_ADD_POST_MSG_MULT failed"); ODU_PUT_MSG_BUF(mBuf); return RFAILED; } } else { - DU_LOG("\nEGTP : Failed to allocate memory"); + DU_LOG("\nERROR --> EGTP : Failed to allocate memory"); return RFAILED; } @@ -682,8 +683,8 @@ S16 BuildAppMsg(EgtpMsg *egtpMsg) ipv4Hdr.length = CM_IPV4_HDRLEN + mLen; ipv4Hdr.hdrVer = 0x45; ipv4Hdr.proto = 1; - ipv4Hdr.srcAddr = CM_INET_NTOH_U32(egtpCb.egtpCfg.localIp.ipV4Addr); - ipv4Hdr.destAddr = CM_INET_NTOH_U32(egtpCb.egtpCfg.destIp.ipV4Addr); + ipv4Hdr.srcAddr = CM_INET_NTOH_UINT32(egtpCb.egtpCfg.localIp.ipV4Addr); + ipv4Hdr.destAddr = CM_INET_NTOH_UINT32(egtpCb.egtpCfg.destIp.ipV4Addr); /* Packing IPv4 header into buffer */ S16 ret, cnt, idx; @@ -756,14 +757,14 @@ S16 BuildEgtpMsg(EgtpMsg *egtpMsg) { EgtpTeIdCb *teidCb = NULLP; MsgLen tPduSize; - U8 hdrLen; - U32 msgLen; + uint8_t hdrLen; + uint32_t msgLen; EgtpMsgHdr *msgHdr; - cmHashListFind(&(egtpCb.dstCb.teIdLst), (U8 *)&(egtpMsg->msgHdr.teId), sizeof(U32), 0, (PTR *)&teidCb); + cmHashListFind(&(egtpCb.dstCb.teIdLst), (uint8_t *)&(egtpMsg->msgHdr.teId), sizeof(uint32_t), 0, (PTR *)&teidCb); if(teidCb == NULLP) { - DU_LOG("\nEGTP : Tunnel id[%d] not configured", egtpMsg->msgHdr.teId); + DU_LOG("\nERROR --> EGTP : Tunnel id[%d] not configured", egtpMsg->msgHdr.teId); return (LCM_REASON_INVALID_PAR_VAL); } @@ -793,15 +794,15 @@ S16 BuildEgtpMsg(EgtpMsg *egtpMsg) /*********************************************** * Fill the length field of the message header * ***********************************************/ - teidCb->preEncodedHdr.hdr[EGTP_MAX_HDR_LEN - 3] = (U8)GetHiByte(msgLen); - teidCb->preEncodedHdr.hdr[EGTP_MAX_HDR_LEN - 4] = (U8)GetLoByte(msgLen); + teidCb->preEncodedHdr.hdr[EGTP_MAX_HDR_LEN - 3] = (uint8_t)GetHiByte(msgLen); + teidCb->preEncodedHdr.hdr[EGTP_MAX_HDR_LEN - 4] = (uint8_t)GetLoByte(msgLen); /*Update the sequence number*/ if(egtpMsg->msgHdr.seqNum.pres) { teidCb->preEncodedHdr.hdr[EGTP_MAX_HDR_LEN - 1] |= (EGTP_MASK_BIT2); - teidCb->preEncodedHdr.hdr[EGTP_MAX_HDR_LEN - 9] = (U8)GetHiByte(egtpMsg->msgHdr.seqNum.val); - teidCb->preEncodedHdr.hdr[EGTP_MAX_HDR_LEN - 10] = (U8)GetLoByte(egtpMsg->msgHdr.seqNum.val); + teidCb->preEncodedHdr.hdr[EGTP_MAX_HDR_LEN - 9] = (uint8_t)GetHiByte(egtpMsg->msgHdr.seqNum.val); + teidCb->preEncodedHdr.hdr[EGTP_MAX_HDR_LEN - 10] = (uint8_t)GetLoByte(egtpMsg->msgHdr.seqNum.val); } else { @@ -810,7 +811,7 @@ S16 BuildEgtpMsg(EgtpMsg *egtpMsg) ODU_ADD_PRE_MSG_MULT(&teidCb->preEncodedHdr.hdr[hdrLen], (EGTP_MAX_HDR_LEN - hdrLen), egtpMsg->msg); - DU_LOG("\nEGTP : Sending message buffer"); + DU_LOG("\nDEBUG --> EGTP : Sending message buffer"); ODU_PRINT_MSG(egtpMsg->msg, 0, 0); return ROK; @@ -832,11 +833,11 @@ S16 cuEgtpSendMsg(Buffer *mBuf) ret = cmInetSendMsg(&(egtpCb.dstCb.sendTptSrvr.sockFd), &dstAddr, &info, mBuf, &txLen, CM_INET_NO_FLAG); if(ret != ROK && ret != RWOULDBLOCK) { - DU_LOG("\nEGTP : Message send failure"); + DU_LOG("\nERROR --> EGTP : Message send failure"); return RFAILED; } - DU_LOG("\nEGTP : Message Sent"); + DU_LOG("\nDEBUG --> EGTP : Message Sent"); return ROK; }