X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_rlc_inf.c;h=2bdcf248a39b538a326800a77534f446e8ae2874;hb=f0f43ed6f745eec0ceb4e204c62f4dc36f1e8d7f;hp=5878defbc617a55fb45e9becbd8a242e7c1118e7;hpb=7d9367ae84317dce9bbe8cca3c0ae805ddaeee63;p=o-du%2Fl2.git diff --git a/src/cm/du_app_rlc_inf.c b/src/cm/du_app_rlc_inf.c index 5878defbc..2bdcf248a 100644 --- a/src/cm/du_app_rlc_inf.c +++ b/src/cm/du_app_rlc_inf.c @@ -423,7 +423,7 @@ uint8_t unpackRrcDeliveryReportToDu(RlcRrcDeliveryReportToDuFunc func, Pst *pst, * RFAILED - failure * * ****************************************************************/ -uint8_t packDuRlcUeReconfigReq(Pst *pst, RlcUeCfg *ueCfg) +uint8_t packDuRlcUeReconfigReq(Pst *pst, RlcUeRecfg *ueRecfg) { Buffer *mBuf = NULLP; @@ -435,7 +435,7 @@ uint8_t packDuRlcUeReconfigReq(Pst *pst, RlcUeCfg *ueCfg) return RFAILED; } /* pack the address of the structure */ - CMCHKPK(oduPackPointer,(PTR)ueCfg, mBuf); + CMCHKPK(oduPackPointer,(PTR)ueRecfg, mBuf); } else { @@ -467,11 +467,11 @@ uint8_t unpackRlcUeReconfigReq(DuRlcUeReconfigReq func, Pst *pst, Buffer *mBuf) { if(pst->selector == ODU_SELECTOR_LWLC) { - RlcUeCfg *ueCfg; + RlcUeRecfg *ueRecfg; /* unpack the address of the structure */ - CMCHKUNPK(oduUnpackPointer, (PTR *)&ueCfg, mBuf); + CMCHKUNPK(oduUnpackPointer, (PTR *)&ueRecfg, mBuf); ODU_PUT_MSG_BUF(mBuf); - return (*func)(pst, ueCfg); + return (*func)(pst, ueRecfg); } else { @@ -650,18 +650,11 @@ uint8_t unpackRlcUlUserDataToDu(RlcUlUserDataToDuFunc func, Pst *pst, Buffer *mB * ****************************************************************/ uint8_t packRlcDlUserDataToRlc(Pst *pst, RlcDlUserDataInfo *dlUserData) { - Buffer *mBuf = NULLP; - if(pst->selector == ODU_SELECTOR_LWLC) { - if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) - { - DU_LOG("\nERROR --> RLC DL: Memory allocation failed at packRlcDlUserDataToRlc"); - return RFAILED; - } /* pack the address of the structure */ - CMCHKPK(oduPackPointer,(PTR)dlUserData, mBuf); - return ODU_POST_TASK(pst,mBuf); + CMCHKPK(oduPackPointer,(PTR)dlUserData, dlUserData->dlMsg); + return ODU_POST_TASK(pst,dlUserData->dlMsg); } else { @@ -693,7 +686,6 @@ uint8_t unpackRlcDlUserDataToRlc(DuRlcDlUserDataToRlcFunc func, Pst *pst, Buffer RlcDlUserDataInfo *dlUserData; /* unpack the address of the structure */ CMCHKUNPK(oduUnpackPointer, (PTR *)&dlUserData, mBuf); - ODU_PUT_MSG_BUF(mBuf); return (*func)(pst, dlUserData); } else @@ -705,6 +697,249 @@ uint8_t unpackRlcDlUserDataToRlc(DuRlcDlUserDataToRlcFunc func, Pst *pst, Buffer return RFAILED; } + +/******************************************************************* +* +* @brief Packs and Sends UE Delete Request from DUAPP to RLC +* +* @details +* +* Function : packDuRlcUeDeleteReq +* +* Functionality: +* Packs and Sends UE Delete Request from DUAPP to RLC +* +* +* @params[in] Post structure pointer +* RlcUeDelete pointer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ + +uint8_t packDuRlcUeDeleteReq(Pst *pst, RlcUeDelete *ueDelete) +{ + Buffer *mBuf = NULLP; + + if(pst->selector == ODU_SELECTOR_LWLC) + { + if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> RLC : Memory allocation failed at packDuRlcUeDeleteReq"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)ueDelete, mBuf); + } + else + { + DU_LOG("\nERROR --> RLC: Only LWLC supported for packDuRlcUeDeleteReq"); + return RFAILED; + } + + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* @brief Unpacks UE Delete Request received from DU APP +* +* @details +* +* Function : unpackRlcUeDeleteReq +* +* Functionality: +* Unpacks UE Delete Request received from DU APP +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ + +uint8_t unpackRlcUeDeleteReq(DuRlcUeDeleteReq func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + RlcUeDelete *ueDelete; + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&ueDelete, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, ueDelete); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> RLC: Only LWLC supported for UE Delete Request "); + ODU_PUT_MSG_BUF(mBuf); + } + return RFAILED; +} + +/******************************************************************* +* +* @brief Packs and Sends UE Del Response from RLC to DUAPP +* +* @details +* +* Function : packRlcDuUeDeleteRsp +* +* Functionality: +* Packs and Sends UE Del Response from RLC to DUAPP +* +* +* @params[in] Post structure pointer +* RlcUeDeleteRsp *ueDelRsp +* +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ + +uint8_t packRlcDuUeDeleteRsp(Pst *pst, RlcUeDeleteRsp *ueDelRsp) +{ + Buffer *mBuf = NULLP; + + if(pst->selector == ODU_SELECTOR_LWLC) + { + if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> RLC : Memory allocation failed at packRlcDuUeDeleteRsp"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)ueDelRsp, mBuf); + } + else + { + DU_LOG("\nERROR --> RLC: Only LWLC supported for packRlcDuUeDeleteRsp"); + return RFAILED; + } + + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpacks UE Del Response received from DU APP +* +* @details +* +* Function : unpackRlcUeDeleteRsp +* +* Functionality: +* Unpacks UE Del Response received from DU APP +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ + +uint8_t unpackRlcUeDeleteRsp(RlcDuUeDeleteRsp func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + RlcUeDeleteRsp *ueDeleteRsp = NULLP; + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&ueDeleteRsp, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, ueDeleteRsp); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> RLC: Only LWLC supported for UE Del Response "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + +/******************************************************************* +* +* @brief Packs and Sends Slice PM from RLC to DUAPP +* +* @details +* +* Function : packRlcDuSlicePm +* +* Functionality: +* Packs and Sends Slice Performance Metrics from RLC to DUAPP +* +* +* @params[in] Post structure pointer +* SlicePmList *sliceStats +* +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ + +uint8_t packRlcDuSlicePm(Pst *pst, SlicePmList *sliceStats) +{ + Buffer *mBuf = NULLP; + + if(pst->selector == ODU_SELECTOR_LWLC) + { + if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> RLC : Memory allocation failed at packRlcDuSlicePm"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)sliceStats, mBuf); + } + else + { + DU_LOG("\nERROR --> RLC: Only LWLC supported for packRlcDuSlicePm"); + return RFAILED; + } + + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpacks Slice PM received from RLC +* +* @details +* +* Function : unpackRlcSlicePm +* +* Functionality: +* Unpacks Slice Performance Metrics received from RLC +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ + +uint8_t unpackRlcSlicePm(RlcSlicePmToDuFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + SlicePmList *sliceStats = NULLP; + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceStats, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, sliceStats); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> RLC: Only LWLC supported for Slice Metrics "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} /********************************************************************** End of file ***********************************************************************/