switch to initial BWP if current BWP has no PRACH in gNB
This commit is contained in:
@@ -2718,8 +2718,7 @@ void configure_UE_BWP(gNB_MAC_INST *nr_mac,
|
|||||||
AssertFatal(dl_bwp_switch == ul_bwp_switch, "Different UL and DL BWP not supported\n");
|
AssertFatal(dl_bwp_switch == ul_bwp_switch, "Different UL and DL BWP not supported\n");
|
||||||
DL_BWP->bwp_id = dl_bwp_switch;
|
DL_BWP->bwp_id = dl_bwp_switch;
|
||||||
UL_BWP->bwp_id = ul_bwp_switch;
|
UL_BWP->bwp_id = ul_bwp_switch;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// (re)configuring BWP
|
// (re)configuring BWP
|
||||||
// TODO BWP switching not via RRC reconfiguration
|
// TODO BWP switching not via RRC reconfiguration
|
||||||
// via RRC if firstActiveXlinkBWP_Id is NULL, MAC stays on the same BWP as before
|
// via RRC if firstActiveXlinkBWP_Id is NULL, MAC stays on the same BWP as before
|
||||||
@@ -2768,8 +2767,7 @@ void configure_UE_BWP(gNB_MAC_INST *nr_mac,
|
|||||||
UL_BWP->pusch_Config = ubwpd->pusch_Config->choice.setup;
|
UL_BWP->pusch_Config = ubwpd->pusch_Config->choice.setup;
|
||||||
UL_BWP->pucch_Config = ubwpd->pucch_Config->choice.setup;
|
UL_BWP->pucch_Config = ubwpd->pucch_Config->choice.setup;
|
||||||
UL_BWP->srs_Config = ubwpd->srs_Config->choice.setup;
|
UL_BWP->srs_Config = ubwpd->srs_Config->choice.setup;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
DL_BWP->bwp_id = 0;
|
DL_BWP->bwp_id = 0;
|
||||||
UL_BWP->bwp_id = 0;
|
UL_BWP->bwp_id = 0;
|
||||||
DL_BWP->pdsch_Config = NULL;
|
DL_BWP->pdsch_Config = NULL;
|
||||||
@@ -2778,11 +2776,6 @@ void configure_UE_BWP(gNB_MAC_INST *nr_mac,
|
|||||||
UL_BWP->configuredGrantConfig = NULL;
|
UL_BWP->configuredGrantConfig = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (old_dl_bwp_id != DL_BWP->bwp_id)
|
|
||||||
LOG_I(NR_MAC, "Switching to DL-BWP %li\n", DL_BWP->bwp_id);
|
|
||||||
if (old_ul_bwp_id != UL_BWP->bwp_id)
|
|
||||||
LOG_I(NR_MAC, "Switching to UL-BWP %li\n", UL_BWP->bwp_id);
|
|
||||||
|
|
||||||
// TDA lists
|
// TDA lists
|
||||||
if (DL_BWP->bwp_id>0)
|
if (DL_BWP->bwp_id>0)
|
||||||
DL_BWP->tdaList_Common = dl_bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList;
|
DL_BWP->tdaList_Common = dl_bwp->bwp_Common->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList;
|
||||||
@@ -2832,6 +2825,19 @@ void configure_UE_BWP(gNB_MAC_INST *nr_mac,
|
|||||||
UL_BWP->rach_ConfigCommon = scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup;
|
UL_BWP->rach_ConfigCommon = scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if PRACH occasions are not configured for the active UL BWP
|
||||||
|
// switch the active UL BWP to BWP indicated by initialUplinkBWP
|
||||||
|
// as described in 5.15 of 38.321
|
||||||
|
if (is_RA && !UL_BWP->rach_ConfigCommon) {
|
||||||
|
LOG_I(NR_MAC, "Cannot perform RA in current BWP, switching to initial BWP\n");
|
||||||
|
configure_UE_BWP(nr_mac, scc, UE, is_RA, target_ss, 0, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (old_dl_bwp_id != DL_BWP->bwp_id)
|
||||||
|
LOG_I(NR_MAC, "Switching to DL-BWP %li\n", DL_BWP->bwp_id);
|
||||||
|
if (old_ul_bwp_id != UL_BWP->bwp_id)
|
||||||
|
LOG_I(NR_MAC, "Switching to UL-BWP %li\n", UL_BWP->bwp_id);
|
||||||
|
|
||||||
NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
|
NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
|
||||||
// Reset required fields in sched_ctrl (e.g. ul_ri and tpmi)
|
// Reset required fields in sched_ctrl (e.g. ul_ri and tpmi)
|
||||||
reset_sched_ctrl(sched_ctrl);
|
reset_sched_ctrl(sched_ctrl);
|
||||||
|
|||||||
Reference in New Issue
Block a user