From cb06fa7dc0501aa1758815d80906cddf7a0a3d48 Mon Sep 17 00:00:00 2001 From: pborla Date: Mon, 25 Nov 2024 14:08:57 +0530 Subject: [PATCH] fixing RAR PDU information in the TX data request Change-Id: I3f4d5d2352824a20e5fca79967b14ac672b042ee Signed-off-by: pborla --- build/config/tdd_odu_config.xml | 4 ++-- src/5gnrmac/lwr_mac_fsm.c | 31 ++++++++++++++++--------------- src/5gnrsch/sch_rach.c | 10 +++++++++- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/build/config/tdd_odu_config.xml b/build/config/tdd_odu_config.xml index 1b8b30da9..b8a1d4c1a 100644 --- a/build/config/tdd_odu_config.xml +++ b/build/config/tdd_odu_config.xml @@ -134,7 +134,7 @@ 2 - 88 + 66 0 273 24 @@ -547,7 +547,7 @@ 1 30 - 88 + 66 1 diff --git a/src/5gnrmac/lwr_mac_fsm.c b/src/5gnrmac/lwr_mac_fsm.c index ecade957b..96e6d7743 100644 --- a/src/5gnrmac/lwr_mac_fsm.c +++ b/src/5gnrmac/lwr_mac_fsm.c @@ -4178,12 +4178,8 @@ 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) { -#ifndef OAI_TESTING #ifndef OAI_TESTING uint32_t payloadSize = 0; -#else - uint16_t payloadSize = 0; -#endif uint8_t *rarPayload = NULLP; fapi_api_queue_elem_t *payloadElem = NULLP; @@ -4193,19 +4189,11 @@ uint8_t fillRarTxDataReq(fapi_tx_pdu_desc_t *pduDesc, uint16_t pduIndex, RarInfo payloadSize = pdschCfg->codeword[0].tbSize; -#ifndef OAI_TESTING pduDesc[pduIndex].pdu_index = pduIndex; pduDesc[pduIndex].num_tlvs = 1; /* fill the TLV */ pduDesc[pduIndex].tlvs[0].tl.tag = FAPI_TX_DATA_PTR_TO_PAYLOAD_64; pduDesc[pduIndex].tlvs[0].tl.length = payloadSize; -#else - pduDesc[pduIndex].pdu_index = reverseBytes16(pduIndex); - pduDesc[pduIndex].num_tlvs = reverseBytes32(1); - /* fill the TLV */ - pduDesc[pduIndex].tlvs[0].tl.tag = reverseBytes16(FAPI_TX_DATA_PTR_TO_PAYLOAD_32); - pduDesc[pduIndex].tlvs[0].tl.length = reverseBytes16(payloadSize); -#endif LWR_MAC_ALLOC(rarPayload, payloadSize); if(rarPayload == NULLP) @@ -4223,15 +4211,28 @@ uint8_t fillRarTxDataReq(fapi_tx_pdu_desc_t *pduDesc, uint16_t pduIndex, RarInfo #endif pduDesc[pduIndex].pdu_length = payloadSize; -#ifdef OAI_TESTING - pduDesc[pduIndex].pdu_length = reverseBytes16(pduDesc[pduIndex].pdu_length); -#endif #ifdef INTEL_WLS_MEM addWlsBlockToFree(rarPayload, payloadSize, (lwrMacCb.phySlotIndCntr-1)); #else LWR_MAC_FREE(rarPayload, payloadSize); #endif + +#else + + uint8_t tlvPaddingLen =get_tlv_padding(rarInfo->rarPduLen); + uint16_t totalLen= rarInfo->rarPduLen +tlvPaddingLen; + pduDesc[pduIndex].pdu_length = totalLen; + pduDesc[pduIndex].pdu_length = reverseBytes16(pduDesc[pduIndex].pdu_length); + + pduDesc[pduIndex].pdu_index = reverseBytes16(pduIndex); + pduDesc[pduIndex].num_tlvs = reverseBytes32(1); + /* fill the TLV */ + pduDesc[pduIndex].tlvs[0].tag = reverseBytes16(FAPI_TX_DATA_PAYLOAD); + pduDesc[pduIndex].tlvs[0].length = reverseBytes16(rarInfo->rarPduLen); + + memcpy(pduDesc[pduIndex].tlvs[0].value.direct, rarInfo->rarPdu, rarInfo->rarPduLen); + #endif /* FAPI */ return ROK; } diff --git a/src/5gnrsch/sch_rach.c b/src/5gnrsch/sch_rach.c index 50b4281f8..4c5d8f526 100644 --- a/src/5gnrsch/sch_rach.c +++ b/src/5gnrsch/sch_rach.c @@ -162,8 +162,16 @@ void schPrachResAlloc(SchCellCb *cell, UlSchedInfo *ulSchedInfo, SlotTimingInfo prachCfgIdx = cell->cellCfg.ulCfgCommon.schInitialUlBwp.schRachCfg.prachCfgGeneric.prachCfgIdx; prachFormat = prachCfgIdxTable[prachCfgIdx][0]; prachStartSymbol = prachCfgIdxTable[prachCfgIdx][4]; - prachOcas = prachCfgIdxTable[prachCfgIdx][6]; prachDuration = prachCfgIdxTable[prachCfgIdx][7]; + if(prachFormat>3) + { + prachOcas = prachCfgIdxTable[prachCfgIdx][6]; + } + else + { + /* Note - as per spec 38.211 sec 5.3.2, N(ra,slot) is fixed to 1 for L_RA = 839 (long seq format)*/ + prachOcas = 1; + } /* numRa determined as 𝑛 belonging {0,1,.., M − 1}, * where M is given by msg1Fdm */ -- 2.16.6