#include "common_def.h"
#include "lrg.h"
#ifdef INTEL_FAPI
-#include "fapi.h"
+#include "nr5g_fapi_internal.h"
#include "fapi_vendor_extension.h"
#endif
/* fill Pst structure to send to lwr_mac to MAC */
Pst pst;
uint16_t ret = 0;
- SlotIndInfo *slotInd = {0};
+ SlotTimingInfo *slotInd = {0};
- MAC_ALLOC_SHRABL_BUF(slotInd, sizeof(SlotIndInfo));
+ MAC_ALLOC_SHRABL_BUF(slotInd, sizeof(SlotTimingInfo));
if(slotInd)
{
slotInd->cellId = lwrMacCb.cellCb[0].cellId;
slotInd->sfn = fapiSlotInd->sfn;
slotInd->slot = fapiSlotInd->slot;
-
FILL_PST_LWR_MAC_TO_MAC(pst, EVENT_SLOT_IND_TO_MAC);
+ pst.selector = ODU_SELECTOR_LWLC;
ret = (*sendSlotIndOpts[pst.selector])(&pst, slotInd);
}
else
DU_LOG("\nINFO --> LWR_MAC: PHY has moved to configured state");
FILL_PST_LWR_MAC_TO_MAC(pst, EVENT_STOP_IND_TO_MAC);
+ pst.selector = ODU_SELECTOR_LWLC;
return (*sendStopIndOpts[pst.selector])(&pst, cellId);
}
RachPduInfo *rachPdu = NULLP;
RachInd *rachInd = NULLP;
+ if(!fapiRachInd->numPdus)
+ {
+ DU_LOG("\nDEBUG --> LWR_MAC : No PDU in RACH.indication at [%d, %d]", fapiRachInd->sfn, fapiRachInd->slot);
+ return ROK;
+ }
+
MAC_ALLOC_SHRABL_BUF(rachInd, sizeof(RachInd));
if(!rachInd)
{
- DU_LOG("\nERROR --> LWR_MAC: Memory Allocation failed in procRachInd");
+ DU_LOG("\nERROR --> LWR_MAC : Memory Allocation failed in procRachInd");
return RFAILED;
}
-
rachInd->cellId = lwrMacCb.cellCb[0].cellId;
rachInd->timingInfo.sfn = fapiRachInd->sfn;
rachInd->timingInfo.slot = fapiRachInd->slot;
/* Fill post and sent to MAC */
FILL_PST_LWR_MAC_TO_MAC(pst, EVENT_RACH_IND_TO_MAC);
return (*sendRachIndOpts[pst.selector])(&pst, rachInd);
-
}/* handleRachInd */
/*******************************************************************
MAC_ALLOC_SHRABL_BUF(crcInd, sizeof(CrcInd));
if(!crcInd)
{
- DU_LOG("\nERROR --> LWR_MAC: Memory Allocation failed in procCrcInd");
+ DU_LOG("\nERROR --> LWR_MAC : Memory Allocation failed in procCrcInd");
return RFAILED;
}
+ if(!fapiCrcInd->numCrcs)
+ {
+ DU_LOG("\nDEBUG --> LWR_MAC : No CRC PDUs in CRC.indication at [%d, %d]", fapiCrcInd->sfn, fapiCrcInd->slot);
+ return ROK;
+ }
crcInd->cellId = lwrMacCb.cellCb[0].cellId;
crcInd->timingInfo.sfn = fapiCrcInd->sfn;
MAC_ALLOC_SHRABL_BUF(rxDataInd, sizeof(RxDataInd));
if(!rxDataInd)
{
- DU_LOG("\nERROR --> LWR_MAC: Memory Allocation failed in procRxDataInd");
+ DU_LOG("\nERROR --> LWR_MAC : Memory Allocation failed in procRxDataInd");
return RFAILED;
}
+ if(!fapiRxDataInd->numPdus)
+ {
+ DU_LOG("\nDEBUG --> LWR_MAC : No PDU in RX_Data.indication at [%d, %d]", fapiRxDataInd->sfn, fapiRxDataInd->slot);
+ return ROK;
+ }
rxDataInd->cellId = lwrMacCb.cellCb[0].cellId;
rxDataInd->timingInfo.sfn = fapiRxDataInd->sfn;
}
#endif /* FAPI */
+/*******************************************************************
+ * @brief Function prints src, dest, msg infor about all the msgs that
+ received.
+ *
+ * @details
+ *
+ * Function :callFlowFromPhyToLwrMac
+ *
+ * Function call Flow From Phy To LwrMac
+ *
+ * @param[in] Pst *pst, Post structure of the primitive.
+ *
+ * @return void
+ * ****************************************************************/
+void callFlowFromPhyToLwrMac(uint16_t msgId)
+{
+ char message[100];
+ switch(msgId)
+ {
+#ifdef INTEL_TIMER_MODE
+ case FAPI_VENDOR_EXT_UL_IQ_SAMPLES:
+ strcpy(message,"FAPI_VENDOR_EXT_UL_IQ_SAMPLES");
+ break;
+#endif
+ case FAPI_PARAM_RESPONSE:
+ strcpy(message,"FAPI_PARAM_RESPONSE");
+ break;
+ case FAPI_CONFIG_RESPONSE:
+ strcpy(message,"FAPI_CONFIG_RESPONSE");
+ break;
+ case FAPI_SLOT_INDICATION:
+ strcpy(message,"FAPI_SLOT_INDICATION");
+ break;
+ case FAPI_ERROR_INDICATION:
+ strcpy(message,"FAPI_ERROR_INDICATION");
+ break;
+ case FAPI_RX_DATA_INDICATION:
+ strcpy(message,"FAPI_RX_DATA_INDICATION");
+ break;
+ case FAPI_CRC_INDICATION:
+ strcpy(message,"FAPI_CRC_INDICATION");
+ break;
+ case FAPI_UCI_INDICATION:
+ strcpy(message,"FAPI_UCI_INDICATION");
+ break;
+ case FAPI_SRS_INDICATION:
+ strcpy(message,"FAPI_SRS_INDICATION");
+ break;
+ case FAPI_RACH_INDICATION:
+ strcpy(message,"FAPI_RACH_INDICATION");
+ break;
+ case FAPI_STOP_INDICATION:
+ strcpy(message,"FAPI_STOP_INDICATION");
+ break;
+ }
+ DU_LOG("\nCall Flow: PHY -> ENTLWRMAC : %s\n",message);
+}
+
/*******************************************************************
*
* @brief Processes message from PHY
fapi_msg_t *header = NULLP;
header = (fapi_msg_t *)msg;
+#ifdef CALL_FLOW_DEBUG_LOG
+ callFlowFromPhyToLwrMac(header->msg_id);
+#endif
+
switch(header->msg_id)
{
#ifdef INTEL_TIMER_MODE