X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Flwr_mac_upr_inf.c;h=1dc79bdcc0c7cac4515b23218e64315698a3e72f;hb=de6a435729e3cad9d4a66329080b8206a64f452c;hp=46b7a42810592dab32f9d72186471deb626596a5;hpb=b490cd1231cfcc837e8bfccc40c6bb106dceef7c;p=o-du%2Fl2.git diff --git a/src/5gnrmac/lwr_mac_upr_inf.c b/src/5gnrmac/lwr_mac_upr_inf.c index 46b7a4281..1dc79bdcc 100644 --- a/src/5gnrmac/lwr_mac_upr_inf.c +++ b/src/5gnrmac/lwr_mac_upr_inf.c @@ -15,9 +15,139 @@ # limitations under the License. # ################################################################################ *******************************************************************************/ - +#include "common_def.h" #include "lwr_mac_upr_inf.h" +/******************************************************************* + * + * @brief Packs and Sends CRC Ind to MAC + * + * @details + * + * Function : packCrcInd + * + * Functionality: + * Packs and Sends CRC Ind to MAC + * + * @params[in] Post structure pointer + * CRC indication + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t packCrcInd(Pst *pst, CrcInd *crcInd) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + Buffer *mBuf = NULLP; + if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packCrcInd"); + return RFAILED; + } + CMCHKPK(oduPackPointer,(PTR)crcInd, mBuf); + return ODU_POST_TASK(pst, mBuf); + } + return RFAILED; +} + +/************************************************************************** + * @brief Function unpack crcInd + * + * @details + * + * Function : unpackCrcInd + * + * Functionality: + * unpacks crc indication + * + * @param[in] function pointer + * @param[in] Pst *pst, Post structure of the primitive. + * @param[in] Buffer *mBuf + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +uint8_t unpackCrcInd(CrcIndFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + CrcInd *crcInd = NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&crcInd, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, crcInd); + } + return RFAILED; +} + + +/******************************************************************* + * + * @brief Packs and Sends Rx Data Ind to MAC + * + * @details + * + * Function : packRxDataInd + * + * Functionality: + * Packs and Sends Rx data Ind to MAC + * + * @params[in] Post structure pointer + * Rx Data indication + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t packRxDataInd(Pst *pst, RxDataInd *rxDataInd) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + Buffer *mBuf = NULLP; + if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packRxDataInd"); + return RFAILED; + } + CMCHKPK(oduPackPointer,(PTR)rxDataInd, mBuf); + return ODU_POST_TASK(pst, mBuf); + } + return RFAILED; +} + +/************************************************************************** + * @brief Function unpack RxDataInd + * + * @details + * + * Function : unpackRxDataInd + * + * Functionality: + * unpacks Rx Data indication + * + * @param[in] function pointer + * @param[in] Pst *pst, Post structure of the primitive. + * @param[in] Buffer *mBuf + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +uint8_t unpackRxDataInd(RxDataIndFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + RxDataInd *rxDataInd = NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&rxDataInd, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, rxDataInd); + } + return RFAILED; +} + + /******************************************************************* * * @brief Packs and Sends RACH Ind to MAC @@ -35,28 +165,63 @@ * RFAILED - failure * * ****************************************************************/ -uint16_t packRachInd(Pst *pst, RachInd *rachInd) +uint8_t packRachInd(Pst *pst, RachInd *rachInd) { - if((pst->selector == MAC_SELECTOR_LC) || (pst->selector == MAC_SELECTOR_LWLC)) + if(pst->selector == ODU_SELECTOR_LWLC) { - return ROK; + Buffer *mBuf = NULLP; + if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packRachInd"); + return RFAILED; + } + CMCHKPK(oduPackPointer,(PTR)rachInd, mBuf); + return ODU_POST_TASK(pst, mBuf); } - else + return RFAILED; +} + +/************************************************************************** + * @brief Function unpacks RachInd + * + * @details + * + * Function : unpackRachInd + * + * Functionality: + * unpacks Rach indication + * + * @param[in] function pointer + * @param[in] Pst *pst, Post structure of the primitive. + * @param[in] Buffer *mBuf + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +uint8_t unpackRachInd(RachIndFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) { - return RFAILED; + RachInd *rachInd = NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&rachInd, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, rachInd); } + return RFAILED; } - + /******************************************************************* * - * @brief Loose coupled packing of slot indication + * @brief Pack and send slot indication to MAC * * @details * - * Function : packLcSlotInd + * Function : packSlotInd * * Functionality: - * Loose coupled packing of slot indication + * Pack and send slot indication to MAC * * @params[in] Post structure * Slot indication info @@ -64,43 +229,181 @@ uint16_t packRachInd(Pst *pst, RachInd *rachInd) * RFAILED - failure * * ****************************************************************/ -S16 packLcSlotInd (Pst *pst, SlotIndInfo *slotInd) +uint8_t packSlotInd (Pst *pst, SlotTimingInfo *slotInd) { - Buffer *mBuf = NULLP; - if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) + if(pst->selector == ODU_SELECTOR_LWLC) { - RETVALUE(RFAILED); + Buffer *mBuf = NULLP; + if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packSlotInd"); + return RFAILED; + } + CMCHKPK(oduPackPointer,(PTR)slotInd, mBuf); + return ODU_POST_TASK(pst, mBuf); } - - /* pack SFN and slot value */ - CMCHKPK(SPkU16,slotInd->sfn, mBuf); - CMCHKPK(SPkU16,slotInd->slot, mBuf); - - RETVALUE(SPstTsk(pst,mBuf)); + return RFAILED; } - + +/************************************************************************** + * @brief Function unpacks slot indication + * + * @details + * + * Function : unpackSlotInd + * + * Functionality: + * unpacks slot indication + * + * @param[in] function pointer, + * @param[in] Pst *pst, + * @param[in] Buffer *mBuf + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +uint8_t unpackSlotInd(SlotIndFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + SlotTimingInfo *slotInd = NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&slotInd, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, slotInd); + } + return RFAILED; +} + + /******************************************************************* * - * @brief Light weight loose coupled packing of slot indication + * @brief Packs and Sends Stop Ind to MAC * * @details * - * Function : packLwlcSlotInd + * Function : packStopInd * * Functionality: - * Light weight loose coupled packing of slot indication + * Packs and Sends Stop Ind to MAC * - * @params[in] Post structure - * Slot indication info + * @params[in] Post structure pointer * @return ROK - success * RFAILED - failure * * ****************************************************************/ -S16 packLwlcSlotInd (Pst *pst, SlotIndInfo *slotInd) +uint8_t packStopInd(Pst *pst, uint16_t *cellId) { - return ROK; + if(pst->selector == ODU_SELECTOR_LWLC) + { + Buffer *mBuf = NULLP; + if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packStopInd"); + return RFAILED; + } + CMCHKPK(oduPackPointer,(PTR)cellId, mBuf); + return ODU_POST_TASK(pst, mBuf); + } + return RFAILED; } +/************************************************************************** + * @brief Function unpack stop indication + * + * @details + * + * Function : unpackStopInd + * + * Functionality: + * unpacks stop indication + * + * @param[in] function pointer + * @param[in] Pst *pst, + * @param[in] Buffer *mBuf + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +uint8_t unpackStopInd(StopIndFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + uint16_t *cellId = NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&cellId, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, cellId); + } + return RFAILED; +} + +/******************************************************************* + * + * @brief Packs and Sends UCI Ind to MAC + * + * @details + * + * Function : packUciInd + * + * Functionality: + * Packs and Sends Uci Ind to MAC + * + * @params[in] Post structure pointer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t packUciInd(Pst *pst, UciInd *uciInd) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + Buffer *mBuf = NULLP; + if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packUciInd"); + return RFAILED; + } + CMCHKPK(oduPackPointer,(PTR)uciInd, mBuf); + return ODU_POST_TASK(pst, mBuf); + } + return RFAILED; +} + +/************************************************************************** + * @brief Function unpack UCI indication + * + * @details + * + * Function : unpackUciInd + * + * Functionality: + * unpacks UCI indication + * + * @param[in] function pointer + * @param[in] Pst *pst, + * @param[in] Buffer *mBuf + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +uint8_t unpackUciInd(UciIndFunc func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + UciInd *uciInd = NULLP; + + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&uciInd, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, uciInd); + } + return RFAILED; +} + + /********************************************************************** - End of file -**********************************************************************/ + End of file + **********************************************************************/