*******************************************************************************/
/* header include files (.h) */
-#include "envopt.h" /* environment options */
-#include "envdep.h" /* environment dependent */
-#include "envind.h" /* environment independent */
-#include "gen.h" /* general */
-#include "ssi.h" /* system services */
-#include "cm_tkns.h" /* Common Token Defines */
-#include "cm_llist.h" /* Common Link List Defines */
-#include "cm_hash.h" /* Common Hash List Defines */
-#include "cm_lte.h" /* Common LTE Defines */
-#include "cm_mblk.h" /* Common LTE Defines */
-#include "tfu.h" /* RGU Interface defines */
-#ifdef FAPI
+#include "common_def.h"
+#include "lrg.h"
+#ifdef INTEL_FAPI
#include "fapi.h"
#endif
/* header/extern include files (.x) */
-#include "gen.x" /* general */
-#include "ssi.x" /* system services */
-#include "cm_tkns.x" /* Common Token Definitions */
-#include "cm_llist.x" /* Common Link List Definitions */
-#include "cm_lib.x" /* Common Library Definitions */
-#include "cm_hash.x" /* Common Hash List Definitions */
-#include "cm_lte.x" /* Common LTE Defines */
-#include "cm_mblk.x" /* Common LTE Defines */
-#include "tfu.x" /* RGU Interface includes */
-#include "du_log.h"
+#include "lrg.x"
+#include "du_app_mac_inf.h"
+#include "mac_sch_interface.h"
+#include "lwr_mac.h"
#include "lwr_mac_fsm.h"
#include "lwr_mac_phy.h"
#include "lwr_mac_upr_inf.h"
+#include "mac.h"
+#include "mac_utils.h"
-#ifdef FAPI
+#ifdef INTEL_FAPI
/* Function pointer for slot indication from lower mac to mac */
packSlotIndMsg packSlotIndOpts[] =
{
fapiMacRxDataInd,
packRxDataInd
};
-
+
/* Function pointer for stop indication from lower mac to mac */
packStopIndMsg sendStopIndOpts[] =
{
pst->dstInst = 0;
pst->region = 0;
pst->pool = 0;
- pst->selector = MAC_SELECTOR_TC;
+ pst->selector = ODU_SELECTOR_TC;
}
/*******************************************************************
*
* @details
*
- * Function : handleSlotInd
+ * Function : procSlotInd
*
* Functionality:
* Processes Slot Indication from PHY and sends to MAC
* RFAILED - failure
*
* ****************************************************************/
-U16 handleSlotInd(fapi_slot_ind_t *fapiSlotInd)
+uint8_t procSlotInd(fapi_slot_ind_t *fapiSlotInd)
{
/* fill Pst structure to send to lwr_mac to MAC */
Pst pst;
fillLwrMacToMacPst(&pst);
pst.event = EVENT_SLOT_IND_TO_MAC;
+ slotInd.cellId = lwrMacCb.cellCb[0].cellId;
slotInd.sfn = fapiSlotInd->sfn;
slotInd.slot = fapiSlotInd->slot;
*
* @details
*
- * Function : handleStopInd
+ * Function : procStopInd
*
* Functionality:
* Handles Stop Indication received from PHY
* RFAILED - failure
*
* ****************************************************************/
-uint8_t handleStopInd()
+uint8_t procStopInd()
{
uint8_t ret;
Pst pst;
- clGlobalCp.phyState = PHY_STATE_CONFIGURED;
+ lwrMacCb.phyState = PHY_STATE_CONFIGURED;
+ lwrMacCb.cellCb[0].state = PHY_STATE_CONFIGURED;
DU_LOG("\nLWR_MAC: PHY has moved to configured state");
fillLwrMacToMacPst(&pst);
pst.event = EVENT_STOP_IND_TO_MAC;
- ret = (*sendStopIndOpts[pst.selector])(&pst);
+ ret = (*sendStopIndOpts[pst.selector])(&pst, \
+ lwrMacCb.cellCb[0].cellId);
return ret;
}
/*******************************************************************
*
* @details
*
- * Function : handleRachInd
+ * Function : procRachInd
*
* Functionality:
* Processes Rach Indication from PHY and sends to MAC
* RFAILED - failure
*
* ****************************************************************/
-uint8_t handleRachInd(fapi_rach_indication_t *fapiRachInd)
+uint8_t procRachInd(fapi_rach_indication_t *fapiRachInd)
{
Pst pst;
uint8_t pduIdx;
RachPduInfo *rachPdu;
RachInd rachInd;
+ rachInd.cellId = lwrMacCb.cellCb[0].cellId;
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->pci = fapiRachInd->rachPdu[pduIdx].phyCellId;
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;
+ 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;
+ return ROK;
}/* handleRachInd */
*
* @details
*
- * Function : handleCrcInd
+ * Function : procCrcInd
*
* Functionality:
* Handles CRC indication from PHY and sends to MAC
*
* ****************************************************************/
-uint8_t handleCrcInd(fapi_crc_ind_t *fapiCrcInd)
+uint8_t procCrcInd(fapi_crc_ind_t *fapiCrcInd)
{
Pst pst;
uint8_t crcInfoIdx;
CrcInfo *crcIndInfo;
CrcInd crcInd;
+ crcInd.cellId = lwrMacCb.cellCb[0].cellId;
crcInd.timingInfo.sfn = fapiCrcInd->sfn;
crcInd.timingInfo.slot = fapiCrcInd->slot;
crcInd.numCrc = fapiCrcInd->numCrcs;
crcIndInfo->numCb = fapiCrcInd->crc[crcInfoIdx].numCb;
for(crcStatusIdx = 0; crcStatusIdx < crcIndInfo->numCb; crcStatusIdx++)
{
- crcIndInfo->cbCrcStatus[crcStatusIdx] = \
- fapiCrcInd->crc[crcInfoIdx].cbCrcStatus[crcStatusIdx];
+ crcIndInfo->cbCrcStatus[crcStatusIdx] = \
+ fapiCrcInd->crc[crcInfoIdx].cbCrcStatus[crcStatusIdx];
}
crcIndInfo->ul_cqi = fapiCrcInd->crc[crcInfoIdx].ul_cqi;
crcIndInfo->timingAdvance = fapiCrcInd->crc[crcInfoIdx].timingAdvance;
fillLwrMacToMacPst(&pst);
pst.event = EVENT_CRC_IND_TO_MAC;
-
+
(*sendCrcIndOpts[pst.selector])(&pst, &crcInd);
return ROK;
*
* @details
*
- * Function : handleRxDataInd
+ * Function : procRxDataInd
*
* Functionality:
* Handles Rx Data indication from PHY and sends to MAC
* RFAILED - failure
*
* ****************************************************************/
-
-uint8_t handleRxDataInd(fapi_rx_data_indication_t *fapiRxDataInd)
+
+uint8_t procRxDataInd(fapi_rx_data_indication_t *fapiRxDataInd)
{
Pst pst;
uint8_t pduIdx;
RxDataInd rxDataInd;
RxDataIndPdu *pdu;
+ rxDataInd.cellId = lwrMacCb.cellCb[0].cellId;
rxDataInd.timingInfo.sfn = fapiRxDataInd->sfn;
rxDataInd.timingInfo.slot = fapiRxDataInd->slot;
rxDataInd.numPdus = fapiRxDataInd->numPdus;
pdu->handle = fapiRxDataInd->pdus[pduIdx].handle;
pdu->rnti = fapiRxDataInd->pdus[pduIdx].rnti;
pdu->harqId = fapiRxDataInd->pdus[pduIdx].harqId;
- pdu->pduLength = fapiRxDataInd->pdus[pduIdx].pduLength;
+ pdu->pduLength = fapiRxDataInd->pdus[pduIdx].pdu_length;
pdu->ul_cqi = fapiRxDataInd->pdus[pduIdx].ul_cqi;
pdu->timingAdvance = fapiRxDataInd->pdus[pduIdx].timingAdvance;
pdu->rssi = fapiRxDataInd->pdus[pduIdx].rssi;
- /* TODO : Copy pdu from FAPI msg to MAC structure*/
- //pdu->pduData;
+
+ MAC_ALLOC(pdu->pduData, pdu->pduLength);
+ memcpy(pdu->pduData, fapiRxDataInd->pdus[pduIdx].pduData, pdu->pduLength);
}
fillLwrMacToMacPst(&pst);
pst.event = EVENT_RX_DATA_IND_TO_MAC;
-
+
(*sendRxDataIndOpts[pst.selector])(&pst, &rxDataInd);
return ROK;
}
#endif /* FAPI */
-void handlePhyMessages(uint16_t msgType, uint32_t msgSize, void *msg)
+void procPhyMessages(uint16_t msgType, uint32_t msgSize, void *msg)
{
-#ifdef FAPI
+#ifdef INTEL_FAPI
/* extract the header */
fapi_msg_t *header;
header = (fapi_msg_t *)msg;
- switch(header->message_type_id)
+ switch(header->msg_id)
{
case FAPI_PARAM_RESPONSE:
case FAPI_CONFIG_RESPONSE:
- {
- sendToLowerMac(msgType, msgSize, msg);
- break;
- }
+ {
+ sendToLowerMac(msgType, msgSize, msg);
+ break;
+ }
case FAPI_SLOT_INDICATION:
- {
- if(clGlobalCp.phyState == PHY_STATE_CONFIGURED)
- {
- DU_LOG("\nLWR_MAC: PHY has moved to running state");
- clGlobalCp.phyState = PHY_STATE_RUNNING;
- }
-
- fapi_slot_ind_t *slotInd;
- slotInd = (fapi_slot_ind_t *)msg;
- handleSlotInd(slotInd);
- break;
- }
+ {
+ if(lwrMacCb.phyState == PHY_STATE_CONFIGURED)
+ {
+ DU_LOG("\nLWR_MAC: PHY has moved to running state");
+ lwrMacCb.phyState = PHY_STATE_RUNNING;
+ lwrMacCb.cellCb[0].state = PHY_STATE_RUNNING;
+ }
+
+ fapi_slot_ind_t *slotInd;
+ slotInd = (fapi_slot_ind_t *)msg;
+ procSlotInd(slotInd);
+ break;
+ }
case FAPI_ERROR_INDICATION:
- {
- break;
- }
+ {
+ break;
+ }
case FAPI_RX_DATA_INDICATION:
- {
- fapi_rx_data_indication_t *rxDataInd;
- rxDataInd = (fapi_rx_data_indication_t *)msg;
- handleRxDataInd(rxDataInd);
- break;
- }
+ {
+ fapi_rx_data_indication_t *rxDataInd;
+ rxDataInd = (fapi_rx_data_indication_t *)msg;
+ procRxDataInd(rxDataInd);
+ break;
+ }
case FAPI_CRC_INDICATION:
- {
- fapi_crc_ind_t *crcInd;
- crcInd = (fapi_crc_ind_t *)msg;
- handleCrcInd(crcInd);
- break;
- }
+ {
+ fapi_crc_ind_t *crcInd;
+ crcInd = (fapi_crc_ind_t *)msg;
+ procCrcInd(crcInd);
+ break;
+ }
case FAPI_UCI_INDICATION:
- {
- break;
- }
+ {
+ break;
+ }
case FAPI_SRS_INDICATION:
- {
- break;
- }
+ {
+ break;
+ }
case FAPI_RACH_INDICATION:
- {
- fapi_rach_indication_t *rachInd;
- rachInd = (fapi_rach_indication_t *)msg;
- handleRachInd(rachInd);
- break;
- }
+ {
+ fapi_rach_indication_t *rachInd;
+ rachInd = (fapi_rach_indication_t *)msg;
+ procRachInd(rachInd);
+ break;
+ }
case FAPI_STOP_INDICATION:
- {
- DU_LOG("\nLWR_MAC: Handling Stop Indication");
- handleStopInd();
- break;
- }
+ {
+ DU_LOG("\nLWR_MAC: Handling Stop Indication");
+ procStopInd();
+ break;
+ }
}
#ifdef INTEL_WLS
WLS_MEM_FREE(msg, LWR_MAC_WLS_BUF_SIZE);
}
/**********************************************************************
- End of file
-**********************************************************************/
+ End of file
+ **********************************************************************/