Fixed calculation of num dmrs per prb at gnb side

- the param was hardcoded to 12 at gNB side
  while it was computed at UE side
- the same function used at UE side has been moved to the common file
- now the computation at gNB side is consistent with the UE
This commit is contained in:
Guido Casati
2021-11-05 16:05:10 +01:00
parent a5f18dbb20
commit 755c8d5055
7 changed files with 55 additions and 27 deletions
@@ -4294,3 +4294,22 @@ bool set_ul_ptrs_values(NR_PTRS_UplinkConfig_t *ul_ptrs_config,
return valid;
}
void get_num_re_dmrs(int start_symbol,
uint8_t number_of_symbols,
uint16_t ul_dmrs_symb_pos,
uint8_t dmrs_type,
uint8_t cdm_grps_no_data,
uint8_t *nb_dmrs_re_per_rb,
uint16_t *number_dmrs_symbols){
*number_dmrs_symbols = 0;
for (int i = start_symbol; i < start_symbol + number_of_symbols; i++) {
if((ul_dmrs_symb_pos >> i) & 0x01){
*number_dmrs_symbols += 1;
}
}
*nb_dmrs_re_per_rb = ((dmrs_type == pusch_dmrs_type1) ? 6 : 4) * cdm_grps_no_data;
}
@@ -62,6 +62,15 @@ uint16_t nr_dci_size(const NR_BWP_DownlinkCommon_t *initialDLBWP,
uint16_t N_RB,
int bwp_id);
void get_num_re_dmrs(int start_symbol,
uint8_t number_of_symbols,
uint16_t ul_dmrs_symb_pos,
uint8_t dmrs_type,
uint8_t cdm_grps_no_data,
uint8_t *nb_dmrs_re_per_rb,
uint16_t *number_dmrs_symbols);
void find_aggregation_candidates(uint8_t *aggregation_level,
uint8_t *nr_of_candidates,
NR_SearchSpace_t *ss,