Move SRS config to update_cellGroupConfig()
This commit is contained in:
@@ -1098,8 +1098,9 @@ void fill_initial_SpCellConfig(int uid,
|
||||
pusch_Config->uci_OnPUSCH=NULL;
|
||||
pusch_Config->tp_pi2BPSK=NULL;
|
||||
|
||||
// We are using do_srs = 0 here because the periodic SRS will only be enabled in update_cellGroupConfig() if do_srs == 1
|
||||
initialUplinkBWP->srs_Config = calloc(1,sizeof(*initialUplinkBWP->srs_Config));
|
||||
config_srs(initialUplinkBWP->srs_Config, scc, uid, configuration->do_SRS);
|
||||
config_srs(initialUplinkBWP->srs_Config, scc, uid, 0);
|
||||
|
||||
// configure Scheduling request
|
||||
// 40 slot period
|
||||
@@ -1354,6 +1355,7 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
|
||||
}
|
||||
|
||||
void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
|
||||
int uid,
|
||||
NR_UE_NR_Capability_t *uecap,
|
||||
const gNB_RrcConfigurationReq* configuration) {
|
||||
|
||||
@@ -1362,6 +1364,22 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
|
||||
|
||||
NR_ServingCellConfigCommon_t *scc = configuration->scc;
|
||||
|
||||
if (configuration &&
|
||||
configuration->do_SRS &&
|
||||
SpCellConfig &&
|
||||
SpCellConfig->spCellConfigDedicated &&
|
||||
SpCellConfig->spCellConfigDedicated->uplinkConfig &&
|
||||
SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP) {
|
||||
if (!SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->srs_Config) {
|
||||
SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->srs_Config =
|
||||
calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->srs_Config));
|
||||
}
|
||||
config_srs(SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP->srs_Config,
|
||||
scc,
|
||||
uid,
|
||||
configuration->do_SRS);
|
||||
}
|
||||
|
||||
NR_BWP_DownlinkDedicated_t *bwp_Dedicated = SpCellConfig->spCellConfigDedicated->initialDownlinkBWP;
|
||||
set_dl_mcs_table(scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing,
|
||||
configuration->force_256qam_off ? NULL : uecap, bwp_Dedicated, scc);
|
||||
@@ -1850,6 +1868,7 @@ int16_t do_RRCReconfiguration(
|
||||
|
||||
if(cellGroupConfig!=NULL){
|
||||
update_cellGroupConfig(cellGroupConfig,
|
||||
ue_context_pP->local_uid,
|
||||
ue_context_pP->ue_context.UE_Capability_nr,
|
||||
configuration);
|
||||
|
||||
|
||||
@@ -112,6 +112,7 @@ void fill_initial_cellGroupConfig(int uid,
|
||||
const gNB_RrcConfigurationReq *configuration);
|
||||
|
||||
void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
|
||||
int uid,
|
||||
NR_UE_NR_Capability_t *uecap,
|
||||
const gNB_RrcConfigurationReq *configuration);
|
||||
|
||||
|
||||
@@ -200,9 +200,27 @@ void config_srs(NR_SetupRelease_SRS_Config_t *setup_release_srs_Config,
|
||||
int do_srs) {
|
||||
|
||||
setup_release_srs_Config->present = NR_SetupRelease_SRS_Config_PR_setup;
|
||||
setup_release_srs_Config->choice.setup = calloc(1,sizeof(*setup_release_srs_Config->choice.setup));
|
||||
|
||||
NR_SRS_Config_t *srs_Config = setup_release_srs_Config->choice.setup;
|
||||
NR_SRS_Config_t *srs_Config;
|
||||
if (setup_release_srs_Config->choice.setup) {
|
||||
srs_Config = setup_release_srs_Config->choice.setup;
|
||||
if (srs_Config->srs_ResourceSetToReleaseList) {
|
||||
free(srs_Config->srs_ResourceSetToReleaseList);
|
||||
}
|
||||
if (srs_Config->srs_ResourceSetToAddModList) {
|
||||
free(srs_Config->srs_ResourceSetToAddModList);
|
||||
}
|
||||
if (srs_Config->srs_ResourceToReleaseList) {
|
||||
free(srs_Config->srs_ResourceToReleaseList);
|
||||
}
|
||||
if (srs_Config->srs_ResourceToAddModList) {
|
||||
free(srs_Config->srs_ResourceToAddModList);
|
||||
}
|
||||
free(srs_Config);
|
||||
}
|
||||
|
||||
setup_release_srs_Config->choice.setup = calloc(1,sizeof(*setup_release_srs_Config->choice.setup));
|
||||
srs_Config = setup_release_srs_Config->choice.setup;
|
||||
|
||||
srs_Config->srs_ResourceSetToReleaseList = NULL;
|
||||
|
||||
@@ -254,9 +272,10 @@ void config_srs(NR_SetupRelease_SRS_Config_t *setup_release_srs_Config,
|
||||
srs_res0->freqDomainShift = 0;
|
||||
srs_res0->freqHopping.b_SRS = 0;
|
||||
srs_res0->freqHopping.b_hop = 0;
|
||||
srs_res0->freqHopping.c_SRS = rrc_get_max_nr_csrs(
|
||||
NRRIV2BW(servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, 275),
|
||||
srs_res0->freqHopping.b_SRS);
|
||||
srs_res0->freqHopping.c_SRS = servingcellconfigcommon ?
|
||||
rrc_get_max_nr_csrs(
|
||||
NRRIV2BW(servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, 275),
|
||||
srs_res0->freqHopping.b_SRS) : 0;
|
||||
srs_res0->groupOrSequenceHopping = NR_SRS_Resource__groupOrSequenceHopping_neither;
|
||||
if (do_srs) {
|
||||
srs_res0->resourceType.present = NR_SRS_Resource__resourceType_PR_periodic;
|
||||
|
||||
Reference in New Issue
Block a user