check if CSET0 exceeds upper BW limit

This commit is contained in:
francescomani
2026-01-16 00:43:00 +01:00
parent 28f3037581
commit 75820422a4
5 changed files with 12 additions and 1 deletions
@@ -3556,6 +3556,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
NR_SubcarrierSpacing_t scs_ssb,
frequency_range_t frequency_range,
int nr_band,
int grid_size,
uint32_t ssb_index,
uint32_t ssb_period,
uint32_t ssb_offset_point_a)
@@ -3885,6 +3886,11 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
type0_PDCCH_CSS_config->cset_start_rb,
ssb_offset_point_a,
type0_PDCCH_CSS_config->rb_offset);
AssertFatal(type0_PDCCH_CSS_config->cset_start_rb + type0_PDCCH_CSS_config->num_rbs <= grid_size,
"Invalid combination of start PRB %d and size %d of CSET0. Exceeds full BW %d\n",
type0_PDCCH_CSS_config->cset_start_rb,
type0_PDCCH_CSS_config->num_rbs,
grid_size);
}
void fill_coresetZero(NR_ControlResourceSet_t *coreset0, NR_Type0_PDCCH_CSS_config_t *type0_PDCCH_CSS_config)
@@ -244,6 +244,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
NR_SubcarrierSpacing_t scs_ssb,
frequency_range_t frequency_range,
int nr_band,
int grid_size,
uint32_t ssb_index,
uint32_t ssb_period,
uint32_t ssb_offset_point_a);
@@ -449,6 +449,7 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
scs,
mac->frequency_range,
mac->nr_band,
273, // at this point UE in principle doesn't know the grid size (we assume the largest)
mac->mib_ssb,
1, // If the UE is not configured with a periodicity, the UE assumes a periodicity of a half frame
ssb_offset_point_a);
+2
View File
@@ -789,6 +789,7 @@ static void config_sched_ctrlCommon(gNB_MAC_INST *nr_mac)
NR_SubcarrierSpacing_t scs = *scc->ssbSubcarrierSpacing;
const long band = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0];
const int bw = scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth;
uint16_t ssb_start_symbol = get_ssb_start_symbol(band, scs, 0);
int8_t ssb_period = *scc->ssb_periodicityServingCell;
@@ -810,6 +811,7 @@ static void config_sched_ctrlCommon(gNB_MAC_INST *nr_mac)
scs,
frequency_range,
band,
bw,
0,
ssb_frame_periodicity,
prb_offset);
@@ -134,7 +134,7 @@ static void schedule_one_ssb(gNB_MAC_INST *gNB,
const NR_MIB_t *mib = cc->mib->message.choice.mib;
uint32_t mib_pdu = (*(uint32_t *)cc->MIB_pdu) & ((1 << 24) - 1);
uint8_t ssbSubcarrierOffset = gNB->ssb_SubcarrierOffset;
const int bw = scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth;
uint16_t ssb_start_symbol = get_ssb_start_symbol(band, scs, i_ssb);
NR_beam_alloc_t beam =
beam_allocation_procedure(&gNB->beam_info, frameP, slotP, get_beam_from_ssbidx(gNB, i_ssb), slots_per_frame);
@@ -159,6 +159,7 @@ static void schedule_one_ssb(gNB_MAC_INST *gNB,
scs,
FR,
band,
bw,
i_ssb,
ssb_frame_periodicity,
prb_offset);