Fix DCI formats
This commit is contained in:
@@ -788,7 +788,9 @@ void pf_dl(module_id_t module_id,
|
|||||||
AssertFatal(tda>=0,"Unable to find PDSCH time domain allocation in list\n");
|
AssertFatal(tda>=0,"Unable to find PDSCH time domain allocation in list\n");
|
||||||
NR_sched_pdsch_t *sched_pdsch = &sched_ctrl->sched_pdsch;
|
NR_sched_pdsch_t *sched_pdsch = &sched_ctrl->sched_pdsch;
|
||||||
NR_pdsch_semi_static_t *ps = &sched_ctrl->pdsch_semi_static;
|
NR_pdsch_semi_static_t *ps = &sched_ctrl->pdsch_semi_static;
|
||||||
const long f = (sched_ctrl->active_bwp || bwpd) ? sched_ctrl->search_space->searchSpaceType->choice.ue_Specific->dci_Formats : 0;
|
const long f = ((sched_ctrl->active_bwp || bwpd) && sched_ctrl->search_space &&
|
||||||
|
sched_ctrl->search_space->searchSpaceType->present == NR_SearchSpace__searchSpaceType_PR_ue_Specific) ?
|
||||||
|
sched_ctrl->search_space->searchSpaceType->choice.ue_Specific->dci_Formats : 0;
|
||||||
if (ps->time_domain_allocation != tda)
|
if (ps->time_domain_allocation != tda)
|
||||||
nr_set_pdsch_semi_static(scc, UE_info->CellGroup[UE_id], sched_ctrl->active_bwp, bwpd, tda, f, ps);
|
nr_set_pdsch_semi_static(scc, UE_info->CellGroup[UE_id], sched_ctrl->active_bwp, bwpd, tda, f, ps);
|
||||||
sched_pdsch->Qm = nr_get_Qm_dl(sched_pdsch->mcs, ps->mcsTableIdx);
|
sched_pdsch->Qm = nr_get_Qm_dl(sched_pdsch->mcs, ps->mcsTableIdx);
|
||||||
@@ -1161,14 +1163,10 @@ void nr_schedule_ue_spec(module_id_t module_id,
|
|||||||
dci_payload.tpc,
|
dci_payload.tpc,
|
||||||
pucch->timing_indicator);
|
pucch->timing_indicator);
|
||||||
|
|
||||||
const long f = sched_ctrl->search_space->searchSpaceType->choice.ue_Specific->dci_Formats;
|
int dci_format = sched_ctrl->search_space && sched_ctrl->search_space->searchSpaceType &&
|
||||||
int dci_format;
|
sched_ctrl->search_space->searchSpaceType->present == NR_SearchSpace__searchSpaceType_PR_ue_Specific ?
|
||||||
if (sched_ctrl->search_space) {
|
NR_UL_DCI_FORMAT_0_1 : NR_UL_DCI_FORMAT_0_0;
|
||||||
dci_format = f ? NR_DL_DCI_FORMAT_1_1 : NR_DL_DCI_FORMAT_1_0;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
dci_format = NR_DL_DCI_FORMAT_1_0;
|
|
||||||
}
|
|
||||||
const int rnti_type = NR_RNTI_C;
|
const int rnti_type = NR_RNTI_C;
|
||||||
|
|
||||||
fill_dci_pdu_rel15(scc,
|
fill_dci_pdu_rel15(scc,
|
||||||
|
|||||||
@@ -374,7 +374,10 @@ void nr_preprocessor_phytest(module_id_t module_id,
|
|||||||
sched_pdsch->rbStart = rbStart;
|
sched_pdsch->rbStart = rbStart;
|
||||||
sched_pdsch->rbSize = rbSize;
|
sched_pdsch->rbSize = rbSize;
|
||||||
const int tda = sched_ctrl->active_bwp ? RC.nrmac[module_id]->preferred_dl_tda[sched_ctrl->active_bwp->bwp_Id][slot] : 1;
|
const int tda = sched_ctrl->active_bwp ? RC.nrmac[module_id]->preferred_dl_tda[sched_ctrl->active_bwp->bwp_Id][slot] : 1;
|
||||||
const long f = sched_ctrl->active_bwp ? sched_ctrl->search_space->searchSpaceType->choice.ue_Specific->dci_Formats : 0;
|
const long f = (sched_ctrl->active_bwp && sched_ctrl->search_space &&
|
||||||
|
sched_ctrl->search_space->searchSpaceType->present == NR_SearchSpace__searchSpaceType_PR_ue_Specific) ?
|
||||||
|
sched_ctrl->search_space->searchSpaceType->choice.ue_Specific->dci_Formats : 0;
|
||||||
|
|
||||||
ps->nrOfLayers = target_dl_Nl;
|
ps->nrOfLayers = target_dl_Nl;
|
||||||
if (ps->time_domain_allocation != tda)
|
if (ps->time_domain_allocation != tda)
|
||||||
nr_set_pdsch_semi_static(
|
nr_set_pdsch_semi_static(
|
||||||
@@ -444,7 +447,9 @@ bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_
|
|||||||
if (!is_xlsch_in_slot(ulsch_slot_bitmap, sched_slot))
|
if (!is_xlsch_in_slot(ulsch_slot_bitmap, sched_slot))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
const long f = sched_ctrl->search_space->searchSpaceType->choice.ue_Specific->dci_Formats;
|
const long f = (sched_ctrl->active_bwp && sched_ctrl->search_space &&
|
||||||
|
sched_ctrl->search_space->searchSpaceType->present == NR_SearchSpace__searchSpaceType_PR_ue_Specific) ?
|
||||||
|
sched_ctrl->search_space->searchSpaceType->choice.ue_Specific->dci_Formats : 0;
|
||||||
const int dci_format = f ? NR_UL_DCI_FORMAT_0_1 : NR_UL_DCI_FORMAT_0_0;
|
const int dci_format = f ? NR_UL_DCI_FORMAT_0_1 : NR_UL_DCI_FORMAT_0_0;
|
||||||
const uint8_t num_dmrs_cdm_grps_no_data = 1;
|
const uint8_t num_dmrs_cdm_grps_no_data = 1;
|
||||||
/* we want to avoid a lengthy deduction of DMRS and other parameters in
|
/* we want to avoid a lengthy deduction of DMRS and other parameters in
|
||||||
|
|||||||
@@ -39,16 +39,11 @@
|
|||||||
|
|
||||||
int get_dci_format(NR_UE_sched_ctrl_t *sched_ctrl) {
|
int get_dci_format(NR_UE_sched_ctrl_t *sched_ctrl) {
|
||||||
|
|
||||||
const long f = sched_ctrl->search_space->searchSpaceType->choice.ue_Specific->dci_Formats;
|
int dci_format = sched_ctrl->search_space && sched_ctrl->search_space->searchSpaceType &&
|
||||||
int dci_format;
|
sched_ctrl->search_space->searchSpaceType->present == NR_SearchSpace__searchSpaceType_PR_ue_Specific ?
|
||||||
if (sched_ctrl->search_space) {
|
NR_UL_DCI_FORMAT_0_1 : NR_UL_DCI_FORMAT_0_0;
|
||||||
dci_format = f ? NR_UL_DCI_FORMAT_0_1 : NR_UL_DCI_FORMAT_0_0;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
dci_format = NR_UL_DCI_FORMAT_0_0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(dci_format);
|
return(dci_format);
|
||||||
}
|
}
|
||||||
|
|
||||||
void calculate_preferred_ul_tda(module_id_t module_id, const NR_BWP_Uplink_t *ubwp)
|
void calculate_preferred_ul_tda(module_id_t module_id, const NR_BWP_Uplink_t *ubwp)
|
||||||
|
|||||||
Reference in New Issue
Block a user