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=refs%2Fchanges%2F49%2F12949%2F3;hp=c72636c4d766cc3f8857805b823e5f3f0233c86e;hpb=ca0353e5cb5699aecb6840efe9572934a1150e2b;p=o-du%2Fl2.git diff --git a/src/cm/du_app_mac_inf.c b/src/cm/du_app_mac_inf.c index c72636c4d..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); @@ -687,12 +689,12 @@ uint8_t unpackMacDlCcchInd(DuMacDlCcchInd func, Pst *pst, Buffer *mBuf) * * * @params[in] Post structure pointer - * MacUeCfg pointer + * MacUeCreateReq pointer * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t packDuMacUeCreateReq(Pst *pst, MacUeCfg *ueCfg) +uint8_t packDuMacUeCreateReq(Pst *pst, MacUeCreateReq *ueCfg) { Buffer *mBuf = NULLP; @@ -737,7 +739,7 @@ uint8_t unpackMacUeCreateReq(DuMacUeCreateReq func, Pst *pst, Buffer *mBuf) { if(pst->selector == ODU_SELECTOR_LWLC) { - MacUeCfg *ueCfg; + MacUeCreateReq *ueCfg; /* unpack the address of the structure */ CMCHKUNPK(oduUnpackPointer, (PTR *)&ueCfg, mBuf); @@ -756,21 +758,21 @@ uint8_t unpackMacUeCreateReq(DuMacUeCreateReq func, Pst *pst, Buffer *mBuf) /******************************************************************* * - * @brief Pack and send UE config response from MAC to DU APP + * @brief Pack and send UE create response from MAC to DU APP * * @details * - * Function : packDuMacUeCfgRsp + * Function : packDuMacUeCreateRsp * * Functionality: - * Pack and send UE config response from MAC to DU APP + * Pack and send UE create response from MAC to DU APP * * @params[in] * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) +uint8_t packDuMacUeCreateRsp(Pst *pst, MacUeCreateRsp *cfgRsp) { Buffer *mBuf = NULLP; @@ -778,7 +780,7 @@ uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) { if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) { - DU_LOG("\nERROR --> MAC : Memory allocation failed at packDuMacUeCfgRsp"); + DU_LOG("\nERROR --> MAC : Memory allocation failed at packDuMacUeCreateRsp"); return RFAILED; } /* pack the address of the structure */ @@ -786,7 +788,7 @@ uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) } else { - DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacUeCfgRsp"); + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacUeCreateRsp"); return RFAILED; } @@ -794,24 +796,24 @@ uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) } /******************************************************************* * - * @brief Unpack UE Config Response from MAC to DU APP + * @brief Unpack UE Create Response from MAC to DU APP * * @details * - * Function :unpackDuMacUeCfgRsp + * Function :unpackDuMacUeCreateRsp * - * Functionality: Unpack UE Config Response from MAC to DU APP + * Functionality: Unpack UE Create Response from MAC to DU APP * * @params[in] * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t unpackDuMacUeCfgRsp(MacDuUeCfgRspFunc func, Pst *pst, Buffer *mBuf) +uint8_t unpackDuMacUeCreateRsp(MacDuUeCreateRspFunc func, Pst *pst, Buffer *mBuf) { if(pst->selector == ODU_SELECTOR_LWLC) { - MacUeCfgRsp *cfgRsp = NULLP; + MacUeCreateRsp *cfgRsp = NULLP; /* unpack the address of the structure */ CMCHKUNPK(oduUnpackPointer, (PTR *)&cfgRsp, mBuf); @@ -836,7 +838,7 @@ uint8_t unpackDuMacUeCfgRsp(MacDuUeCfgRspFunc func, Pst *pst, Buffer *mBuf) * * * @params[in] Post structure pointer - * MacUeCfg pointer + * MacUeRecfg pointer * @return ROK - success * RFAILED - failure * @@ -1959,6 +1961,303 @@ uint8_t unpackMacDlPcchInd(DuMacDlPcchInd func, Pst *pst, Buffer *mBuf) return RFAILED; } +/******************************************************************* +* +* @brief Packs and Sends UE Reset Request from DUAPP to MAC +* +* @details +* +* Function : packDuMacUeResetReq +* +* Functionality: +* Packs and Sends UE Reset Request from DUAPP to MAC +* +* +* @params[in] Post structure pointer +* MacUeResetReq pointer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t packDuMacUeResetReq(Pst *pst, MacUeResetReq *ueDel) +{ + 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 packDuMacUeResetReq"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)ueDel, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacUeResetReq"); + return RFAILED; + } + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpacks UE Reset Request received from DU APP +* +* @details +* +* Function : unpackMacUeResetReq +* +* Functionality: +* Unpacks UE Reset Request received from DU APP +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t unpackMacUeResetReq(DuMacUeResetReq func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacUeResetReq *ueReset; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&ueReset, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, ueReset); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : Only LWLC supported for UE Reset Request "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + +/******************************************************************* + * + * @brief Pack and send UE reset response from MAC to DU APP + * + * @details + * + * Function : packDuMacUeResetRsp + * + * Functionality: + * Pack and send UE reset response from MAC to DU APP + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t packDuMacUeResetRsp(Pst *pst, MacUeResetRsp *resetRsp) +{ + 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 packDuMacUeResetRsp"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)resetRsp, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacUeResetRsp"); + return RFAILED; + } + + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpack UE Config Response from MAC to DU APP +* +* @details +* +* Function :unpackDuMacUeResetRsp +* +* Functionality: Unpack UE Config Response from MAC to DU APP +* +* @params[in] +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t unpackDuMacUeResetRsp(MacDuUeResetRspFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacUeResetRsp *ueResetRsp = NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&ueResetRsp, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, ueResetRsp); + } + + ODU_PUT_MSG_BUF(mBuf); + return RFAILED; +} + +/******************************************************************* + * + * @brief Pack and send UE Sync Status Indication from MAC to DU APP + * + * @details + * + * Function : packDuMacUeSyncStatusInd + * + * Functionality: + * Pack and send UE Sync Status Indication from MAC to DU APP + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t packDuMacUeSyncStatusInd(Pst *pst, MacUeSyncStatusInd *SyncStatusInd) +{ + 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 packDuMacUeSyncStatusInd"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)SyncStatusInd, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacUeSyncStatusInd"); + return RFAILED; + } + + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpack UE Config Response from MAC to DU APP +* +* @details +* +* Function :unpackDuMacUeSyncStatusInd +* +* Functionality: Unpack UE Config Response from MAC to DU APP +* +* @params[in] +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t unpackDuMacUeSyncStatusInd(MacDuUeSyncStatusIndFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacUeSyncStatusInd *ueSyncStatusInd = NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&ueSyncStatusInd, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, ueSyncStatusInd); + } + + ODU_PUT_MSG_BUF(mBuf); + return RFAILED; +} + +/******************************************************************* +* +* @brief Packs and Sends Dl Broadcast Request from DUAPP to MAC +* +* @details +* +* Function : packDuMacDlBroadcastReq +* +* Functionality: +* Packs and Sends Dl Broadcast Request from DUAPP to MAC +* +* +* @params[in] Post structure pointer +* MacDlBroadcastReq pointer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t packDuMacDlBroadcastReq(Pst *pst, MacDlBroadcastReq *ueDel) +{ + 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 packDuMacDlBroadcastReq"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)ueDel, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacDlBroadcastReq"); + return RFAILED; + } + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpacks Dl Broadcast Request received from DU APP +* +* @details +* +* Function : unpackMacDlBroadcastReq +* +* Functionality: +* Unpacks Dl Broadcast Request received from DU APP +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t unpackMacDlBroadcastReq(DuMacDlBroadcastReq func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacDlBroadcastReq *dlBroadcast; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&dlBroadcast, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, dlBroadcast); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : Only LWLC supported for Dl Broadcast Request "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} /******************************************************************* * * @brief Searches for first unset bit in ueBitMap @@ -2021,6 +2320,559 @@ void unsetBitInUeBitMap(uint16_t cellId, uint8_t bitPos) UNSET_ONE_BIT(bitPos, ueBitMapPerCell[cellIdx]); } +/******************************************************************* +* +* @brief Packs and Sends Statistics Request from DUAPP to MAC +* +* @details +* +* Function : packDuMacStatsReq +* +* Functionality: +* Packs and Sends statistics request from DUAPP to MAC +* +* +* @params[in] Post structure pointer +* StatsReq pointer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t packDuMacStatsReq(Pst *pst, MacStatsReq *statsReq) +{ + 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 packDuMacStatsReq"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)statsReq, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacStatsReq"); + return RFAILED; + } + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpacks Statistics Request received from DU APP +* +* @details +* +* Function : unpackMacStatsReq +* +* Functionality: +* Unpacks Statistics Request received from DU APP +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t unpackMacStatsReq(DuMacStatsReqFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacStatsReq *statsReq; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&statsReq, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, statsReq); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : Only LWLC supported for Statistics Request "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + +/******************************************************************* +* +* @brief Packs and Sends Statistics Response from MAC to DUAPP +* +* @details +* +* Function : packDuMacStatsRsp +* +* Functionality: +* Packs and Sends statistics response from MAC to DUAPP +* +* +* @params[in] Post structure pointer +* StatsRsp pointer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t packDuMacStatsRsp(Pst *pst, MacStatsRsp *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 packDuMacStatsRsp"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)statsRsp, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacStatsRsp"); + return RFAILED; + } + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* +* +* @brief Unpacks Statistics Response received from MAC +* +* @details +* +* Function : unpackDuMacStatsRsp +* +* Functionality: +* Unpacks Statistics Response received from MAC +* +* @params[in] Pointer to Handler +* Post structure pointer +* Message Buffer +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +uint8_t unpackDuMacStatsRsp(MacDuStatsRspFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacStatsRsp *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 Response "); + ODU_PUT_MSG_BUF(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 **********************************************************************/