X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fphy_stub%2Fl1_bdy1.c;h=086cd1e2c4eee99968c632828b69ee6055308703;hb=85008fef60069af4d70a447e76aaae64ce836292;hp=814bb39393e32aa0801b696cb5a0db7f73ebb8b9;hpb=0fccb83e55b237d60cf451bab71a0c7242cc6e66;p=o-du%2Fl2.git diff --git a/src/phy_stub/l1_bdy1.c b/src/phy_stub/l1_bdy1.c index 814bb3939..086cd1e2c 100644 --- a/src/phy_stub/l1_bdy1.c +++ b/src/phy_stub/l1_bdy1.c @@ -333,7 +333,7 @@ uint16_t l1BuildAndSendCrcInd(uint16_t slot, uint16_t sfn) return ROK; } /* l1BuildAndSendCrcInd */ - +#ifdef FAPI /******************************************************************* * * @brief Build and send Rx data indication @@ -351,12 +351,13 @@ uint16_t l1BuildAndSendCrcInd(uint16_t slot, uint16_t sfn) * RFAILED - failure * * ****************************************************************/ -uint16_t l1BuildAndSendRxDataInd(uint16_t slot, uint16_t sfn) +uint16_t l1BuildAndSendRxDataInd(uint16_t slot, uint16_t sfn, fapi_ul_pusch_pdu_t puschPdu) { -#ifdef FAPI uint8_t idx = 0; fapi_rx_data_indication_t *rxDataInd; fapi_pdu_ind_info_t *pduInfo; + uint8_t *pdu; + uint16_t byteIdx = 0; MAC_ALLOC(rxDataInd, sizeof(fapi_rx_data_indication_t)); if(!rxDataInd) @@ -371,14 +372,38 @@ uint16_t l1BuildAndSendRxDataInd(uint16_t slot, uint16_t sfn) rxDataInd->numPdus = 1; pduInfo = &rxDataInd->pdus[idx]; - pduInfo->handle = 0; - pduInfo->rnti = 0; - pduInfo->harqId = 0; - pduInfo->pduLength = 0; + pduInfo->handle = puschPdu.handle; + pduInfo->rnti = puschPdu.rnti; + pduInfo->harqId = puschPdu.puschData.harqProcessId; + pduInfo->pduLength = 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); + if(!pduInfo->pduData) + { + printf("\nPHY_STUB: Memory allocation failed for Rx Data Pdu"); + return RFAILED; + } + + /* Harcoded Initial RRC setup Request */ + pdu = (uint8_t *)pduInfo->pduData; + pdu[byteIdx++] = 0; + pdu[byteIdx++] = 181; + pdu[byteIdx++] = 99; + pdu[byteIdx++] = 20; + pdu[byteIdx++] = 170; + pdu[byteIdx++] = 132; + pdu[byteIdx++] = 96; + + /* Harcoding the pad bytes */ + pdu[byteIdx++] = 63; + + for(; byteIdx < pduInfo->pduLength; byteIdx++) + pdu[byteIdx] = 0; fillMsgHeader(&rxDataInd->header, FAPI_RX_DATA_INDICATION, \ sizeof(fapi_rx_data_indication_t)); @@ -386,11 +411,13 @@ uint16_t l1BuildAndSendRxDataInd(uint16_t slot, uint16_t sfn) /* 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); + + if(pduInfo->pduLength) + MAC_FREE(pduInfo->pduData, pduInfo->pduLength); MAC_FREE(rxDataInd, sizeof(fapi_rx_data_indication_t)); -#endif return ROK; } - +#endif /******************************************************************* * @@ -671,6 +698,12 @@ PUBLIC S16 l1HdlUlTtiReq(uint16_t msgLen, void *msg) { 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); + } numPdus--; }