X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=o-du%2Fphy.git;a=blobdiff_plain;f=fapi_5g%2Fsource%2Fapi%2Ffapi2phy%2Fp7%2Fnr5g_fapi_proc_dl_tti_req.c;h=eb4d1cbeaef3b17e9b6932e302c68ff5f39efef3;hp=510405bf6b74c8705589e7074c95277f5a41393d;hb=70d9d920dd4e575f085f1f1a9050fefd1c10e127;hpb=331df2273a6667941167c9bcc141a517369bdf43 diff --git a/fapi_5g/source/api/fapi2phy/p7/nr5g_fapi_proc_dl_tti_req.c b/fapi_5g/source/api/fapi2phy/p7/nr5g_fapi_proc_dl_tti_req.c index 510405b..eb4d1cb 100644 --- a/fapi_5g/source/api/fapi2phy/p7/nr5g_fapi_proc_dl_tti_req.c +++ b/fapi_5g/source/api/fapi2phy/p7/nr5g_fapi_proc_dl_tti_req.c @@ -164,47 +164,47 @@ uint8_t nr5g_fapi_dl_tti_req_to_phy_translation( p_stats->fapi_stats.fapi_dl_tti_pdus++; p_fapi_dl_tti_req_pdu = &p_fapi_req->pdus[idx]; switch (p_fapi_dl_tti_req_pdu->pduType) { - case DL_PDU_TYPE_DCI: + case FAPI_PDCCH_PDU_TYPE: nDCI++; p_dci_pdu = (PDCIPDUStruct) pPduStruct; NR5G_FAPI_MEMSET(p_dci_pdu, RUP32B(sizeof(DCIPDUStruct)), 0, pdcch_size); p_pdcch_pdu = &p_fapi_dl_tti_req_pdu->pdu.pdcch_pdu; - p_dci_pdu->sPDUHdr.nPDUType = p_fapi_dl_tti_req_pdu->pduType; + p_dci_pdu->sPDUHdr.nPDUType = DL_PDU_TYPE_DCI; p_dci_pdu->sPDUHdr.nPDUSize = pdcch_size; total_size += pdcch_size; nr5g_fapi_fill_dci_pdu(p_phy_instance, p_pdcch_pdu, p_dci_pdu); break; - case DL_PDU_TYPE_DLSCH: + case FAPI_PDSCH_PDU_TYPE: p_dlsch_pdu = (PDLSCHPDUStruct) pPduStruct; p_pdsch_pdu = &p_fapi_dl_tti_req_pdu->pdu.pdsch_pdu; NR5G_FAPI_MEMSET(p_dlsch_pdu, RUP32B(sizeof(DLSCHPDUStruct)), 0, pdsch_size); - p_dlsch_pdu->sPDUHdr.nPDUType = p_fapi_dl_tti_req_pdu->pduType; + p_dlsch_pdu->sPDUHdr.nPDUType = DL_PDU_TYPE_DLSCH; p_dlsch_pdu->sPDUHdr.nPDUSize = pdsch_size; total_size += pdsch_size; nr5g_fapi_fill_pdsch_pdu(p_phy_instance, p_pdsch_pdu, p_dlsch_pdu); break; - case DL_PDU_TYPE_PBCH: + case FAPI_PBCH_PDU_TYPE: p_bch_pdu = (PBCHPDUStruct) pPduStruct; p_ssb_pdu = &p_fapi_dl_tti_req_pdu->pdu.ssb_pdu; NR5G_FAPI_MEMSET(p_bch_pdu, RUP32B(sizeof(BCHPDUStruct)), 0, pbch_size); - p_bch_pdu->sPDUHdr.nPDUType = p_fapi_dl_tti_req_pdu->pduType; + p_bch_pdu->sPDUHdr.nPDUType = DL_PDU_TYPE_PBCH; p_bch_pdu->sPDUHdr.nPDUSize = pbch_size; total_size += pbch_size; nr5g_fapi_fill_ssb_pdu(p_phy_instance, p_bch_pdu, p_ssb_pdu); break; - case DL_PDU_TYPE_CSIRS: + case FAPI_CSIRS_PDU_TYPE: pCSIRSPdu = (PCSIRSPDUStruct) pPduStruct; p_csi_rs_pdu = &p_fapi_dl_tti_req_pdu->pdu.csi_rs_pdu; NR5G_FAPI_MEMSET(pCSIRSPdu, RUP32B(sizeof(CSIRSPDUStruct)), 0, csirs_size); - pCSIRSPdu->sPDUHdr.nPDUType = p_fapi_dl_tti_req_pdu->pduType; + pCSIRSPdu->sPDUHdr.nPDUType = DL_PDU_TYPE_CSIRS; pCSIRSPdu->sPDUHdr.nPDUSize = csirs_size; total_size += csirs_size; nr5g_fapi_fill_csi_rs_pdu(p_phy_instance, pCSIRSPdu, @@ -274,10 +274,10 @@ void nr5g_fapi_fill_dci_pdu( p_dci_pdu->nTotalBits = p_pdcch_pdu->dlDci[0].payloadSizeBits; p_dci_pdu->nEpreRatioOfPDCCHToSSB = - nr5g_fapi_calculate_nEpreRatioOfPDCCHToSSB(p_pdcch_pdu->dlDci[0]. - beta_pdcch_1_0); + nr5g_fapi_calculate_nEpreRatioOfPDCCHToSSB(p_pdcch_pdu-> + dlDci[0].beta_pdcch_1_0); p_dci_pdu->nEpreRatioOfDmrsToSSB = - p_pdcch_pdu->dlDci[0].powerControlOfssetSS; + p_pdcch_pdu->dlDci[0].powerControlOffsetSS; if (FAILURE == NR5G_FAPI_MEMCPY(p_dci_pdu->nDciBits, sizeof(uint8_t) * MAX_DCI_BIT_BYTE_LEN, p_pdcch_pdu->dlDci[0].payload, @@ -285,7 +285,6 @@ void nr5g_fapi_fill_dci_pdu( NR5G_FAPI_LOG(ERROR_LOG, ("PDCCH: RNTI: %d -- DCI Bits copy error.", p_pdcch_pdu->dlDci[0].rnti)); } - p_stats->iapi_stats.iapi_dl_tti_pdcch_pdus++; } @@ -329,9 +328,9 @@ void nr5g_fapi_fill_pdsch_pdu( p_dlsch_pdu->nRV[1] = p_pdsch_pdu->cwInfo[1].rvIndex; p_dlsch_pdu->nTBSize[1] = p_pdsch_pdu->cwInfo[1].tbSize; } - - p_dlsch_pdu->nNrOfAntennaPorts = p_phy_instance->phy_config.n_nr_of_rx_ant; + //p_dlsch_pdu->nNrOfAntennaPorts = p_phy_instance->phy_config.n_nr_of_rx_ant; p_dlsch_pdu->nNrOfLayers = p_pdsch_pdu->nrOfLayers; + p_dlsch_pdu->nNrOfAntennaPorts = p_pdsch_pdu->nrOfLayers; p_dlsch_pdu->nTransmissionScheme = p_pdsch_pdu->transmissionScheme; p_dlsch_pdu->nDMRSConfigType = p_pdsch_pdu->dmrsConfigType; p_dlsch_pdu->nNIDnSCID = p_pdsch_pdu->dlDmrsScramblingId; @@ -369,15 +368,26 @@ void nr5g_fapi_fill_pdsch_pdu( p_dlsch_pdu->nPTRSFreqDensity = p_pdsch_pdu->ptrsFreqDensity; p_dlsch_pdu->nPTRSReOffset = p_pdsch_pdu->ptrsReOffset; p_dlsch_pdu->nEpreRatioOfPDSCHToPTRS = p_pdsch_pdu->nEpreRatioOfPdschToPtrs; + // Currently no mapping info available. + //p_dlsch_pdu->nEpreRatioOfPDSCHToSSB = 0x1170; // PTRS Information p_dlsch_pdu->nPTRSPresent = p_pdsch_pdu->pduBitMap & 0x0001; p_dlsch_pdu->nNrOfPTRSPorts = __builtin_popcount(p_pdsch_pdu->ptrsPortIndex); - p_dlsch_pdu->nPTRSPortIndex[0] = p_pdsch_pdu->ptrsPortIndex; + for (idx = 0; idx < p_dlsch_pdu->nNrOfPTRSPorts && + idx < MAX_DL_PER_UE_PTRS_PORT_NUM; idx++) { + p_dlsch_pdu->nPTRSPortIndex[idx] = idx; + } + // Don't Cares p_dlsch_pdu->nNrOfDMRSAssPTRS[0] = 0x1; p_dlsch_pdu->nNrOfDMRSAssPTRS[1] = 0x1; p_dlsch_pdu->n1n2 = 0x201; + + for (idx = 0; (idx < MAX_TXRU_NUM && idx < port_index); idx++) { + p_dlsch_pdu->nTxRUIdx[idx] = p_dlsch_pdu->nPortIndex[idx]; + } + p_dlsch_pdu->nNrofTxRU = port_index; p_stats->iapi_stats.iapi_dl_tti_pdsch_pdus++; } @@ -416,7 +426,7 @@ void nr5g_fapi_fill_pdsch_pdu( * |-----------------------------------------| * **/ -uint8_t nr5g_fapi_calculate_nEpreRatioOfPDCCHToSSB( +uint16_t nr5g_fapi_calculate_nEpreRatioOfPDCCHToSSB( uint8_t beta_pdcch_1_0) { if (beta_pdcch_1_0 > 0 && beta_pdcch_1_0 <= 2) { @@ -446,19 +456,18 @@ void nr5g_fapi_fill_ssb_pdu( PBCHPDUStruct p_bch_pdu, fapi_dl_ssb_pdu_t * p_ssb_pdu) { + uint8_t *p_mib = (uint8_t *) & p_bch_pdu->nMIB[0]; + uint8_t *payload = (uint8_t *) & p_ssb_pdu->bchPayload.bchPayload; nr5g_fapi_stats_t *p_stats; + p_mib[0] = payload[0]; + p_mib[1] = payload[1]; + p_mib[2] = payload[2]; p_stats = &p_phy_instance->stats; p_stats->fapi_stats.fapi_dl_tti_ssb_pdus++; p_bch_pdu->nSSBSubcOffset = p_ssb_pdu->ssbSubCarrierOffset; + p_bch_pdu->nSSBPrbOffset = p_phy_instance->phy_config.nSSBPrbOffset; p_stats->iapi_stats.iapi_dl_tti_ssb_pdus++; - // p_ssb_pdu->bchPayload = p_bch_pdu->nMIB - // p_ssb_pdu->ssbBlockIndex - // p_ssb_pdu->physCellId - // p_ssb_pdu->betaPss - // p_ssb_pdu->bchPayloadFlag - // p_ssb_pdu->ssbOffsetPointA - // p_ssb_pdu->preCodingAndBeamforming } /** @ingroup group_nr5g_test_config @@ -501,4 +510,3 @@ void nr5g_fapi_fill_csi_rs_pdu( // pCSIRSPdu->nEpreRatioToSSB = p_csi_rs_pdu->powerControlOffsetSs; p_stats->iapi_stats.iapi_dl_tti_csi_rs_pdus++; } -