ue_dl: reference point for DMRS varies for SIB

This commit is contained in:
Ismael Gomez 2021-11-12 20:24:52 +01:00 committed by Andre Puschmann
parent e7c2cea032
commit 798e9b7a5e
3 changed files with 14 additions and 2 deletions

View File

@ -77,6 +77,8 @@ typedef struct {
srsran_dmrs_sch_typeA_pos_t typeA_pos;
bool lte_CRS_to_match_around;
uint32_t reference_point_k_rb;
/// Parameters provided by FeatureSetDownlink-v1540
bool additional_DMRS_DL_Alt;

View File

@ -216,7 +216,8 @@ static int srsran_dmrs_sch_put_symbol(srsran_dmrs_sch_t* q,
// ... save first consecutive PRB in the group
prb_start = prb_idx;
// ... discard unused pilots and reset counter
// ... discard unused pilots and reset counter unless the PDSCH transmission carries SIB
prb_skip = SRSRAN_MAX(0, (int)prb_skip - (int)dmrs_cfg->reference_point_k_rb);
srsran_sequence_state_advance(&sequence_state, prb_skip * nof_pilots_x_prb * 2);
prb_skip = 0;
}
@ -704,7 +705,8 @@ static int srsran_dmrs_sch_get_symbol(srsran_dmrs_sch_t* q,
// ... save first consecutive PRB in the group
prb_start = prb_idx;
// ... discard unused pilots and reset counter
// ... discard unused pilots and reset counter unless the PDSCH transmission carries SIB
prb_skip = SRSRAN_MAX(0, (int)prb_skip - (int)dmrs_cfg->reference_point_k_rb);
srsran_sequence_state_advance(&sequence_state, prb_skip * nof_pilots_x_prb * 2);
prb_skip = 0;
}

View File

@ -205,6 +205,14 @@ static int work_ue_dl(srsran_ue_dl_nr_t* ue_dl, srsran_slot_cfg_t* slot)
srsran_pdsch_res_nr_t pdsch_res = {};
pdsch_res.tb[0].payload = data;
// See 7.4.1.1.2 38.211 The reference point for k is
// - for PDSCH transmission carrying SIB1, subcarrier 0 of the lowest-numbered common resource block in the
// CORESET configured by the PBCH
//- otherwise, subcarrier 0 in common resource block 0
if (rnti_type == srsran_rnti_type_si) {
pdsch_cfg.dmrs.reference_point_k_rb = pdcch_cfg.coreset[0].offset_rb;
}
// Decode PDSCH
if (srsran_ue_dl_nr_decode_pdsch(ue_dl, slot, &pdsch_cfg, &pdsch_res) < SRSRAN_SUCCESS) {
ERROR("Error decoding PDSCH search");