modifications in get_searchspace => handle case for ue-specific on initialDownlinkBWP
This commit is contained in:
@@ -587,10 +587,10 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
|
|||||||
ret = no_iteration_ldpc;
|
ret = no_iteration_ldpc;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
LOG_D(PHY,"CRC NOT OK\n\033[0m");
|
LOG_D(PHY,"CRC NOT OK\n\033[0m"); /*
|
||||||
ret = 1 + dlsch->max_ldpc_iterations;
|
ret = 1 + dlsch->max_ldpc_iterations;
|
||||||
dump_nrdlsch(phy_vars_ue,0,nr_slot_rx,&E,0,0);
|
dump_nrdlsch(phy_vars_ue,0,nr_slot_rx,&E,0,0);
|
||||||
exit(-1);
|
exit(-1);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -452,10 +452,18 @@ void pf_dl(module_id_t module_id,
|
|||||||
if (UE_info->Msg4_ACKed[UE_id] != true) continue;
|
if (UE_info->Msg4_ACKed[UE_id] != true) continue;
|
||||||
NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
|
NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
|
||||||
int bwp_Id = sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Id : 0;
|
int bwp_Id = sched_ctrl->active_bwp ? sched_ctrl->active_bwp->bwp_Id : 0;
|
||||||
sched_ctrl->search_space = get_searchspace(scc,sched_ctrl->active_bwp,
|
NR_BWP_DownlinkDedicated_t *bwp_Dedicated=NULL;
|
||||||
sched_ctrl->active_bwp ?
|
if (sched_ctrl->active_bwp) bwp_Dedicated = sched_ctrl->active_bwp->bwp_Dedicated;
|
||||||
NR_SearchSpace__searchSpaceType_PR_ue_Specific:
|
else if (UE_info->CellGroup[UE_id] &&
|
||||||
NR_SearchSpace__searchSpaceType_PR_common);
|
UE_info->CellGroup[UE_id]->spCellConfig &&
|
||||||
|
UE_info->CellGroup[UE_id]->spCellConfig->spCellConfigDedicated)
|
||||||
|
bwp_Dedicated = UE_info->CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->initialDownlinkBWP;
|
||||||
|
|
||||||
|
sched_ctrl->search_space = get_searchspace(scc,bwp_Dedicated,
|
||||||
|
bwp_Dedicated ?
|
||||||
|
NR_SearchSpace__searchSpaceType_PR_ue_Specific:
|
||||||
|
NR_SearchSpace__searchSpaceType_PR_common);
|
||||||
|
|
||||||
sched_ctrl->coreset = get_coreset(scc,sched_ctrl->active_bwp, sched_ctrl->search_space, 1 /* dedicated */);
|
sched_ctrl->coreset = get_coreset(scc,sched_ctrl->active_bwp, sched_ctrl->search_space, 1 /* dedicated */);
|
||||||
if (sched_ctrl->coreset == NULL) sched_ctrl->coreset = mac->sched_ctrlCommon->coreset;
|
if (sched_ctrl->coreset == NULL) sched_ctrl->coreset = mac->sched_ctrlCommon->coreset;
|
||||||
/* get the PID of a HARQ process awaiting retrnasmission, or -1 otherwise */
|
/* get the PID of a HARQ process awaiting retrnasmission, or -1 otherwise */
|
||||||
|
|||||||
@@ -154,16 +154,15 @@ NR_ControlResourceSet_t *get_coreset(NR_ServingCellConfigCommon_t *scc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
NR_SearchSpace_t *get_searchspace(NR_ServingCellConfigCommon_t *scc,
|
NR_SearchSpace_t *get_searchspace(NR_ServingCellConfigCommon_t *scc,
|
||||||
NR_BWP_Downlink_t *bwp,
|
NR_BWP_DownlinkDedicated_t *bwp_Dedicated,
|
||||||
NR_SearchSpace__searchSpaceType_PR target_ss) {
|
NR_SearchSpace__searchSpaceType_PR target_ss) {
|
||||||
|
|
||||||
|
const int n = bwp_Dedicated ?
|
||||||
const int n = bwp ?
|
bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList->list.count:
|
||||||
bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList->list.count:
|
|
||||||
scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list.count;
|
scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list.count;
|
||||||
for (int i=0;i<n;i++) {
|
for (int i=0;i<n;i++) {
|
||||||
NR_SearchSpace_t *ss = bwp ?
|
NR_SearchSpace_t *ss = bwp_Dedicated ?
|
||||||
bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList->list.array[i]:
|
bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList->list.array[i]:
|
||||||
scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list.array[i];
|
scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list.array[i];
|
||||||
AssertFatal(ss->controlResourceSetId != NULL, "ss->controlResourceSetId is null\n");
|
AssertFatal(ss->controlResourceSetId != NULL, "ss->controlResourceSetId is null\n");
|
||||||
AssertFatal(ss->searchSpaceType != NULL, "ss->searchSpaceType is null\n");
|
AssertFatal(ss->searchSpaceType != NULL, "ss->searchSpaceType is null\n");
|
||||||
@@ -171,7 +170,7 @@ NR_SearchSpace_t *get_searchspace(NR_ServingCellConfigCommon_t *scc,
|
|||||||
return ss;
|
return ss;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AssertFatal(0, "Couldn't find an adequate searchspace\n");
|
AssertFatal(0, "Couldn't find an adequate searchspace bwp_Dedicated %p\n",bwp_Dedicated);
|
||||||
}
|
}
|
||||||
|
|
||||||
int allocate_nr_CCEs(gNB_MAC_INST *nr_mac,
|
int allocate_nr_CCEs(gNB_MAC_INST *nr_mac,
|
||||||
|
|||||||
@@ -695,8 +695,14 @@ void pf_ul(module_id_t module_id,
|
|||||||
* every TTI if we can save it, so check whether dci_format, TDA, or
|
* every TTI if we can save it, so check whether dci_format, TDA, or
|
||||||
* num_dmrs_cdm_grps_no_data has changed and only then recompute */
|
* num_dmrs_cdm_grps_no_data has changed and only then recompute */
|
||||||
sched_ctrl->sched_pusch.time_domain_allocation = tda;
|
sched_ctrl->sched_pusch.time_domain_allocation = tda;
|
||||||
sched_ctrl->search_space = get_searchspace(scc,sched_ctrl->active_bwp,
|
NR_BWP_DownlinkDedicated_t *bwp_Dedicated=NULL;
|
||||||
sched_ctrl->active_bwp ?
|
if (sched_ctrl->active_bwp) bwp_Dedicated = sched_ctrl->active_bwp->bwp_Dedicated;
|
||||||
|
else if (UE_info->CellGroup[UE_id] &&
|
||||||
|
UE_info->CellGroup[UE_id]->spCellConfig &&
|
||||||
|
UE_info->CellGroup[UE_id]->spCellConfig->spCellConfigDedicated)
|
||||||
|
bwp_Dedicated = UE_info->CellGroup[UE_id]->spCellConfig->spCellConfigDedicated->initialDownlinkBWP;
|
||||||
|
sched_ctrl->search_space = get_searchspace(scc,bwp_Dedicated,
|
||||||
|
bwp_Dedicated ?
|
||||||
NR_SearchSpace__searchSpaceType_PR_ue_Specific:
|
NR_SearchSpace__searchSpaceType_PR_ue_Specific:
|
||||||
NR_SearchSpace__searchSpaceType_PR_common);
|
NR_SearchSpace__searchSpaceType_PR_common);
|
||||||
sched_ctrl->coreset = get_coreset(scc,sched_ctrl->active_bwp, sched_ctrl->search_space, 1 /* dedicated */);
|
sched_ctrl->coreset = get_coreset(scc,sched_ctrl->active_bwp, sched_ctrl->search_space, 1 /* dedicated */);
|
||||||
|
|||||||
@@ -271,8 +271,8 @@ NR_ControlResourceSet_t *get_coreset(NR_ServingCellConfigCommon_t *scc,
|
|||||||
|
|
||||||
/* find a search space within a BWP */
|
/* find a search space within a BWP */
|
||||||
NR_SearchSpace_t *get_searchspace(NR_ServingCellConfigCommon_t *scc,
|
NR_SearchSpace_t *get_searchspace(NR_ServingCellConfigCommon_t *scc,
|
||||||
NR_BWP_Downlink_t *bwp,
|
NR_BWP_DownlinkDedicated_t *bwp_Dedicated,
|
||||||
NR_SearchSpace__searchSpaceType_PR target_ss);
|
NR_SearchSpace__searchSpaceType_PR target_ss);
|
||||||
|
|
||||||
long get_K2(NR_ServingCellConfigCommon_t *scc, NR_BWP_Uplink_t *ubwp, int time_domain_assignment, int mu);
|
long get_K2(NR_ServingCellConfigCommon_t *scc, NR_BWP_Uplink_t *ubwp, int time_domain_assignment, int mu);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user