X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Fkw_utl_ul.c;fp=src%2F5gnrrlc%2Fkw_utl_ul.c;h=b8a56f479c9a6152dfdb1a5e6b5764abea5a1c3a;hb=28f46cc35608de7bddea133457cff5fb330fd86d;hp=f954e768ef43975cee4887171abdf127517e88fe;hpb=525b67cf153ba66b8901989cbba11347bebf13f7;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/kw_utl_ul.c b/src/5gnrrlc/kw_utl_ul.c index f954e768e..b8a56f479 100755 --- a/src/5gnrrlc/kw_utl_ul.c +++ b/src/5gnrrlc/kw_utl_ul.c @@ -120,7 +120,7 @@ uint8_t rlcUtlRcvFrmMac(RlcCb *gCb, KwDatIndInfo *datIndInfo) { if(datIndInfo->lchData[i].pdu.mBuf[j]) { - RLC_FREE_BUF_WC(datIndInfo->lchData[i].pdu.mBuf[j]); + ODU_PUT_MSG_BUF(datIndInfo->lchData[i].pdu.mBuf[j]); } } } @@ -155,7 +155,7 @@ uint8_t rlcUtlRcvFrmMac(RlcCb *gCb, KwDatIndInfo *datIndInfo) { if(pduInfo->mBuf[j]) { - RLC_FREE_BUF_WC(pduInfo->mBuf[j]); + ODU_PUT_MSG_BUF(pduInfo->mBuf[j]); } } continue; @@ -221,7 +221,7 @@ uint8_t rlcUtlSendUlDataToDu(RlcCb *gCb, RlcUlRbCb *rbCb, Buffer *sdu) { DU_LOG("\nRLC : rlcUtlSendUlDataToDu: Memory allocation failed UEID:%d \ CELLID:%d", rbCb->rlcId.ueId, rbCb->rlcId.cellId); - RLC_FREE_BUF(sdu); + ODU_PUT_MSG_BUF(sdu); return RFAILED; } #endif /* ERRCLASS & ERRCLS_ADD_RES */ @@ -1010,7 +1010,7 @@ RlcAmRecBuf* rlcUtlGetRecBuf(CmLListCp *recBufLst, RlcSn sn) CM_LLIST_NEXT_NODE(recBufLstCp, node); } return NULLP; -} /* rlcUtlStoreRecBuf */ +} /* rlcUtlGetRecBuf */ /** * * @brief Delete the UL buffer from the list @@ -1034,12 +1034,74 @@ void rlcUtlDelRecBuf(CmLListCp *recBufLst, RlcAmRecBuf *recBuf, RlcCb *gCb) recBufLstCp = &recBufLst[hashKey]; cmLListDelFrm(recBufLstCp, &recBuf->lnk); - RLC_FREE_WC(gCb, recBuf, sizeof(RlcAmRecBuf)); + RLC_FREE(gCb, recBuf, sizeof(RlcAmRecBuf)); return; } /* rlcUtlDelRecBuf */ +#ifdef NR_RLC_UL +/** + * + * @brief Store the UL buffer in hashList + * + * + * @b Description + * + * Use the SN % binSize as key and store the received UL buffer + * @param[in] recBufLst List CP array + * @param[in] recBuf received buffer + * @param[in] sn sn of the received buffer + * + * + * @return Void + */ +void rlcUtlStoreUmRecBuf(CmLListCp *recBufLst, RlcUmRecBuf *recBuf, RlcSn sn) +{ + uint32_t hashKey; + + hashKey = (sn % RLC_RCV_BUF_BIN_SIZE ); + recBuf->lnk.node = (PTR)recBuf; + cmLListAdd2Tail(&(recBufLst[hashKey]), &recBuf->lnk); + return; +} /* rlcUtlStoreUmRecBuf */ +/** + * + * @brief Retrieve the UL buffer from the list + * + * + * @Description + * + * Use the SN % binSize as key and retrieve the UL buffer + * @param[in] recBufLst List CP array + * @param[in] sn sn of the received buffer + * + * + * @return Void + */ +RlcUmRecBuf* rlcUtlGetUmRecBuf(CmLListCp *recBufLst, RlcSn sn) +{ + uint32_t hashKey; + CmLListCp *recBufLstCp; + RlcUmRecBuf *recBuf; + CmLList *node = NULLP; + + hashKey = (sn % RLC_RCV_BUF_BIN_SIZE ); + + recBufLstCp = &recBufLst[hashKey]; + CM_LLIST_FIRST_NODE(recBufLstCp, node); + while(node) + { + recBuf = (RlcUmRecBuf *) node->node; + if(recBuf->umHdr.sn == sn) + { + return recBuf; + } + CM_LLIST_NEXT_NODE(recBufLstCp, node); + } + return NULLP; +} /* rlcUtlGetUmRecBuf */ +#endif /********************************************************************30**