+ return ret;
+}
+
+
+/*******************************************************************
+ *
+ * @brief Processes Rach Indication from PHY and sends to MAC
+ *
+ * @details
+ *
+ * Function : handleRachInd
+ *
+ * Functionality:
+ * Processes Rach Indication from PHY and sends to MAC
+ *
+ * @params[in] fapi_rach_indication_t pointer
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t handleRachInd(fapi_rach_indication_t *fapiRachInd)
+{
+ Pst pst;
+ uint8_t pduIdx;
+ uint8_t prmbleIdx;
+ RachPduInfo *rachPdu;
+ RachInd rachInd;
+
+ rachInd.timingInfo.sfn = fapiRachInd->sfn;
+ rachInd.timingInfo.slot = fapiRachInd->slot;
+ rachInd.numPdu = fapiRachInd->numPdus;
+ for(pduIdx=0; pduIdx < rachInd.numPdu; pduIdx++)
+ {
+ rachPdu = &rachInd.rachPdu[pduIdx];
+ rachPdu->pci = fapiRachInd->rachPdu[pduIdx].physCellId;
+ rachPdu->symbolIdx = fapiRachInd->rachPdu[pduIdx].symbolIndex;
+ rachPdu->slotIdx = fapiRachInd->rachPdu[pduIdx].slotIndex;
+ rachPdu->freqIdx = fapiRachInd->rachPdu[pduIdx].freqIndex;
+ rachPdu->numPream = fapiRachInd->rachPdu[pduIdx].numPreamble;
+ for(prmbleIdx=0; prmbleIdx<rachPdu->numPream; prmbleIdx++)
+ {
+ rachPdu->preamInfo[prmbleIdx].preamIdx = \
+ fapiRachInd->rachPdu[pduIdx].preambleInfo[prmbleIdx].preambleIndex;
+ rachPdu->preamInfo[prmbleIdx].timingAdv = \
+ fapiRachInd->rachPdu[pduIdx].preambleInfo[prmbleIdx].timingAdvance;
+ }
+ }
+ fillLwrMacToMacPst(&pst);
+ pst.event = EVENT_RACH_IND_TO_MAC;
+
+ (*sendRachIndOpts[pst.selector])(&pst, &rachInd);
+ return ROK;
+
+}/* handleRachInd */
+
+#endif /* FAPI */
+
+void handlePhyMessages(uint16_t msgType, uint32_t msgSize, void *msg)