File: kw_umm_ul.c
**********************************************************************/
-static const char* RLOG_MODULE_NAME="RLC";
-static int RLOG_MODULE_ID=2048;
-static int RLOG_FILE_ID=240;
-
/**
* @file kw_umm_ul.c
* @brief RLC Unacknowledged Mode uplink module
#define RLC_MODULE (RLC_DBGMASK_UM | RLC_DBGMASK_UL)
-PRIVATE S16 rlcUmmExtractHdr ARGS ((RlcCb *gCb,
+uint8_t rlcUmmExtractHdr ARGS ((RlcCb *gCb,
RlcUlRbCb *rbCb,
Buffer *pdu,
RlcUmHdr *umHdr));
-PRIVATE Void rlcUmmReAssembleSdus ARGS ((RlcCb *gCb,
+void rlcUmmReAssembleSdus ARGS ((RlcCb *gCb,
RlcUlRbCb *rbCb,
RlcUmRecBuf *umRecBuf));
*
* @return Void
*/
-PRIVATE Void rlcUmmFindNextVRUR (RlcUmUl* umUl, RlcSn nextSn)
+void rlcUmmFindNextVRUR (RlcUmUl* umUl, RlcSn nextSn)
{
RlcSn ur = RLC_UM_GET_VALUE(umUl->vrUr, *umUl);
*
* @return Void
*/
-PRIVATE S16 rlcUmmCheckSnInReordWindow (RlcSn sn,
- CONSTANT RlcUmUl* CONSTANT umUl)
+int16_t rlcUmmCheckSnInReordWindow (RlcSn sn, CONSTANT RlcUmUl* CONSTANT umUl)
{
return (RLC_UM_GET_VALUE(sn, *umUl) < RLC_UM_GET_VALUE(umUl->vrUh, *umUl));
}
*/
/* kw005.201 added support for L2 Measurement */
#ifdef LTE_L2_MEAS
-
-#ifdef ANSI
-Void rlcUmmProcessPdus
-(
-RlcCb *gCb,
-RlcUlRbCb *rbCb, /* Rb Control Block */
-KwPduInfo *pduInfo, /* Pdu data and related information */
-U32 ttiCnt /* ttiCnt received from MAC */
-)
-#else
-Void rlcUmmProcessPdus(rbCb,pduInfo,ttiCnt)
-RlcCb *gCb;
-RlcUlRbCb *rbCb; /* Rb Control Block */
-KwPduInfo *pduInfo; /* Pdu data and related information */
-U32 ttiCnt; /* ttiCnt received from MAC */
-#endif
-#else
-#ifdef ANSI
-Void rlcUmmProcessPdus
-(
-RlcCb *gCb,
-RlcUlRbCb *rbCb, /* Rb Control Block */
-KwPduInfo *pduInfo /* Pdu data and related information */
-)
+void rlcUmmProcessPdus(RlcCb *gCb, RlcUlRbCb *rbCb, KwPduInfo *pduInfo, uint32_t ttiCnt)
#else
-Void rlcUmmProcessPdus(rbCb,pduInfo)
-RlcCb *gCb;
-RlcUlRbCb *rbCb; /* Rb Control Block */
-KwPduInfo *pduInfo; /* Pdu data and related information */
-#endif
+void rlcUmmProcessPdus(RlcCb *gCb, RlcUlRbCb *rbCb, KwPduInfo *pduInfo)
#endif
{
- RlcSn *vrUh; /* vr(uh) */
- RlcSn *vrUr; /* vr(ur) */
+ RlcSn *vrUh; /* vr(uh) */
+ RlcSn *vrUr; /* vr(ur) */
RlcSn *vrUx; /* vr(ux) */
- U16 curSn; /* Current Sequence Number */
- U32 pduCount; /* PDU count */
- U32 count; /* Loop counter */
+ uint16_t curSn; /* Current Sequence Number */
+ uint32_t pduCount; /* PDU count */
+ uint32_t count; /* Loop counter */
RlcUmRecBuf **recBuf; /* UM Reception Buffer */
- Bool tmrRunning; /* Boolean for checking Tmr */
-/* kw005.201 added support for L2 Measurement */
-
- TRC2(rlcUmmProcessPdus)
-
+ bool tmrRunning; /* Boolean for checking Tmr */
count = 0;
#ifndef RGL_SPECIFIC_CHANGES
#ifndef TENB_ACC
#ifndef LTE_PAL_ENB
- extern U32 ulrate_rgu;
+ extern uint32_t ulrate_rgu;
MsgLen len;
- SFndLenMsg(pdu, &len);
+ ODU_GET_MSG_LEN(pdu, &len);
ulrate_rgu += len;
#endif
#endif
#if (ERRCLASS & ERRCLS_ADD_RES)
if (tmpRecBuf == NULLP)
{
- RLOG_ARG2(L_FATAL, DBG_RBID,rbCb->rlcId.rbId,
- "Memory allocation failed UEID:%d CELLID:%d",
- rbCb->rlcId.ueId,
- rbCb->rlcId.cellId);
- SPutMsg(pdu);
-
- RETVOID;
+ DU_LOG("\nRLC : rlcUmmProcessPdus: Memory allocation failed UEID:%d CELLID:%d",\
+ rbCb->rlcId.ueId, rbCb->rlcId.cellId);
+ ODU_PUT_MSG_BUF(pdu);
+ return;
}
#endif /* ERRCLASS & ERRCLS_ADD_RES */
/* ccpu00142274 - UL memory based flow control*/
#ifndef XEON_SPECIFIC_CHANGES
if(isMemThreshReached(rlcCb[0]->init.region) == TRUE)
{
- extern U32 rlculdrop;
+ extern uint32_t rlculdrop;
rlculdrop++;
RLC_FREE_BUF(pdu);
RLC_FREE_WC(gCb, tmpRecBuf, sizeof(RlcUmRecBuf));
/* get the pdu header */
if (rlcUmmExtractHdr(gCb, rbCb, pdu, &(tmpRecBuf->umHdr)))
{
- RLOG_ARG2(L_ERROR,DBG_RBID,rbCb->rlcId.rbId,
- "Header Extraction Failed UEID:%d CELLID:%d",
- rbCb->rlcId.ueId,
- rbCb->rlcId.cellId);
+ DU_LOG("\nRLC : rlcUmmProcessPdus: Header Extraction Failed UEID:%d CELLID:%d",\
+ rbCb->rlcId.ueId, rbCb->rlcId.cellId);
/* Header extraction is a problem.
* log an error and free the allocated memory */
/* ccpu00136940 */
RLC_FREE_WC(gCb, tmpRecBuf, sizeof(RlcUmRecBuf));
- SPutMsg(pdu);
+ ODU_PUT_MSG_BUF(pdu);
count++;
/* kw005.201 ccpu00117318, updating the statistics */
gCb->genSts.errorPdusRecv++;
(seqNum < ur))
{
/* PDU needs to be discarded */
- RLOG_ARG3(L_DEBUG,DBG_RBID,rbCb->rlcId.rbId,
- "Received a duplicate pdu with sn %d UEID:%d CELLID:%d",
- curSn,
- rbCb->rlcId.ueId,
- rbCb->rlcId.cellId);
+ DU_LOG("\nRLC : rlcUmmProcessPdus: Received a duplicate pdu with sn %d \
+ UEID:%d CELLID:%d", curSn, rbCb->rlcId.ueId, rbCb->rlcId.cellId);
RLC_FREE_BUF(pdu);
RLC_FREE_WC(gCb, tmpRecBuf, sizeof(RlcUmRecBuf));
recBuf[curSn] = tmpRecBuf;
recBuf[curSn]->pdu = pdu;
- SFndLenMsg(pdu,&(recBuf[curSn]->pduSz));
+ ODU_GET_MSG_LEN(pdu,&(recBuf[curSn]->pduSz));
/* kw005.201 ccpu00117318, updating the statistics */
gCb->genSts.bytesRecv += recBuf[curSn]->pduSz;
#ifdef LTE_L2_MEAS
rlcUtlCalUlIpThrPutIncTTI(gCb, rbCb,ttiCnt);
#endif /* LTE_L2_MEAS */
- RETVOID;
+ return;
}
/**
*
* @return Void
*/
-#ifdef ANSI
-PRIVATE Void rlcUmmReAssembleSdus
-(
-RlcCb *gCb,
-RlcUlRbCb *rbCb,
-RlcUmRecBuf *umRecBuf
-)
-#else
-PRIVATE Void rlcUmmReAssembleSdus(gCb,rbCb,umRecBuf)
-RlcCb *gCb;
-RlcUlRbCb *rbCb;
-RlcUmRecBuf *umRecBuf;
-#endif
+void rlcUmmReAssembleSdus(RlcCb *gCb, RlcUlRbCb *rbCb, RlcUmRecBuf *umRecBuf)
{
- U32 liCount; /* LI count */
- U32 count; /* Loop counter */
- U8 fi; /* Framing Info */
- U16 sn; /* Sequence Number of current PDU */
- MsgLen len; /* PDU Length */
- Buffer *sdu; /* SDU to be sent to upper layer */
- Buffer *remPdu; /* Remaining PDU */
- Buffer **partialSdu; /* Partial SDU */
-
- TRC2(rlcUmmReAssembleSdus)
-
+ uint32_t liCount; /* LI count */
+ uint32_t count; /* Loop counter */
+ uint8_t fi; /* Framing Info */
+ uint16_t sn; /* Sequence Number of current PDU */
+ MsgLen len; /* PDU Length */
+ Buffer *sdu; /* SDU to be sent to upper layer */
+ Buffer *remPdu; /* Remaining PDU */
+ Buffer **partialSdu; /* Partial SDU */
liCount = umRecBuf->umHdr.numLi;
fi = umRecBuf->umHdr.fi;
{
if (!(umRecBuf->pdu))
{
- RETVOID;
+ return;
}
- SFndLenMsg(umRecBuf->pdu,&len);
+ ODU_GET_MSG_LEN(umRecBuf->pdu,&len);
}
/* get the sdu out of the pdu */
- SSegMsg(umRecBuf->pdu,len,&remPdu);
+ ODU_SEGMENT_MSG(umRecBuf->pdu,len,&remPdu);
sdu = umRecBuf->pdu;
umRecBuf->pdu = remPdu;
if ((*partialSdu) &&
(sn == ((rbCb->m.umUl.sn + 1) & rbCb->m.umUl.modBitMask)))
{
- SCatMsg(*partialSdu,sdu,M1M2);
+ ODU_CAT_MSG(*partialSdu,sdu,M1M2);
RLC_FREE_BUF(sdu);
if (liCount > 0 || !(fi & 1))
{
- rlcUtlSndDatInd(gCb,rbCb,*partialSdu);
+ rlcUtlSendUlDataToDu(gCb,rbCb,*partialSdu);
*partialSdu = NULLP;
}
}
if (liCount > 0 || !( fi & 1))
{
- rlcUtlSndDatInd(gCb,rbCb,sdu);
+ rlcUtlSendUlDataToDu(gCb,rbCb,sdu);
}
else
{
}
else
{
- rlcUtlSndDatInd(gCb, rbCb, sdu);
+ rlcUtlSendUlDataToDu(gCb, rbCb, sdu);
}
}
/*
just send the SDU to the upper layer */
else
{
- rlcUtlSndDatInd(gCb, rbCb, sdu);
+ rlcUtlSendUlDataToDu(gCb, rbCb, sdu);
}
}
rbCb->m.umUl.sn = sn;
- RETVOID;
+ return;
}
/**
* -# TRUE
* -# FALSE
*/
-#ifdef ANSI
-PRIVATE S16 rlcUmmExtractHdr
-(
-RlcCb *gCb,
-RlcUlRbCb *rbCb,
-Buffer *pdu,
-RlcUmHdr *umHdr
-)
-#else
-PRIVATE S16 rlcUmmExtractHdr(gCb, rbCb, pdu, umHdr)
-RlcCb *gCb;
-RlcUlRbCb *rbCb;
-Buffer *pdu;
-RlcUmHdr *umHdr;
-#endif
+uint8_t rlcUmmExtractHdr(RlcCb *gCb, RlcUlRbCb *rbCb, Buffer *pdu, RlcUmHdr *umHdr)
{
- U8 e; /* Extension Bit */
+ uint8_t e; /* Extension Bit */
Data dst[2]; /* Destination Buffer */
- S32 totalSz; /* Sum of LIs */
+ int32_t totalSz; /* Sum of LIs */
MsgLen pduSz; /* PDU size */
#if (ERRCLASS & ERRCLS_DEBUG)
- S16 ret; /* Return Value */
+ uint8_t ret; /* Return Value */
#endif
- TRC3(rlcUmmExtractHdr)
-
-
- SFndLenMsg(pdu,&pduSz);
+ ODU_GET_MSG_LEN(pdu,&pduSz);
if ( rbCb->m.umUl.snLen == 1)
{
#if (ERRCLASS & ERRCLS_DEBUG)
- ret = SRemPreMsg(dst,pdu);
+ ret = ODU_REM_PRE_MSG(dst,pdu);
if (ret != ROK)
{
- RLOG_ARG2(L_ERROR,DBG_RBID,rbCb->rlcId.rbId,
- "SRemPreMsg Failed for 5 bit SN UEID:%d CELLID:%d",
- rbCb->rlcId.ueId,
- rbCb->rlcId.cellId);
-
+ DU_LOG("\nRLC : rlcUmmExtractHdr : ODU_REM_PRE_MSG Failed for 5 bit SN \
+ UEID:%d CELLID:%d", rbCb->rlcId.ueId, rbCb->rlcId.cellId);
return RFAILED;
}
#else
- SRemPreMsg(dst,pdu);
+ ODU_REM_PRE_MSG(dst,pdu);
#endif
pduSz--;
umHdr->sn = (dst[0]) & 0x1F;
{
/* snLen - sequnce length will be 10 bits requiring 2 bytes */
#if (ERRCLASS & ERRCLS_DEBUG)
- ret = SRemPreMsgMult(dst,2,pdu);
+ ret = ODU_REM_PRE_MSG_MULT(dst,2,pdu);
if (ret != ROK)
{
- RLOG_ARG2(L_ERROR,DBG_RBID,rbCb->rlcId.rbId,
- "SRemPreMsgMult Failed for 10 bits SN UEID:%d CELLID:%d",
- rbCb->rlcId.ueId,
- rbCb->rlcId.cellId);
+ DU_LOG("\nRLC : rlcUmmExtractHdr : ODU_REM_PRE_MSG_MULT Failed for 10 bits SN \
+ UEID:%d CELLID:%d", rbCb->rlcId.ueId, rbCb->rlcId.cellId);
return RFAILED;
}
#else
- SRemPreMsgMult(dst,2,pdu);
+ ODU_REM_PRE_MSG_MULT(dst,2,pdu);
#endif
pduSz -= 2;
while(e && umHdr->numLi < RLC_MAX_UL_LI )
{
#if (ERRCLASS & ERRCLS_DEBUG)
- ret = SRemPreMsgMult(dst,2,pdu);
+ ret = ODU_REM_PRE_MSG_MULT(dst,2,pdu);
if (ret != ROK)
{
- RLOG_ARG2(L_ERROR,DBG_RBID,rbCb->rlcId.rbId,
- "SRemPreMsgMult Failed UEID:%d CELLID:%d",
- rbCb->rlcId.ueId,
- rbCb->rlcId.cellId);
+ DU_LOG("\nRLC : rlcUmmExtractHdr : ODU_REM_PRE_MSG_MULT Failed UEID:%d CELLID:%d",\
+ rbCb->rlcId.ueId, rbCb->rlcId.cellId);
return RFAILED;
}
#else
- SRemPreMsgMult(dst,2,pdu);
+ ODU_REM_PRE_MSG_MULT(dst,2,pdu);
#endif
umHdr->li[umHdr->numLi] = ((dst[0]) & 0x7F) << 4;
umHdr->li[umHdr->numLi] |= dst[1] >> 4;
if ( 0 == umHdr->li[umHdr->numLi] )
{
- RLOG_ARG2(L_ERROR,DBG_RBID,rbCb->rlcId.rbId,
- "Received LI as 0 UEID:%d CELLID:%d",
- rbCb->rlcId.ueId,
- rbCb->rlcId.cellId);
+ DU_LOG("\nRLC : rlcUmmExtractHdr : Received LI as 0 UEID:%d CELLID:%d",
+ rbCb->rlcId.ueId, rbCb->rlcId.cellId);
return RFAILED;
}
totalSz += umHdr->li[umHdr->numLi];
if ( pduSz <= totalSz )
{
- RLOG_ARG3(L_ERROR,DBG_RBID,rbCb->rlcId.rbId,
- "SN [%d]: UEID:%d CELLID:%d",
- umHdr->sn,
- rbCb->rlcId.ueId,
- rbCb->rlcId.cellId);
- RLOG_ARG4(L_ERROR,DBG_RBID,rbCb->rlcId.rbId,
- "Corrupted PDU as TotSz[%lu] PduSz[%lu] UEID:%d CELLID:%d ",
- totalSz,
- pduSz,
- rbCb->rlcId.ueId,
- rbCb->rlcId.cellId);
+ DU_LOG("\nRLC : rlcUmmExtractHdr : SN [%d]: UEID:%d CELLID:%d",\
+ umHdr->sn, rbCb->rlcId.ueId, rbCb->rlcId.cellId);
+ DU_LOG("\nRLC : rlcUmmExtractHdr : Corrupted PDU as TotSz[%d] PduSz[%d] \
+ UEID:%d CELLID:%d ", totalSz, pduSz, rbCb->rlcId.ueId, rbCb->rlcId.cellId);
return RFAILED; /* the situation where in the PDU size
is something that does not match with
the size in LIs*/
#if (ERRCLASS & ERRCLS_DEBUG)
- ret = SRemPreMsg(dst,pdu);
+ ret = ODU_REM_PRE_MSG(dst,pdu);
if (ret != ROK)
{
- RLOG_ARG2(L_ERROR,DBG_RBID,rbCb->rlcId.rbId,
- "SRemPreMsg Failed UEID:%d CELLID:%d",
- rbCb->rlcId.ueId,
- rbCb->rlcId.cellId);
+ DU_LOG("\nRLC : rlcUmmExtractHdr : ODU_REM_PRE_MSG Failed UEID:%d CELLID:%d",
+ rbCb->rlcId.ueId, rbCb->rlcId.cellId);
return RFAILED;
}
#else
- SRemPreMsg(dst,pdu);
+ ODU_REM_PRE_MSG(dst,pdu);
#endif
umHdr->li[umHdr->numLi] |= ( dst[0] ); /* The first byte lies in
the first 8 bits.We want
them in the last 8 bits */
if ( 0 == umHdr->li[umHdr->numLi] )
{
- RLOG_ARG2(L_ERROR,DBG_RBID,rbCb->rlcId.rbId,
- "Received LI as 0 UEID:%d CELLID:%d",
- rbCb->rlcId.ueId,
- rbCb->rlcId.cellId);
+ DU_LOG("\nRLC : rlcUmmExtractHdr :Received LI as 0 UEID:%d CELLID:%d",
+ rbCb->rlcId.ueId, rbCb->rlcId.cellId);
return RFAILED;
}
totalSz += umHdr->li[umHdr->numLi];