mirror of https://github.com/PentHertz/srsLTE.git
ue_dl: reference point for DMRS varies for SIB
This commit is contained in:
parent
e7c2cea032
commit
798e9b7a5e
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
|
|
Loading…
Reference in New Issue