X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_mac_inf.c;h=c72636c4d766cc3f8857805b823e5f3f0233c86e;hb=4588074b60b6cd2d5a2c27fb1f0a8114e30b1810;hp=e0e75c52f6fdf4037a02f6e7660434bdb0430ca0;hpb=b5a77f556b20a2acd7d653367fdcac030461f85b;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..c72636c4d 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) { @@ -284,12 +284,12 @@ uint8_t packMacCellStop(Pst *pst, OduCellId *cellId) if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) { - DU_LOG("\nERROR --> DU APP : Memory allocation failed for cell stop req pack"); - return RFAILED; + DU_LOG("\nERROR --> DU APP : Memory allocation failed for cell stop req pack"); + return RFAILED; } /* 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 { @@ -841,7 +841,7 @@ uint8_t unpackDuMacUeCfgRsp(MacDuUeCfgRspFunc func, Pst *pst, Buffer *mBuf) * RFAILED - failure * * ****************************************************************/ -uint8_t packDuMacUeReconfigReq(Pst *pst, MacUeCfg *ueCfg) +uint8_t packDuMacUeReconfigReq(Pst *pst, MacUeRecfg *ueCfg) { Buffer *mBuf = NULLP; @@ -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 @@ -885,12 +886,12 @@ uint8_t unpackMacUeReconfigReq(DuMacUeReconfigReq func, Pst *pst, Buffer *mBuf) { if(pst->selector == ODU_SELECTOR_LWLC) { - MacUeCfg *ueCfg; + MacUeRecfg *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 { @@ -901,6 +902,316 @@ uint8_t unpackMacUeReconfigReq(DuMacUeReconfigReq func, Pst *pst, Buffer *mBuf) return RFAILED; } + +/******************************************************************* + * + * @brief Pack and send UE Reconfig response from MAC to DU APP + * + * @details + * + * Function : packDuMacUeRecfgRsp + * + * Functionality: + * Pack and send UE Reconfig response from MAC to DU APP + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t packDuMacUeRecfgRsp(Pst *pst, MacUeRecfgRsp *recfgRsp) +{ + 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 packDuMacUeRecfgRsp"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)recfgRsp, mBuf); + } + else + { + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacUeRecfgRsp"); + return RFAILED; + } + + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* + * + * @brief Unpack UE ReConfig Response from MAC to DU APP + * + * @details + * + * Function :unpackDuMacUeRecfgRsp + * + * Functionality: Unpack UE ReConfig Response from MAC to DU APP + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t unpackDuMacUeRecfgRsp(MacDuUeRecfgRspFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + MacUeRecfgRsp *recfgRsp = NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&recfgRsp, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, recfgRsp); + } + + ODU_PUT_MSG_BUF(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 +1384,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 +1420,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 +1674,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 +1691,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 +1720,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 +1746,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 +1756,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 +1764,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 +1785,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 +1794,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 +1880,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