X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Fmac_slot_ind.c;h=3a3d008d70cb14df31b40b2b70065a4788c3a119;hb=9940b262cb8423e9af0f6a19cc1f3f6fd61eaacd;hp=684dda0410d954e2e860afb77f540130b6326c5a;hpb=8e6123e23f6d831b1fe972f8229e9594a2e92237;p=o-du%2Fl2.git diff --git a/src/5gnrmac/mac_slot_ind.c b/src/5gnrmac/mac_slot_ind.c index 684dda041..3a3d008d7 100644 --- a/src/5gnrmac/mac_slot_ind.c +++ b/src/5gnrmac/mac_slot_ind.c @@ -55,8 +55,8 @@ MacSchSlotIndFunc macSchSlotIndOpts[] = uint8_t MacProcDlAlloc(Pst *pst, DlSchedInfo *dlSchedInfo) { uint8_t schInfoIdx = 0; - uint8_t ueIdx; - uint16_t cellIdx; + uint8_t ueId = 0, ueIdx = 0; + uint16_t cellIdx = 0; MacDlSlot *currDlSlot = NULLP; #ifdef CALL_FLOW_DEBUG_LOG @@ -98,8 +98,8 @@ uint8_t MacProcDlAlloc(Pst *pst, DlSchedInfo *dlSchedInfo) { if(dlSchedInfo->dlMsgAlloc[ueIdx]->dlMsgSchedInfo[schInfoIdx].dlMsgInfo.isMsg4Pdu) { - GET_UE_IDX(dlSchedInfo->dlMsgAlloc[ueIdx]->dlMsgSchedInfo[schInfoIdx].dlMsgInfo.crnti, ueIdx); - ueIdx = ueIdx -1; + GET_UE_ID(dlSchedInfo->dlMsgAlloc[ueIdx]->dlMsgSchedInfo[schInfoIdx].dlMsgInfo.crnti, ueId); + ueIdx = ueId -1; macCb.macCell[cellIdx]->macRaCb[ueIdx].msg4TbSize = \ dlSchedInfo->dlMsgAlloc[ueIdx]->dlMsgSchedInfo[schInfoIdx].dlMsgPdschCfg.codeword[0].tbSize; } @@ -138,7 +138,7 @@ uint8_t MacProcDlAlloc(Pst *pst, DlSchedInfo *dlSchedInfo) **/ void fillMsg4Pdu(uint16_t cellId, DlMsgSchInfo *msg4SchInfo) { - uint8_t ueIdx; + uint8_t ueId = 0, ueIdx = 0; uint16_t cellIdx; uint16_t msg4TxPduLen; MacDlData msg4DlData; @@ -149,8 +149,8 @@ void fillMsg4Pdu(uint16_t cellId, DlMsgSchInfo *msg4SchInfo) memset(&msg4DlData, 0, sizeof(MacDlData)); memset(&macCeData, 0, sizeof(MacCeInfo)); - GET_UE_IDX(msg4SchInfo->dlMsgInfo.crnti, ueIdx); - ueIdx = ueIdx -1; + GET_UE_ID(msg4SchInfo->dlMsgInfo.crnti, ueId); + ueIdx = ueId -1; if(macCb.macCell[cellIdx] == NULLP) { @@ -199,7 +199,7 @@ void fillMsg4Pdu(uint16_t cellId, DlMsgSchInfo *msg4SchInfo) } else { - DU_LOG("\nERROR --> MAC: Failed at macMuxPdu()"); + DU_LOG("\nERROR --> MAC: Failed at fillMsg4Pdu()"); } } @@ -314,6 +314,49 @@ int sendCellUpIndMacToDuApp(uint16_t cellId) return ret; } /* sendCellUpIndMacToDuApp */ +/******************************************************************* + * + * @brief Send slot indication to DU APP + * + * @details + * + * Function : sendSlotIndToDuApp + * + * Functionality: + * Send cell up indication to DU APP + * + * @params[in] Cell Up indication info + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t sendSlotIndToDuApp(SlotTimingInfo *slotInd) +{ + Pst pst; + uint16_t ret; + SlotTimingInfo *slotIndInfo; + + /* Allocate sharable memory */ + MAC_ALLOC_SHRABL_BUF(slotIndInfo, sizeof(SlotTimingInfo)); + if(!slotIndInfo) + { + DU_LOG("\nERROR --> MAC : Memory allocation failed for slot indication"); + return RFAILED; + } + memcpy(slotIndInfo, slotInd,sizeof(SlotTimingInfo)); + + /* Fill Pst */ + FILL_PST_MAC_TO_DUAPP(pst, EVENT_MAC_SLOT_IND); + + ret = MacDuAppSlotInd(&pst, slotIndInfo); + if(ret != ROK) + { + DU_LOG("\nERROR --> MAC: Failed to send slot up indication to DU APP"); + MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, slotIndInfo, sizeof(SlotTimingInfo)); + } + + return ret; +} /******************************************************************* * * @brief Process slot indication at MAC @@ -411,16 +454,25 @@ uint8_t fapiMacSlotInd(Pst *pst, SlotTimingInfo *slotInd) } #endif - /* send slot indication to du app */ + /*First Slot Ind is for CellUp. Any other Slot, will be notified to DUAPP as + * SLOT_IND*/ if(gSlotCount == 1) { + /* send cell up indication to du app */ ret = sendCellUpIndMacToDuApp(slotInd->cellId); - if(ret != ROK) - { - DU_LOG("\nERROR --> MAC :Sending of slot ind msg from MAC to DU APP failed"); - MAC_FREE_SHRABL_BUF(pst->region, pst->pool, slotInd, sizeof(SlotTimingInfo)); - return ret; - } + + } + else + { + /* send slot indication to du app */ + ret = sendSlotIndToDuApp(slotInd); + } + + if(ret != ROK) + { + DU_LOG("\nERROR --> MAC :Sending of slot ind msg from MAC to DU APP failed"); + MAC_FREE_SHRABL_BUF(pst->region, pst->pool, slotInd, sizeof(SlotTimingInfo)); + return ret; } /*stoping Task*/