X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Fmac_msg_hdl.c;h=aad5fc18b9104103b87e2835e64494c6f2259c75;hb=4e803fe4bcf3a446b7082675d25d35ad102f16f6;hp=fa8b678b605eb43e40612b9ff2366ab1742bd15a;hpb=746426865b5742eb3d79ae2457081c47c1c2c4c1;p=o-du%2Fl2.git diff --git a/src/5gnrmac/mac_msg_hdl.c b/src/5gnrmac/mac_msg_hdl.c index fa8b678b6..aad5fc18b 100644 --- a/src/5gnrmac/mac_msg_hdl.c +++ b/src/5gnrmac/mac_msg_hdl.c @@ -14,21 +14,10 @@ # See the License for the specific language governing permissions and # # limitations under the License. # ################################################################################ -*******************************************************************************/ + *******************************************************************************/ /* header include files -- defines (.h) */ -#include -#include "envopt.h" /* environment options */ -#include "envdep.h" /* environment dependent */ -#include "envind.h" /* environment independent */ -#include "gen.h" /* general layer */ -#include "ssi.h" /* system services */ -#include "cm5.h" /* common timers defines */ -#include "cm_hash.h" /* common hash list defines */ -#include "cm_llist.h" /* common linked list defines */ -#include "cm_mblk.h" /* memory management */ -#include "cm_tkns.h" /* common tokens */ -#include "cm_lte.h" /* common tokens */ +#include "common_def.h" #include "rgu.h" #include "tfu.h" #include "rg_sch_inf.h" @@ -40,15 +29,6 @@ #include "lwr_mac.h" /* header/extern include files (.x) */ -#include "gen.x" /* general layer typedefs */ -#include "ssi.x" /* system services typedefs */ -#include "cm5.x" /* common timers */ -#include "cm_hash.x" /* common hash list */ -#include "cm_lib.x" /* common library */ -#include "cm_llist.x" /* common linked list */ -#include "cm_mblk.x" /* memory management */ -#include "cm_tkns.x" /* common tokens */ -#include "cm_lte.x" /* common tokens */ #include "rgu.x" #include "tfu.x" #include "rg_sch_inf.x" @@ -103,10 +83,10 @@ MacSchDlRlcBoInfoFunc macSchDlRlcBoInfoOpts[]= int sendDlRlcBoInfoMacToSch(DlRlcBOInfo *dlBoInfo) { Pst pst; - + fillMacToSchPst(&pst); pst.event = EVENT_DL_RLC_BO_INFO_TO_SCH; - + return(*macSchDlRlcBoInfoOpts[pst.selector])(&pst, dlBoInfo); } @@ -125,17 +105,17 @@ int sendDlRlcBoInfoMacToSch(DlRlcBOInfo *dlBoInfo) * @return ROK - success * RFAILED - failure * - ****************************************************************/ + ****************************************************************/ int sendCrcIndMacToSch(CrcIndInfo *crcInd) { Pst pst; - + fillMacToSchPst(&pst); pst.event = EVENT_CRC_IND_TO_SCH; - + return(*macSchCrcIndOpts[pst.selector])(&pst, crcInd); } - + /******************************************************************* * * @brief Processes CRC Indication from PHY @@ -156,7 +136,7 @@ int sendCrcIndMacToSch(CrcIndInfo *crcInd) uint16_t fapiMacCrcInd(Pst *pst, CrcInd *crcInd) { CrcIndInfo crcIndInfo; - + DU_LOG("\nMAC : Received CRC indication"); /* Considering one pdu and one preamble */ @@ -166,10 +146,10 @@ uint16_t fapiMacCrcInd(Pst *pst, CrcInd *crcInd) crcIndInfo.timingInfo.slot = crcInd->timingInfo.slot; crcIndInfo.numCrcInd = crcInd->crcInfo[0].numCb; crcIndInfo.crcInd[0] = crcInd->crcInfo[0].cbCrcStatus[0]; - + return(sendCrcIndMacToSch(&crcIndInfo)); } - + /******************************************************************* * * @brief Process Rx Data Ind at MAC @@ -190,11 +170,11 @@ uint16_t fapiMacCrcInd(Pst *pst, CrcInd *crcInd) uint16_t fapiMacRxDataInd(Pst *pst, RxDataInd *rxDataInd) { uint16_t pduIdx; - + DU_LOG("\nMAC : Received Rx Data indication"); - + /* TODO : compare the handle received in RxDataInd with handle send in PUSCH - * PDU, which is stored in raCb */ + * PDU, which is stored in raCb */ for(pduIdx = 0; pduIdx < rxDataInd->numPdus; pduIdx++) { @@ -271,7 +251,7 @@ uint16_t MacHdlCellStartReq(Pst *pst, MacCellStartInfo *cellStartInfo) sendToLowerMac(START_REQUEST, 0, cellStartInfo); MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cellStartInfo, \ - sizeof(MacCellStartInfo)); + sizeof(MacCellStartInfo)); return ROK; } @@ -295,14 +275,14 @@ uint16_t MacHdlCellStartReq(Pst *pst, MacCellStartInfo *cellStartInfo) * ****************************************************************/ uint16_t MacHdlCellStopReq(Pst *pst, MacCellStopInfo *cellStopInfo) { - #ifdef FAPI +#ifdef INTEL_FAPI DU_LOG("\nMAC : Sending cell stop request to Lower Mac"); sendToLowerMac(FAPI_STOP_REQUEST, 0, cellStopInfo); - #endif +#endif MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cellStopInfo, \ - sizeof(MacCellStopInfo)); - + sizeof(MacCellStopInfo)); + return ROK; } @@ -327,42 +307,42 @@ uint16_t MacHdlDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo) { uint16_t idx; DlRlcBOInfo dlBoInfo; - memset(&dlBoInfo, 0, sizeof(DlRlcBOInfo)); + memset(&dlBoInfo, 0, sizeof(DlRlcBOInfo)); DU_LOG("\nMAC : Handling DL CCCH IND"); - + /* TODO : Fill DL RLC Buffer status info */ dlBoInfo.cellId = dlCcchIndInfo->cellId; dlBoInfo.crnti = dlCcchIndInfo->crnti; dlBoInfo.numLc = 0; - + if(dlCcchIndInfo->msgType == RRC_SETUP) { dlBoInfo.boInfo[dlBoInfo.numLc].lcId = SRB_ID_0; // SRB ID 0 for msg4 dlBoInfo.boInfo[SRB_ID_0].dataVolume = \ - dlCcchIndInfo->dlCcchMsgLen; + dlCcchIndInfo->dlCcchMsgLen; dlBoInfo.numLc++; /* storing Msg4 Pdu in raCb */ if(macCb.macCell->macRaCb[0].crnti == dlCcchIndInfo->crnti) { - macCb.macCell->macRaCb[0].msg4PduLen = dlCcchIndInfo->dlCcchMsgLen; - MAC_ALLOC(macCb.macCell->macRaCb[0].msg4Pdu, macCb.macCell->macRaCb[0]\ - .msg4PduLen); - if(macCb.macCell->macRaCb[0].msg4Pdu) - { - for(idx = 0; idx < dlCcchIndInfo->dlCcchMsgLen; idx++) - { - macCb.macCell->macRaCb[0].msg4Pdu[idx] =\ - dlCcchIndInfo->dlCcchMsg[idx]; - } - } + macCb.macCell->macRaCb[0].msg4PduLen = dlCcchIndInfo->dlCcchMsgLen; + MAC_ALLOC(macCb.macCell->macRaCb[0].msg4Pdu, \ + macCb.macCell->macRaCb[0].msg4PduLen); + if(macCb.macCell->macRaCb[0].msg4Pdu) + { + for(idx = 0; idx < dlCcchIndInfo->dlCcchMsgLen; idx++) + { + macCb.macCell->macRaCb[0].msg4Pdu[idx] =\ + dlCcchIndInfo->dlCcchMsg[idx]; + } + } } } sendDlRlcBoInfoMacToSch(&dlBoInfo); - + MAC_FREE_SHRABL_BUF(pst->region, pst->pool, dlCcchIndInfo->dlCcchMsg, \ - dlCcchIndInfo->dlCcchMsgLen); + dlCcchIndInfo->dlCcchMsgLen); MAC_FREE_SHRABL_BUF(pst->region, pst->pool, dlCcchIndInfo, sizeof(DlCcchIndInfo)); return ROK; @@ -388,47 +368,47 @@ uint16_t MacHdlDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo) uint16_t macSendUlCcchInd(uint8_t *rrcContainer, uint16_t cellId, uint16_t crnti) { Pst pst; - uint8_t ret = ROK; + uint8_t ret = ROK; UlCcchIndInfo *ulCcchIndInfo = NULLP; MAC_ALLOC_SHRABL_BUF(ulCcchIndInfo, sizeof(UlCcchIndInfo)); if(!ulCcchIndInfo) { - DU_LOG("\nMAC: Memory failed in macSendUlCcchInd"); - return RFAILED; - } - - ulCcchIndInfo->cellId = cellId; - ulCcchIndInfo->crnti = crnti; - ulCcchIndInfo->ulCcchMsg = rrcContainer; - - /* Fill Pst */ - pst.selector = DU_MAC_LWLC; - pst.srcEnt = ENTRG; - pst.dstEnt = ENTDUAPP; - pst.dstInst = 0; - pst.srcInst = macCb.macInst; - pst.dstProcId = rgCb[pst.srcInst].rgInit.procId; - pst.srcProcId = rgCb[pst.srcInst].rgInit.procId; - pst.region = MAC_MEM_REGION; - pst.pool = MAC_POOL; - pst.event = EVENT_MAC_UL_CCCH_IND; - pst.route = 0; - pst.prior = 0; - pst.intfVer = 0; - - if(MacDuAppUlCcchInd(&pst, ulCcchIndInfo) != ROK) - { - DU_LOG("\nMAC: Failed to send UL CCCH Ind to DU APP"); - MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, ulCcchIndInfo->ulCcchMsg, - strlen((const char*)ulCcchIndInfo->ulCcchMsg)); - MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, ulCcchIndInfo, sizeof(UlCcchIndInfo)); - ret = RFAILED; - } - return ret; + DU_LOG("\nMAC: Memory failed in macSendUlCcchInd"); + return RFAILED; + } + + ulCcchIndInfo->cellId = cellId; + ulCcchIndInfo->crnti = crnti; + ulCcchIndInfo->ulCcchMsg = rrcContainer; + + /* Fill Pst */ + pst.selector = ODU_SELECTOR_LWLC; + pst.srcEnt = ENTRG; + pst.dstEnt = ENTDUAPP; + pst.dstInst = 0; + pst.srcInst = macCb.macInst; + pst.dstProcId = rgCb[pst.srcInst].rgInit.procId; + pst.srcProcId = rgCb[pst.srcInst].rgInit.procId; + pst.region = MAC_MEM_REGION; + pst.pool = MAC_POOL; + pst.event = EVENT_MAC_UL_CCCH_IND; + pst.route = 0; + pst.prior = 0; + pst.intfVer = 0; + + if(MacDuAppUlCcchInd(&pst, ulCcchIndInfo) != ROK) + { + DU_LOG("\nMAC: Failed to send UL CCCH Ind to DU APP"); + MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, ulCcchIndInfo->ulCcchMsg, + strlen((const char*)ulCcchIndInfo->ulCcchMsg)); + MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, ulCcchIndInfo, sizeof(UlCcchIndInfo)); + ret = RFAILED; + } + return ret; } /********************************************************************** - End of file -**********************************************************************/ + End of file + **********************************************************************/