X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Fkw_utl_ul.c;h=18cf51ee81f4a92bb24a0aa39fcca7b492e1ed3c;hb=ba78fa13b01e0729fe0a6a7a18cbf1d52cdcda1c;hp=1b70dcec66256d890fa5bfb2b204a88549cf0c28;hpb=0a26c487f1b6bbb5217e47b15fa8273b2e749283;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/kw_utl_ul.c b/src/5gnrrlc/kw_utl_ul.c index 1b70dcec6..18cf51ee8 100755 --- a/src/5gnrrlc/kw_utl_ul.c +++ b/src/5gnrrlc/kw_utl_ul.c @@ -25,10 +25,10 @@ Desc: Source code for RLC Utility Module This file contains following functions - --rlcUtlSndToLi - --rlcUtlRcvFrmLi + --rlcUtlSendToMac + --rlcUtlRcvFrmMac --rlcUtlEmptySduQ - --rlcUtlSndDatInd + --rlcUtlSendUlDataToDu --kwUtlShutDown File: kw_utl_ul.c @@ -67,8 +67,10 @@ static int RLOG_FILE_ID=210; #include "kw.x" /* RLC inlcudes */ #include "kw_ul.x" /* RLC uplink includes */ -#include "ss_rbuf.h" -#include "ss_rbuf.x" +#include "rlc_utils.h" +#include "du_app_rlc_inf.h" +#include "rlc_upr_inf_api.h" + #ifdef SS_RBUF S16 SMrkUlPkt(Buffer *mbuf); #endif @@ -95,26 +97,12 @@ RlcAmRecBuf* rlcUtlGetRecBuf(CmLListCp *recBufLst, RlcSn sn); * -# RFAILED * */ -#ifdef ANSI -S16 rlcUtlRcvFrmLi -( -RlcCb *gCb, -KwDatIndInfo *datIndInfo -) -#else -S16 rlcUtlRcvFrmLi(gCb,datIndInfo) -RlcCb *gCb; -KwDatIndInfo *datIndInfo; -#endif +uint8_t rlcUtlRcvFrmMac(RlcCb *gCb, KwDatIndInfo *datIndInfo) { - U32 count; /* Loop Counter */ + uint32_t count; /* Loop Counter */ KwPduInfo *pduInfo; /* PDU Information */ RlcUlRbCb *rbCb; /* RB Control Block */ RlcUlUeCb *ueCb; /* UE Control Block */ -/* kw005.201 added support for L2 Measurement */ - - TRC2(rlcUtlRcvFrmLi) - ueCb = NULLP; @@ -122,11 +110,10 @@ KwDatIndInfo *datIndInfo; if( ROK != rlcDbmFetchUlUeCb(gCb,datIndInfo->rnti,datIndInfo->cellId,&(ueCb))) { /* Fetch UeCb failed */ - RLOG_ARG1(L_ERROR,DBG_CELLID,datIndInfo->cellId, - "UEID:%d UeCb not found", + DU_LOG("\nRLC : rlcUtlRcvFrmMac : UEID:%d UeCb not found", datIndInfo->rnti); /* free the buffers inside the datIndInfo */ - U32 i,j; + uint32_t i,j; for(i = 0; i< datIndInfo->numLch; i++) { for(j = 0; j < datIndInfo->lchData[i].pdu.numPdu; j++) @@ -163,7 +150,7 @@ KwDatIndInfo *datIndInfo; */ if(rbCb == NULLP) { - U32 j; + uint32_t j; for(j = 0; j < pduInfo->numPdu; j++) { if(pduInfo->mBuf[j]) @@ -214,27 +201,15 @@ KwDatIndInfo *datIndInfo; * @return S16 * -# ROK */ -#ifdef ANSI -S16 rlcUtlSndDatInd -( -RlcCb *gCb, -RlcUlRbCb *rbCb, -Buffer *sdu -) -#else -S16 rlcUtlSndDatInd(gCb,rbCb,sdu) -RlcCb *gCb; -RlcUlRbCb *rbCb; -Buffer *sdu; -#endif +uint8_t rlcUtlSendUlDataToDu(RlcCb *gCb, RlcUlRbCb *rbCb, Buffer *sdu) { #ifndef KW_PDCP KwuDatIndInfo *datIndInfo; /* Data Indication Information */ KwuDatIndInfo datIndInfoTmp; #endif - - TRC3(rlcUtlSndDatInd) - + RlcUlRrcMsgInfo *ulRrcMsgInfo; + uint16_t msgLen, copyLen; + Pst pst; #ifndef KW_PDCP /* Creating static memory for KwuDatIndInfo. #else will be @@ -244,10 +219,8 @@ Buffer *sdu; #if (ERRCLASS & ERRCLS_ADD_RES ) if ( datIndInfo == NULLP ) { - RLOG_ARG2(L_FATAL,DBG_RBID,rbCb->rlcId.rbId, - "Memory allocation failed UEID:%d CELLID:%d", - rbCb->rlcId.ueId, - rbCb->rlcId.cellId); + DU_LOG("\nRLC : rlcUtlSendUlDataToDu: Memory allocation failed UEID:%d \ + CELLID:%d", rbCb->rlcId.ueId, rbCb->rlcId.cellId); RLC_FREE_BUF(sdu); return RFAILED; } @@ -259,27 +232,51 @@ Buffer *sdu; datIndInfo->isOutOfSeq = rbCb->m.amUl.isOutOfSeq; #endif /* KW_PDCP */ - /* If trace flag is enabled send the trace indication */ - if(gCb->init.trc == TRUE) + /* Filling UL RRC Message Info */ + RLC_ALLOC_SHRABL_BUF(RLC_MEM_REGION_UL, RLC_POOL, + ulRrcMsgInfo, sizeof(RlcUlRrcMsgInfo)); + if (ulRrcMsgInfo) { - /* Populate the trace params */ - rlcLmmSendTrc(gCb,KWU_EVT_DAT_IND, sdu); - } -#ifndef KW_PDCP + ulRrcMsgInfo->cellId = rbCb->rlcId.cellId; + ulRrcMsgInfo->ueIdx = rbCb->rlcId.ueId; + ulRrcMsgInfo->lcId = rbCb->lch.lChId; + RLC_ALLOC_SHRABL_BUF(RLC_MEM_REGION_UL, RLC_POOL, + ulRrcMsgInfo->rrcMsg, msgLen); + if (ulRrcMsgInfo->rrcMsg) + { + ODU_GET_MSG_LEN(sdu, (MsgLen *)&msgLen); + ODU_COPY_MSG_TO_FIX_BUF(sdu, 0, msgLen, ulRrcMsgInfo->rrcMsg, (MsgLen *)©Len); + ulRrcMsgInfo->msgLen = msgLen; + + /* Sending UL RRC Message transfeer to DU APP */ + memset(&pst, 0, sizeof(Pst)); + FILL_PST_RLC_TO_DUAPP(pst, RLC_UL_INST, EVENT_UL_RRC_MSG_TRANS_TO_DU); + rlcSendUlRrcMsgToDu(&pst, ulRrcMsgInfo); + } + else + { + DU_LOG("\nRLC : rlcUtlSendUlDataToDu: Memory allocation failed for rrcMsg"); + RLC_FREE_SHRABL_BUF(RLC_MEM_REGION_UL, RLC_POOL, ulRrcMsgInfo, sizeof(RlcUlRrcMsgInfo)); + return RFAILED; + } + } + else + { + DU_LOG("\nRLC : rlcUtlSendUlDataToDu: Memory allocation failed for ulRrcMsgInfo"); + return RFAILED; + } - RlcUiKwuDatInd(&gCb->genCfg.lmPst, datIndInfo, sdu); -#endif - return (ROK); -} /* rlcUtlSndDatInd */ + return ROK; +} /* rlcUtlSendUlDataToDu */ -PRIVATE Void dumpRLCUlRbInformation(RlcUlRbCb* ulRbCb) +static Void dumpRLCUlRbInformation(RlcUlRbCb* ulRbCb) { if(ulRbCb->mode == CM_LTE_MODE_UM) { - U32 i; - U32 pdusInReceptionBuffer = 0; - U32 windSz = ulRbCb->m.umUl.umWinSz << 1; + uint32_t i; + uint32_t pdusInReceptionBuffer = 0; + uint32_t windSz = ulRbCb->m.umUl.umWinSz << 1; for(i = 0; i< windSz; i++) { @@ -297,10 +294,10 @@ PRIVATE Void dumpRLCUlRbInformation(RlcUlRbCb* ulRbCb) } else if(ulRbCb->mode == CM_LTE_MODE_AM) { - U32 i; - U32 pdusInReceptionBuffer = 0; - U32 totalSegs = 0; - U32 windSz = RLC_AM_GET_WIN_SZ(ulRbCb->m.amUl.snLen) << 1; + uint32_t i; + uint32_t pdusInReceptionBuffer = 0; + uint32_t totalSegs = 0; + uint32_t windSz = RLC_AM_GET_WIN_SZ(ulRbCb->m.amUl.snLen) << 1; for(i = 0; i< windSz; i++) { @@ -333,7 +330,7 @@ Void DumpRLCUlDebugInformation(Void) (PTR) ueCb, (PTR *)&ueCb)) { - U32 i; + uint32_t i; for(i = 0; i< RLC_MAX_SRB_PER_UE; i++) { RlcUlRbCb* ulRbCb = ueCb->srbCb[i]; @@ -378,12 +375,12 @@ Void DumpRLCUlDebugInformation(Void) */ S16 rlcUtlL2MeasUlInit(RlcCb *gCb) { - U16 cntr; + uint16_t cntr; gCb->u.ulCb->rlcL2Cb.rlcNumMeas=0; for(cntr = 0; cntr < LKW_MAX_L2MEAS; cntr++) { - cmMemset((U8 *)&(gCb->u.ulCb->rlcL2Cb.rlcL2EvtCb[cntr]), 0, sizeof(RlcL2MeasEvtCb)); + memset(&(gCb->u.ulCb->rlcL2Cb.rlcL2EvtCb[cntr]), 0, sizeof(RlcL2MeasEvtCb)); } gCb->u.ulCb->rlcL2Cb.rlcL2EvtCb[RLC_L2MEAS_UL_IP].measCb.measType = LKW_L2MEAS_UL_IP; return ROK; @@ -408,17 +405,16 @@ S16 rlcUtlL2MeasUlInit(RlcCb *gCb) ( RlcCb *gCb, RlcUlRbCb *rbCb, -U32 ttiCnt +uint32_t ttiCnt ) #else Void rlcUtlCalUlIpThrPutIncTTI(gCb, rbCb, ttiCnt) RlcCb *gCb; RlcUlRbCb *rbCb; -U32 ttiCnt; +uint32_t ttiCnt; #endif { - VOLATILE U32 startTime = 0; - TRC2(rlcUtlCalUlIpThrPutIncTTI) + volatile uint32_t startTime = 0; /*starting Task*/ SStartTask(&startTime, PID_RLC_IP_TPT_INCTTI); @@ -485,23 +481,21 @@ U32 ttiCnt; #ifdef ANSI Void rlcUtlCalUlIpThrPut ( -RlcCb *gCb, -RlcUlRbCb *rbCb, -Buffer *pdu, -U32 ttiCnt +RlcCb *gCb, +RlcUlRbCb *rbCb, +Buffer *pdu, +uint32_t ttiCnt ) #else Void rlcUtlCalUlIpThrPut(gCb, rbCb, pdu, ttiCnt) - RlcCb *gCb; - RlcUlRbCb *rbCb; - Buffer *pdu; - U32 ttiCnt; +RlcCb *gCb; +RlcUlRbCb *rbCb; +Buffer *pdu; +uint32_t ttiCnt; #endif { MsgLen rlcSduSz = 0; /*Holds length of Rlc Sdu*/ - VOLATILE U32 startTime = 0; - TRC2(rlcUtlCalUlIpThrPut) - + volatile uint32_t startTime = 0; /*starting Task*/ SStartTask(&startTime, PID_RLC_IP_TPT_INCVOL); @@ -551,10 +545,9 @@ RlcCb *gCb; RlcL2MeasEvtCb *measEvtCb; #endif { - TRC3(rlcUtlHdlL2TmrExp) #ifdef LTE_L2_MEAS_RLC - U16 qciIdx; + uint16_t qciIdx; RlcL2MeasCb *measCb; /* Clean up the RB data structures */ @@ -607,20 +600,17 @@ RlcCb *gCb; RlcL2MeasEvtCb *measEvtCb; #endif { - U32 qciIdx; - RlcL2MeasCb *measCb; - RlcL2MeasCfmEvt measCfmEvt; - - U64 ulDataVol; - U64 ulTime; - U16 cntr; + uint32_t qciIdx; + RlcL2MeasCb *measCb; + RlcL2MeasCfmEvt measCfmEvt; + uint64_t ulDataVol; + uint64_t ulTime; + uint16_t cntr; /* Discard new changes starts */ - U8 qci = 0; - U32 cfmIdx =0; + uint8_t qci = 0; + uint32_t cfmIdx =0; /* Discard new changes ends */ - TRC3(rlcUtlSndUlL2MeasCfm) - /* kw006.201 ccpu00120058 emoved 64 bit compilation warning */ #ifndef ALIGN_64BIT RLOG1(L_DEBUG,"rlcUtlSndUlL2MeasCfm(transId(%ld))", measEvtCb->transId); @@ -631,7 +621,7 @@ RlcL2MeasEvtCb *measEvtCb; /* Clean up the RB data structures */ measCb = &measEvtCb->measCb; - cmMemset((U8*)&measCfmEvt, 0, sizeof(RlcL2MeasCfmEvt)); + memset(&measCfmEvt, 0, sizeof(RlcL2MeasCfmEvt)); measCfmEvt.transId = measEvtCb->transId; measCfmEvt.measType = measCb->measType; @@ -717,7 +707,6 @@ RlcL2MeasReqEvt *measReqEvt; RlcL2MeasCfmEvt *measCfmEvt; #endif { - TRC3(rlcUtlSndUlL2MeasNCfm) RlcMiLkwL2MeasCfm(&gCb->genCfg.lmPst, measCfmEvt); return ROK; @@ -744,35 +733,31 @@ S16 rlcUtlValidateL2Meas RlcL2MeasReqEvt *measReqEvt, RlcL2MeasCfmEvt *measCfmEvt, CmLteLcId *lChId, -U8 *numLCh +uint8_t *numLCh ) #else S16 rlcUtlValidateL2Meas(measReqEvt, measCfmEvt, lChId, numLCh) RlcL2MeasReqEvt *measReqEvt; RlcL2MeasCfmEvt *measCfmEvt; CmLteLcId *lChId; -U8 *numLCh; +uint8_t *numLCh; #endif { - U8 measType; - S16 ret; - U8 qciIdx; - U8 qci; - U8 idx; - U8 *qciVal; - U8 numQci; + uint8_t measType; + S16 ret; + uint8_t qciIdx; + uint8_t qci; + uint8_t idx; + uint8_t *qciVal; + uint8_t numQci; RlcUlRbCb *rbCb; - - RlcUlUeCb *ueCb; + RlcUlUeCb *ueCb; RbCb **rbCbLst; - U8 rbIdx; - U8 lsbNibble = 0; - U8 msbNibble = 0; - U8 numFaild = 0; + uint8_t rbIdx; + uint8_t lsbNibble = 0; + uint8_t msbNibble = 0; + uint8_t numFaild = 0; - - TRC3(rlcUtlValidateL2Meas) - idx = 0; rbCb = NULLP; ret = ROK; @@ -843,7 +828,7 @@ U8 *numLCh; { qci = qciVal[qciIdx]; ret = cmHashListFind(&(rlcCb.rlcL2Cb.qciHlCp), - (U8 *)&qci, (U16)sizeof(qci), 0, (PTR *)&rbCb); + (uint8_t *)&qci, (uint16_t)sizeof(qci), 0, (PTR *)&rbCb); if(ret != ROK) { measCfmEvt->val.nonIpThMeas.measCfm[measCfmEvt->val.nonIpThMeas.numCfm].qci = qci; @@ -895,12 +880,10 @@ RlcL2MeasReqEvt *measReqEvt; RlcL2MeasCfmEvt *measCfmEvt; #endif { - U8 measType; - U8 lsbNibble = 0; - U8 msbNibble = 0; + uint8_t measType; + uint8_t lsbNibble = 0; + uint8_t msbNibble = 0; - TRC3(rlcUtlValidateIpThL2Meas) - measType = measReqEvt->measReq.measType; /* Check for the range of measType */ /* LKW_L2MEAS_DL_IP+ LKW_L2MEAS_UL_IP = 0x0030*/ @@ -949,18 +932,18 @@ Void rlcUtlResetUlL2MeasInRlcRb ( RlcCb *gCb, RlcL2MeasCb *measCb, -U8 measType +uint8_t measType ) #else Void rlcUtlResetUlL2MeasInRlcRb(measCb, measType) RlcCb *gCb; RlcL2MeasCb *measCb; -U8 measType; +uint8_t measType; #endif { - U32 rbIdx; - U32 ueIdx; - U32 qciIdx; + uint32_t rbIdx; + uint32_t ueIdx; + uint32_t qciIdx; RlcUlUeCb *ueCb = NULL; @@ -1019,17 +1002,15 @@ Void rlcUtlPlcMeasDatInL2Sts ( RlcL2Cntr *measData, RlcL2MeasRbCb *rbL2Cb, -U8 measType +uint8_t measType ) #else Void rlcUtlPlcMeasDatInL2Sts(measData, rbL2Cb, measType) RlcL2Cntr *measData; RlcL2MeasRbCb *rbL2Cb; -U8 measType; +uint8_t measType; #endif { - TRC3(rlcUtlPlcMeasDatInL2Sts) - /* We should check the number of measType in the request. This can be done * by looking at each bit in the measType. Also store the measData in the * correct index of l2Sts in RbCb. @@ -1077,29 +1058,15 @@ U8 measType; * * @return Void */ -#ifdef ANSI -Void rlcUtlStoreRecBuf -( -CmLListCp *recBufLst, -RlcAmRecBuf *recBuf, -RlcSn sn -) -#else -Void rlcUtlStoreRecBuf(recBufLst, recBuf, sn) -CmLListCp *recBufLst; -RlcAmRecBuf *recBuf; -RlcSn sn; -#endif +void rlcUtlStoreRecBuf(CmLListCp *recBufLst, RlcAmRecBuf *recBuf, RlcSn sn) { - U32 hashKey; - - TRC3(rlcUtlStoreRecBuf) + uint32_t hashKey; hashKey = (sn % RLC_RCV_BUF_BIN_SIZE ); recBuf->lnk.node = (PTR)recBuf; cmLListAdd2Tail(&(recBufLst[hashKey]), &recBuf->lnk); - RETVOID; + return; } /* rlcUtlStoreRecBuf */ /** @@ -1116,25 +1083,13 @@ RlcSn sn; * * @return Void */ -#ifdef ANSI -RlcAmRecBuf* rlcUtlGetRecBuf -( -CmLListCp *recBufLst, -RlcSn sn -) -#else -RlcAmRecBuf* rlcUtlGetRecBuf(recBufLst, sn) -CmLListCp *recBufLst; -RlcSn sn; -#endif +RlcAmRecBuf* rlcUtlGetRecBuf(CmLListCp *recBufLst, RlcSn sn) { - U32 hashKey; + uint32_t hashKey; CmLListCp *recBufLstCp; - RlcAmRecBuf *recBuf; + RlcAmRecBuf *recBuf; CmLList *node = NULLP; - TRC3(rlcUtlGetRecBuf) - hashKey = (sn % RLC_RCV_BUF_BIN_SIZE ); recBufLstCp = &recBufLst[hashKey]; @@ -1144,11 +1099,11 @@ RlcSn sn; recBuf = (RlcAmRecBuf *) node->node; if(recBuf->amHdr.sn == sn) { - return (recBuf); + return recBuf; } CM_LLIST_NEXT_NODE(recBufLstCp, node); } - return (NULLP); + return NULLP; } /* rlcUtlStoreRecBuf */ /** * @@ -1164,32 +1119,18 @@ RlcSn sn; * * @return Void */ -#ifdef ANSI -Void rlcUtlDelRecBuf -( -CmLListCp *recBufLst, -RlcAmRecBuf *recBuf, -RlcCb *gCb -) -#else -Void rlcUtlDelRecBuf(recBufLst, recBufi, gCb) -CmLListCp *recBufLst; -RlcAmRecBuf *recBuf; -RlcCb *gCb; -#endif +void rlcUtlDelRecBuf(CmLListCp *recBufLst, RlcAmRecBuf *recBuf, RlcCb *gCb) { - U32 hashKey; + uint32_t hashKey; CmLListCp *recBufLstCp; - TRC3(rlcUtlDelRecBuf) - hashKey = (recBuf->amHdr.sn % RLC_RCV_BUF_BIN_SIZE ); recBufLstCp = &recBufLst[hashKey]; cmLListDelFrm(recBufLstCp, &recBuf->lnk); RLC_FREE_WC(gCb, recBuf, sizeof(RlcAmRecBuf)); - RETVOID; + return; } /* rlcUtlDelRecBuf */