X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_mac_inf.c;h=2d1c625ad6abf2955a22b550125c307e52ade4a7;hb=cf67fe66c4ec86a0312a41437c0cd225350e5b0b;hp=e0e75c52f6fdf4037a02f6e7660434bdb0430ca0;hpb=ff0c6fbd56fc24b9c286dc6444e1e0fbe8871625;p=o-du%2Fl2.git diff --git a/src/cm/du_app_mac_inf.c b/src/cm/du_app_mac_inf.c index e0e75c52f..2d1c625ad 100644 --- a/src/cm/du_app_mac_inf.c +++ b/src/cm/du_app_mac_inf.c @@ -192,7 +192,7 @@ uint8_t unpackMacCellCfgCfm(DuMacCellCfgCfm func, Pst *pst, Buffer *mBuf) * RFAILED - failure * * ****************************************************************/ -uint8_t packMacCellStart(Pst *pst, OduCellId *cellId) +uint8_t packMacCellStart(Pst *pst, CellStartInfo *cellStart) { Buffer *mBuf = NULLP; @@ -211,7 +211,7 @@ uint8_t packMacCellStart(Pst *pst, OduCellId *cellId) } /* pack the address of the structure */ - CMCHKPK(oduPackPointer,(PTR)cellId, mBuf); + CMCHKPK(oduPackPointer,(PTR)cellStart, mBuf); } return ODU_POST_TASK(pst,mBuf); @@ -237,14 +237,14 @@ uint8_t packMacCellStart(Pst *pst, OduCellId *cellId) * ****************************************************************/ uint8_t unpackMacCellStart(DuMacCellStart func, Pst *pst, Buffer *mBuf) { - OduCellId *cellId; + CellStartInfo *cellStart; if(pst->selector == ODU_SELECTOR_LWLC) { /* unpack the address of the structure */ - CMCHKUNPK(oduUnpackPointer, (PTR *)&cellId, mBuf); + CMCHKUNPK(oduUnpackPointer, (PTR *)&cellStart, mBuf); ODU_PUT_MSG_BUF(mBuf); - return (*func)(pst, cellId); + return (*func)(pst, cellStart); } else { @@ -271,7 +271,7 @@ uint8_t unpackMacCellStart(DuMacCellStart func, Pst *pst, Buffer *mBuf) * RFAILED - failure * * ****************************************************************/ -uint8_t packMacCellStop(Pst *pst, OduCellId *cellId) +uint8_t packMacCellStop(Pst *pst, CellStopInfo *cellStop) { if(pst->selector == ODU_SELECTOR_LC) { @@ -289,7 +289,7 @@ uint8_t packMacCellStop(Pst *pst, OduCellId *cellId) } /* pack the address of the structure */ - CMCHKPK(oduPackPointer,(PTR)cellId, mBuf); + CMCHKPK(oduPackPointer,(PTR)cellStop, mBuf); return ODU_POST_TASK(pst,mBuf); } @@ -316,14 +316,14 @@ uint8_t packMacCellStop(Pst *pst, OduCellId *cellId) * ****************************************************************/ uint8_t unpackMacCellStop(DuMacCellStop func, Pst *pst, Buffer *mBuf) { - OduCellId *cellId; + CellStopInfo *cellStop; if(pst->selector == ODU_SELECTOR_LWLC) { /* unpack the address of the structure */ - CMCHKUNPK(oduUnpackPointer, (PTR *)&cellId, mBuf); + CMCHKUNPK(oduUnpackPointer, (PTR *)&cellStop, mBuf); ODU_PUT_MSG_BUF(mBuf); - return (*func)(pst, cellId); + return (*func)(pst, cellStop); } else { @@ -863,6 +863,7 @@ uint8_t packDuMacUeReconfigReq(Pst *pst, MacUeCfg *ueCfg) return ODU_POST_TASK(pst,mBuf); } + /******************************************************************* * * @brief Unpacks UE Reconfig Request received from DU APP @@ -901,6 +902,246 @@ uint8_t unpackMacUeReconfigReq(DuMacUeReconfigReq func, Pst *pst, Buffer *mBuf) return RFAILED; } + +/******************************************************************* + * + * @brief Packs and Sends RACH Resource request from DUAPP to MAC + * + * @details + * + * Function : packDuMacRachRsrcReq + * + * Functionality: + * Packs and Sends RACH Resource request from DU APP to MAC + * + * + * @params[in] Post structure pointer + * MacRachRsrcReq pointer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t packDuMacRachRsrcReq(Pst *pst, MacRachRsrcReq *rachRsrcReq) +{ + 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 packDuMacRachRsrcReq,"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer, (PTR)rachRsrcReq, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacRachRsrcReq"); + return RFAILED; + } + + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* + * + * @brief Unpacks RACH resource Request received from DU APP + * + * @details + * + * Function : unpackMacRachRsrcReq + * + * Functionality: + * Unpacks RACH resource Request received from DU APP + * + * @params[in] Pointer to Handler + * Post structure pointer + * Message Buffer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t unpackMacRachRsrcReq(DuMacRachRsrcReq func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacRachRsrcReq *rachRsrcReq; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&rachRsrcReq, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, rachRsrcReq); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : Only LWLC supported for RACH resource Request "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + +/******************************************************************* + * + * @brief Packs and Sends RACH Resource release from DUAPP to MAC + * + * @details + * + * Function : packDuMacRachRsrcRel + * + * Functionality: + * Packs and Sends RACH Resource release from DU APP to MAC + * + * + * @params[in] Post structure pointer + * MacRachRsrcRel pointer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t packDuMacRachRsrcRel(Pst *pst, MacRachRsrcRel *rachRsrcRel) +{ + 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 packDuMacRachRsrcRel"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer, (PTR)rachRsrcRel, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacRachRsrcRel"); + return RFAILED; + } + + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* + * + * @brief Unpacks RACH Resource Release received from DU APP + * + * @details + * + * Function : unpackMacRachRsrcRel + * + * Functionality: + * Unpacks RACH Resource Release received from DU APP + * + * @params[in] Pointer to Handler + * Post structure pointer + * Message Buffer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t unpackMacRachRsrcRel(DuMacRachRsrcRel func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacRachRsrcRel *rachRsrcRel; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&rachRsrcRel, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, rachRsrcRel); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : Only LWLC supported for RACH Resource Release "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + +/******************************************************************* + * + * @brief Packs and Sends RACH Resource response from MAC to DU APP + * + * @details + * + * Function : packDuMacRachRsrcRsp + * + * Functionality: + * Packs and Sends RACH Resource response from MAC to DU APP + * + * + * @params[in] Post structure pointer + * MacRachRsrcRsp pointer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t packDuMacRachRsrcRsp(Pst *pst, MacRachRsrcRsp *rachRsrcRsp) +{ + 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 packDuMacRachRsrcRsp"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer, (PTR)rachRsrcRsp, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacRachRsrcRsp"); + return RFAILED; + } + + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* + * + * @brief Unpacks RACH resource Response received from MAC + * + * @details + * + * Function : unpackDuMacRachRsrcRsp + * + * Functionality: + * Unpacks RACH resource Response received from MAC + * + * @params[in] Pointer to Handler + * Post structure pointer + * Message Buffer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t unpackDuMacRachRsrcRsp(MacDuRachRsrcRspFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacRachRsrcRsp *rachRsrcRsp; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&rachRsrcRsp, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, rachRsrcRsp); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : Only LWLC supported for RACH resource Response "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} /******************************************************************* * * @brief Packs and Sends UE Delete Request from DUAPP to MAC @@ -1073,7 +1314,7 @@ uint8_t unpackMacCellDeleteReq(DuMacCellDeleteReq func, Pst *pst, Buffer *mBuf) { if(pst->selector == ODU_SELECTOR_LWLC) { - MacCellDelete *cellDelete=NULLP; + MacCellDeleteReq *cellDelete=NULLP; /* unpack the address of the structure */ CMCHKUNPK(oduUnpackPointer, (PTR *)&cellDelete, mBuf); @@ -1109,7 +1350,7 @@ uint8_t unpackMacCellDeleteReq(DuMacCellDeleteReq func, Pst *pst, Buffer *mBuf) * * ****************************************************************/ -uint8_t packDuMacCellDeleteReq(Pst *pst, MacCellDelete *cellDelete) +uint8_t packDuMacCellDeleteReq(Pst *pst, MacCellDeleteReq *cellDelete) { Buffer *mBuf = NULLP; @@ -1363,13 +1604,13 @@ uint8_t unpackDuMacSliceCfgRsp(MacDuSliceCfgRspFunc func, Pst *pst, Buffer *mBuf * Functionality: * Pack and send Slice ReCfg request from MAC to DU APP * - * @params[in] Pst *pst, MacSliceCfgReq *sliceReCfgReq + * @params[in] Pst *pst, MacSliceRecfgReq *sliceRecfgReq * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceCfgReq *sliceReCfgReq) +uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceRecfgReq *sliceRecfgReq) { Buffer *mBuf = NULLP; @@ -1380,7 +1621,7 @@ uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceCfgReq *sliceReCfgReq) DU_LOG("\nERROR --> MAC : Memory allocation failed in packDuMacSliceRecfgReq"); return RFAILED; } - CMCHKPK(oduPackPointer,(PTR)sliceReCfgReq, mBuf); + CMCHKPK(oduPackPointer,(PTR)sliceRecfgReq, mBuf); } else { @@ -1409,15 +1650,15 @@ uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceCfgReq *sliceReCfgReq) * RFAILED - failure * * ****************************************************************/ -uint8_t unpackMacSliceReCfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf) +uint8_t unpackMacSliceRecfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf) { if(pst->selector == ODU_SELECTOR_LWLC) { - MacSliceCfgReq *sliceReCfgReq; + MacSliceRecfgReq *sliceRecfgReq; /* unpack the address of the structure */ - CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceReCfgReq, mBuf); + CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceRecfgReq, mBuf); ODU_PUT_MSG_BUF(mBuf); - return (*func)(pst, sliceReCfgReq); + return (*func)(pst, sliceRecfgReq); } else { @@ -1435,7 +1676,7 @@ uint8_t unpackMacSliceReCfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf) * * @details * - * Function : packDuMacSliceReCfgRsp + * Function : packDuMacSliceRecfgRsp * * Functionality: * Pack and send Slice config response from MAC to DU APP @@ -1445,7 +1686,7 @@ uint8_t unpackMacSliceReCfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf) * RFAILED - failure * * ****************************************************************/ -uint8_t packDuMacSliceReCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp) +uint8_t packDuMacSliceRecfgRsp(Pst *pst, MacSliceRecfgRsp *sliceRecfgRsp) { Buffer *mBuf = NULLP; @@ -1453,15 +1694,15 @@ uint8_t packDuMacSliceReCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp) { if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) { - DU_LOG("\nERROR --> MAC : Memory allocation failed at packDuMacSliceReCfgRsp"); + DU_LOG("\nERROR --> MAC : Memory allocation failed at packDuMacSliceRecfgRsp"); return RFAILED; } /* pack the address of the structure */ - CMCHKPK(oduPackPointer,(PTR)cfgRsp, mBuf); + CMCHKPK(oduPackPointer,(PTR)sliceRecfgRsp, mBuf); } else { - DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacSliceReCfgRsp"); + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacSliceRecfgRsp"); return RFAILED; } @@ -1474,7 +1715,7 @@ uint8_t packDuMacSliceReCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp) * * @details * - * Function :unpackDuMacSliceReCfgRsp + * Function :unpackDuMacSliceRecfgRsp * * Functionality: Unpack Slice ReConfig Response from MAC to DU APP * @@ -1483,16 +1724,16 @@ uint8_t packDuMacSliceReCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp) * RFAILED - failure * * ****************************************************************/ -uint8_t unpackDuMacSliceReCfgRsp(MacDuSliceReCfgRspFunc func, Pst *pst, Buffer *mBuf) +uint8_t unpackDuMacSliceRecfgRsp(MacDuSliceRecfgRspFunc func, Pst *pst, Buffer *mBuf) { if(pst->selector == ODU_SELECTOR_LWLC) { - MacSliceCfgRsp *cfgRsp = NULLP; + MacSliceRecfgRsp *sliceRecfgRsp = NULLP; /* unpack the address of the structure */ - CMCHKUNPK(oduUnpackPointer, (PTR *)&cfgRsp, mBuf); + CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceRecfgRsp, mBuf); ODU_PUT_MSG_BUF(mBuf); - return (*func)(pst, cfgRsp); + return (*func)(pst, sliceRecfgRsp); } ODU_PUT_MSG_BUF(mBuf); @@ -1569,6 +1810,85 @@ uint8_t unpackDuMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf) return RFAILED; } +/******************************************************************* + * + * @brief Pack and send Dl Pcch indication to MAC + * + * @details + * + * Function : packDuMacDlPcchInd + * + * Functionality: + * Pack and send Dl Pcch indication to MAC + * + * @params[in] Post structure + * DlPcchInd *pcchInd; + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ + +uint8_t packDuMacDlPcchInd(Pst *pst, DlPcchInd *pcchInd) +{ + Buffer *mBuf = NULLP; + + if(pst->selector == ODU_SELECTOR_LWLC) + { + if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> MAC : packDuMacDlPcchInd(): Memory allocation failed "); + return RFAILED; + } + CMCHKPK(oduPackPointer,(PTR)pcchInd, mBuf); + return ODU_POST_TASK(pst,mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: packDuMacDlPcchInd(): Only LWLC supported "); + } + return RFAILED; +} + +/******************************************************************* + * + * @brief Unpacks downlink pcch indication received from DU APP + * + * @details + * + * Function : unpackMacDlPcchInd + * + * Functionality: + * Unpacks downlink pcch indication received from DU APP + * + * @params[in] Pointer to Handler + * Post structure pointer + * Message Buffer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ + +uint8_t unpackMacDlPcchInd(DuMacDlPcchInd func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + DlPcchInd *pcchInd=NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&pcchInd, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, pcchInd); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> DU APP : unpackMacDlPcchInd(): Only LWLC supported"); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + /******************************************************************* * * @brief Searches for first unset bit in ueBitMap