X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_mac_inf.c;h=3fb656616162152a523f31d51a21b8e802c5ab6e;hb=49856df248fd976b4a9882ca4e650fc0bc3e4ee3;hp=3289cc78093aff56ed8748cdbd1d821ea941b205;hpb=a14bf79bbc001990f96e01ada0dd291bcc9ddcad;p=o-du%2Fl2.git diff --git a/src/cm/du_app_mac_inf.c b/src/cm/du_app_mac_inf.c index 3289cc780..3fb656616 100644 --- a/src/cm/du_app_mac_inf.c +++ b/src/cm/du_app_mac_inf.c @@ -18,6 +18,8 @@ #include "common_def.h" #include "du_app_mac_inf.h" +/********************* Global Variable ********************/ +uint64_t ueBitMapPerCell[MAX_NUM_CELL]; /* Bit Map to store used/free UE-IDX per Cell */ /************************************************************************** * @brief Function to pack Loose Coupled @@ -127,8 +129,8 @@ uint8_t packMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm) } /* pack the transaction ID in CNF structure */ - CMCHKPK(oduUnpackUInt16, macCellCfgCfm->cellId, mBuf); - CMCHKPK(oduUnpackUInt8, macCellCfgCfm->rsp, mBuf); + CMCHKPK(oduPackUInt16, macCellCfgCfm->cellId, mBuf); + CMCHKPK(oduPackUInt8, macCellCfgCfm->rsp, mBuf); return ODU_POST_TASK(pst,mBuf); } @@ -164,8 +166,8 @@ uint8_t unpackMacCellCfgCfm(DuMacCellCfgCfm func, Pst *pst, Buffer *mBuf) if(pst->selector == ODU_SELECTOR_LC) { /* unpack the transaction ID in CNF structure */ - CMCHKUNPK(oduPackUInt8, &(macCellCfgCfm.rsp), mBuf); - CMCHKUNPK(oduPackUInt16, &(macCellCfgCfm.cellId), mBuf); + CMCHKUNPK(oduUnpackUInt8, &(macCellCfgCfm.rsp), mBuf); + CMCHKUNPK(oduUnpackUInt16, &(macCellCfgCfm.cellId), mBuf); return (*func)(pst, &macCellCfgCfm); } else @@ -362,7 +364,7 @@ uint8_t packMacCellUpInd(Pst *pst, OduCellId *cellId) if(pst->selector == ODU_SELECTOR_LC) { - CMCHKPK(oduUnpackUInt16, cellId->cellId, mBuf); + CMCHKPK(oduPackUInt16, cellId->cellId, mBuf); CM_FREE_SHRABL_BUF(pst->region, pst->pool, cellId, sizeof(OduCellId)); cellId = NULL; } @@ -411,7 +413,7 @@ uint8_t unpackMacCellUpInd(DuMacCellUpInd func, Pst *pst, Buffer *mBuf) else if(pst->selector == ODU_SELECTOR_LC) { OduCellId cellId; - CMCHKUNPK(oduPackUInt16, &cellId.cellId, mBuf); + CMCHKUNPK(oduUnpackUInt16, &cellId.cellId, mBuf); ODU_PUT_MSG_BUF(mBuf); return (*func)(pst, &cellId); } @@ -453,7 +455,7 @@ uint8_t packMacStopInd(Pst *pst, OduCellId *cellId) if(pst->selector == ODU_SELECTOR_LC) { /*pack the payload here*/ - CMCHKPK(oduUnpackUInt16, cellId->cellId, mBuf); + CMCHKPK(oduPackUInt16, cellId->cellId, mBuf); CM_FREE_SHRABL_BUF(pst->region, pst->pool, cellId, sizeof(OduCellId)); cellId = NULL; } @@ -501,7 +503,7 @@ uint8_t unpackMacStopInd(DuMacStopInd func, Pst *pst, Buffer *mBuf) else if(pst->selector == ODU_SELECTOR_LC) { OduCellId cellId; - CMCHKUNPK(oduPackUInt16, &(cellId.cellId), mBuf); + CMCHKUNPK(oduUnpackUInt16, &(cellId.cellId), mBuf); ODU_PUT_MSG_BUF(mBuf); return (*func)(pst, &cellId); @@ -2476,6 +2478,401 @@ uint8_t unpackDuMacStatsRsp(MacDuStatsRspFunc func, Pst *pst, Buffer *mBuf) return RFAILED; } +/******************************************************************* +* +* @brief Packs and Sends Statistics Indication from MAC to DUAPP +* +* @details +* +* Function : packDuMacStatsInd +* +* Functionality: +* Packs and Sends statistics response from MAC to DUAPP +* +* +* @params[in] Post structure pointer +* StatsInd pointer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t packDuMacStatsInd(Pst *pst, MacStatsInd *statsInd) +{ + Buffer *mBuf = NULLP; + + if(pst->selector == ODU_SELECTOR_LWLC) + { + if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> MAC : Memory allocation failed at packDuMacStatsInd"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)statsInd, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacStatsInd"); + return RFAILED; + } + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpacks Statistics Indication received from MAC +* +* @details +* +* Function : unpackDuMacStatsInd +* +* Functionality: +* Unpacks Statistics Indication received from MAC +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t unpackDuMacStatsInd(MacDuStatsIndFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacStatsInd *statsInd; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&statsInd, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, statsInd); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : Only LWLC supported for Statistics Indication "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + +/******************************************************************* +* +* @brief Packs and Sends Statistics Delete Request from DUAPP to MAC +* +* @details +* +* Function : packDuMacStatsDeleteReq +* +* Functionality: +* Packs and Sends statistics Delete Request from DUAPP to MAC +* +* +* @params[in] Post structure pointer +* StatsDeleteReq pointer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t packDuMacStatsDeleteReq(Pst *pst, MacStatsDeleteReq *statsDeleteReq) +{ + Buffer *mBuf = NULLP; + + if(pst->selector == ODU_SELECTOR_LWLC) + { + if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> MAC : Memory allocation failed at packDuMacStatsDeleteReq"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)statsDeleteReq, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacStatsDeleteReq"); + return RFAILED; + } + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpacks Statistics Delete Request received from DU APP +* +* @details +* +* Function : unpackMacStatsDeleteReq +* +* Functionality: +* Unpacks Statistics Delete Request received from DU APP +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t unpackMacStatsDeleteReq(DuMacStatsDeleteReqFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacStatsDeleteReq *statsDeleteReq; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&statsDeleteReq, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, statsDeleteReq); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : Only LWLC supported for Statistics Delete Request "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + +/******************************************************************* +* +* @brief Packs and Sends Statistics Delete Response from MAC to DUAPP +* +* @details +* +* Function : packDuMacStatsDeleteRsp +* +* Functionality: +* Packs and Sends Statistics Delete Response from MAC to DUAPP +* +* +* @params[in] Post structure pointer +* StatsDeleteRsp pointer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t packDuMacStatsDeleteRsp(Pst *pst, MacStatsDeleteRsp *statsRsp) +{ + Buffer *mBuf = NULLP; + + if(pst->selector == ODU_SELECTOR_LWLC) + { + if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> MAC : Memory allocation failed at packDuMacStatsDeleteRsp"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)statsRsp, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacStatsDeleteRsp"); + return RFAILED; + } + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpacks Statistics Delete Response received from MAC +* +* @details +* +* Function : unpackDuMacStatsDeleteRsp +* +* Functionality: +* Unpacks Statistics Delete Response received from MAC +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t unpackDuMacStatsDeleteRsp(MacDuStatsDeleteRspFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacStatsDeleteRsp *statsRsp; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&statsRsp, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, statsRsp); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : Only LWLC supported for Statistics Delete Response "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + +/******************************************************************* +* +* @brief Packs and Sends Statistics Modification Request from DUAPP to MAC +* +* @details +* +* Function : packDuMacStatsModificationReq +* +* Functionality: +* Packs and Sends statistics Modification request from DUAPP to MAC +* +* +* @params[in] Post structure pointer +* StatsModificationReq pointer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t packDuMacStatsModificationReq(Pst *pst, MacStatsModificationReq *statsModificationReq) +{ + Buffer *mBuf = NULLP; + + if(pst->selector == ODU_SELECTOR_LWLC) + { + if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> MAC : Memory allocation failed at packDuMacStatsModificationReq"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)statsModificationReq, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacStatsModificationReq"); + return RFAILED; + } + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpacks Statistics Modification Request received from DU APP +* +* @details +* +* Function : unpackMacStatsModificationReq +* +* Functionality: +* Unpacks Statistics Modification Request received from DU APP +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t unpackMacStatsModificationReq(DuMacStatsModificationReqFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacStatsModificationReq *statsModificationReq=NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&statsModificationReq, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, statsModificationReq); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : Only LWLC supported for Statistics Modification Request "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + +/******************************************************************* +* +* @brief Packs and Sends Statistics Modification Response from MAC to DUAPP +* +* @details +* +* Function : packDuMacStatsModificationRsp +* +* Functionality: +* Packs and Sends statistics Modification response from MAC to DUAPP +* +* +* @params[in] Post structure pointer +* StatsModificationRsp pointer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t packDuMacStatsModificationRsp(Pst *pst, MacStatsModificationRsp *statsModificationRsp) +{ + Buffer *mBuf = NULLP; + + if(pst->selector == ODU_SELECTOR_LWLC) + { + if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> MAC : Memory allocation failed at packDuMacStatsModificationRsp"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)statsModificationRsp, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacStatsModificationRsp"); + return RFAILED; + } + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpacks Statistics Modification Response received from MAC +* +* @details +* +* Function : unpackDuMacStatsModificationRsp +* +* Functionality: +* Unpacks Statistics Modification Response received from MAC +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t unpackDuMacStatsModificationRsp(MacDuStatsModificationRspFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacStatsModificationRsp *statsModificationRsp=NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&statsModificationRsp, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, statsModificationRsp); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : Only LWLC supported for Statistics Modification Response "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + /********************************************************************** End of file **********************************************************************/