fix for ULSCH number of layers in case of DCI00
This commit is contained in:
@@ -125,16 +125,22 @@ static const uint16_t cqi_table3[16][2] = {{0, 0},
|
|||||||
static void determine_aggregation_level_search_order(int agg_level_search_order[NUM_PDCCH_AGG_LEVELS],
|
static void determine_aggregation_level_search_order(int agg_level_search_order[NUM_PDCCH_AGG_LEVELS],
|
||||||
float pdcch_cl_adjust);
|
float pdcch_cl_adjust);
|
||||||
|
|
||||||
uint8_t get_dl_nrOfLayers(const NR_UE_sched_ctrl_t *sched_ctrl,
|
uint8_t get_dl_nrOfLayers(const NR_UE_sched_ctrl_t *sched_ctrl, const nr_dci_format_t dci_format)
|
||||||
const nr_dci_format_t dci_format) {
|
{
|
||||||
|
|
||||||
// TODO check this but it should be enough for now
|
// TODO check this but it should be enough for now
|
||||||
// if there is not csi report activated RI is 0 from initialization
|
// if there is not csi report activated RI is 0 from initialization
|
||||||
if(dci_format == NR_DL_DCI_FORMAT_1_0)
|
if(dci_format == NR_DL_DCI_FORMAT_1_0)
|
||||||
return 1;
|
return 1;
|
||||||
else
|
else
|
||||||
return (sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.ri + 1);
|
return sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.ri + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int get_ul_nrOfLayers(const NR_UE_sched_ctrl_t *sched_ctrl, const nr_dci_format_t dci_format)
|
||||||
|
{
|
||||||
|
if(dci_format == NR_UL_DCI_FORMAT_0_0)
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return sched_ctrl->srs_feedback.ul_ri + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Table 5.2.2.2.1-3 and Table 5.2.2.2.1-4 in 38.214
|
// Table 5.2.2.2.1-3 and Table 5.2.2.2.1-4 in 38.214
|
||||||
|
|||||||
@@ -1947,7 +1947,7 @@ static void pf_ul(module_id_t module_id,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
sched_pusch->nrOfLayers = sched_ctrl->srs_feedback.ul_ri + 1;
|
sched_pusch->nrOfLayers = get_ul_nrOfLayers(sched_ctrl, current_BWP->dci_format);
|
||||||
sched_pusch->time_domain_allocation = get_ul_tda(nrmac, sched_frame, sched_slot);
|
sched_pusch->time_domain_allocation = get_ul_tda(nrmac, sched_frame, sched_slot);
|
||||||
sched_pusch->tda_info = get_ul_tda_info(current_BWP,
|
sched_pusch->tda_info = get_ul_tda_info(current_BWP,
|
||||||
sched_ctrl->coreset->controlResourceSetId,
|
sched_ctrl->coreset->controlResourceSetId,
|
||||||
@@ -2097,7 +2097,7 @@ static void pf_ul(module_id_t module_id,
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
sched_pusch->nrOfLayers = sched_ctrl->srs_feedback.ul_ri + 1;
|
sched_pusch->nrOfLayers = get_ul_nrOfLayers(sched_ctrl, current_BWP->dci_format);
|
||||||
sched_pusch->time_domain_allocation = get_ul_tda(nrmac, sched_frame, sched_slot);
|
sched_pusch->time_domain_allocation = get_ul_tda(nrmac, sched_frame, sched_slot);
|
||||||
sched_pusch->tda_info = get_ul_tda_info(current_BWP,
|
sched_pusch->tda_info = get_ul_tda_info(current_BWP,
|
||||||
sched_ctrl->coreset->controlResourceSetId,
|
sched_ctrl->coreset->controlResourceSetId,
|
||||||
|
|||||||
@@ -380,6 +380,7 @@ uint16_t get_pm_index(const gNB_MAC_INST *nrmac,
|
|||||||
uint8_t get_mcs_from_cqi(int mcs_table, int cqi_table, int cqi_idx);
|
uint8_t get_mcs_from_cqi(int mcs_table, int cqi_table, int cqi_idx);
|
||||||
|
|
||||||
uint8_t get_dl_nrOfLayers(const NR_UE_sched_ctrl_t *sched_ctrl, const nr_dci_format_t dci_format);
|
uint8_t get_dl_nrOfLayers(const NR_UE_sched_ctrl_t *sched_ctrl, const nr_dci_format_t dci_format);
|
||||||
|
int get_ul_nrOfLayers(const NR_UE_sched_ctrl_t *sched_ctrl, const nr_dci_format_t dci_format);
|
||||||
|
|
||||||
void free_sched_pucch_list(NR_UE_sched_ctrl_t *sched_ctrl);
|
void free_sched_pucch_list(NR_UE_sched_ctrl_t *sched_ctrl);
|
||||||
bool add_UE_to_list(int list_size, NR_UE_info_t *list[list_size], NR_UE_info_t *UE);
|
bool add_UE_to_list(int list_size, NR_UE_info_t *list[list_size], NR_UE_info_t *UE);
|
||||||
|
|||||||
Reference in New Issue
Block a user