Merge remote-tracking branch 'origin/issue1272' into integration_2026_w18 (!4072)

UE PRACH slot fix

This fixes a bug in prach slot computation if more than 1 slot in
subframe at UE

Closes #1072
This commit is contained in:
Robert Schmidt
2026-04-29 18:01:28 +02:00

View File

@@ -462,11 +462,10 @@ static void configure_prach_occasions(NR_UE_MAC_INST_t *mac, int scs)
for (int s = 0; s < prach_info.N_RA_sfn; s++) { // subframe/60kHz slot occasions in period
while (((temp_s_map >> sf) & 0x01) == 0)
sf++;
int sl = sf;
int sl = scs == 1 || scs == 3 ? sf * 2 : sf;
for (int i = 0; i < prach_slots_in_sf; i++) { // slot per subframe/60kHz slot
int add_slot = i;
if (scs == 1 || scs == 3) {
sl *= 2;
// if only 1 slot per subframe (or 60kHz slot) in case of 30 or 120kHz it's the odd one
// as defined in 5.3.2 of 211
if (((prach_info.format & 0xff) > 3) && prach_slots_in_sf == 1)
@@ -528,6 +527,14 @@ static void configure_prach_occasions(NR_UE_MAC_INST_t *mac, int scs)
LOG_D(NR_MAC, "PRACH configuration period %d association period %d\n", config_period, ra->association_periods);
select_prach_occasion(ra, mac->ssb_list.nb_tx_ssb, max_num_occasions, ra_occasions_period, num_ra_occasions_period);
const prach_occasion_info_t *pi = &ra->sched_ro_info;
LOG_I(NR_MAC,
"[UE %d] selected PRACH occasion: start_symbol %d fdm %d slot %d format %d\n",
mac->ue_id,
pi->start_symbol,
pi->fdm,
pi->slot,
pi->format);
}
/* TS 38.321 subclause 7.3 - return DELTA_PREAMBLE values in dB */