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_BWP_UplinkDedicated_t *initialUplinkBWP = SpCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP;
|
||||||
NR_PUCCH_Config_t *pucch_Config = initialUplinkBWP->pucch_Config->choice.setup;
|
NR_PUCCH_Config_t *pucch_Config = initialUplinkBWP->pucch_Config->choice.setup;
|
||||||
config_pucch_resset1(pucch_Config, uecap);
|
config_pucch_resset1(pucch_Config, uecap);
|
||||||
|
set_pucch_power_config(pucch_Config, carrier->do_CSIRS);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fill_initial_cellGroupConfig(int uid,
|
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,
|
void schedulingrequest_config(NR_MAC_CellGroupConfig_t *mac_CellGroupConfig,
|
||||||
NR_PUCCH_Config_t *pucch_Config) {
|
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_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 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_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,
|
void schedulingrequest_config(NR_MAC_CellGroupConfig_t *mac_CellGroupConfig,
|
||||||
NR_PUCCH_Config_t *pucch_Config);
|
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;
|
pucch_Config->multi_CSI_PUCCH_ResourceList=NULL;
|
||||||
|
|
||||||
set_dl_DataToUL_ACK(pucch_Config, minRXTXTIME);
|
set_dl_DataToUL_ACK(pucch_Config, minRXTXTIME);
|
||||||
|
set_pucch_power_config(pucch_Config, do_csirs);
|
||||||
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;
|
|
||||||
|
|
||||||
if (!servingcellconfigdedicated) {
|
if (!servingcellconfigdedicated) {
|
||||||
// copy pusch_Config from dedicated initialBWP
|
// copy pusch_Config from dedicated initialBWP
|
||||||
|
|||||||
Reference in New Issue
Block a user