Commit 2fb8d96f authored by Roberto Louro Magueta's avatar Roberto Louro Magueta

Move SRS config to update_cellGroupConfig()

parent 70cfd057
...@@ -1098,8 +1098,9 @@ void fill_initial_SpCellConfig(int uid, ...@@ -1098,8 +1098,9 @@ void fill_initial_SpCellConfig(int uid,
pusch_Config->uci_OnPUSCH=NULL; pusch_Config->uci_OnPUSCH=NULL;
pusch_Config->tp_pi2BPSK=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)); 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 // configure Scheduling request
// 40 slot period // 40 slot period
...@@ -1354,6 +1355,7 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr ...@@ -1354,6 +1355,7 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
} }
void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
int uid,
NR_UE_NR_Capability_t *uecap, NR_UE_NR_Capability_t *uecap,
const gNB_RrcConfigurationReq* configuration) { const gNB_RrcConfigurationReq* configuration) {
...@@ -1362,6 +1364,22 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, ...@@ -1362,6 +1364,22 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
NR_ServingCellConfigCommon_t *scc = configuration->scc; 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; NR_BWP_DownlinkDedicated_t *bwp_Dedicated = SpCellConfig->spCellConfigDedicated->initialDownlinkBWP;
set_dl_mcs_table(scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing, set_dl_mcs_table(scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing,
configuration->force_256qam_off ? NULL : uecap, bwp_Dedicated, scc); configuration->force_256qam_off ? NULL : uecap, bwp_Dedicated, scc);
...@@ -1850,6 +1868,7 @@ int16_t do_RRCReconfiguration( ...@@ -1850,6 +1868,7 @@ int16_t do_RRCReconfiguration(
if(cellGroupConfig!=NULL){ if(cellGroupConfig!=NULL){
update_cellGroupConfig(cellGroupConfig, update_cellGroupConfig(cellGroupConfig,
ue_context_pP->local_uid,
ue_context_pP->ue_context.UE_Capability_nr, ue_context_pP->ue_context.UE_Capability_nr,
configuration); configuration);
......
...@@ -112,6 +112,7 @@ void fill_initial_cellGroupConfig(int uid, ...@@ -112,6 +112,7 @@ void fill_initial_cellGroupConfig(int uid,
const gNB_RrcConfigurationReq *configuration); const gNB_RrcConfigurationReq *configuration);
void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
int uid,
NR_UE_NR_Capability_t *uecap, NR_UE_NR_Capability_t *uecap,
const gNB_RrcConfigurationReq *configuration); const gNB_RrcConfigurationReq *configuration);
......
...@@ -200,9 +200,27 @@ void config_srs(NR_SetupRelease_SRS_Config_t *setup_release_srs_Config, ...@@ -200,9 +200,27 @@ void config_srs(NR_SetupRelease_SRS_Config_t *setup_release_srs_Config,
int do_srs) { int do_srs) {
setup_release_srs_Config->present = NR_SetupRelease_SRS_Config_PR_setup; 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; srs_Config->srs_ResourceSetToReleaseList = NULL;
...@@ -254,9 +272,10 @@ void config_srs(NR_SetupRelease_SRS_Config_t *setup_release_srs_Config, ...@@ -254,9 +272,10 @@ void config_srs(NR_SetupRelease_SRS_Config_t *setup_release_srs_Config,
srs_res0->freqDomainShift = 0; srs_res0->freqDomainShift = 0;
srs_res0->freqHopping.b_SRS = 0; srs_res0->freqHopping.b_SRS = 0;
srs_res0->freqHopping.b_hop = 0; srs_res0->freqHopping.b_hop = 0;
srs_res0->freqHopping.c_SRS = rrc_get_max_nr_csrs( srs_res0->freqHopping.c_SRS = servingcellconfigcommon ?
NRRIV2BW(servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, 275), rrc_get_max_nr_csrs(
srs_res0->freqHopping.b_SRS); NRRIV2BW(servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth, 275),
srs_res0->freqHopping.b_SRS) : 0;
srs_res0->groupOrSequenceHopping = NR_SRS_Resource__groupOrSequenceHopping_neither; srs_res0->groupOrSequenceHopping = NR_SRS_Resource__groupOrSequenceHopping_neither;
if (do_srs) { if (do_srs) {
srs_res0->resourceType.present = NR_SRS_Resource__resourceType_PR_periodic; srs_res0->resourceType.present = NR_SRS_Resource__resourceType_PR_periodic;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment