Add do_SRS parameter also for NSA
This commit is contained in:
@@ -768,7 +768,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
prepare_scd(scd);
|
prepare_scd(scd);
|
||||||
|
|
||||||
fill_default_secondaryCellGroup(scc, scd, secondaryCellGroup, 0, 1, n_tx, 6, 0, 0, 0);
|
fill_default_secondaryCellGroup(scc, scd, secondaryCellGroup, 0, 1, n_tx, 6, 0, 0, 0, 0);
|
||||||
|
|
||||||
/* RRC parameter validation for secondaryCellGroup */
|
/* RRC parameter validation for secondaryCellGroup */
|
||||||
fix_scd(scd);
|
fix_scd(scd);
|
||||||
|
|||||||
@@ -713,7 +713,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
prepare_scd(scd);
|
prepare_scd(scd);
|
||||||
|
|
||||||
fill_default_secondaryCellGroup(scc, scd, secondaryCellGroup, 0, 1, n_tx, 0, 0, 0, 0);
|
fill_default_secondaryCellGroup(scc, scd, secondaryCellGroup, 0, 1, n_tx, 0, 0, 0, 0, 0);
|
||||||
|
|
||||||
// xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, (const void*)secondaryCellGroup);
|
// xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, (const void*)secondaryCellGroup);
|
||||||
|
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|||||||
int dl_antenna_ports,
|
int dl_antenna_ports,
|
||||||
int minRXTXTIMEpdsch,
|
int minRXTXTIMEpdsch,
|
||||||
int do_csirs,
|
int do_csirs,
|
||||||
|
int do_srs,
|
||||||
int initial_csi_index,
|
int initial_csi_index,
|
||||||
int uid);
|
int uid);
|
||||||
|
|
||||||
@@ -93,6 +94,7 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
|
|||||||
int dl_antenna_ports,
|
int dl_antenna_ports,
|
||||||
int minRXTXTIMEpdsch,
|
int minRXTXTIMEpdsch,
|
||||||
int do_csirs,
|
int do_csirs,
|
||||||
|
int do_srs,
|
||||||
int initial_csi_index,
|
int initial_csi_index,
|
||||||
int uid);
|
int uid);
|
||||||
|
|
||||||
|
|||||||
@@ -237,24 +237,26 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
|
|||||||
}
|
}
|
||||||
if (ue_context_p->ue_context.spCellConfig) {
|
if (ue_context_p->ue_context.spCellConfig) {
|
||||||
fill_default_reconfig(carrier->servingcellconfigcommon,
|
fill_default_reconfig(carrier->servingcellconfigcommon,
|
||||||
ue_context_p->ue_context.spCellConfig->spCellConfigDedicated,
|
ue_context_p->ue_context.spCellConfig->spCellConfigDedicated,
|
||||||
reconfig_ies,
|
reconfig_ies,
|
||||||
ue_context_p->ue_context.secondaryCellGroup,
|
ue_context_p->ue_context.secondaryCellGroup,
|
||||||
carrier->pdsch_AntennaPorts,
|
carrier->pdsch_AntennaPorts,
|
||||||
carrier->minRXTXTIMEpdsch,
|
carrier->minRXTXTIMEpdsch,
|
||||||
carrier->do_CSIRS,
|
carrier->do_CSIRS,
|
||||||
carrier->initial_csi_index[ue_context_p->local_uid + 1],
|
carrier->do_SRS,
|
||||||
ue_context_p->local_uid);
|
carrier->initial_csi_index[ue_context_p->local_uid + 1],
|
||||||
|
ue_context_p->local_uid);
|
||||||
} else {
|
} else {
|
||||||
fill_default_reconfig(carrier->servingcellconfigcommon,
|
fill_default_reconfig(carrier->servingcellconfigcommon,
|
||||||
NULL,
|
NULL,
|
||||||
reconfig_ies,
|
reconfig_ies,
|
||||||
ue_context_p->ue_context.secondaryCellGroup,
|
ue_context_p->ue_context.secondaryCellGroup,
|
||||||
carrier->pdsch_AntennaPorts,
|
carrier->pdsch_AntennaPorts,
|
||||||
carrier->minRXTXTIMEpdsch,
|
carrier->minRXTXTIMEpdsch,
|
||||||
carrier->do_CSIRS,
|
carrier->do_CSIRS,
|
||||||
carrier->initial_csi_index[ue_context_p->local_uid + 1],
|
carrier->do_SRS,
|
||||||
ue_context_p->local_uid);
|
carrier->initial_csi_index[ue_context_p->local_uid + 1],
|
||||||
|
ue_context_p->local_uid);
|
||||||
}
|
}
|
||||||
ue_context_p->ue_id_rnti = ue_context_p->ue_context.secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity;
|
ue_context_p->ue_id_rnti = ue_context_p->ue_context.secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity;
|
||||||
NR_CG_Config_t *CG_Config = calloc(1,sizeof(*CG_Config));
|
NR_CG_Config_t *CG_Config = calloc(1,sizeof(*CG_Config));
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|||||||
int dl_antenna_ports,
|
int dl_antenna_ports,
|
||||||
int minRXTXTIMEpdsch,
|
int minRXTXTIMEpdsch,
|
||||||
int do_csirs,
|
int do_csirs,
|
||||||
|
int do_srs,
|
||||||
int initial_csi_index,
|
int initial_csi_index,
|
||||||
int uid) {
|
int uid) {
|
||||||
AssertFatal(servingcellconfigcommon!=NULL,"servingcellconfigcommon is null\n");
|
AssertFatal(servingcellconfigcommon!=NULL,"servingcellconfigcommon is null\n");
|
||||||
@@ -803,19 +804,19 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|||||||
ASN_SEQUENCE_ADD(&srs_resset0->srs_ResourceIdList->list,srs_resset0_id);
|
ASN_SEQUENCE_ADD(&srs_resset0->srs_ResourceIdList->list,srs_resset0_id);
|
||||||
srs_Config->srs_ResourceToReleaseList=NULL;
|
srs_Config->srs_ResourceToReleaseList=NULL;
|
||||||
|
|
||||||
if(0) {
|
if(do_srs) {
|
||||||
srs_resset0->resourceType.present = NR_SRS_ResourceSet__resourceType_PR_aperiodic;
|
srs_resset0->resourceType.present = NR_SRS_ResourceSet__resourceType_PR_periodic;
|
||||||
srs_resset0->resourceType.choice.aperiodic = calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic));
|
srs_resset0->resourceType.choice.periodic = calloc(1,sizeof(*srs_resset0->resourceType.choice.periodic));
|
||||||
srs_resset0->resourceType.choice.aperiodic->aperiodicSRS_ResourceTrigger=1;
|
srs_resset0->resourceType.choice.periodic->associatedCSI_RS = NULL;
|
||||||
srs_resset0->resourceType.choice.aperiodic->csi_RS=NULL;
|
} else {
|
||||||
srs_resset0->resourceType.choice.aperiodic->slotOffset= calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic->slotOffset));
|
srs_resset0->resourceType.present = NR_SRS_ResourceSet__resourceType_PR_aperiodic;
|
||||||
*srs_resset0->resourceType.choice.aperiodic->slotOffset=2;
|
srs_resset0->resourceType.choice.aperiodic = calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic));
|
||||||
|
srs_resset0->resourceType.choice.aperiodic->aperiodicSRS_ResourceTrigger=1;
|
||||||
|
srs_resset0->resourceType.choice.aperiodic->csi_RS=NULL;
|
||||||
|
srs_resset0->resourceType.choice.aperiodic->slotOffset= calloc(1,sizeof(*srs_resset0->resourceType.choice.aperiodic->slotOffset));
|
||||||
|
*srs_resset0->resourceType.choice.aperiodic->slotOffset=2;
|
||||||
srs_resset0->resourceType.choice.aperiodic->ext1=NULL;
|
srs_resset0->resourceType.choice.aperiodic->ext1=NULL;
|
||||||
} else {
|
}
|
||||||
srs_resset0->resourceType.present = NR_SRS_ResourceSet__resourceType_PR_periodic;
|
|
||||||
srs_resset0->resourceType.choice.periodic = calloc(1,sizeof(*srs_resset0->resourceType.choice.periodic));
|
|
||||||
srs_resset0->resourceType.choice.periodic->associatedCSI_RS = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
srs_resset0->usage=NR_SRS_ResourceSet__usage_codebook;
|
srs_resset0->usage=NR_SRS_ResourceSet__usage_codebook;
|
||||||
srs_resset0->alpha = calloc(1,sizeof(*srs_resset0->alpha));
|
srs_resset0->alpha = calloc(1,sizeof(*srs_resset0->alpha));
|
||||||
@@ -847,15 +848,15 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|||||||
srs_res0->freqHopping.b_SRS);
|
srs_res0->freqHopping.b_SRS);
|
||||||
srs_res0->groupOrSequenceHopping=NR_SRS_Resource__groupOrSequenceHopping_neither;
|
srs_res0->groupOrSequenceHopping=NR_SRS_Resource__groupOrSequenceHopping_neither;
|
||||||
|
|
||||||
if(0) {
|
if(do_srs) {
|
||||||
srs_res0->resourceType.present= NR_SRS_Resource__resourceType_PR_aperiodic;
|
srs_res0->resourceType.present= NR_SRS_Resource__resourceType_PR_periodic;
|
||||||
|
srs_res0->resourceType.choice.periodic=calloc(1,sizeof(*srs_res0->resourceType.choice.periodic));
|
||||||
|
srs_res0->resourceType.choice.periodic->periodicityAndOffset_p.present = NR_SRS_PeriodicityAndOffset_PR_sl40;
|
||||||
|
srs_res0->resourceType.choice.periodic->periodicityAndOffset_p.choice.sl40 = 7 + (uid/3)*10; // 7/17/27/37 are mixed slots
|
||||||
|
} else {
|
||||||
|
srs_res0->resourceType.present= NR_SRS_Resource__resourceType_PR_aperiodic;
|
||||||
srs_res0->resourceType.choice.aperiodic=calloc(1,sizeof(*srs_res0->resourceType.choice.aperiodic));
|
srs_res0->resourceType.choice.aperiodic=calloc(1,sizeof(*srs_res0->resourceType.choice.aperiodic));
|
||||||
} else {
|
}
|
||||||
srs_res0->resourceType.present= NR_SRS_Resource__resourceType_PR_periodic;
|
|
||||||
srs_res0->resourceType.choice.periodic=calloc(1,sizeof(*srs_res0->resourceType.choice.periodic));
|
|
||||||
srs_res0->resourceType.choice.periodic->periodicityAndOffset_p.present = NR_SRS_PeriodicityAndOffset_PR_sl40;
|
|
||||||
srs_res0->resourceType.choice.periodic->periodicityAndOffset_p.choice.sl40 = 7 + (uid/3)*10; // 7/17/27/37 are mixed slots
|
|
||||||
}
|
|
||||||
|
|
||||||
srs_res0->sequenceId=40;
|
srs_res0->sequenceId=40;
|
||||||
srs_res0->spatialRelationInfo=calloc(1,sizeof(*srs_res0->spatialRelationInfo));
|
srs_res0->spatialRelationInfo=calloc(1,sizeof(*srs_res0->spatialRelationInfo));
|
||||||
@@ -1375,6 +1376,7 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
|
|||||||
int dl_antenna_ports,
|
int dl_antenna_ports,
|
||||||
int minRXTXTIMEpdsch,
|
int minRXTXTIMEpdsch,
|
||||||
int do_csirs,
|
int do_csirs,
|
||||||
|
int do_srs,
|
||||||
int initial_csi_index,
|
int initial_csi_index,
|
||||||
int uid) {
|
int uid) {
|
||||||
AssertFatal(servingcellconfigcommon!=NULL,"servingcellconfigcommon is null\n");
|
AssertFatal(servingcellconfigcommon!=NULL,"servingcellconfigcommon is null\n");
|
||||||
@@ -1391,6 +1393,7 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
|
|||||||
dl_antenna_ports,
|
dl_antenna_ports,
|
||||||
minRXTXTIMEpdsch,
|
minRXTXTIMEpdsch,
|
||||||
do_csirs,
|
do_csirs,
|
||||||
|
do_srs,
|
||||||
initial_csi_index,
|
initial_csi_index,
|
||||||
uid);
|
uid);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user