Merge "Implementation of function for filling k0 and k1 table [Issue-ID: ODUHIGH...
[o-du/l2.git] / src / 5gnrmac / mac_slot_ind.c
index 27088ed..d8dc0e7 100644 (file)
@@ -54,9 +54,13 @@ MacSchSlotIndFunc macSchSlotIndOpts[] =
  **/
 uint8_t MacProcDlAlloc(Pst *pst, DlSchedInfo *dlSchedInfo)
 {
+   uint8_t   ueIdx;
    uint16_t  cellIdx;
    MacDlSlot *currDlSlot = NULLP;
 
+#ifdef CALL_FLOW_DEBUG_LOG
+   DU_LOG("\nCall Flow: ENTSCH -> ENTMAC : EVENT_DL_SCH_INFO\n");
+#endif
    if(dlSchedInfo != NULLP)
    {
       GET_CELL_IDX(dlSchedInfo->cellId, cellIdx);
@@ -90,7 +94,10 @@ uint8_t MacProcDlAlloc(Pst *pst, DlSchedInfo *dlSchedInfo)
          /* Check if the downlink pdu is msg4 */
          if(dlSchedInfo->dlMsgAlloc->dlMsgInfo.isMsg4Pdu)
          {
-            macCb.macCell[cellIdx]->macRaCb[0].msg4TbSize = dlSchedInfo->dlMsgAlloc->dlMsgPdschCfg.codeword[0].tbSize;
+            GET_UE_IDX(dlSchedInfo->dlMsgAlloc->dlMsgInfo.crnti, ueIdx);
+            ueIdx = ueIdx -1;
+            macCb.macCell[cellIdx]->macRaCb[ueIdx].msg4TbSize = \
+               dlSchedInfo->dlMsgAlloc->dlMsgPdschCfg.codeword[0].tbSize;
          }
          else
          {
@@ -145,8 +152,8 @@ void fillMsg4Pdu(uint16_t cellId, DlMsgAlloc *msg4Alloc)
 
    if(macCb.macCell[cellIdx]->macRaCb[ueIdx].msg4Pdu != NULLP)
    {
-      MAC_ALLOC(msg4DlData.pduInfo[ueIdx].dlPdu, macCb.macCell[cellIdx]->macRaCb[ueIdx].msg4PduLen);
-      if(msg4DlData.pduInfo[ueIdx].dlPdu != NULLP)
+      MAC_ALLOC(msg4DlData.pduInfo[msg4DlData.numPdu].dlPdu, macCb.macCell[cellIdx]->macRaCb[ueIdx].msg4PduLen);
+      if(msg4DlData.pduInfo[msg4DlData.numPdu].dlPdu != NULLP)
       {
          msg4TxPduLen = macCb.macCell[cellIdx]->macRaCb[ueIdx].msg4TbSize - TX_PAYLOAD_HDR_LEN;
 
@@ -166,7 +173,8 @@ void fillMsg4Pdu(uint16_t cellId, DlMsgAlloc *msg4Alloc)
             DU_LOG("\nERROR  -->  MAC: Failed allocating memory for msg4TxPdu");
          }
          /* Free memory allocated */
-         MAC_FREE(msg4DlData.pduInfo[0].dlPdu, macCb.macCell[cellIdx]->macRaCb[ueIdx].msg4PduLen);
+         MAC_FREE(msg4DlData.pduInfo[msg4DlData.numPdu-1].dlPdu, macCb.macCell[cellIdx]->macRaCb[ueIdx].msg4PduLen);
+         msg4DlData.numPdu--;
       }
    }