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->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
|
|||||||
}
|
}
|
||||||
|
|
||||||
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,
|
|||||||
|
|
||||||
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(
|
|||||||
|
|
||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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;
|
||||||
|
|||||||
Reference in New Issue
Block a user