rrc configuration for pucch power control
This commit is contained in:
@@ -1357,6 +1357,7 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
|
||||
NR_BWP_UplinkDedicated_t *initialUplinkBWP = SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP;
|
||||
NR_PUCCH_Config_t *pucch_Config = initialUplinkBWP->pucch_Config->choice.setup;
|
||||
config_pucch_resset1(pucch_Config, uecap);
|
||||
set_pucch_power_config(pucch_Config, carrier->do_CSIRS);
|
||||
}
|
||||
|
||||
void fill_initial_cellGroupConfig(int uid,
|
||||
|
||||
@@ -192,6 +192,53 @@ void config_pucch_resset1(NR_PUCCH_Config_t *pucch_Config, NR_UE_NR_Capability_t
|
||||
|
||||
}
|
||||
|
||||
void set_pucch_power_config(NR_PUCCH_Config_t *pucch_Config, int do_csirs) {
|
||||
|
||||
pucch_Config->pucch_PowerControl = calloc(1,sizeof(*pucch_Config->pucch_PowerControl));
|
||||
NR_P0_PUCCH_t *p00 = calloc(1,sizeof(*p00));
|
||||
p00->p0_PUCCH_Id = 1;
|
||||
p00->p0_PUCCH_Value = 0;
|
||||
pucch_Config->pucch_PowerControl->p0_Set = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->p0_Set));
|
||||
ASN_SEQUENCE_ADD(&pucch_Config->pucch_PowerControl->p0_Set->list,p00);
|
||||
|
||||
pucch_Config->pucch_PowerControl->pathlossReferenceRSs = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->pathlossReferenceRSs));
|
||||
struct NR_PUCCH_PathlossReferenceRS *PL_ref_RS = calloc(1,sizeof(*PL_ref_RS));
|
||||
PL_ref_RS->pucch_PathlossReferenceRS_Id = 0;
|
||||
if(do_csirs) {
|
||||
PL_ref_RS->referenceSignal.present = NR_PUCCH_PathlossReferenceRS__referenceSignal_PR_csi_RS_Index;
|
||||
PL_ref_RS->referenceSignal.choice.csi_RS_Index = 0;
|
||||
}
|
||||
else {
|
||||
PL_ref_RS->referenceSignal.present = NR_PUCCH_PathlossReferenceRS__referenceSignal_PR_ssb_Index;
|
||||
PL_ref_RS->referenceSignal.choice.ssb_Index = 0;
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&pucch_Config->pucch_PowerControl->pathlossReferenceRSs->list,PL_ref_RS);
|
||||
|
||||
pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0));
|
||||
*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0 = 0;
|
||||
pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2));
|
||||
*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2 = 0;
|
||||
|
||||
pucch_Config->spatialRelationInfoToAddModList = calloc(1,sizeof(*pucch_Config->spatialRelationInfoToAddModList));
|
||||
pucch_Config->spatialRelationInfoToReleaseList=NULL;
|
||||
NR_PUCCH_SpatialRelationInfo_t *pucchspatial = calloc(1,sizeof(*pucchspatial));
|
||||
pucchspatial->pucch_SpatialRelationInfoId = 1;
|
||||
pucchspatial->servingCellId = NULL;
|
||||
if(do_csirs) {
|
||||
pucchspatial->referenceSignal.present = NR_PUCCH_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index;
|
||||
pucchspatial->referenceSignal.choice.csi_RS_Index = 0;
|
||||
}
|
||||
else {
|
||||
pucchspatial->referenceSignal.present = NR_PUCCH_SpatialRelationInfo__referenceSignal_PR_ssb_Index;
|
||||
pucchspatial->referenceSignal.choice.ssb_Index = 0;
|
||||
}
|
||||
|
||||
pucchspatial->pucch_PathlossReferenceRS_Id = PL_ref_RS->pucch_PathlossReferenceRS_Id;
|
||||
pucchspatial->p0_PUCCH_Id = p00->p0_PUCCH_Id;
|
||||
pucchspatial->closedLoopIndex = NR_PUCCH_SpatialRelationInfo__closedLoopIndex_i0;
|
||||
ASN_SEQUENCE_ADD(&pucch_Config->spatialRelationInfoToAddModList->list,pucchspatial);
|
||||
}
|
||||
|
||||
void schedulingrequest_config(NR_MAC_CellGroupConfig_t *mac_CellGroupConfig,
|
||||
NR_PUCCH_Config_t *pucch_Config) {
|
||||
|
||||
|
||||
@@ -116,6 +116,7 @@ void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay);
|
||||
void config_pucch_resset0(NR_PUCCH_Config_t *pucch_Config, int uid, int curr_bwp, NR_UE_NR_Capability_t *uecap);
|
||||
void config_pucch_resset1(NR_PUCCH_Config_t *pucch_Config, NR_UE_NR_Capability_t *uecap);
|
||||
void set_dl_DataToUL_ACK(NR_PUCCH_Config_t *pucch_Config, int min_feedback_time);
|
||||
void set_pucch_power_config(NR_PUCCH_Config_t *pucch_Config, int do_csirs);
|
||||
void schedulingrequest_config(NR_MAC_CellGroupConfig_t *mac_CellGroupConfig,
|
||||
NR_PUCCH_Config_t *pucch_Config);
|
||||
|
||||
|
||||
@@ -876,41 +876,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
||||
pucch_Config->multi_CSI_PUCCH_ResourceList=NULL;
|
||||
|
||||
set_dl_DataToUL_ACK(pucch_Config, minRXTXTIME);
|
||||
|
||||
pucch_Config->spatialRelationInfoToAddModList = calloc(1,sizeof(*pucch_Config->spatialRelationInfoToAddModList));
|
||||
NR_PUCCH_SpatialRelationInfo_t *pucchspatial = calloc(1,sizeof(*pucchspatial));
|
||||
pucchspatial->pucch_SpatialRelationInfoId = 1;
|
||||
pucchspatial->servingCellId = NULL;
|
||||
if(do_csirs) {
|
||||
pucchspatial->referenceSignal.present = NR_PUCCH_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index;
|
||||
pucchspatial->referenceSignal.choice.csi_RS_Index = 0;
|
||||
}
|
||||
else {
|
||||
pucchspatial->referenceSignal.present = NR_PUCCH_SpatialRelationInfo__referenceSignal_PR_ssb_Index;
|
||||
pucchspatial->referenceSignal.choice.ssb_Index = 0;
|
||||
}
|
||||
pucchspatial->pucch_PathlossReferenceRS_Id = 0;
|
||||
pucchspatial->p0_PUCCH_Id = 1;
|
||||
pucchspatial->closedLoopIndex = NR_PUCCH_SpatialRelationInfo__closedLoopIndex_i0;
|
||||
ASN_SEQUENCE_ADD(&pucch_Config->spatialRelationInfoToAddModList->list,pucchspatial);
|
||||
pucch_Config->spatialRelationInfoToReleaseList=NULL;
|
||||
pucch_Config->pucch_PowerControl=calloc(1,sizeof(*pucch_Config->pucch_PowerControl));
|
||||
pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0));
|
||||
*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0 = 0;
|
||||
pucch_Config->pucch_PowerControl->deltaF_PUCCH_f1 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f1));
|
||||
*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f1 = 0;
|
||||
pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2));
|
||||
*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f2 = 0;
|
||||
pucch_Config->pucch_PowerControl->deltaF_PUCCH_f3 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f3));
|
||||
*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f3 = 0;
|
||||
pucch_Config->pucch_PowerControl->deltaF_PUCCH_f4 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f4));
|
||||
*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f4 = 0;
|
||||
pucch_Config->pucch_PowerControl->p0_Set = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->p0_Set));
|
||||
NR_P0_PUCCH_t *p00 = calloc(1,sizeof(*p00));
|
||||
p00->p0_PUCCH_Id=1;
|
||||
p00->p0_PUCCH_Value = 0;
|
||||
ASN_SEQUENCE_ADD(&pucch_Config->pucch_PowerControl->p0_Set->list,p00);
|
||||
pucch_Config->pucch_PowerControl->pathlossReferenceRSs = NULL;
|
||||
set_pucch_power_config(pucch_Config, do_csirs);
|
||||
|
||||
if (!servingcellconfigdedicated) {
|
||||
// copy pusch_Config from dedicated initialBWP
|
||||
|
||||
Reference in New Issue
Block a user