X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Fkw_utl_dl.c;h=7a21f277edcaf7768728b636acac7d321189c6a6;hb=refs%2Fchanges%2F21%2F5721%2F1;hp=ccce2d429a8b0f51844d3c98437fea56ab415812;hpb=95fc4329bde1b6a06b00f94bd0eeab8bc5ba7295;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/kw_utl_dl.c b/src/5gnrrlc/kw_utl_dl.c index ccce2d429..7a21f277e 100755 --- a/src/5gnrrlc/kw_utl_dl.c +++ b/src/5gnrrlc/kw_utl_dl.c @@ -35,9 +35,6 @@ File: kw_utl_dl.c **********************************************************************/ -static const char* RLOG_MODULE_NAME="UTL"; -static int RLOG_MODULE_ID=2048; -static int RLOG_FILE_ID=209; /** @file kw_utl_dl.c @brief RLC Utility Module @@ -73,7 +70,9 @@ static int RLOG_FILE_ID=209; #include "rlc_utils.h" #include "rlc_mac_inf.h" +#include "du_app_rlc_inf.h" #include "rlc_lwr_inf_api.h" +#include "rlc_upr_inf_api.h" #include "ss_rbuf.h" #include "ss_rbuf.x" @@ -102,26 +101,26 @@ Void PrintRLCStats(Void) RlcCb* dlInst = rlcCb[1]; RlcCb* ulInst = rlcCb[0]; - RLOG4(L_ALWAYS,"RLC Stats: PDUs Sent = (%ld), PdusRext = (%ld), TimeOut = (%ld), SduDiscarded = (%ld)", + DU_LOG("\nINFO --> RLC_DL : RLC Stats: PDUs Sent = (%ld), PdusRext = (%ld), TimeOut = (%ld), SduDiscarded = (%ld)", dlInst->genSts.pdusSent, dlInst->genSts.pdusRetx, dlInst->genSts.protTimeOut, dlInst->genSts.numSduDisc); - RLOG3(L_ALWAYS,"RLC Stats: PDUs Rcvd = (%ld), unexpPdus = (%ld), errorPdus = (%ld)", + DU_LOG("\nINFO --> RLC_DL : RLC Stats: PDUs Rcvd = (%ld), unexpPdus = (%ld), errorPdus = (%ld)", ulInst->genSts.pdusRecv, ulInst->genSts.unexpPdusRecv, ulInst->genSts.errorPdusRecv); - RLOG4(L_ALWAYS,"RLC Stats: AMDL: " + DU_LOG("\nINFO --> RLC_DL : RLC Stats: AMDL: " "StaPduSent:%lu NacksInStaPdu:%lu BytesUnused:%lu PollTimerExpires SRB:%lu ", gRlcStats.amRlcStats.numDLStaPduSent, gRlcStats.amRlcStats.numDLNacksInStaPdu, gRlcStats.amRlcStats.numDLBytesUnused, gRlcStats.amRlcStats.numDLPollTimerExpiresSrb); - RLOG3(L_ALWAYS,"RLC Stats: AMDL: " + DU_LOG("\nINFO --> RLC_DL : RLC Stats: AMDL: " "DRB:%lu MaxRetx:%lu RetransPdus:%lu", gRlcStats.amRlcStats.numDLPollTimerExpiresDrb, gRlcStats.amRlcStats.numDLMaxRetx, gRlcStats.amRlcStats.numDLRetransPdus); - RLOG4(L_ALWAYS,"RLC Stats: AMUL: " - " PdusDiscarded:%lu ReOrdTimerExpires:%lu StaPduRcvd:%lu NackInStaPduRcvd:%lu ", - gRlcStats.amRlcStats.numULPdusDiscarded, gRlcStats.amRlcStats.numULReOrdTimerExpires, + DU_LOG("\nINFO --> RLC_DL : RLC Stats: AMUL: " + " PdusDiscarded:%lu ReAsmblTimerExpires:%lu StaPduRcvd:%lu NackInStaPduRcvd:%lu ", + gRlcStats.amRlcStats.numULPdusDiscarded, gRlcStats.amRlcStats.numULReAsmblTimerExpires, gRlcStats.amRlcStats.numULStaPduRcvd, gRlcStats.amRlcStats.numULNackInStaPduRcvd); RTLIN_DUMP_DEBUG("RLC Stats: PDUs Sent = (%ld), PdusRext = (%ld), TimeOut = (%ld), SduDiscarded = (%ld)\n", @@ -134,11 +133,11 @@ Void PrintRLCStats(Void) ulInst->genSts.unexpPdusRecv, ulInst->genSts.errorPdusRecv); RTLIN_DUMP_DEBUG("RLC Stats:" - "AMDL: StaPduSent:%lu NacksInStaPdu:%lu BytesUnused:%lu PollTimerExpires SRB:%lu DRB:%lu MaxRetx:%lu RetransPdus:%lu \n" - "AMUL: PdusDiscarded:%lu ReOrdTimerExpires:%lu StaPduRcvd:%lu NackInStaPduRcvd:%lu \n", + "RLC_AMDL: StaPduSent:%lu NacksInStaPdu:%lu BytesUnused:%lu PollTimerExpires SRB:%lu DRB:%lu MaxRetx:%lu RetransPdus:%lu \n" + "RLC_AMUL: PdusDiscarded:%lu ReAsmblTimerExpires:%lu StaPduRcvd:%lu NackInStaPduRcvd:%lu \n", gRlcStats.amRlcStats.numDLStaPduSent, gRlcStats.amRlcStats.numDLNacksInStaPdu, gRlcStats.amRlcStats.numDLBytesUnused, gRlcStats.amRlcStats.numDLPollTimerExpiresSrb, gRlcStats.amRlcStats.numDLPollTimerExpiresDrb, gRlcStats.amRlcStats.numDLMaxRetx, - gRlcStats.amRlcStats.numDLRetransPdus, gRlcStats.amRlcStats.numULPdusDiscarded, gRlcStats.amRlcStats.numULReOrdTimerExpires, + gRlcStats.amRlcStats.numDLRetransPdus, gRlcStats.amRlcStats.numULPdusDiscarded, gRlcStats.amRlcStats.numULReAsmblTimerExpires, gRlcStats.amRlcStats.numULStaPduRcvd, gRlcStats.amRlcStats.numULNackInStaPduRcvd); } #else @@ -147,31 +146,31 @@ Void PrintRLCStats(Void) RlcCb* dlInst = rlcCb[1]; RlcCb* ulInst = rlcCb[0]; - printf ("\n================================ RLC STATS ===========================\n"); - RLOG4(L_ALWAYS,"RLC Stats: PDUs Sent = (%ld), PdusRext = (%ld), TimeOut = (%ld), SduDiscarded = (%ld)", + DU_LOG ("\n ================================ RLC STATS ===========================\n"); + DU_LOG("\nINFO --> RLC_DL : RLC Stats: PDUs Sent = (%d), PdusRext = (%d), TimeOut = (%d), SduDiscarded = (%d)", dlInst->genSts.pdusSent, dlInst->genSts.pdusRetx, dlInst->genSts.protTimeOut, dlInst->genSts.numSduDisc); - RLOG3(L_ALWAYS,"RLC Stats: PDUs Rcvd = (%ld), unexpPdus = (%ld), errorPdus = (%ld)", + DU_LOG("\nINFO --> RLC_DL : RLC Stats: PDUs Rcvd = (%d), unexpPdus = (%d), errorPdus = (%d)", ulInst->genSts.pdusRecv, ulInst->genSts.unexpPdusRecv, ulInst->genSts.errorPdusRecv); - RLOG4(L_ALWAYS,"RLC Stats: AMDL: " - "StaPduSent:%lu NacksInStaPdu:%lu BytesUnused:%lu PollTimerExpires SRB:%lu ", + DU_LOG("\nINFO --> RLC_DL : RLC Stats: AMDL: " + "StaPduSent:%u NacksInStaPdu:%u BytesUnused:%u PollTimerExpires SRB:%u ", gRlcStats.amRlcStats.numDLStaPduSent, gRlcStats.amRlcStats.numDLNacksInStaPdu, gRlcStats.amRlcStats.numDLBytesUnused, gRlcStats.amRlcStats.numDLPollTimerExpiresSrb); - RLOG3(L_ALWAYS,"RLC Stats: AMDL: " - "DRB:%lu MaxRetx:%lu RetransPdus:%lu", + DU_LOG("\nINFO --> RLC_DL : RLC Stats: AMDL: " + "DRB:%u MaxRetx:%u RetransPdus:%u", gRlcStats.amRlcStats.numDLPollTimerExpiresDrb, gRlcStats.amRlcStats.numDLMaxRetx, gRlcStats.amRlcStats.numDLRetransPdus); - RLOG4(L_ALWAYS,"RLC Stats: AMUL: " - " PdusDiscarded:%lu ReOrdTimerExpires:%lu StaPduRcvd:%lu NackInStaPduRcvd:%lu ", - gRlcStats.amRlcStats.numULPdusDiscarded, gRlcStats.amRlcStats.numULReOrdTimerExpires, + DU_LOG("\nINFO --> RLC_DL : RLC Stats: AMUL: " + " PdusDiscarded:%u ReAsmblTimerExpires:%u StaPduRcvd:%u NackInStaPduRcvd:%u ", + gRlcStats.amRlcStats.numULPdusDiscarded, gRlcStats.amRlcStats.numULReAsmblTimerExpires, gRlcStats.amRlcStats.numULStaPduRcvd, gRlcStats.amRlcStats.numULNackInStaPduRcvd); /* RTLIN_DUMP_DEBUG("AM RLC Stats:" - "AMDL: SDUs Tx :(%u) SDU Bytes Tx :(%u) SDUs Retx :(%u) MaxRetx:(%u) WindowStalls: (%u) \n" - "AMUL: DropOutWinRx :(%u) SDUs Rx :(%u) SDU Bytes Rx :(%u) SDUNack Rx :(%u) Duplicate Pdu Rx :(%u) \n", + "RLC_AMDL: SDUs Tx :(%u) SDU Bytes Tx :(%u) SDUs Retx :(%u) MaxRetx:(%u) WindowStalls: (%u) \n" + "RLC_AMUL: DropOutWinRx :(%u) SDUs Rx :(%u) SDU Bytes Rx :(%u) SDUNack Rx :(%u) Duplicate Pdu Rx :(%u) \n", gRlcStats.amRlcStats.numRlcAmCellSduTx, gRlcStats.amRlcStats.numRlcAmCellSduBytesTx, gRlcStats.amRlcStats.numRlcAmCellRetxPdu, gRlcStats.amRlcStats.numRlcAmMaxRetx, gRlcStats.amRlcStats.numRlcAmCellWinStall, gRlcStats.amRlcStats.numRlcAmCellDropOutWinRx, gRlcStats.amRlcStats.numRlcAmCellSduRx, @@ -186,17 +185,17 @@ Void PrintRLCStats(Void) ulInst->genSts.pdusRecv, ulInst->genSts.unexpPdusRecv, ulInst->genSts.errorPdusRecv); - RTLIN_DUMP_DEBUG("AMDL: StaPduSent:%u NacksInStaPdu:%u BytesUnused:%u PollTimerExpires SRB:%u DRB:%u MaxRetx:%u RetransPdus:%u \n" + RTLIN_DUMP_DEBUG("RLC_AMDL: StaPduSent:%u NacksInStaPdu:%u BytesUnused:%u PollTimerExpires SRB:%u DRB:%u MaxRetx:%u RetransPdus:%u \n" " SDUs Tx :(%u) SDU Bytes Tx :(%u) SDUs Retx :(%u) WindowStalls: (%u) \n" - "AMUL: PdusDiscarded:%u ReOrdTimerExpires:%u StaPduRcvd:%u NackInStaPduRcvd:%u \n" + "RLC_AMUL: PdusDiscarded:%u ReAsmblTimerExpires:%u StaPduRcvd:%u NackInStaPduRcvd:%u \n" " DropOutWinRx :(%u) SDUs Rx :(%u) SDU Bytes Rx :(%u) SDUNack Rx :(%u) Duplicate Pdu Rx:(%u) \n", gRlcStats.amRlcStats.numDLStaPduSent, gRlcStats.amRlcStats.numDLNacksInStaPdu, gRlcStats.amRlcStats.numDLBytesUnused, gRlcStats.amRlcStats.numDLPollTimerExpiresSrb, gRlcStats.amRlcStats.numDLPollTimerExpiresDrb, gRlcStats.amRlcStats.numDLMaxRetx, gRlcStats.amRlcStats.numDLRetransPdus, gRlcStats.amRlcStats.numRlcAmCellSduTx, gRlcStats.amRlcStats.numRlcAmCellSduBytesTx, gRlcStats.amRlcStats.numRlcAmCellRetxPdu, gRlcStats.amRlcStats.numRlcAmCellWinStall, - gRlcStats.amRlcStats.numULPdusDiscarded, gRlcStats.amRlcStats.numULReOrdTimerExpires, + gRlcStats.amRlcStats.numULPdusDiscarded, gRlcStats.amRlcStats.numULReAsmblTimerExpires, gRlcStats.amRlcStats.numULStaPduRcvd, gRlcStats.amRlcStats.numULNackInStaPduRcvd, gRlcStats.amRlcStats.numRlcAmCellDropOutWinRx, gRlcStats.amRlcStats.numRlcAmCellSduRx, gRlcStats.amRlcStats.numRlcAmCellSduBytesRx, gRlcStats.amRlcStats.numRlcAmCellNackRx, gRlcStats.amRlcStats.numRlcAmCellDupPduRx); @@ -222,44 +221,42 @@ Void PrintRLCStats(Void) * ****************************************************************/ uint8_t rlcSendDedLcDlData(Pst *post, SpId spId, RguDDatReqInfo *datReqInfo) { - uint8_t ueIdx; /* UE info list iterator */ - uint8_t tbIdx; /* TB info list iterator */ - uint8_t lchIdx; /* Lch info list iterator */ - uint8_t pduIdx; /* RLC PDU list iterator */ - RguDDatReqPerUe datPerUe; /* DL data info per UE */ - RguDatReqTb datPerTb; /* DL data info per TB */ - RguLchDatReq datPerLch; /* DL data info per Lch */ - RlcData *dlData; /* DL data to be sent to MAC */ - Pst pst; /* Post structure */ - uint16_t pduLen; /* PDU length */ - uint16_t copyLen; /* Number of bytes copied */ - - dlData = NULLP; + uint8_t ueIdx; /* UE info list iterator */ + uint8_t tbIdx; /* TB info list iterator */ + uint8_t lchIdx; /* Lch info list iterator */ + uint8_t pduIdx; /* RLC PDU list iterator */ + RguDDatReqPerUe datPerUe; /* DL data info per UE */ + RguDatReqTb datPerTb; /* DL data info per TB */ + RguLchDatReq datPerLch; /* DL data info per Lch */ + RlcData *dlData = NULLP; /* DL data to be sent to MAC */ + RlcDlRrcMsgRsp *dlRrcMsgRsp = NULLP; /*DL RRC Rsp to be sent to DU*/ + Pst pst; /* Post structure */ + uint16_t pduLen; /* PDU length */ + uint16_t copyLen; /* Number of bytes copied */ + uint8_t lcId = 0; + RLC_ALLOC_SHRABL_BUF(RLC_MEM_REGION_DL, RLC_POOL, dlData, sizeof(RlcData)); -#if (ERRCLASS & ERRCLS_ADD_RES) - if ( dlData == NULLP ) + if(dlData == NULLP) { - DU_LOG("\nRLC: rlcSendDedLcDlData: Memory allocation failed for dl data"); + DU_LOG("\nERROR --> RLC_DL : rlcSendDedLcDlData: Memory allocation failed for dl data"); RLC_FREE_SHRABL_BUF(RLC_MEM_REGION_DL, RLC_POOL, datReqInfo, sizeof(RguDDatReqInfo)); return RFAILED; } -#endif /* ERRCLASS & ERRCLS_ADD_RES */ + memset(dlData, 0, sizeof(RlcData)); for(ueIdx = 0; ueIdx < datReqInfo->nmbOfUeGrantPerTti; ueIdx++) { datPerUe = datReqInfo->datReq[ueIdx]; - memset(dlData, 0, sizeof(RlcData)); - dlData->cellId = datReqInfo->cellId; dlData->rnti = datPerUe.rnti; - /* Retrieving sfn/slot from transId. It was filled in RlcProcSchedResultRpt */ dlData->slotInfo.sfn = datPerUe.transId >> 16; dlData->slotInfo.slot = datPerUe.transId & 0xffff; dlData->numPdu = 0; + dlData->numLc = 0; for(tbIdx = 0; tbIdx < datPerUe.nmbOfTbs; tbIdx++) { @@ -267,6 +264,7 @@ uint8_t rlcSendDedLcDlData(Pst *post, SpId spId, RguDDatReqInfo *datReqInfo) for(lchIdx = 0; lchIdx < datPerTb.nmbLch; lchIdx++) { datPerLch = datPerTb.lchData[lchIdx]; + lcId = datPerLch.lcId; for(pduIdx = 0; pduIdx < datPerLch.pdu.numPdu; pduIdx++) { dlData->pduInfo[dlData->numPdu].commCh = FALSE; @@ -279,7 +277,7 @@ uint8_t rlcSendDedLcDlData(Pst *post, SpId spId, RguDDatReqInfo *datReqInfo) if (dlData->pduInfo[dlData->numPdu].pduBuf == NULLP ) { - DU_LOG("\nRLC: rlcSendDedLcDlData: Memory allocation failed"); + DU_LOG("\nERROR --> RLC_DL : rlcSendDedLcDlData: Memory allocation failed"); for(pduIdx = 0; pduIdx < dlData->numPdu; pduIdx++) { RLC_FREE_SHRABL_BUF(pst.region, pst.pool, dlData->pduInfo[pduIdx].pduBuf,\ @@ -301,25 +299,64 @@ uint8_t rlcSendDedLcDlData(Pst *post, SpId spId, RguDDatReqInfo *datReqInfo) dlData->numPdu++; }/* For per PDU */ + dlData->boStatus[dlData->numLc].cellId = datReqInfo->cellId; + GET_UE_IDX(datPerUe.rnti, dlData->boStatus[dlData->numLc].ueIdx); + dlData->boStatus[dlData->numLc].commCh = false; + dlData->boStatus[dlData->numLc].lcId = datPerLch.lcId; + dlData->boStatus[dlData->numLc].bo = datPerLch.boReport.bo + datPerLch.boReport.estRlcHdrSz; + dlData->numLc++; }/* For Data per Lch */ }/* For Data per Tb */ + RLC_ALLOC_SHRABL_BUF(RLC_MEM_REGION_DL, RLC_POOL, dlRrcMsgRsp, sizeof(RlcDlRrcMsgRsp)); + if(dlRrcMsgRsp == NULLP) + { + DU_LOG("\nERROR --> RLC_DL : rlcSendDedLcDlData: Memory allocation failed for dlRrcMsgRsp"); + for(pduIdx = 0; pduIdx < dlData->numPdu; pduIdx++) + { + RLC_FREE_SHRABL_BUF(pst.region, pst.pool, dlData->pduInfo[pduIdx].pduBuf,\ + dlData->pduInfo[pduIdx].pduLen); + } + RLC_FREE_SHRABL_BUF(pst.region, pst.pool, dlData, sizeof(RlcData)); + RLC_FREE_SHRABL_BUF(RLC_MEM_REGION_DL, RLC_POOL, + datReqInfo, sizeof(RguDDatReqInfo)); + return RFAILED; + } + dlRrcMsgRsp->cellId = dlData->cellId; + dlRrcMsgRsp->crnti = dlData->rnti; + /* Sending DL Data per UE to MAC */ - memset(&pst, 0, sizeof(Pst)); FILL_PST_RLC_TO_MAC(pst, RLC_DL_INST, EVENT_DL_DATA_TO_MAC); if(RlcSendDlDataToMac(&pst, dlData) != ROK) { + DU_LOG("\nERROR --> RLC_DL : rlcSendDedLcDlData: Failed to send Dl RRC Msg To Mac"); + dlRrcMsgRsp->state = TRANSMISSION_FAILED; for(pduIdx = 0; pduIdx < dlData->numPdu; pduIdx++) - { - RLC_FREE_SHRABL_BUF(pst.region, pst.pool, dlData->pduInfo[pduIdx].pduBuf,\ - dlData->pduInfo[pduIdx].pduLen); - } + { + RLC_FREE_SHRABL_BUF(pst.region, pst.pool, dlData->pduInfo[pduIdx].pduBuf,\ + dlData->pduInfo[pduIdx].pduLen); + } RLC_FREE_SHRABL_BUF(pst.region, pst.pool, dlData, sizeof(RlcData)); + RLC_FREE_SHRABL_BUF(RLC_MEM_REGION_DL, RLC_POOL, datReqInfo, sizeof(RguDDatReqInfo)); + RLC_FREE_SHRABL_BUF(pst.region, pst.pool, dlRrcMsgRsp, sizeof(RlcDlRrcMsgRsp)); + return RFAILED; } - } /* For Data per UE */ + else + dlRrcMsgRsp->state = TRANSMISSION_COMPLETE; - RLC_FREE_SHRABL_BUF(RLC_MEM_REGION_DL, RLC_POOL, - datReqInfo, sizeof(RguDDatReqInfo)); + FILL_PST_RLC_TO_DUAPP(pst, RLC_DL_INST, EVENT_DL_RRC_MSG_RSP_TO_DU); + if(lcId >= SRB1_LCID && lcId <= SRB3_LCID) /* Valid for all RRC messages i.e. SRB1, SRB2, SRB3 */ + { + if(rlcSendDlRrcMsgRspToDu(&pst, dlRrcMsgRsp) != ROK) + { + DU_LOG("\nERROR --> RLC_DL : rlcSendDedLcDlData: Failed to send Dl RRC Msg Rsp To Du"); + RLC_FREE_SHRABL_BUF(pst.region, pst.pool, dlRrcMsgRsp, sizeof(RlcDlRrcMsgRsp)); + RLC_FREE_SHRABL_BUF(RLC_MEM_REGION_DL, RLC_POOL, datReqInfo, sizeof(RguDDatReqInfo)); + return RFAILED; + } + } + } /* For Data per UE */ + RLC_FREE_SHRABL_BUF(RLC_MEM_REGION_DL, RLC_POOL, datReqInfo, sizeof(RguDDatReqInfo)); return ROK; }/* End of rlcSendDedLcDlData */ @@ -378,7 +415,7 @@ uint8_t rlcUtlSendToMac(RlcCb *gCb, SuId suId, KwDStaIndInfo *staIndInfo) #if (ERRCLASS & ERRCLS_ADD_RES) if ( datReqInfo == NULLP ) { - DU_LOG("\nRLC: rlcUtlSendToMac: Memory allocation failed"); + DU_LOG("\nERROR --> RLC_DL : rlcUtlSendToMac: Memory allocation failed"); return RFAILED; } #endif /* ERRCLASS & ERRCLS_ADD_RES */ @@ -390,7 +427,7 @@ uint8_t rlcUtlSendToMac(RlcCb *gCb, SuId suId, KwDStaIndInfo *staIndInfo) if(ROK != rlcDbmFetchDlUeCb(gCb, ueIdx, staIndInfo->cellId,&ueCb)) { /* Fetch UeCb failed */ - DU_LOG("\nRLC: rlcUtlSendToMac: UeId[%u]:ueCb not found", + DU_LOG("\nERROR --> RLC_DL : rlcUtlSendToMac: UeId[%u]:ueCb not found", staInd->rnti); /* If ueCb is not found for current rnti then continue to look for next rnti*/ continue; @@ -432,11 +469,11 @@ uint8_t rlcUtlSendToMac(RlcCb *gCb, SuId suId, KwDStaIndInfo *staIndInfo) datReq.totMacGrant = grantPerLch[staIndTb->lchStaInd[count].lcId]; #endif rlcUtlGetCurrTime(&datReq.boRep.oldestSduArrTime); - if ( CM_LTE_MODE_UM == rbCb->mode ) + if ( RLC_MODE_UM == rbCb->mode ) { rlcUmmProcessSdus(gCb,rbCb,&datReq); } - else if ( CM_LTE_MODE_AM == rbCb->mode ) + else if ( RLC_MODE_AM == rbCb->mode ) { rlcAmmProcessSdus(gCb,rbCb,&datReq,staInd->fillCtrlPdu); } @@ -458,8 +495,8 @@ uint8_t rlcUtlSendToMac(RlcCb *gCb, SuId suId, KwDStaIndInfo *staIndInfo) datIndSz += len; } datReqTb->lchData[count].setMaxUlPrio = FALSE; - if (RLC_AM_IS_POLL_BIT_SET(AMDL) && - (AMDL.sduQ.count > 1)) + if (RLC_AM_IS_POLL_BIT_SET(RLC_AMDL) && + (RLC_AMDL.sduQ.count > 1)) { /* Poll bit is set indicate to MAC*/ datReqTb->lchData[count].setMaxUlPrio = TRUE; @@ -468,7 +505,7 @@ uint8_t rlcUtlSendToMac(RlcCb *gCb, SuId suId, KwDStaIndInfo *staIndInfo) #ifdef CCPU_OPT datReqTb->lchData[count].boReport.estRlcHdrSz = - datReq.boRep.estHdrSz; + datReq.boRep.estHdrSz; datReqTb->lchData[count].boReport.staPduPrsnt = datReq.boRep.staPduPrsnt; #endif /* CCPU_OPT */ @@ -478,7 +515,7 @@ uint8_t rlcUtlSendToMac(RlcCb *gCb, SuId suId, KwDStaIndInfo *staIndInfo) #ifdef L2_OPTMZ /* Set if Bearer is UM */ - if ( CM_LTE_MODE_UM == rbCb->mode ) + if ( RLC_MODE_UM == rbCb->mode ) { datReqTb->lchData[count].freeBuff = TRUE; } @@ -591,7 +628,7 @@ uint8_t rlcUtlSendDedLcBoStatus(RlcCb *gCb, RlcDlRbCb *rbCb, int32_t bo, \ #ifndef TENB_ACC if ((rbCb->lastRprtdBoToMac > (uint32_t)8000) && (rbCb->boUnRprtdCnt < (uint32_t)5) - && (!staPduPrsnt) && ((CM_LTE_MODE_AM == rbCb->mode ) && (AMDL.nxtRetx == NULLP))) + && (!staPduPrsnt) && ((RLC_MODE_AM == rbCb->mode ) && (RLC_AMDL.nxtRetx == NULLP))) { rbCb->boUnRprtdCnt++; return ROK; @@ -607,7 +644,7 @@ uint8_t rlcUtlSendDedLcBoStatus(RlcCb *gCb, RlcDlRbCb *rbCb, int32_t bo, \ boStatus->ueIdx = rbCb->rlcId.ueId; boStatus->commCh = FALSE; boStatus->lcId = rbCb->lch.lChId; - boStatus->bo = bo; + boStatus->bo = bo + estHdrSz; FILL_PST_RLC_TO_MAC(pst, RLC_DL_INST, EVENT_BO_STATUS_TO_MAC); /* Send Status Response to MAC layer */ @@ -682,41 +719,6 @@ CmLListCp *sduQ return; } -/** - * - * @brief - * Handler for calculating the Length Indicator (LI) length for a SDU - * - * @detail: - * This function is used to calculate the LI (Length Indicator) length - * which has to be substracted from the pduSize to correctly match the - * formed PDU(s) size with the size requested by MAC. - * - * @param[in] gCb RLC instance control block - * @param[in] numLi Number of LIs already present - * @param[in] msgLen Size of the SDU - * @param[in/out] pduSz Size of the pDU to be formed - * - * @return void - */ -void rlcUtlCalcLiForSdu(RlcCb *gCb, uint16_t numLi, MsgLen msgLen, int16_t *pduSz) -{ - if ( (*pduSz > msgLen) && (msgLen < RLC_2K_BYTE)) - { - if(0 == (numLi & RLC_BIT0)) /* check if number of LIs are odd or even */ - { - /* if number of LI's are even 2 bytes needed */ - *pduSz -= 2; - } - else - { - /* if number of LI's are odd one byte needed */ - *pduSz -= 1; - } - } - return; -} - /** * * @brief @@ -739,20 +741,15 @@ Void rlcDlUtlSetReestInProgressForRB(RlcCb *gCb,RlcDlRbCb *rbCb) rbCb->reestInProgress = TRUE; - if(rbCb->mode == CM_LTE_MODE_AM ) + if(rbCb->mode == RLC_MODE_AM ) { rbCb->m.amDl.estHdrSz = 0; - if(rlcChkTmr(gCb, (PTR)rbCb, RLC_EVT_AMDL_POLL_RETX_TMR)) + if(rlcChkTmr(gCb, (PTR)rbCb, EVENT_RLC_AMDL_POLL_RETX_TMR)) { - rlcStopTmr(gCb, (PTR)rbCb, RLC_EVT_AMDL_POLL_RETX_TMR); + rlcStopTmr(gCb, (PTR)rbCb, EVENT_RLC_AMDL_POLL_RETX_TMR); } } - else - { - rbCb->m.umDl.estHdrSz= 0; - } - rlcUtlSendDedLcBoStatus(gCb, rbCb, 0, 0, FALSE,0); return; @@ -817,9 +814,9 @@ Void rlcDlUtlSetReestInProgressForAllRBs(RlcCb *gCb,RlcDlUeCb *ueCb) else { /* For SRB we just need to stop the poll re-transmit timer */ - if(rlcChkTmr(gCb, (PTR)ueCb->srbCb[rbIdx], RLC_EVT_AMDL_POLL_RETX_TMR)) + if(rlcChkTmr(gCb, (PTR)ueCb->srbCb[rbIdx], EVENT_RLC_AMDL_POLL_RETX_TMR)) { - rlcStopTmr(gCb, (PTR)ueCb->srbCb[rbIdx], RLC_EVT_AMDL_POLL_RETX_TMR); + rlcStopTmr(gCb, (PTR)ueCb->srbCb[rbIdx], EVENT_RLC_AMDL_POLL_RETX_TMR); } } } @@ -1001,30 +998,30 @@ static Bool rlcUtlFreeDlAmRbMemory(RlcCb *gCb,RlcDlRbCb *rbCb,uint32_t *toBeFree RlcSn mTxNext; /* send state variable */ RlcTx *txBuf; - MODAMT(AMDL.txNext, mTxNext, AMDL.txNextAck,AMDL.snModMask); + MODAMT(RLC_AMDL.txNext, mTxNext, RLC_AMDL.txNextAck,RLC_AMDL.snModMask); /* TODO : to be checked changed from <= to < */ while ((0 < mTxNext) && *toBeFreed) { - txBuf = rlcUtlGetTxBuf(AMDL.txBufLst, AMDL.txNextAck); + txBuf = rlcUtlGetTxBuf(RLC_AMDL.txBufLst, RLC_AMDL.txNextAck); if (txBuf && txBuf->pduLst.first) { while(txBuf->pduLst.first) { RlcDlPduInfo *pduInfo = (RlcDlPduInfo *)(txBuf->pduLst.first->node); - RLC_FREE_BUF(pduInfo->pdu); + ODU_PUT_MSG_BUF(pduInfo->pdu); /* Delete node from the txBuf Pdu lst */ cmLListDelFrm(&txBuf->pduLst, txBuf->pduLst.first); - RLC_FREE_WC(gCb, pduInfo, sizeof(RlcDlPduInfo)); + RLC_FREE(gCb, pduInfo, sizeof(RlcDlPduInfo)); } - rlcUtlDelTxBuf(AMDL.txBufLst, txBuf, gCb); + rlcUtlDelTxBuf(RLC_AMDL.txBufLst, txBuf, gCb); if(gCb->u.dlCb->shutdownReceived == 0) { (*toBeFreed)--; } } - AMDL.txNextAck = (AMDL.txNextAck + 1) & AMDL.snModMask; - MODAMT(AMDL.txNext, mTxNext, AMDL.txNextAck,AMDL.snModMask); + RLC_AMDL.txNextAck = (RLC_AMDL.txNextAck + 1) & RLC_AMDL.snModMask; + MODAMT(RLC_AMDL.txNext, mTxNext, RLC_AMDL.txNextAck,RLC_AMDL.snModMask); } if(*toBeFreed == 0) { @@ -1032,19 +1029,19 @@ static Bool rlcUtlFreeDlAmRbMemory(RlcCb *gCb,RlcDlRbCb *rbCb,uint32_t *toBeFree } #ifndef LTE_TDD - RLC_FREE(gCb,AMDL.txBufLst, (RLC_TX_BUF_BIN_SIZE * sizeof(CmLListCp))); + RLC_FREE(gCb,RLC_AMDL.txBufLst, (RLC_TX_BUF_BIN_SIZE * sizeof(CmLListCp))); #endif - RLC_LLIST_FIRST_RETX(AMDL.retxLst, retx); + RLC_LLIST_FIRST_RETX(RLC_AMDL.retxLst, retx); while (retx && (*toBeFreed)) /* Till to be freed becomes 0 */ { - RLC_FREE_BUF(retx->seg); + ODU_PUT_MSG_BUF(retx->seg); - cmLListDelFrm(&AMDL.retxLst, &retx->lstEnt); - RLC_FREE_WC(gCb, retx, sizeof(RlcRetx)); + cmLListDelFrm(&RLC_AMDL.retxLst, &retx->lstEnt); + RLC_FREE(gCb, retx, sizeof(RlcRetx)); - RLC_LLIST_FIRST_RETX(AMDL.retxLst, retx); + RLC_LLIST_FIRST_RETX(RLC_AMDL.retxLst, retx); if(gCb->u.dlCb->shutdownReceived == 0) { (*toBeFreed)--; @@ -1052,18 +1049,18 @@ static Bool rlcUtlFreeDlAmRbMemory(RlcCb *gCb,RlcDlRbCb *rbCb,uint32_t *toBeFree } - AMDL.nxtRetx = NULLP; + RLC_AMDL.nxtRetx = NULLP; /* clean up if there is info about STATUS PDU to be sent */ - if(AMDL.pStaPdu) + if(RLC_AMDL.pStaPdu) { Pst *udxPst; udxPst = &gCb->u.dlCb->udxDlSap->pst; RLC_FREE_SHRABL_BUF_WC(udxPst->region, udxPst->pool, - AMDL.pStaPdu, + RLC_AMDL.pStaPdu, sizeof(RlcUdxDlStaPdu)); - AMDL.pStaPdu = NULLP; + RLC_AMDL.pStaPdu = NULLP; } if(*toBeFreed == 0) @@ -1138,8 +1135,8 @@ Void rlcUtlFreeDlMemory(RlcCb *gCb) { RlcRetx* seg = (RlcRetx *)(lst->first->node); cmLListDelFrm(lst, lst->first); - RLC_FREE_BUF_WC(seg->seg); - RLC_FREE_WC(gCb,seg, sizeof(RlcRetx)); + ODU_PUT_MSG_BUF(seg->seg); + RLC_FREE(gCb,seg, sizeof(RlcRetx)); toBeFreed--; } @@ -1158,10 +1155,10 @@ Void rlcUtlFreeDlMemory(RlcCb *gCb) RlcDlPduInfo *pduInfo = (RlcDlPduInfo *)(pdu->pduLst.first->node); cmLListDelFrm(&pdu->pduLst, pdu->pduLst.first); - RLC_FREE_BUF_WC(pduInfo->pdu); - RLC_FREE_WC(gCb, pduInfo, sizeof(RlcDlPduInfo)); + ODU_PUT_MSG_BUF(pduInfo->pdu); + RLC_FREE(gCb, pduInfo, sizeof(RlcDlPduInfo)); } - RLC_FREE_WC(gCb,pdu, sizeof(RlcTx)); + RLC_FREE(gCb,pdu, sizeof(RlcTx)); toBeFreed--; } @@ -1191,7 +1188,7 @@ Void rlcUtlFreeDlMemory(RlcCb *gCb) if(!moreToBeFreed) { cmLListDelFrm(lst, lst->first); - RLC_FREE_WC(gCb, rbCb, sizeof(RlcDlRbCb)); + RLC_FREE(gCb, rbCb, sizeof(RlcDlRbCb)); } } @@ -1654,9 +1651,9 @@ S16 rlcUtlSndDlL2MeasCfm(RlcCb *gCb,RlcL2MeasEvtCb *measEvtCb) /* kw006.201 ccpu00120058 emoved 64 bit compilation warning */ #ifndef ALIGN_64BIT - RLOG1(L_DEBUG,"rlcUtlSndL2MeasCfm(transId(%ld))", measEvtCb->transId); + DU_LOG("\nDEBUG --> RLC_DL : rlcUtlSndL2MeasCfm(transId(%ld))", measEvtCb->transId); #else - RLOG1(L_DEBUG,"rlcUtlSndL2MeasCfm(transId(%d))", measEvtCb->transId); + DU_LOG("\nDEBUG --> RLC_DL : rlcUtlSndL2MeasCfm(transId(%d))", measEvtCb->transId); #endif /* Clean up the RB data structures */ @@ -1870,15 +1867,14 @@ Void rlcUtlResetDlL2MeasInRlcRb(RlcCb *gCb,RlcL2MeasCb *measCb,uint8_t measType) static Void dumpRLCDlRbInformation(RlcDlRbCb* dlRbCb) { - if(dlRbCb->mode == CM_LTE_MODE_UM) + if(dlRbCb->mode == RLC_MODE_UM) { - RLOG_ARG3(L_DEBUG,DBG_RBID,dlRbCb->rlcId.rbId, - "UM Downlink UEID:%d CELLID:%d Q size = %d", + DU_LOG("\nDEBUG --> RLC_DL : UM Downlink UEID:%d CELLID:%d Q size = %d", dlRbCb->rlcId.ueId, dlRbCb->rlcId.cellId, (int)dlRbCb->m.umDl.sduQ.count); } - else if(dlRbCb->mode == CM_LTE_MODE_AM) + else if(dlRbCb->mode == RLC_MODE_AM) { uint32_t j, numTxPdus=0; for(j = 0; j <= (RLC_AM_GET_WIN_SZ(dlRbCb->m.amDl.snLen)); j++) @@ -1889,14 +1885,12 @@ static Void dumpRLCDlRbInformation(RlcDlRbCb* dlRbCb) numTxPdus++; } } - RLOG_ARG4(L_DEBUG,DBG_RBID,dlRbCb->rlcId.rbId, - "AM Downlink UEID:%d CELLID:%d Sizes SDU Q = %d TX Q = %d ", + DU_LOG("\nDEBUG --> RLC_DL : AM Downlink UEID:%d CELLID:%d Sizes SDU Q = %d TX Q = %d ", dlRbCb->rlcId.ueId, dlRbCb->rlcId.cellId, (int)dlRbCb->m.amDl.sduQ.count, (int)numTxPdus); - RLOG_ARG3(L_DEBUG,DBG_RBID,dlRbCb->rlcId.rbId, - "AM Downlink UEID:%d CELLID:%d RETX Q= %d", + DU_LOG("\nDEBUG --> RLC_DL : AM Downlink UEID:%d CELLID:%d RETX Q= %d", dlRbCb->rlcId.ueId, dlRbCb->rlcId.cellId, (int)dlRbCb->m.amDl.retxLst.count); @@ -2124,9 +2118,9 @@ Void rlcUtlDelTxBuf (CmLListCp *txBufLst,RlcTx *txBuf,RlcCb *gCb) hashKey = (txBuf->sn % RLC_TX_BUF_BIN_SIZE ); txBufLstCp = &txBufLst[hashKey]; - //printf("D-sn(%d)\n", txBuf->hdr.sn); + //DU_LOG("\nINFO --> RLC_DL : D-sn(%d)\n", txBuf->hdr.sn); cmLListDelFrm(txBufLstCp, &txBuf->lnk); - RLC_FREE_WC(gCb, txBuf, sizeof(RlcTx)); + RLC_FREE(gCb, txBuf, sizeof(RlcTx)); return; } /* rlcUtlDelTxBuf */ @@ -2152,7 +2146,7 @@ Void rlcUtlRemovTxBuf(CmLListCp *txBufLst,RlcTx *txBuf,RlcCb *gCb) hashKey = (txBuf->sn % RLC_TX_BUF_BIN_SIZE ); txBufLstCp = &txBufLst[hashKey]; - //printf("D-sn(%d)\n", txBuf->hdr.sn); + //DU_LOG("\nINFO --> RLC_DL : D-sn(%d)\n", txBuf->hdr.sn); cmLListDelFrm(txBufLstCp, &txBuf->lnk); return; } /* rlcUtlRemovTxBuf */