X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Fmac_slot_ind.c;h=a58a1b7097fee85825b072d60ef548a22573db4c;hb=ba2574ac618b40905509604da8d3a2b1b9e39664;hp=02f7b09f9151ef554361370dc6ef9bc840b812f5;hpb=3f340f5742e5c7c92b8541479ee7f2d670200cfb;p=o-du%2Fl2.git diff --git a/src/5gnrmac/mac_slot_ind.c b/src/5gnrmac/mac_slot_ind.c index 02f7b09f9..a58a1b709 100644 --- a/src/5gnrmac/mac_slot_ind.c +++ b/src/5gnrmac/mac_slot_ind.c @@ -65,6 +65,8 @@ uint8_t MacProcDlAlloc(Pst *pst, DlSchedInfo *dlSchedInfo) dlSlot[dlSchedInfo->schSlotValue.broadcastTime.slot]; currDlSlot->dlInfo.isBroadcastPres = true; memcpy(&currDlSlot->dlInfo.brdcstAlloc, &dlSchedInfo->brdcstAlloc, sizeof(DlBrdcstAlloc)); + currDlSlot->dlInfo.brdcstAlloc.sib1Alloc.sib1PdcchCfg.dci.pdschCfg = \ + &currDlSlot->dlInfo.brdcstAlloc.sib1Alloc.sib1PdschCfg; } if(dlSchedInfo->rarAlloc != NULLP) @@ -238,50 +240,47 @@ int sendSlotIndMacToSch(SlotIndInfo *slotInd) /******************************************************************* * - * @brief Send slot indication to DU APP + * @brief Send cell up indication to DU APP * * @details * - * Function : sendSlotIndMacToDuApp + * Function : sendCellUpIndMacToDuApp * * Functionality: - * Send slot indication to DU APP + * Send cell up indication to DU APP * - * @params[in] Slot indication info + * @params[in] Cell Up indication info * @return ROK - success * RFAILED - failure * * ****************************************************************/ -int sendSlotIndMacToDuApp(SlotIndInfo *slotInd) +int sendCellUpIndMacToDuApp(uint16_t cellId) { Pst pst; uint16_t ret; - SlotIndInfo *slotInfo; + OduCellId *oduCellId; /* Allocate sharable memory */ - MAC_ALLOC_SHRABL_BUF(slotInfo, sizeof(SlotIndInfo)); - if(!slotInfo) + MAC_ALLOC_SHRABL_BUF(oduCellId, sizeof(OduCellId)); + if(!oduCellId) { - DU_LOG("\nMAC : Slot Indication memory allocation failed"); + DU_LOG("\nMAC : Memory allocation failed for cell up indication"); return RFAILED; } - - slotInfo->cellId = slotInd->cellId; - slotInfo->sfn = slotInd->sfn; - slotInfo->slot = slotInd->slot; + oduCellId->cellId = cellId; /* Fill Pst */ - FILL_PST_MAC_TO_DUAPP(pst, EVENT_MAC_SLOT_IND); + FILL_PST_MAC_TO_DUAPP(pst, EVENT_MAC_CELL_UP_IND); - ret = MacDuAppSlotInd(&pst, slotInfo); + ret = MacDuAppCellUpInd(&pst, oduCellId); if(ret != ROK) { - DU_LOG("\nMAC: Failed to send slot indication to DU APP"); - MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, slotInfo, sizeof(SlotIndInfo)); + DU_LOG("\nMAC: Failed to send cell up indication to DU APP"); + MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, oduCellId, sizeof(OduCellId)); } return ret; -} /* sendSlotIndMacToDuApp */ +} /* sendCellUpIndMacToDuApp */ /******************************************************************* * @@ -300,7 +299,7 @@ int sendSlotIndMacToDuApp(SlotIndInfo *slotInd) * ****************************************************************/ uint8_t macProcSlotInd(SlotIndInfo slotInd) { - uint16_t cellIdx; + uint16_t cellIdx = 0; GET_CELL_IDX(slotInd.cellId, cellIdx); @@ -342,20 +341,25 @@ uint8_t macProcSlotInd(SlotIndInfo slotInd) **/ uint8_t fapiMacSlotInd(Pst *pst, SlotIndInfo *slotInd) { - uint8_t ret; - VOLATILE uint32_t startTime=0; + uint8_t ret = ROK; + volatile uint32_t startTime=0; #ifdef ODU_SLOT_IND_DEBUG_LOG DU_LOG("\nMAC : Slot Indication received"); #endif /*starting Task*/ ODU_START_TASK(&startTime, PID_MAC_TTI_IND); + gSlotCount++; +/* When testing L2 with Intel-L1, any changes specific to + * timer mode testing must be guarded under INTEL_TIMER_MODE*/ +#ifndef INTEL_TIMER_MODE /* send slot indication to scheduler */ ret = sendSlotIndMacToSch(slotInd); if(ret != ROK) { DU_LOG("\nMAC : Sending of slot ind msg from MAC to SCH failed"); + MAC_FREE_SHRABL_BUF(pst->region, pst->pool, slotInd, sizeof(SlotIndInfo)); return ret; } @@ -363,20 +367,26 @@ uint8_t fapiMacSlotInd(Pst *pst, SlotIndInfo *slotInd) if(ret != ROK) { DU_LOG("\nMAC : macProcSlotInd failed"); + MAC_FREE_SHRABL_BUF(pst->region, pst->pool, slotInd, sizeof(SlotIndInfo)); return ret; } +#endif /* send slot indication to du app */ - ret = sendSlotIndMacToDuApp(slotInd); - if(ret != ROK) + if(gSlotCount == 1) { - DU_LOG("\nMAC :Sending of slot ind msg from MAC to DU APP failed"); - return ret; + ret = sendCellUpIndMacToDuApp(slotInd->cellId); + if(ret != ROK) + { + DU_LOG("\nMAC :Sending of slot ind msg from MAC to DU APP failed"); + MAC_FREE_SHRABL_BUF(pst->region, pst->pool, slotInd, sizeof(SlotIndInfo)); + return ret; + } } /*stoping Task*/ ODU_STOP_TASK(startTime, PID_MAC_TTI_IND); - + MAC_FREE_SHRABL_BUF(pst->region, pst->pool, slotInd, sizeof(SlotIndInfo)); return ret; } /* fapiMacSlotInd */