X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Fkw_umm_ul.c;h=d316ff957848f86fd50b8538bc0c3e0f7eaa6d1d;hb=5d74fef7c9fe6b65a965ceac6bfe812872dab323;hp=2f6755ed852c492d40024b2be4f6ebc0f805a32f;hpb=105199ef642ffe9736ea24a01d4546578fa25e60;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/kw_umm_ul.c b/src/5gnrrlc/kw_umm_ul.c index 2f6755ed8..d316ff957 100755 --- a/src/5gnrrlc/kw_umm_ul.c +++ b/src/5gnrrlc/kw_umm_ul.c @@ -25,19 +25,15 @@ Desc: Source code for RLC Unacknowledged mode assembly and reassembly.This file contains following functions - --kwUmmQSdu - --kwUmmProcessSdus - --kwUmmProcessPdus - --kwUmmReAssembleSdus + --rlcUmmQSdu + --rlcUmmProcessSdus + --rlcUmmProcessPdus + --rlcUmmReAssembleSdus --kwUmmReEstablish 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 @@ -67,16 +63,16 @@ static int RLOG_FILE_ID=240; #include "kw.x" /* RLC layer */ #include "kw_ul.x" -#define KW_MODULE (KW_DBGMASK_UM | KW_DBGMASK_UL) +#define RLC_MODULE (RLC_DBGMASK_UM | RLC_DBGMASK_UL) -PRIVATE S16 kwUmmExtractHdr ARGS ((KwCb *gCb, - KwUlRbCb *rbCb, +uint8_t rlcUmmExtractHdr ARGS ((RlcCb *gCb, + RlcUlRbCb *rbCb, Buffer *pdu, - KwUmHdr *umHdr)); + RlcUmHdr *umHdr)); -PRIVATE Void kwUmmReAssembleSdus ARGS ((KwCb *gCb, - KwUlRbCb *rbCb, - KwUmRecBuf *umRecBuf)); +void rlcUmmReAssembleSdus ARGS ((RlcCb *gCb, + RlcUlRbCb *rbCb, + RlcUmRecBuf *umRecBuf)); #ifndef TENB_ACC #ifndef LTE_PAL_ENB @@ -96,11 +92,11 @@ extern U32 isMemThreshReached(Region region); * * @return Void */ -PRIVATE Void kwUmmFindNextVRUR (KwUmUl* umUl, KwSn nextSn) +void rlcUmmFindNextVRUR (RlcUmUl* umUl, RlcSn nextSn) { - KwSn ur = KW_UM_GET_VALUE(umUl->vrUr, *umUl); + RlcSn ur = RLC_UM_GET_VALUE(umUl->vrUr, *umUl); - KwSn nextSnToCompare = KW_UM_GET_VALUE(nextSn,*umUl); + RlcSn nextSnToCompare = RLC_UM_GET_VALUE(nextSn,*umUl); while (ur < nextSnToCompare) { @@ -110,7 +106,7 @@ PRIVATE Void kwUmmFindNextVRUR (KwUmUl* umUl, KwSn nextSn) break; } nextSn = (nextSn + 1) & umUl->modBitMask; - nextSnToCompare = KW_UM_GET_VALUE(nextSn,*umUl); + nextSnToCompare = RLC_UM_GET_VALUE(nextSn,*umUl); } } @@ -127,10 +123,9 @@ PRIVATE Void kwUmmFindNextVRUR (KwUmUl* umUl, KwSn nextSn) * * @return Void */ -PRIVATE S16 kwUmmCheckSnInReordWindow (KwSn sn, - CONSTANT KwUmUl* CONSTANT umUl) +int16_t rlcUmmCheckSnInReordWindow (RlcSn sn, CONSTANT RlcUmUl* CONSTANT umUl) { - return (KW_UM_GET_VALUE(sn, *umUl) < KW_UM_GET_VALUE(umUl->vrUh, *umUl)); + return (RLC_UM_GET_VALUE(sn, *umUl) < RLC_UM_GET_VALUE(umUl->vrUh, *umUl)); } /** @@ -150,51 +145,20 @@ PRIVATE S16 kwUmmCheckSnInReordWindow (KwSn sn, */ /* kw005.201 added support for L2 Measurement */ #ifdef LTE_L2_MEAS - -#ifdef ANSI -PUBLIC Void kwUmmProcessPdus -( -KwCb *gCb, -KwUlRbCb *rbCb, /* Rb Control Block */ -KwPduInfo *pduInfo, /* Pdu data and related information */ -U32 ttiCnt /* ttiCnt received from MAC */ -) -#else -PUBLIC Void kwUmmProcessPdus(rbCb,pduInfo,ttiCnt) -KwCb *gCb; -KwUlRbCb *rbCb; /* Rb Control Block */ -KwPduInfo *pduInfo; /* Pdu data and related information */ -U32 ttiCnt; /* ttiCnt received from MAC */ -#endif -#else -#ifdef ANSI -PUBLIC Void kwUmmProcessPdus -( -KwCb *gCb, -KwUlRbCb *rbCb, /* Rb Control Block */ -KwPduInfo *pduInfo /* Pdu data and related information */ -) +void rlcUmmProcessPdus(RlcCb *gCb, RlcUlRbCb *rbCb, KwPduInfo *pduInfo, uint32_t ttiCnt) #else -PUBLIC Void kwUmmProcessPdus(rbCb,pduInfo) -KwCb *gCb; -KwUlRbCb *rbCb; /* Rb Control Block */ -KwPduInfo *pduInfo; /* Pdu data and related information */ -#endif +void rlcUmmProcessPdus(RlcCb *gCb, RlcUlRbCb *rbCb, KwPduInfo *pduInfo) #endif { - KwSn *vrUh; /* vr(uh) */ - KwSn *vrUr; /* vr(ur) */ - KwSn *vrUx; /* vr(ux) */ - U16 curSn; /* Current Sequence Number */ - U32 pduCount; /* PDU count */ - U32 count; /* Loop counter */ - KwUmRecBuf **recBuf; /* UM Reception Buffer */ - - Bool tmrRunning; /* Boolean for checking Tmr */ -/* kw005.201 added support for L2 Measurement */ - - TRC2(kwUmmProcessPdus) + RlcSn *vrUh; /* vr(uh) */ + RlcSn *vrUr; /* vr(ur) */ + RlcSn *vrUx; /* vr(ux) */ + 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 */ count = 0; @@ -208,34 +172,31 @@ KwPduInfo *pduInfo; /* Pdu data and related information */ while (count < pduCount) { - KwSn ur; - KwSn uh; - KwSn seqNum; + RlcSn ur; + RlcSn uh; + RlcSn seqNum; Buffer *pdu = pduInfo->mBuf[count]; - KwUmRecBuf *tmpRecBuf; + RlcUmRecBuf *tmpRecBuf; gCb->genSts.pdusRecv++; #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 #endif /* create a buffer to be later inserted into the reception buffer */ - KW_ALLOC_WC(gCb, tmpRecBuf, sizeof(KwUmRecBuf)); + RLC_ALLOC_WC(gCb, tmpRecBuf, sizeof(RlcUmRecBuf)); #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*/ @@ -244,12 +205,12 @@ KwPduInfo *pduInfo; /* Pdu data and related information */ #ifndef LTE_PAL_ENB /* Changed the condition to TRUE from ROK */ #ifndef XEON_SPECIFIC_CHANGES - if(isMemThreshReached(kwCb[0]->init.region) == TRUE) + if(isMemThreshReached(rlcCb[0]->init.region) == TRUE) { - extern U32 rlculdrop; + extern uint32_t rlculdrop; rlculdrop++; - KW_FREE_BUF(pdu); - KW_FREE_WC(gCb, tmpRecBuf, sizeof(KwUmRecBuf)); + RLC_FREE_BUF(pdu); + RLC_FREE_WC(gCb, tmpRecBuf, sizeof(RlcUmRecBuf)); /*Fix for CR ccpu00144030: If threshhold is hit then also count *should be incrmented */ count++; @@ -260,18 +221,16 @@ KwPduInfo *pduInfo; /* Pdu data and related information */ #endif #endif /* get the pdu header */ - if (kwUmmExtractHdr(gCb, rbCb, pdu, &(tmpRecBuf->umHdr))) + 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 */ - KW_FREE_WC(gCb, tmpRecBuf, sizeof(KwUmRecBuf)); - SPutMsg(pdu); + RLC_FREE_WC(gCb, tmpRecBuf, sizeof(RlcUmRecBuf)); + ODU_PUT_MSG_BUF(pdu); count++; /* kw005.201 ccpu00117318, updating the statistics */ gCb->genSts.errorPdusRecv++; @@ -280,22 +239,19 @@ KwPduInfo *pduInfo; /* Pdu data and related information */ curSn = tmpRecBuf->umHdr.sn; /* Check if the PDU should be discarded or not */ - ur = KW_UM_GET_VALUE(KW_UMUL.vrUr, KW_UMUL); - uh = KW_UM_GET_VALUE(KW_UMUL.vrUh, KW_UMUL); - seqNum = KW_UM_GET_VALUE(curSn, KW_UMUL); + ur = RLC_UM_GET_VALUE(RLC_UMUL.vrUr, RLC_UMUL); + uh = RLC_UM_GET_VALUE(RLC_UMUL.vrUh, RLC_UMUL); + seqNum = RLC_UM_GET_VALUE(curSn, RLC_UMUL); - if (((ur < seqNum) && (seqNum < uh) && (KW_UMUL.recBuf[curSn])) || + if (((ur < seqNum) && (seqNum < uh) && (RLC_UMUL.recBuf[curSn])) || (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); - - KW_FREE_BUF(pdu); - KW_FREE_WC(gCb, tmpRecBuf, sizeof(KwUmRecBuf)); + 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)); count++; /* kw005.201 ccpu00117318, updating the statistics */ gCb->genSts.unexpPdusRecv++; @@ -306,102 +262,102 @@ KwPduInfo *pduInfo; /* Pdu data and related information */ #ifdef LTE_L2_MEAS /* kw006.201 ccpu00120058, reduced code complexity by adding new function */ - kwUtlCalUlIpThrPut(gCb,rbCb, pdu, ttiCnt); + rlcUtlCalUlIpThrPut(gCb,rbCb, pdu, ttiCnt); #endif 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; - if (!kwUmmCheckSnInReordWindow(curSn,&KW_UMUL)) + if (!rlcUmmCheckSnInReordWindow(curSn,&RLC_UMUL)) { /* currSn is outside re-ordering window */ - *vrUh = (curSn + 1) & KW_UMUL.modBitMask; + *vrUh = (curSn + 1) & RLC_UMUL.modBitMask; /* re-assemble all pdus outside the modified re-ordering window */ /* the first SN is VR(UR) */ - if (!kwUmmCheckSnInReordWindow(*vrUr,&KW_UMUL)) + if (!rlcUmmCheckSnInReordWindow(*vrUr,&RLC_UMUL)) { /* TODO : should it be VR(UR) + 1 ?... check, earlier it was so */ - KwSn sn = *vrUr; /* SN's which need to be re-assembled */ - KwSn lowerEdge; /* to hold the lower-edge of the + RlcSn sn = *vrUr; /* SN's which need to be re-assembled */ + RlcSn lowerEdge; /* to hold the lower-edge of the re-ordering window */ /* The new value ov VR(UR) is the lower end of the window i * and SN's still this value need to be re-assembled */ - *vrUr = (*vrUh - KW_UMUL.umWinSz) & KW_UMUL.modBitMask; - lowerEdge = KW_UM_GET_VALUE(*vrUr ,KW_UMUL); + *vrUr = (*vrUh - RLC_UMUL.umWinSz) & RLC_UMUL.modBitMask; + lowerEdge = RLC_UM_GET_VALUE(*vrUr ,RLC_UMUL); - while (KW_UM_GET_VALUE(sn, KW_UMUL) < lowerEdge) + while (RLC_UM_GET_VALUE(sn, RLC_UMUL) < lowerEdge) { if (recBuf[sn]) { - kwUmmReAssembleSdus(gCb,rbCb,recBuf[sn]); - KW_FREE_WC(gCb,recBuf[sn],sizeof(KwUmRecBuf)); + rlcUmmReAssembleSdus(gCb,rbCb,recBuf[sn]); + RLC_FREE_WC(gCb,recBuf[sn],sizeof(RlcUmRecBuf)); recBuf[sn] = NULLP; } - sn = (sn + 1) & KW_UMUL.modBitMask; + sn = (sn + 1) & RLC_UMUL.modBitMask; } } } if (recBuf[*vrUr]) { - KwSn sn = *vrUr; - KwSn tSn = KW_UM_GET_VALUE(sn,KW_UMUL); - KwSn tVrUr; + RlcSn sn = *vrUr; + RlcSn tSn = RLC_UM_GET_VALUE(sn,RLC_UMUL); + RlcSn tVrUr; /* set VR(UR) to next SN > current VR(UR) which is not received */ - KwSn nextVrUr = (*vrUr + 1) & KW_UMUL.modBitMask; - kwUmmFindNextVRUR(&KW_UMUL, nextVrUr); + RlcSn nextVrUr = (*vrUr + 1) & RLC_UMUL.modBitMask; + rlcUmmFindNextVRUR(&RLC_UMUL, nextVrUr); /* re-assemble SDUs with SN < Vr(UR) */ - tVrUr = KW_UM_GET_VALUE(*vrUr,KW_UMUL); + tVrUr = RLC_UM_GET_VALUE(*vrUr,RLC_UMUL); while (recBuf[sn] && tSn < tVrUr) { - kwUmmReAssembleSdus(gCb,rbCb,recBuf[sn]); - KW_FREE_WC(gCb,recBuf[sn],sizeof(KwUmRecBuf)); + rlcUmmReAssembleSdus(gCb,rbCb,recBuf[sn]); + RLC_FREE_WC(gCb,recBuf[sn],sizeof(RlcUmRecBuf)); recBuf[sn] = NULLP; - sn = (sn + 1) & KW_UMUL.modBitMask; - tSn = KW_UM_GET_VALUE(sn, KW_UMUL); + sn = (sn + 1) & RLC_UMUL.modBitMask; + tSn = RLC_UM_GET_VALUE(sn, RLC_UMUL); } } - tmrRunning = kwChkTmr(gCb,(PTR)rbCb, KW_EVT_UMUL_REORD_TMR); + tmrRunning = rlcChkTmr(gCb,(PTR)rbCb, RLC_EVT_UMUL_REORD_TMR); if (tmrRunning) { - KwSn tVrUx = KW_UM_GET_VALUE(*vrUx, KW_UMUL); - KwSn tVrUr = KW_UM_GET_VALUE(*vrUr ,KW_UMUL); + RlcSn tVrUx = RLC_UM_GET_VALUE(*vrUx, RLC_UMUL); + RlcSn tVrUr = RLC_UM_GET_VALUE(*vrUr ,RLC_UMUL); - KwSn tVrUh = KW_UM_GET_VALUE(*vrUh, KW_UMUL); + RlcSn tVrUh = RLC_UM_GET_VALUE(*vrUh, RLC_UMUL); - S16 ret = kwUmmCheckSnInReordWindow(*vrUx, &KW_UMUL); + S16 ret = rlcUmmCheckSnInReordWindow(*vrUx, &RLC_UMUL); if ( (tVrUx <= tVrUr) || ((!ret) && (tVrUx != tVrUh))) { - kwStopTmr(gCb,(PTR)rbCb,KW_EVT_UMUL_REORD_TMR); + rlcStopTmr(gCb,(PTR)rbCb,RLC_EVT_UMUL_REORD_TMR); tmrRunning = FALSE; } } if (!tmrRunning) { - if (KW_UM_GET_VALUE(*vrUh, KW_UMUL) > KW_UM_GET_VALUE(*vrUr, KW_UMUL)) + if (RLC_UM_GET_VALUE(*vrUh, RLC_UMUL) > RLC_UM_GET_VALUE(*vrUr, RLC_UMUL)) { - kwStartTmr(gCb,(PTR)rbCb,KW_EVT_UMUL_REORD_TMR); + rlcStartTmr(gCb,(PTR)rbCb,RLC_EVT_UMUL_REORD_TMR); *vrUx = *vrUh; } } count++; }/* end while count < pduCount */ #ifdef LTE_L2_MEAS - kwUtlCalUlIpThrPutIncTTI(gCb, rbCb,ttiCnt); + rlcUtlCalUlIpThrPutIncTTI(gCb, rbCb,ttiCnt); #endif /* LTE_L2_MEAS */ - RETVOID; + return; } /** @@ -417,31 +373,16 @@ KwPduInfo *pduInfo; /* Pdu data and related information */ * * @return Void */ -#ifdef ANSI -PRIVATE Void kwUmmReAssembleSdus -( -KwCb *gCb, -KwUlRbCb *rbCb, -KwUmRecBuf *umRecBuf -) -#else -PRIVATE Void kwUmmReAssembleSdus(gCb,rbCb,umRecBuf) -KwCb *gCb; -KwUlRbCb *rbCb; -KwUmRecBuf *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(kwUmmReAssembleSdus) - + 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; @@ -455,13 +396,13 @@ KwUmRecBuf *umRecBuf; { 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; @@ -493,11 +434,11 @@ KwUmRecBuf *umRecBuf; if ((*partialSdu) && (sn == ((rbCb->m.umUl.sn + 1) & rbCb->m.umUl.modBitMask))) { - SCatMsg(*partialSdu,sdu,M1M2); - KW_FREE_BUF(sdu); + ODU_CAT_MSG(*partialSdu,sdu,M1M2); + RLC_FREE_BUF(sdu); if (liCount > 0 || !(fi & 1)) { - kwUtlSndDatInd(gCb,rbCb,*partialSdu); + rlcUtlSendUlDataToDu(gCb,rbCb,*partialSdu); *partialSdu = NULLP; } } @@ -506,11 +447,11 @@ KwUmRecBuf *umRecBuf; /* Partial Sdu stored is not valid now.So free it */ if (*partialSdu) { - KW_FREE_BUF(*partialSdu); + RLC_FREE_BUF(*partialSdu); *partialSdu = NULLP; } - KW_FREE_BUF(sdu); + RLC_FREE_BUF(sdu); sdu = NULLP; } } @@ -518,13 +459,13 @@ KwUmRecBuf *umRecBuf; { if (*partialSdu) { - KW_FREE_BUF(*partialSdu); /* RLC mem leak fix */ + RLC_FREE_BUF(*partialSdu); /* RLC mem leak fix */ *partialSdu = NULLP; } if (liCount > 0 || !( fi & 1)) { - kwUtlSndDatInd(gCb,rbCb,sdu); + rlcUtlSendUlDataToDu(gCb,rbCb,sdu); } else { @@ -545,7 +486,7 @@ KwUmRecBuf *umRecBuf; } else { - kwUtlSndDatInd(gCb, rbCb, sdu); + rlcUtlSendUlDataToDu(gCb, rbCb, sdu); } } /* @@ -553,12 +494,12 @@ KwUmRecBuf *umRecBuf; just send the SDU to the upper layer */ else { - kwUtlSndDatInd(gCb, rbCb, sdu); + rlcUtlSendUlDataToDu(gCb, rbCb, sdu); } } rbCb->m.umUl.sn = sn; - RETVOID; + return; } /** @@ -570,7 +511,7 @@ KwUmRecBuf *umRecBuf; * - If direction of the RB is downlink : * Remove all the SDUs in the SDU queue. * - If direction of the RB is uplink : - * Call kwUmmReAssembleSdus() for each PDU with SN < VR(UH) + * Call rlcUmmReAssembleSdus() for each PDU with SN < VR(UH) * * @param[in] gCb RLC Instance control block * @param[in] rlcID Identity of the RLC entity for which @@ -581,42 +522,39 @@ KwUmRecBuf *umRecBuf; * @return Void */ #ifdef ANSI -PUBLIC Void kwUmmUlReEstablish +Void rlcUmmUlReEstablish ( -KwCb *gCb, +RlcCb *gCb, CmLteRlcId *rlcId, -KwUlRbCb *rbCb +RlcUlRbCb *rbCb ) #else -PUBLIC Void kwUmmUlReEstablish(gCb, rlcId, rbCb) -KwCb *gCb; +Void rlcUmmUlReEstablish(gCb, rlcId, rbCb) +RlcCb *gCb; CmLteRlcId *rlcId; -KwUlRbCb *rbCb; +RlcUlRbCb *rbCb; #endif { - KwSn curSn; - KwSn vrUh; - KwUmRecBuf **recBuf; /* UM Reception Buffer */ - KwKwuSapCb *kwKwSap; /* KWU SAP Information */ - - TRC2(kwUmmUlReEstablish) - + RlcSn curSn; + RlcSn vrUh; + RlcUmRecBuf **recBuf; /* UM Reception Buffer */ + RlcKwuSapCb *rlcKwSap; /* KWU SAP Information */ curSn = rbCb->m.umUl.vrUr; - vrUh = KW_UM_GET_VALUE(rbCb->m.umUl.vrUh,rbCb->m.umUl); + vrUh = RLC_UM_GET_VALUE(rbCb->m.umUl.vrUh,rbCb->m.umUl); recBuf = rbCb->m.umUl.recBuf; - if(TRUE == kwChkTmr(gCb,(PTR)rbCb,KW_EVT_UMUL_REORD_TMR)) + if(TRUE == rlcChkTmr(gCb,(PTR)rbCb,RLC_EVT_UMUL_REORD_TMR)) { - kwStopTmr(gCb,(PTR)rbCb,KW_EVT_UMUL_REORD_TMR); + rlcStopTmr(gCb,(PTR)rbCb,RLC_EVT_UMUL_REORD_TMR); } - while (KW_UM_GET_VALUE(curSn,rbCb->m.umUl) < vrUh) + while (RLC_UM_GET_VALUE(curSn,rbCb->m.umUl) < vrUh) { if ( recBuf[curSn] != NULLP ) { - kwUmmReAssembleSdus(gCb,rbCb,recBuf[curSn]); - KW_FREE_WC(gCb,recBuf[curSn],sizeof(KwUmRecBuf)); + rlcUmmReAssembleSdus(gCb,rbCb,recBuf[curSn]); + RLC_FREE_WC(gCb,recBuf[curSn],sizeof(RlcUmRecBuf)); recBuf[curSn] = NULLP; } curSn = (curSn + 1) & rbCb->m.umUl.modBitMask; @@ -625,10 +563,10 @@ KwUlRbCb *rbCb; rbCb->m.umUl.vrUh = 0; rbCb->m.umUl.vrUx = 0; - kwKwSap = gCb->u.ulCb->kwuUlSap + KW_UI_PDCP; + rlcKwSap = gCb->u.ulCb->rlcKwuUlSap + RLC_UI_PDCP; /* In the UM Mode always send reestablish-indication to Upper Latyer*/ - KwUiKwuReEstCmpInd(&kwKwSap->pst, kwKwSap->suId, *rlcId); + RlcUiKwuReEstCmpInd(&rlcKwSap->pst, rlcKwSap->suId, *rlcId); RETVOID; } @@ -650,50 +588,30 @@ KwUlRbCb *rbCb; * -# TRUE * -# FALSE */ -#ifdef ANSI -PRIVATE S16 kwUmmExtractHdr -( -KwCb *gCb, -KwUlRbCb *rbCb, -Buffer *pdu, -KwUmHdr *umHdr -) -#else -PRIVATE S16 kwUmmExtractHdr(gCb, rbCb, pdu, umHdr) -KwCb *gCb; -KwUlRbCb *rbCb; -Buffer *pdu; -KwUmHdr *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(kwUmmExtractHdr) - - - 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); - - RETVALUE(RFAILED); + 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; @@ -704,17 +622,15 @@ KwUmHdr *umHdr; { /* 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); - RETVALUE(RFAILED); + 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; @@ -731,46 +647,35 @@ KwUmHdr *umHdr; umHdr->numLi = 0; totalSz = 0; - while(e && umHdr->numLi < KW_MAX_UL_LI ) + 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); - RETVALUE(RFAILED); + 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); - RETVALUE(RFAILED); + 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); - RETVALUE(RFAILED); /* the situation where in the PDU size + 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*/ } @@ -779,35 +684,31 @@ KwUmHdr *umHdr; e = ((dst[0]) & 0x80) >> 7; - if ( e && umHdr->numLi < KW_MAX_UL_LI) + if ( e && umHdr->numLi < RLC_MAX_UL_LI) { U8 tmp = ((dst[1]) & 0x08) >> 3; umHdr->li[umHdr->numLi] = ( dst[1] & 0x07) << 8; #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); - RETVALUE(RFAILED); + 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); - RETVALUE(RFAILED); + 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]; pduSz--; @@ -815,20 +716,20 @@ KwUmHdr *umHdr; if (pduSz < totalSz) { - RETVALUE(RFAILED); /* the situation where in the PDU size is + return RFAILED; /* the situation where in the PDU size is something that does not match with the size in LIs*/ } e = tmp; } - } /* while(e && umHdr->numLi < KW_MAX_LI ) */ + } /* while(e && umHdr->numLi < RLC_MAX_LI ) */ if (e) { - /* PDU was constructed with LIs that exceeded KW_MAX_LI */ - RETVALUE(RFAILED); + /* PDU was constructed with LIs that exceeded RLC_MAX_LI */ + return RFAILED; } - RETVALUE(ROK); + return ROK; } /** @@ -840,49 +741,45 @@ KwUmHdr *umHdr; * @return Void */ #ifdef ANSI -PUBLIC Void kwUmmReOrdTmrExp +Void rlcUmmReOrdTmrExp ( -KwCb *gCb, -KwUlRbCb *rbCb +RlcCb *gCb, +RlcUlRbCb *rbCb ) #else -PUBLIC Void kwUmmReOrdTmrExp(gCb, rbCb) -KwCb *gCb; -KwUlRbCb *rbCb; +Void rlcUmmReOrdTmrExp(gCb, rbCb) +RlcCb *gCb; +RlcUlRbCb *rbCb; #endif { - KwSn prevVrUr; /* prevVrUr */ - - TRC3(kwUmmReOrdTmrExp) - - - prevVrUr = KW_UMUL.vrUr; + RlcSn prevVrUr; /* prevVrUr */ + prevVrUr = RLC_UMUL.vrUr; /* set VR(UR) to SN >= VR(UX) that has not been received */ - kwUmmFindNextVRUR(&KW_UMUL, KW_UMUL.vrUx); + rlcUmmFindNextVRUR(&RLC_UMUL, RLC_UMUL.vrUx); - while (KW_UM_GET_VALUE(prevVrUr,KW_UMUL) < - KW_UM_GET_VALUE(KW_UMUL.vrUr,KW_UMUL)) + while (RLC_UM_GET_VALUE(prevVrUr,RLC_UMUL) < + RLC_UM_GET_VALUE(RLC_UMUL.vrUr,RLC_UMUL)) { - if (KW_UMUL.recBuf[prevVrUr]) + if (RLC_UMUL.recBuf[prevVrUr]) { - kwUmmReAssembleSdus(gCb, rbCb, KW_UMUL.recBuf[prevVrUr]); - if(KW_UMUL.recBuf[prevVrUr]->pdu != NULLP) /* RLC mem leak fix */ + rlcUmmReAssembleSdus(gCb, rbCb, RLC_UMUL.recBuf[prevVrUr]); + if(RLC_UMUL.recBuf[prevVrUr]->pdu != NULLP) /* RLC mem leak fix */ { - KW_FREE_BUF(KW_UMUL.recBuf[prevVrUr]->pdu); + RLC_FREE_BUF(RLC_UMUL.recBuf[prevVrUr]->pdu); } - KW_FREE_WC(gCb, KW_UMUL.recBuf[prevVrUr], sizeof(KwUmRecBuf)); - KW_UMUL.recBuf[prevVrUr] = NULLP; + RLC_FREE_WC(gCb, RLC_UMUL.recBuf[prevVrUr], sizeof(RlcUmRecBuf)); + RLC_UMUL.recBuf[prevVrUr] = NULLP; } prevVrUr = (prevVrUr + 1) & rbCb->m.umUl.modBitMask; } - if (KW_UM_GET_VALUE(KW_UMUL.vrUh, KW_UMUL) > - KW_UM_GET_VALUE(KW_UMUL.vrUr, KW_UMUL)) + if (RLC_UM_GET_VALUE(RLC_UMUL.vrUh, RLC_UMUL) > + RLC_UM_GET_VALUE(RLC_UMUL.vrUr, RLC_UMUL)) { - kwStartTmr(gCb,(PTR)rbCb,KW_EVT_UMUL_REORD_TMR); - KW_UMUL.vrUx = KW_UMUL.vrUh; + rlcStartTmr(gCb,(PTR)rbCb,RLC_EVT_UMUL_REORD_TMR); + RLC_UMUL.vrUx = RLC_UMUL.vrUh; } } @@ -901,45 +798,42 @@ KwUlRbCb *rbCb; */ #ifdef ANSI -PUBLIC Void kwUmmFreeUlRbCb +Void rlcUmmFreeUlRbCb ( -KwCb *gCb, -KwUlRbCb *rbCb +RlcCb *gCb, +RlcUlRbCb *rbCb ) #else -PUBLIC Void kwUmmFreeUlRbCb(gCb,rbCb) -KwCb *gCb; -KwUlRbCb *rbCb; +Void rlcUmmFreeUlRbCb(gCb,rbCb) +RlcCb *gCb; +RlcUlRbCb *rbCb; #endif { - KwSn curSn = 0; /* sequence number of PDU */ - KwSn windSz; /* PDU window size */ - KwUmRecBuf **umRecBuf; /* UM module receive buffer */ - - TRC2(kwUmmFreeUlRbCb) - + RlcSn curSn = 0; /* sequence number of PDU */ + RlcSn windSz; /* PDU window size */ + RlcUmRecBuf **umRecBuf; /* UM module receive buffer */ windSz = rbCb->m.umUl.umWinSz << 1; umRecBuf = rbCb->m.umUl.recBuf; - if(TRUE == kwChkTmr(gCb,(PTR)rbCb,KW_EVT_UMUL_REORD_TMR)) + if(TRUE == rlcChkTmr(gCb,(PTR)rbCb,RLC_EVT_UMUL_REORD_TMR)) { - kwStopTmr(gCb,(PTR)rbCb,KW_EVT_UMUL_REORD_TMR); + rlcStopTmr(gCb,(PTR)rbCb,RLC_EVT_UMUL_REORD_TMR); } while (curSn < windSz) { if (umRecBuf[curSn] != NULLP) { - KW_FREE_BUF_WC(umRecBuf[curSn]->pdu); + RLC_FREE_BUF_WC(umRecBuf[curSn]->pdu); umRecBuf[curSn]->pdu = NULLP; - KW_FREE_WC(gCb, umRecBuf[curSn], sizeof(KwUmRecBuf)); + RLC_FREE_WC(gCb, umRecBuf[curSn], sizeof(RlcUmRecBuf)); umRecBuf[curSn] = NULLP; } curSn++; } - KW_FREE_WC(gCb,rbCb->m.umUl.recBuf, (windSz ) * sizeof(KwUmRecBuf*)); + RLC_FREE_WC(gCb,rbCb->m.umUl.recBuf, (windSz ) * sizeof(RlcUmRecBuf*)); rbCb->m.umUl.recBuf = NULLP; RETVOID; }