extern uint8_t UnrestrictedSetNcsTable[MAX_ZERO_CORR_CFG_IDX];
/* Global variables */
-SlotIndInfo slotIndInfo;
uint8_t slotIndIdx;
-
uint16_t sendTxDataReq(CmLteTimingInfo *currTimingInfo, DlAlloc *dlInfo);
void lwrMacInit()
return ROK;
} /* lwr_mac_handleStartReqEvt */
+ /*******************************************************************
+ *
+ * @brief Sends FAPI Stop Req to PHY
+ *
+ * @details
+ *
+ * Function : lwr_mac_handleStopReqEvt
+ *
+ * Functionality:
+ * -Sends FAPI Stop Req to PHY
+ *
+ * @params[in]
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ ********************************************************************/
+
S16 lwr_mac_handleStopReqEvt(void *msg)
{
#ifdef FAPI
- /* stop TX and RX operation return PHy to configured State
- send stop.indication to l2/l3 */
+ uint32_t msgLen = 0;
+ fapi_stop_req_t *stopReq = NULLP;
+ LWR_MAC_ALLOC(stopReq, sizeof(fapi_stop_req_t));
+ if(stopReq != NULLP)
+ {
+ fillMsgHeader(&stopReq->header, FAPI_STOP_REQUEST, msgLen);
+ DU_LOG("\nLOWER MAC: Sending Stop Request to PHY");
+ LwrMacSendToPhy(stopReq->header.message_type_id, sizeof(fapi_stop_req_t), (void *)stopReq);
+ }
+ else
+ {
+ DU_LOG("\nLOWER MAC: Failed to allocate memory for Stop Request");
+ return RFAILED;
+ }
#endif
return ROK;
}
* pointer to modified value
******************************************************************/
-PUBLIC void setMibPdu(uint8_t *mibPdu, uint32_t *val)
+PUBLIC void setMibPdu(uint8_t *mibPdu, uint32_t *val, uint16_t sfn)
{
- *mibPdu |= (((uint8_t)(slotIndInfo.sfn >> 2)) & MIB_SFN_BITMASK);
+ *mibPdu |= (((uint8_t)(sfn >> 2)) & MIB_SFN_BITMASK);
*val = (mibPdu[0] << 24 | mibPdu[1] << 16 | mibPdu[2] << 8);
DU_LOG("\nLWR_MAC: MIB PDU %x", *val);
}
******************************************************************/
S16 fillSsbPdu(fapi_dl_tti_req_pdu_t *dlTtiReqPdu, MacCellCfg *macCellCfg,
- MacDlSlot *currDlSlot,
- uint32_t *msgLen, uint8_t ssbIdxCount)
+ MacDlSlot *currDlSlot, uint32_t *msgLen, uint8_t ssbIdxCount, uint16_t sfn)
{
uint32_t mibPayload = 0;
if(dlTtiReqPdu != NULL)
dlTtiReqPdu->u.ssb_pdu.ssbOffsetPointA = macCellCfg->ssbCfg.ssbOffsetPointA;
dlTtiReqPdu->u.ssb_pdu.bchPayloadFlag = macCellCfg->ssbCfg.bchPayloadFlag;
/* Bit manipulation for SFN */
- setMibPdu(macCellCfg->ssbCfg.mibPdu, &mibPayload);
+ setMibPdu(macCellCfg->ssbCfg.mibPdu, &mibPayload, sfn);
dlTtiReqPdu->u.ssb_pdu.bchPayload.v.bchPayload = mibPayload;
dlTtiReqPdu->u.ssb_pdu.preCodingAndBeamforming.numPrgs = 0;
dlTtiReqPdu->u.ssb_pdu.preCodingAndBeamforming.prgSize = 0;
{
for(idx = 0; idx < currDlSlot->dlInfo.brdcstAlloc.ssbIdxSupported; idx++)
{
- fillSsbPdu(&dlTtiReq->pdus[numPduEncoded], &macCellCfg, currDlSlot, &msgLen, idx);
+ fillSsbPdu(&dlTtiReq->pdus[numPduEncoded], &macCellCfg,\
+ currDlSlot, &msgLen, idx, dlTtiReq->sfn);
numPduEncoded++;
}
}
lwr_mac_handleConfigReqEvt,
lwr_mac_handleConfigRspEvt,
lwr_mac_handleInvalidEvt,
+ lwr_mac_handleInvalidEvt,
},
{
/* PHY_STATE_CONFIGURED */
lwr_mac_handleConfigReqEvt,
lwr_mac_handleConfigRspEvt,
lwr_mac_handleStartReqEvt,
+ lwr_mac_handleInvalidEvt,
},
{
/* PHY_STATE_RUNNING */
lwr_mac_handleConfigReqEvt,
lwr_mac_handleConfigRspEvt,
lwr_mac_handleInvalidEvt,
+ lwr_mac_handleStopReqEvt,
}
};