From 1d7e745dfca8b03e6ca962540ec8b61c7f7b686f Mon Sep 17 00:00:00 2001 From: pborla Date: Mon, 23 Sep 2024 19:38:36 +0530 Subject: [PATCH] Fixing the Tx_data request msg structure as per the OAI Change-Id: Ie7d406a359b2f4d7c58a9f6501bdf55502adb492 Signed-off-by: pborla --- build/config/cellConfig.xml | 2 +- build/config/tdd_odu_config.xml | 4 +-- src/5gnrmac/lwr_mac_fsm.c | 26 ++++++++++++-- src/intel_fapi/fapi_interface.h | 77 +++++++++++++++++++++++------------------ 4 files changed, 71 insertions(+), 38 deletions(-) diff --git a/build/config/cellConfig.xml b/build/config/cellConfig.xml index cace81ae0..57b8e7374 100644 --- a/build/config/cellConfig.xml +++ b/build/config/cellConfig.xml @@ -58,7 +58,7 @@ 1 3000000 20 - 15 + 30 0 1 CN=John Smith,OU=Sales,O=ACME Limited,L=Moab,ST=Utah,C=US diff --git a/build/config/tdd_odu_config.xml b/build/config/tdd_odu_config.xml index 14b8ce2f0..9735b9228 100644 --- a/build/config/tdd_odu_config.xml +++ b/build/config/tdd_odu_config.xml @@ -371,7 +371,7 @@ 0 - 0 + 1 0 0 0 @@ -518,7 +518,7 @@ 0 - 0 + 1 24 2 0 diff --git a/src/5gnrmac/lwr_mac_fsm.c b/src/5gnrmac/lwr_mac_fsm.c index 477b0276f..f5ff31a39 100644 --- a/src/5gnrmac/lwr_mac_fsm.c +++ b/src/5gnrmac/lwr_mac_fsm.c @@ -3617,9 +3617,11 @@ void fillPagePdschPdu(fapi_dl_tti_req_pdu_t *dlTtiReqPdu, fapi_vendor_dl_tti_req dlTtiReqPdu->pdu.pdsch_pdu.preCodingAndBeamforming.pmi_bfi[0].beamIdx[0].beamidx = 0; dlTtiReqPdu->pdu.pdsch_pdu.powerControlOffset = 0; dlTtiReqPdu->pdu.pdsch_pdu.powerControlOffsetSS = 0; +#ifndef OAI_TESTING dlTtiReqPdu->pdu.pdsch_pdu.mappingType = pageAlloc->pageDlSch.timeAlloc.mappingType; dlTtiReqPdu->pdu.pdsch_pdu.nrOfDmrsSymbols = pageAlloc->pageDlSch.dmrs.nrOfDmrsSymbols; dlTtiReqPdu->pdu.pdsch_pdu.dmrsAddPos = pageAlloc->pageDlSch.dmrs.dmrsAddPos; +#endif dlTtiReqPdu->pduSize = sizeof(fapi_dl_pdsch_pdu_t); @@ -3705,10 +3707,11 @@ void fillPdschPdu(fapi_dl_tti_req_pdu_t *dlTtiReqPdu, fapi_vendor_dl_tti_req_pdu beamIdx[0].beamidx = pdschInfo->beamPdschInfo.prg[0].beamIdx[0]; dlTtiReqPdu->pdu.pdsch_pdu.powerControlOffset = pdschInfo->txPdschPower.powerControlOffset; dlTtiReqPdu->pdu.pdsch_pdu.powerControlOffsetSS = pdschInfo->txPdschPower.powerControlOffsetSS; +#ifndef OAI_TESTING dlTtiReqPdu->pdu.pdsch_pdu.mappingType = pdschInfo->dmrs.mappingType; dlTtiReqPdu->pdu.pdsch_pdu.nrOfDmrsSymbols = pdschInfo->dmrs.nrOfDmrsSymbols; dlTtiReqPdu->pdu.pdsch_pdu.dmrsAddPos = pdschInfo->dmrs.dmrsAddPos; - +#endif dlTtiReqPdu->pduSize = sizeof(fapi_dl_pdsch_pdu_t); #ifndef OAI_TESTING @@ -3853,7 +3856,12 @@ uint8_t calcTxDataReqPduCount(MacDlSlot *dlSlot) uint8_t fillSib1TxDataReq(fapi_tx_pdu_desc_t *pduDesc, uint16_t pduIndex, MacCellCfg *macCellCfg, PdschCfg *pdschCfg) { +#ifndef OAI_TESTING uint32_t payloadSize = 0; +#else + uint16_t payloadSize = 0; +#endif + uint8_t *sib1Payload = NULLP; fapi_api_queue_elem_t *payloadElem = NULLP; #ifdef INTEL_WLS_MEM @@ -3914,7 +3922,13 @@ uint8_t fillSib1TxDataReq(fapi_tx_pdu_desc_t *pduDesc, uint16_t pduIndex, MacCel * ********************************************************************/ uint8_t fillPageTxDataReq(fapi_tx_pdu_desc_t *pduDesc, uint16_t pduIndex, DlPageAlloc *pageAllocInfo) { + +#ifndef OAI_TESTING uint32_t payloadSize = 0; +#else + uint16_t payloadSize = 0; +#endif + uint8_t *pagePayload = NULLP; fapi_api_queue_elem_t *payloadElem = NULLP; #ifdef INTEL_WLS_MEM @@ -3975,7 +3989,13 @@ uint8_t fillPageTxDataReq(fapi_tx_pdu_desc_t *pduDesc, uint16_t pduIndex, DlPage * ********************************************************************/ uint8_t fillRarTxDataReq(fapi_tx_pdu_desc_t *pduDesc, uint16_t pduIndex, RarInfo *rarInfo, PdschCfg *pdschCfg) { - uint16_t payloadSize; + +#ifndef OAI_TESTING + uint32_t payloadSize = 0; +#else + uint16_t payloadSize = 0; +#endif + uint8_t *rarPayload = NULLP; fapi_api_queue_elem_t *payloadElem = NULLP; #ifdef INTEL_WLS_MEM @@ -4954,12 +4974,14 @@ void fillPuschPdu(fapi_ul_tti_req_pdu_t *ulTtiReqPdu, fapi_vendor_ul_tti_req_pdu ulTtiReqPdu->pdu.pusch_pdu.nrOfSymbols = \ puschInfo->tdAlloc.numSymb; #ifdef INTEL_FAPI +#ifndef OAI_TESTING ulTtiReqPdu->pdu.pusch_pdu.mappingType = \ puschInfo->dmrsMappingType; ulTtiReqPdu->pdu.pusch_pdu.nrOfDmrsSymbols = \ puschInfo->nrOfDmrsSymbols; ulTtiReqPdu->pdu.pusch_pdu.dmrsAddPos = \ puschInfo->dmrsAddPos; +#endif #endif ulTtiReqPdu->pdu.pusch_pdu.puschData.rvIndex = \ puschInfo->tbInfo.rv; diff --git a/src/intel_fapi/fapi_interface.h b/src/intel_fapi/fapi_interface.h index cb120d2bf..097e01f48 100644 --- a/src/intel_fapi/fapi_interface.h +++ b/src/intel_fapi/fapi_interface.h @@ -747,19 +747,19 @@ extern "C" { uint8_t nrOfLayers; uint8_t transmissionScheme; uint8_t refPoint; - uint8_t dmrsConfigType; uint16_t dlDmrsSymbPos; + uint8_t dmrsConfigType; + uint16_t dlDmrsScramblingId; uint8_t scid; uint8_t numDmrsCdmGrpsNoData; + uint16_t dmrsPorts; uint8_t resourceAlloc; #ifndef OAI_TESTING uint8_t pad1; #endif - uint16_t dlDmrsScramblingId; - uint16_t dmrsPorts; + uint8_t rbBitmap[36]; uint16_t rbStart; uint16_t rbSize; - uint8_t rbBitmap[36]; uint8_t vrbToPrbMapping; uint8_t startSymbIndex; uint8_t nrOfSymbols; @@ -774,10 +774,10 @@ extern "C" { uint8_t isLastCbPresent; uint8_t isInlineTbCrc; uint32_t dlTbCrc; // 5G FAPI Table 3-38 +#ifndef OAI_TESTING uint8_t mappingType; uint8_t nrOfDmrsSymbols; uint8_t dmrsAddPos; -#ifndef OAI_TESTING uint8_t pad2; #endif } fapi_dl_pdsch_pdu_t; @@ -828,8 +828,8 @@ extern "C" { uint8_t betaPss; uint8_t ssbBlockIndex; uint8_t ssbSubCarrierOffset; - uint8_t bchPayloadFlag; uint16_t ssbOffsetPointA; + uint8_t bchPayloadFlag; fapi_bch_payload_t bchPayload; fapi_precoding_bmform_t preCodingAndBeamforming; // 5G FAPI Table 3-40 } fapi_dl_ssb_pdu_t; @@ -906,16 +906,16 @@ extern "C" { // Updated per 5G FAPI typedef struct { uint8_t numPtrsPorts; + fapi_ptrs_info_t ptrsInfo[FAPI_MAX_NUM_PTRS_PORTS]; uint8_t ptrsTimeDensity; uint8_t ptrsFreqDensity; // 5G FAPI Table 3-49 Subset uint8_t ulPtrsPower; - fapi_ptrs_info_t ptrsInfo[FAPI_MAX_NUM_PTRS_PORTS]; } fapi_pusch_ptrs_t; // Updated per 5G FAPI typedef struct { - uint16_t lowPaprSequenceNumber; uint8_t lowPaprGroupNumber; + uint16_t lowPaprSequenceNumber; uint8_t ulPtrsSampleDensity; uint8_t ulPtrsTimeDensityTransformPrecoding; #ifndef OAI_TESTING @@ -959,35 +959,36 @@ extern "C" { uint16_t bwpStart; uint8_t subCarrierSpacing; uint8_t cyclicPrefix; - uint8_t mcsIndex; - uint8_t mcsTable; uint16_t targetCodeRate; uint8_t qamModOrder; + uint8_t mcsIndex; + uint8_t mcsTable; uint8_t transformPrecoding; uint16_t dataScramblingId; uint8_t nrOfLayers; - uint8_t dmrsConfigType; uint16_t ulDmrsSymbPos; + uint8_t dmrsConfigType; uint16_t ulDmrsScramblingId; + uint16_t puschIdentity; //ADDED as per : 55G FAPI: PHY API Version: 222.10.02 uint8_t scid; uint8_t numDmrsCdmGrpsNoData; uint16_t dmrsPorts; - uint16_t nTpPuschId; - uint16_t tpPi2Bpsk; - uint8_t rbBitmap[36]; + uint8_t resourceAlloc; + uint8_t rbBitmap[36]; uint16_t rbStart; uint16_t rbSize; uint8_t vrbToPrbMapping; uint8_t frequencyHopping; uint16_t txDirectCurrentLocation; - uint8_t resourceAlloc; uint8_t uplinkFrequencyShift7p5khz; uint8_t startSymbIndex; uint8_t nrOfSymbols; +#ifndef OAI_TESTING + uint16_t nTpPuschId; + uint16_t tpPi2Bpsk; uint8_t mappingType; uint8_t nrOfDmrsSymbols; uint8_t dmrsAddPos; -#ifndef OAI_TESTING uint8_t pad; #endif @@ -1020,12 +1021,12 @@ extern "C" { uint8_t startSymbolIndex; uint8_t nrOfSymbols; uint8_t freqHopFlag; + uint16_t secondHopPrb; uint8_t groupHopFlag; uint8_t sequenceHopFlag; #ifndef OAI_TESTING uint8_t pad3; #endif - uint16_t secondHopPrb; uint16_t hoppingId; uint16_t initialCyclicShift; uint16_t dataScramblingId; @@ -1061,8 +1062,8 @@ extern "C" { uint8_t numRepetitions; uint8_t timeStartPosition; uint8_t configIndex; - uint8_t bandwidthIndex; uint16_t sequenceId; + uint8_t bandwidthIndex; uint8_t combSize; uint8_t combOffset; uint8_t cyclicShift; @@ -1129,9 +1130,15 @@ extern "C" { // Updated per 5G FAPI typedef struct { +#ifndef OAI_TESTING uint32_t pdu_length; uint16_t pdu_index; uint16_t num_tlvs; +#else + uint16_t pdu_length; + uint16_t pdu_index; + uint32_t num_tlvs; +#endif fapi_uint8_ptr_tlv_t tlvs[FAPI_MAX_NUMBER_OF_TLVS_PER_PDU]; // 5G FAPI Table 3-58 Subset } fapi_tx_pdu_desc_t; @@ -1152,10 +1159,10 @@ extern "C" { uint32_t handle; uint16_t rnti; uint8_t harqId; + uint16_t pdu_length; uint8_t ul_cqi; uint16_t timingAdvance; uint16_t rssi; - uint16_t pdu_length; #ifndef OAI_TESTING uint8_t pad[2]; #endif @@ -1180,14 +1187,14 @@ extern "C" { uint16_t rnti; uint8_t harqId; uint8_t tbCrcStatus; + uint16_t numCb; + uint8_t cbCrcStatus[FAPI_MAX_NUM_CB_PER_TTI_IN_BYTES]; // 5G FAPI Table 3-62 subset uint8_t ul_cqi; + uint16_t timingAdvance; + uint16_t rssi; #ifndef OAI_TESTING uint8_t pad; #endif - uint16_t numCb; - uint16_t timingAdvance; - uint16_t rssi; - uint8_t cbCrcStatus[FAPI_MAX_NUM_CB_PER_TTI_IN_BYTES]; // 5G FAPI Table 3-62 subset } fapi_crc_ind_info_t; // Updated per 5G FAPI @@ -1234,11 +1241,10 @@ extern "C" { // Updated per 5G FAPI typedef struct { - - uint32_t handle; uint8_t pduBitmap; - uint8_t ul_cqi; + uint32_t handle; uint16_t rnti; + uint8_t ul_cqi; uint16_t timingAdvance; uint16_t rssi; // 5G FAPI Table 3-64 fapi_harq_info_t harqInfo; // This is included if indicated by the pduBitmap @@ -1280,30 +1286,35 @@ extern "C" { // Updated per 5G FAPI typedef struct { - uint32_t handle; uint8_t pduBitmap; + uint32_t handle; + uint16_t rnti; uint8_t pucchFormat; uint8_t ul_cqi; -#ifndef OAI_TESTING - uint8_t pad; -#endif - uint16_t rnti; uint16_t timingAdvance; uint16_t rssi; // 5G FAPI Table 3-66 +#ifndef OAI_TESTING + uint8_t pad; uint16_t num_uci_bits; uint8_t uciBits[FAPI_MAX_UCI_BIT_BYTE_LEN]; +#else + fapi_sr_f2f3f4_info_t srF2F3F4Info; //ADDED as per : 55G FAPI: PHY API Version: 222.10.02 + fapi_harq_f2f3f4_info_t harqF2F3F4Info; + fapi_csi_p1_info_t csiP1Info; + fapi_csi_p2_info_t csiP2Info; +#endif } fapi_uci_o_pucch_f2f3f4_t; // Updated per 5G FAPI typedef struct { - uint32_t handle; uint8_t pduBitmap; + uint32_t handle; + uint16_t rnti; uint8_t pucchFormat; uint8_t ul_cqi; #ifndef OAI_TESTING uint8_t pad; #endif - uint16_t rnti; uint16_t timingAdvance; uint16_t rssi; // 5G FAPI Table 3-65 #ifndef OAI_TESTING -- 2.16.6