clean-up: reduce nested if in CSI meas function
This commit is contained in:
committed by
francescomani
parent
207b061e22
commit
d1febb5fc2
@@ -2601,24 +2601,35 @@ int nr_get_csi_measurements(NR_UE_MAC_INST_t *mac, frame_t frame, int slot, PUCC
|
|||||||
{
|
{
|
||||||
NR_UE_UL_BWP_t *current_UL_BWP = mac->current_UL_BWP;
|
NR_UE_UL_BWP_t *current_UL_BWP = mac->current_UL_BWP;
|
||||||
NR_PUCCH_Config_t *pucch_Config = current_UL_BWP ? current_UL_BWP->pucch_Config : NULL;
|
NR_PUCCH_Config_t *pucch_Config = current_UL_BWP ? current_UL_BWP->pucch_Config : NULL;
|
||||||
int num_csi = 0;
|
|
||||||
|
|
||||||
if (mac->sc_info.csi_MeasConfig) {
|
if (!mac->sc_info.csi_MeasConfig || !pucch_Config)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
int num_csi = 0;
|
||||||
NR_CSI_MeasConfig_t *csi_measconfig = mac->sc_info.csi_MeasConfig;
|
NR_CSI_MeasConfig_t *csi_measconfig = mac->sc_info.csi_MeasConfig;
|
||||||
|
|
||||||
int csi_priority = INT_MAX;
|
int csi_priority = INT_MAX;
|
||||||
for (int csi_report_id = 0; csi_report_id < csi_measconfig->csi_ReportConfigToAddModList->list.count; csi_report_id++) {
|
for (int csi_report_id = 0; csi_report_id < csi_measconfig->csi_ReportConfigToAddModList->list.count; csi_report_id++) {
|
||||||
NR_CSI_ReportConfig_t *csirep = csi_measconfig->csi_ReportConfigToAddModList->list.array[csi_report_id];
|
NR_CSI_ReportConfig_t *csirep = csi_measconfig->csi_ReportConfigToAddModList->list.array[csi_report_id];
|
||||||
|
|
||||||
if(csirep->reportConfigType.present == NR_CSI_ReportConfig__reportConfigType_PR_periodic) {
|
AssertFatal(csirep->reportConfigType.present == NR_CSI_ReportConfig__reportConfigType_PR_aperiodic
|
||||||
|
|| csirep->reportConfigType.present == NR_CSI_ReportConfig__reportConfigType_PR_periodic,
|
||||||
|
"Not supported CSI report type\n");
|
||||||
|
|
||||||
|
// Aperiodic CSI measurements handled in nr_ue_aperiodic_csi_reporting function
|
||||||
|
if (csirep->reportConfigType.present != NR_CSI_ReportConfig__reportConfigType_PR_periodic)
|
||||||
|
continue;
|
||||||
|
|
||||||
int period, offset;
|
int period, offset;
|
||||||
csi_period_offset(csirep, NULL, &period, &offset);
|
csi_period_offset(csirep, NULL, &period, &offset);
|
||||||
const int n_slots_frame = mac->frame_structure.numb_slots_frame;
|
const int n_slots_frame = mac->frame_structure.numb_slots_frame;
|
||||||
if (((n_slots_frame*frame + slot - offset)%period) == 0 && pucch_Config) {
|
// Check if current slot falls in the report period
|
||||||
|
if (((n_slots_frame * frame + slot - offset) % period) != 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
int csi_res_id = -1;
|
int csi_res_id = -1;
|
||||||
for (int i = 0; i < csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list.count; i++) {
|
for (int i = 0; i < csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list.count; i++) {
|
||||||
const NR_PUCCH_CSI_Resource_t *pucchcsires =
|
const NR_PUCCH_CSI_Resource_t *pucchcsires = csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list.array[i];
|
||||||
csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list.array[i];
|
|
||||||
if (pucchcsires->uplinkBandwidthPartId == current_UL_BWP->bwp_id) {
|
if (pucchcsires->uplinkBandwidthPartId == current_UL_BWP->bwp_id) {
|
||||||
csi_res_id = pucchcsires->pucch_Resource;
|
csi_res_id = pucchcsires->pucch_Resource;
|
||||||
break;
|
break;
|
||||||
@@ -2655,12 +2666,6 @@ int nr_get_csi_measurements(NR_UE_MAC_INST_t *mac, frame_t frame, int slot, PUCC
|
|||||||
pucch->pucch_resource = csi_pucch;
|
pucch->pucch_resource = csi_pucch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
AssertFatal(csirep->reportConfigType.present == NR_CSI_ReportConfig__reportConfigType_PR_aperiodic,
|
|
||||||
"Not supported CSI report type\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return num_csi;
|
return num_csi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user