From f5c1d18638f6cbf850415f2b36b97e77eb9dd0ff Mon Sep 17 00:00:00 2001 From: Laurent THOMAS Date: Thu, 18 Sep 2025 16:20:08 +0200 Subject: [PATCH] Fix bug in "freeing" prach occasions scheduler after decoding first occasion Release PRACH only after treating the entire PRACH slot/work. Also, release only once, not on every decoding occasion. --- openair1/SCHED_NR/nr_prach_procedures.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openair1/SCHED_NR/nr_prach_procedures.c b/openair1/SCHED_NR/nr_prach_procedures.c index c56a37ca1d..7dfe05dccd 100644 --- a/openair1/SCHED_NR/nr_prach_procedures.c +++ b/openair1/SCHED_NR/nr_prach_procedures.c @@ -87,8 +87,6 @@ void L1_nr_prach_procedures(PHY_VARS_gNB *gNB, int frame, int slot, nfapi_nr_rac &max_preamble[0], &max_preamble_energy[0], &max_preamble_delay[0]); - LOG_D(NR_PHY,"Freeing PRACH entry %d\n",prach_id); - free_nr_prach_entry(gNB,prach_id); LOG_D(NR_PHY,"[RAPROC] Frame %d, slot %d, occasion %d (prachStartSymbol %d) : Most likely preamble %d, energy %d.%d dB delay %d (prach_energy counter %d)\n", frame,slot,prach_oc,prachStartSymbol, max_preamble[0], @@ -142,6 +140,8 @@ void L1_nr_prach_procedures(PHY_VARS_gNB *gNB, int frame, int slot, nfapi_nr_rac gNB->prach_energy_counter++; } //if prach_id>0 rach_ind->slot = prach_start_slot; + LOG_D(NR_PHY,"Freeing PRACH entry %d\n",prach_id); + free_nr_prach_entry(gNB,prach_id); } // for NUMBER_OF_NR_PRACH_OCCASION_MAX VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PRACH_RX,0); }