fixes for multiple BWPs
This commit is contained in:
@@ -181,6 +181,11 @@ void nr_csi_meas_reporting(int Mod_idP,
|
||||
|
||||
AssertFatal(csirep->reportConfigType.choice.periodic,
|
||||
"Only periodic CSI reporting is implemented currently\n");
|
||||
|
||||
const NR_PUCCH_CSI_Resource_t *pucchcsires = csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list.array[0];
|
||||
if(pucchcsires->uplinkBandwidthPartId != ul_bwp->bwp_id)
|
||||
continue;
|
||||
|
||||
int period, offset;
|
||||
csi_period_offset(csirep, NULL, &period, &offset);
|
||||
const int sched_slot = (period + offset) % n_slots_frame;
|
||||
@@ -188,9 +193,8 @@ void nr_csi_meas_reporting(int Mod_idP,
|
||||
// preparation is done in first slot of tdd period
|
||||
if (frame % (period / n_slots_frame) != offset / n_slots_frame)
|
||||
continue;
|
||||
LOG_D(NR_MAC, "CSI reporting in frame %d slot %d\n", frame, sched_slot);
|
||||
LOG_D(NR_MAC, "CSI reporting in frame %d slot %d CSI report ID %ld\n", frame, sched_slot, csirep->reportConfigId);
|
||||
|
||||
const NR_PUCCH_CSI_Resource_t *pucchcsires = csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list.array[0];
|
||||
const NR_PUCCH_ResourceSet_t *pucchresset = pucch_Config->resourceSetToAddModList->list.array[1]; // set with formats >1
|
||||
const int n = pucchresset->resourceList.list.count;
|
||||
int res_index = 0;
|
||||
@@ -769,6 +773,9 @@ void extract_pucch_csi_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
|
||||
uint8_t li_bitlen = 0;
|
||||
uint8_t pmi_bitlen = 0;
|
||||
NR_CSI_ReportConfig_t *csirep = csi_MeasConfig->csi_ReportConfigToAddModList->list.array[csi_report_id];
|
||||
const NR_PUCCH_CSI_Resource_t *pucchcsires = csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list.array[0];
|
||||
if(pucchcsires->uplinkBandwidthPartId != ul_bwp->bwp_id)
|
||||
continue;
|
||||
int period, offset;
|
||||
csi_period_offset(csirep, NULL, &period, &offset);
|
||||
// verify if report with current id has been scheduled for this frame and slot
|
||||
|
||||
@@ -452,7 +452,7 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
|
||||
ss1->monitoringSymbolsWithinSlot->buf = calloc(1,2);
|
||||
// should be '1000 0000 0000 00'B (LSB first!), first symbol in slot, adjust if needed
|
||||
ss1->monitoringSymbolsWithinSlot->buf[1] = 0;
|
||||
ss1->monitoringSymbolsWithinSlot->buf[0] = (1<<7);
|
||||
ss1->monitoringSymbolsWithinSlot->buf[0] = 0x80;
|
||||
ss1->monitoringSymbolsWithinSlot->size = 2;
|
||||
ss1->monitoringSymbolsWithinSlot->bits_unused = 2;
|
||||
ss1->nrofCandidates = calloc(1,sizeof(*ss1->nrofCandidates));
|
||||
@@ -480,7 +480,7 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
|
||||
ss5->monitoringSymbolsWithinSlot->buf = calloc(1,2);
|
||||
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
|
||||
ss5->monitoringSymbolsWithinSlot->buf[1] = 0;
|
||||
ss5->monitoringSymbolsWithinSlot->buf[0] = (1<<7);
|
||||
ss5->monitoringSymbolsWithinSlot->buf[0] = 0x80;
|
||||
ss5->monitoringSymbolsWithinSlot->size = 2;
|
||||
ss5->monitoringSymbolsWithinSlot->bits_unused = 2;
|
||||
ss5->nrofCandidates = calloc(1,sizeof(*ss5->nrofCandidates));
|
||||
@@ -505,7 +505,7 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
|
||||
ss7->monitoringSymbolsWithinSlot->buf = calloc(1,2);
|
||||
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
|
||||
ss7->monitoringSymbolsWithinSlot->buf[1] = 0;
|
||||
ss7->monitoringSymbolsWithinSlot->buf[0] = (1<<7);
|
||||
ss7->monitoringSymbolsWithinSlot->buf[0] = 0x80;
|
||||
ss7->monitoringSymbolsWithinSlot->size = 2;
|
||||
ss7->monitoringSymbolsWithinSlot->bits_unused = 2;
|
||||
ss7->nrofCandidates = calloc(1,sizeof(*ss7->nrofCandidates));
|
||||
|
||||
@@ -875,7 +875,7 @@ void config_downlinkBWP(NR_BWP_Downlink_t *bwp,
|
||||
ss->monitoringSymbolsWithinSlot->buf = calloc(1,2);
|
||||
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
|
||||
ss->monitoringSymbolsWithinSlot->buf[1] = 0;
|
||||
ss->monitoringSymbolsWithinSlot->buf[0] = 0xc0;
|
||||
ss->monitoringSymbolsWithinSlot->buf[0] = 0x80;
|
||||
ss->monitoringSymbolsWithinSlot->size = 2;
|
||||
ss->monitoringSymbolsWithinSlot->bits_unused = 2;
|
||||
ss->nrofCandidates = calloc(1,sizeof(*ss->nrofCandidates));
|
||||
@@ -933,7 +933,7 @@ void config_downlinkBWP(NR_BWP_Downlink_t *bwp,
|
||||
ss2->monitoringSymbolsWithinSlot = calloc(1,sizeof(*ss2->monitoringSymbolsWithinSlot));
|
||||
ss2->monitoringSymbolsWithinSlot->buf = calloc(1,2);
|
||||
ss2->monitoringSymbolsWithinSlot->size = 2;
|
||||
ss2->monitoringSymbolsWithinSlot->buf[0]=0xc0;
|
||||
ss2->monitoringSymbolsWithinSlot->buf[0]=0x80;
|
||||
ss2->monitoringSymbolsWithinSlot->buf[1]=0x0;
|
||||
ss2->monitoringSymbolsWithinSlot->bits_unused = 2;
|
||||
ss2->nrofCandidates=calloc(1,sizeof(*ss2->nrofCandidates));
|
||||
|
||||
Reference in New Issue
Block a user