X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fphy_stub%2Fl1_bdy1.c;h=555c2b0b4771ee24365310ea962b73f4bf37d995;hb=eb178a8cc45a9cebc65df73f128f88b3a3dfefbb;hp=086cd1e2c4eee99968c632828b69ee6055308703;hpb=85008fef60069af4d70a447e76aaae64ce836292;p=o-du%2Fl2.git diff --git a/src/phy_stub/l1_bdy1.c b/src/phy_stub/l1_bdy1.c index 086cd1e2c..555c2b0b4 100644 --- a/src/phy_stub/l1_bdy1.c +++ b/src/phy_stub/l1_bdy1.c @@ -18,18 +18,10 @@ /*This file contains stub for PHY to handle messages to/from MAC CL */ -#include - -#include "envdep.h" -#include "gen.h" -#include "ssi.h" - -#include "gen.x" -#include "ssi.x" - +#include "common_def.h" #include "lwr_mac.h" #include "lwr_mac_phy.h" -#ifdef FAPI +#ifdef INTEL_FAPI #include "fapi.h" #endif #include "lphy_stub.h" @@ -46,7 +38,7 @@ uint16_t slotValue = 0; bool rachIndSent = false; EXTERN void phyToMac ARGS((uint16_t msgType, uint32_t msgLen,void *msg)); -#ifdef FAPI +#ifdef INTEL_FAPI EXTERN void fillTlvs ARGS((fapi_uint16_tlv_t *tlv, uint16_t tag, uint16_t length, uint16_t value, uint32_t *msgLen)); EXTERN void fillMsgHeader ARGS((fapi_msg_t *hdr, uint16_t msgType, uint16_t msgLen)); @@ -71,7 +63,7 @@ EXTERN void handlePhyMessages(uint16_t msgType, uint32_t msgSize, void *msg); * ****************************************************************/ S16 l1BldAndSndParamRsp(void *msg) { -#ifdef FAPI +#ifdef INTEL_FAPI uint8_t index = 0; uint32_t msgLen = 0; fapi_param_resp_t *fapiParamRsp; @@ -159,7 +151,7 @@ S16 l1BldAndSndParamRsp(void *msg) fapiParamRsp->error_code = MSG_OK; DU_LOG("\nPHY_STUB: Sending Param Request to Lower Mac"); - handlePhyMessages(fapiParamRsp->header.message_type_id, sizeof(fapi_param_resp_t), (void *)fapiParamRsp); + handlePhyMessages(fapiParamRsp->header.msg_id, sizeof(fapi_param_resp_t), (void *)fapiParamRsp); MAC_FREE(fapiParamRsp, sizeof(fapi_param_resp_t)); #endif return ROK; @@ -184,7 +176,7 @@ S16 l1BldAndSndParamRsp(void *msg) S16 l1BldAndSndConfigRsp(void *msg) { -#ifdef FAPI +#ifdef INTEL_FAPI uint32_t msgLen = 0; fapi_config_resp_t *fapiConfigRsp; @@ -194,16 +186,16 @@ S16 l1BldAndSndConfigRsp(void *msg) DU_LOG("PHY STUB: Memory allocation failed"); return RFAILED; } - + memset(fapiConfigRsp, 0, sizeof(fapi_config_resp_t)); fapiConfigRsp->number_of_invalid_tlvs = NULLP; fapiConfigRsp->number_of_inv_tlvs_idle_only = NULLP; fapiConfigRsp->number_of_missing_tlvs = NULLP; fapiConfigRsp->error_code = MSG_OK; - msgLen += sizeof(fapi_param_resp_t) - sizeof(fapi_msg_t); + msgLen = sizeof(fapi_config_resp_t) - sizeof(fapi_msg_t); fillMsgHeader(&fapiConfigRsp->header, FAPI_CONFIG_RESPONSE, msgLen); DU_LOG("\nPHY_STUB: Sending Config Response to Lower Mac"); - handlePhyMessages(fapiConfigRsp->header.message_type_id, \ + handlePhyMessages(fapiConfigRsp->header.msg_id, \ sizeof(fapi_config_resp_t), (void *)fapiConfigRsp); MAC_FREE(fapiConfigRsp, sizeof(fapi_config_resp_t)); #endif @@ -229,7 +221,7 @@ S16 l1BldAndSndConfigRsp(void *msg) PUBLIC void l1HdlParamReq(uint32_t msgLen, void *msg) { -#ifdef FAPI +#ifdef INTEL_FAPI DU_LOG("\nPHY_STUB: Received Param Request in PHY"); /* Build and send PARAM RESPONSE */ @@ -261,7 +253,7 @@ PUBLIC void l1HdlParamReq(uint32_t msgLen, void *msg) PUBLIC void l1HdlConfigReq(uint32_t msgLen, void *msg) { -#ifdef FAPI +#ifdef INTEL_FAPI fapi_config_req_t *configReq = (fapi_config_req_t *)msg; DU_LOG("\nPHY_STUB: Received Config Request in PHY"); @@ -296,7 +288,7 @@ PUBLIC void l1HdlConfigReq(uint32_t msgLen, void *msg) * ****************************************************************/ uint16_t l1BuildAndSendCrcInd(uint16_t slot, uint16_t sfn) { -#ifdef FAPI +#ifdef INTEL_FAPI uint8_t idx = 0; fapi_crc_ind_t *crcInd; @@ -306,6 +298,7 @@ uint16_t l1BuildAndSendCrcInd(uint16_t slot, uint16_t sfn) printf("\nPHY_STUB: Memory allocation failed for CRC Indication Message"); return RFAILED; } + memset(crcInd, 0, sizeof(fapi_crc_ind_t)); /* TODO: Fill the required values. As of now only 1 CRC status PASS is filled */ crcInd->sfn = sfn; @@ -323,17 +316,17 @@ uint16_t l1BuildAndSendCrcInd(uint16_t slot, uint16_t sfn) crcInd->crc[idx].rssi = 0; fillMsgHeader(&crcInd->header, FAPI_CRC_INDICATION, \ - sizeof(fapi_crc_ind_t)); + sizeof(fapi_crc_ind_t) - sizeof(fapi_msg_t)); /* Sending RACH indication to MAC */ DU_LOG("\nPHY STUB: Sending CRC Indication to MAC"); - handlePhyMessages(crcInd->header.message_type_id, sizeof(fapi_crc_ind_t), (void *)crcInd); + handlePhyMessages(crcInd->header.msg_id, sizeof(fapi_crc_ind_t), (void *)crcInd); MAC_FREE(crcInd, sizeof(fapi_crc_ind_t)); #endif return ROK; } /* l1BuildAndSendCrcInd */ -#ifdef FAPI +#ifdef INTEL_FAPI /******************************************************************* * * @brief Build and send Rx data indication @@ -358,6 +351,7 @@ uint16_t l1BuildAndSendRxDataInd(uint16_t slot, uint16_t sfn, fapi_ul_pusch_pdu_ fapi_pdu_ind_info_t *pduInfo; uint8_t *pdu; uint16_t byteIdx = 0; + uint32_t msgLen = 0; MAC_ALLOC(rxDataInd, sizeof(fapi_rx_data_indication_t)); if(!rxDataInd) @@ -365,8 +359,10 @@ uint16_t l1BuildAndSendRxDataInd(uint16_t slot, uint16_t sfn, fapi_ul_pusch_pdu_ printf("\nPHY_STUB: Memory allocation failed for Rx Data Indication"); return RFAILED; } + memset(rxDataInd, 0, sizeof(fapi_rx_data_indication_t)); /* TODO: Fill the required values */ + msgLen = sizeof(fapi_rx_data_indication_t) - sizeof(fapi_msg_t); rxDataInd->sfn = sfn; rxDataInd->slot = slot; rxDataInd->numPdus = 1; @@ -375,14 +371,14 @@ uint16_t l1BuildAndSendRxDataInd(uint16_t slot, uint16_t sfn, fapi_ul_pusch_pdu_ pduInfo->handle = puschPdu.handle; pduInfo->rnti = puschPdu.rnti; pduInfo->harqId = puschPdu.puschData.harqProcessId; - pduInfo->pduLength = puschPdu.puschData.tbSize; + pduInfo->pdu_length = puschPdu.puschData.tbSize; pduInfo->ul_cqi = 0; pduInfo->timingAdvance = 0; pduInfo->rssi = 0; /* Filling pdu with random values for testing */ pduInfo->pduData = NULL; - MAC_ALLOC(pduInfo->pduData, pduInfo->pduLength); + MAC_ALLOC(pduInfo->pduData, pduInfo->pdu_length); if(!pduInfo->pduData) { printf("\nPHY_STUB: Memory allocation failed for Rx Data Pdu"); @@ -402,18 +398,18 @@ uint16_t l1BuildAndSendRxDataInd(uint16_t slot, uint16_t sfn, fapi_ul_pusch_pdu_ /* Harcoding the pad bytes */ pdu[byteIdx++] = 63; - for(; byteIdx < pduInfo->pduLength; byteIdx++) + for(; byteIdx < pduInfo->pdu_length; byteIdx++) pdu[byteIdx] = 0; + msgLen += pduInfo->pdu_length; - fillMsgHeader(&rxDataInd->header, FAPI_RX_DATA_INDICATION, \ - sizeof(fapi_rx_data_indication_t)); + fillMsgHeader(&rxDataInd->header, FAPI_RX_DATA_INDICATION, msgLen); /* Sending Rx data indication to MAC */ DU_LOG("\nPHY STUB: Sending Rx data Indication to MAC"); - handlePhyMessages(rxDataInd->header.message_type_id, sizeof(fapi_rx_data_indication_t), (void *)rxDataInd); + handlePhyMessages(rxDataInd->header.msg_id, sizeof(fapi_rx_data_indication_t), (void *)rxDataInd); - if(pduInfo->pduLength) - MAC_FREE(pduInfo->pduData, pduInfo->pduLength); + if(pduInfo->pdu_length) + MAC_FREE(pduInfo->pduData, pduInfo->pdu_length); MAC_FREE(rxDataInd, sizeof(fapi_rx_data_indication_t)); return ROK; } @@ -438,7 +434,7 @@ uint16_t l1BuildAndSendRxDataInd(uint16_t slot, uint16_t sfn, fapi_ul_pusch_pdu_ * ****************************************************************/ uint16_t l1BuildAndSendRachInd(uint16_t slot, uint16_t sfn) { -#ifdef FAPI +#ifdef INTEL_FAPI uint8_t rachPduIdx = 0; uint8_t preamIdx = 0; fapi_rach_pdu_t *rachPdu; @@ -451,13 +447,13 @@ uint16_t l1BuildAndSendRachInd(uint16_t slot, uint16_t sfn) printf("\nPHY_STUB: Memory allocation failed for Rach Indication Message"); return RFAILED; } - + memset(rachInd, 0, sizeof(fapi_rach_indication_t)); rachInd->sfn = sfn; rachInd->slot = slot; rachInd->numPdus = 1; rachPdu = &rachInd->rachPdu[rachPduIdx]; - rachPdu->physCellId = NR_PCI; + rachPdu->phyCellId = NR_PCI; rachPdu->symbolIndex = 0; rachPdu->slotIndex = slot; rachPdu->freqIndex = 0; @@ -467,14 +463,14 @@ uint16_t l1BuildAndSendRachInd(uint16_t slot, uint16_t sfn) rachPdu->preambleInfo[preamIdx].preambleIndex = 3; rachPdu->preambleInfo[preamIdx].timingAdvance = 0; - rachPdu->preambleInfo[preamIdx].premblePwr = 0; + rachPdu->preambleInfo[preamIdx].preamblePwr = 0; fillMsgHeader(&rachInd->header, FAPI_RACH_INDICATION, \ - sizeof(fapi_rach_indication_t)); + sizeof(fapi_rach_indication_t) - sizeof(fapi_msg_t)); /* Sending RACH indication to MAC */ DU_LOG("\nPHY STUB: Sending RACH Indication to MAC"); - handlePhyMessages(rachInd->header.message_type_id, sizeof(fapi_rach_indication_t), (void *)rachInd); + handlePhyMessages(rachInd->header.msg_id, sizeof(fapi_rach_indication_t), (void *)rachInd); MAC_FREE(rachInd, sizeof(fapi_rach_indication_t)); #endif return ROK; @@ -499,7 +495,7 @@ uint16_t l1BuildAndSendRachInd(uint16_t slot, uint16_t sfn) * ****************************************************************/ PUBLIC uint16_t l1BuildAndSendSlotIndication() { -#ifdef FAPI +#ifdef INTEL_FAPI fapi_slot_ind_t *slotIndMsg; MAC_ALLOC(slotIndMsg, sizeof(fapi_slot_ind_t)); @@ -510,6 +506,7 @@ PUBLIC uint16_t l1BuildAndSendSlotIndication() } else { + memset(slotIndMsg, 0, sizeof(fapi_slot_ind_t)); slotIndMsg->sfn = sfnValue; slotIndMsg->slot = slotValue; DU_LOG("\n\nPHY_STUB: SLOT indication [%d:%d]",sfnValue,slotValue); @@ -526,8 +523,9 @@ PUBLIC uint16_t l1BuildAndSendSlotIndication() sfnValue++; slotValue = 0; } - fillMsgHeader(&slotIndMsg->header, FAPI_SLOT_INDICATION, sizeof(fapi_slot_ind_t)); - handlePhyMessages(slotIndMsg->header.message_type_id, sizeof(fapi_slot_ind_t), (void*)slotIndMsg); + fillMsgHeader(&slotIndMsg->header, FAPI_SLOT_INDICATION, \ + sizeof(fapi_slot_ind_t) - sizeof(fapi_msg_t)); + handlePhyMessages(slotIndMsg->header.msg_id, sizeof(fapi_slot_ind_t), (void*)slotIndMsg); MAC_FREE(slotIndMsg, sizeof(fapi_slot_ind_t)); } #endif @@ -554,7 +552,7 @@ PUBLIC uint16_t l1BuildAndSendSlotIndication() PUBLIC S16 l1HdlStartReq(uint32_t msgLen, void *msg) { -#ifdef FAPI +#ifdef INTEL_FAPI fapi_start_req_t *startReq = (fapi_start_req_t *)msg; if(clGlobalCp.phyState == PHY_STATE_CONFIGURED) @@ -591,11 +589,11 @@ PUBLIC S16 l1HdlStartReq(uint32_t msgLen, void *msg) PUBLIC S16 l1HdlDlTtiReq(uint16_t msgLen, void *msg) { -#ifdef FAPI +#ifdef INTEL_FAPI fapi_dl_tti_req_t *dlTtiReq; dlTtiReq = (fapi_dl_tti_req_t *)msg; - printf("\nPHY STUB: Received DL TTI Request"); + printf("\nPHY STUB: DL TTI Request at sfn=%d slot=%d",dlTtiReq->sfn,dlTtiReq->slot); #if 0 printf("\nPHY_STUB: SFN %d", dlTtiReq->sfn); printf("\nPHY_STUB: SLOT %d", dlTtiReq->slot); @@ -652,11 +650,11 @@ PUBLIC S16 l1HdlDlTtiReq(uint16_t msgLen, void *msg) PUBLIC S16 l1HdlTxDataReq(uint16_t msgLen, void *msg) { -#ifdef FAPI +#ifdef INTEL_FAPI fapi_tx_data_req_t *txDataReq; txDataReq = (fapi_tx_data_req_t *)msg; - DU_LOG("\nPHY STUB: Received TX DATA Request"); + DU_LOG("\nPHY STUB: TX DATA Request at sfn=%d slot=%d",txDataReq->sfn,txDataReq->slot); MAC_FREE(txDataReq, msgLen); #endif @@ -682,7 +680,7 @@ PUBLIC S16 l1HdlTxDataReq(uint16_t msgLen, void *msg) PUBLIC S16 l1HdlUlTtiReq(uint16_t msgLen, void *msg) { -#ifdef FAPI +#ifdef INTEL_FAPI fapi_ul_tti_req_t *ulTtiReq; DU_LOG("\nPHY STUB: Received UL TTI Request"); @@ -697,13 +695,19 @@ PUBLIC S16 l1HdlUlTtiReq(uint16_t msgLen, void *msg) while(numPdus) { if(ulTtiReq->pdus[numPdus-1].pduType == 0) + { DU_LOG("\nPHY STUB: PRACH PDU"); + } if(ulTtiReq->pdus[numPdus-1].pduType == 1) { DU_LOG("\nPHY STUB: PUSCH PDU"); l1BuildAndSendRxDataInd(ulTtiReq->slot, ulTtiReq->sfn, \ - ulTtiReq->pdus[numPdus-1].u.pusch_pdu); + ulTtiReq->pdus[numPdus-1].pdu.pusch_pdu); } + if(ulTtiReq->pdus[numPdus-1].pduType == 2) + { + DU_LOG("\nPHY STUB: PUCCH PDU"); + } numPdus--; } @@ -735,7 +739,7 @@ PUBLIC S16 l1HdlUlTtiReq(uint16_t msgLen, void *msg) * ****************************************************************/ PUBLIC uint16_t l1BuildAndSendStopInd() { -#ifdef FAPI +#ifdef INTEL_FAPI fapi_stop_ind_t *stopIndMsg = NULLP; uint32_t msgLen = 0; @@ -749,7 +753,7 @@ PUBLIC uint16_t l1BuildAndSendStopInd() { fillMsgHeader(&stopIndMsg->header, FAPI_STOP_INDICATION, msgLen); DU_LOG("\n\nPHY_STUB: Processing Stop indication to MAC"); - handlePhyMessages(stopIndMsg->header.message_type_id,\ + handlePhyMessages(stopIndMsg->header.msg_id,\ sizeof(fapi_stop_ind_t), (void*)stopIndMsg); MAC_FREE(stopIndMsg, sizeof(fapi_stop_ind_t)); } @@ -777,7 +781,7 @@ PUBLIC uint16_t l1BuildAndSendStopInd() PUBLIC S16 l1HdlStopReq(uint32_t msgLen, void *msg) { -#ifdef FAPI +#ifdef INTEL_FAPI fapi_stop_req_t *stopReq = (fapi_stop_req_t *)msg; if(clGlobalCp.phyState == PHY_STATE_RUNNING) @@ -819,7 +823,7 @@ void l1ProcessFapiRequest(uint8_t msgType, uint32_t msgLen, void *msg) { switch(msgType) { -#ifdef FAPI +#ifdef INTEL_FAPI case FAPI_PARAM_REQUEST: l1HdlParamReq(msgLen, msg); break;