fix in pucch configuration
This commit is contained in:
@@ -260,7 +260,9 @@ int configure_fapi_dl_Tx(int Mod_idP,
|
||||
gNB_MAC_INST *nr_mac = RC.nrmac[Mod_idP];
|
||||
NR_COMMON_channels_t *cc = nr_mac->common_channels;
|
||||
NR_ServingCellConfigCommon_t *scc = cc->ServingCellConfigCommon;
|
||||
|
||||
|
||||
int pucch_fb_timing = pucch_sched->ul_slot - slotP;
|
||||
|
||||
nfapi_nr_dl_tti_request_pdu_t *dl_tti_pdcch_pdu;
|
||||
nfapi_nr_dl_tti_request_pdu_t *dl_tti_pdsch_pdu;
|
||||
int TBS;
|
||||
@@ -355,7 +357,7 @@ int configure_fapi_dl_Tx(int Mod_idP,
|
||||
dci_pdu_rel15[0].dai = (pucch_sched->dai_c-1)&3;
|
||||
dci_pdu_rel15[0].tpc = 2;
|
||||
dci_pdu_rel15[0].pucch_resource_indicator = 0; //FIXME this is fixed to 0 in phy test with only one user
|
||||
dci_pdu_rel15[0].pdsch_to_harq_feedback_timing_indicator = pucch_sched->ul_slot - slotP; //FIXME check on validity of indicator depending on type of DCI
|
||||
dci_pdu_rel15[0].pdsch_to_harq_feedback_timing_indicator = pucch_fb_timing-1; //FIXME valid only for format 1_0
|
||||
|
||||
LOG_D(MAC, "[gNB scheduler phytest] DCI type 1 payload: freq_alloc %d (%d,%d,%d), time_alloc %d, vrb to prb %d, mcs %d tb_scaling %d ndi %d rv %d\n",
|
||||
dci_pdu_rel15[0].frequency_domain_assignment,
|
||||
|
||||
@@ -561,8 +561,7 @@ void nr_configure_pucch(nfapi_nr_pucch_pdu_t* pucch_pdu,
|
||||
NR_PUCCH_ResourceSet_t *pucchresset;
|
||||
NR_PUCCH_FormatConfig_t *pucchfmt;
|
||||
NR_PUCCH_ResourceId_t *resource_id = NULL;
|
||||
NR_PUSCH_Config_t *pusch_Config = bwp->bwp_Dedicated->pusch_Config->choice.setup;
|
||||
long *pusch_id = pusch_Config->dataScramblingIdentityPUSCH;
|
||||
|
||||
long *id0 = NULL;
|
||||
int n_list, n_set;
|
||||
uint16_t N2,N3;
|
||||
@@ -570,39 +569,42 @@ void nr_configure_pucch(nfapi_nr_pucch_pdu_t* pucch_pdu,
|
||||
|
||||
pucch_pdu->bit_len_harq = O_ack;
|
||||
|
||||
if (pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA != NULL)
|
||||
id0 = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA->choice.setup->transformPrecodingDisabled->scramblingID0;
|
||||
if (pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB != NULL)
|
||||
id0 = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->transformPrecodingDisabled->scramblingID0;
|
||||
|
||||
// hop flags and hopping id are valid for any BWP
|
||||
switch (scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->pucch_GroupHopping){
|
||||
case 0 :
|
||||
// if neither, both disabled
|
||||
pucch_pdu->group_hop_flag = 0;
|
||||
pucch_pdu->sequence_hop_flag = 0;
|
||||
break;
|
||||
case 1 :
|
||||
// if enable, group enabled
|
||||
pucch_pdu->group_hop_flag = 1;
|
||||
pucch_pdu->sequence_hop_flag = 0;
|
||||
break;
|
||||
case 2 :
|
||||
// if disable, sequence disabled
|
||||
pucch_pdu->group_hop_flag = 0;
|
||||
pucch_pdu->sequence_hop_flag = 1;
|
||||
break;
|
||||
default:
|
||||
AssertFatal(1==0,"msg1 FDM identifier %ld undefined (0,1,2,3) \n", scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rach_ConfigGeneric.msg1_FDM);
|
||||
}
|
||||
|
||||
if (scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->hoppingId != NULL)
|
||||
pucch_pdu->hopping_id = *scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->hoppingId;
|
||||
else
|
||||
pucch_pdu->hopping_id = *scc->physCellId;
|
||||
|
||||
if (bwp) { // This is not the InitialBWP
|
||||
|
||||
NR_PUSCH_Config_t *pusch_Config = bwp->bwp_Dedicated->pusch_Config->choice.setup;
|
||||
long *pusch_id = pusch_Config->dataScramblingIdentityPUSCH;
|
||||
|
||||
if (pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA != NULL)
|
||||
id0 = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeA->choice.setup->transformPrecodingDisabled->scramblingID0;
|
||||
if (pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB != NULL)
|
||||
id0 = pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->transformPrecodingDisabled->scramblingID0;
|
||||
|
||||
// hop flags and hopping id are valid for any BWP
|
||||
switch (bwp->bwp_Common->pucch_ConfigCommon->choice.setup->pucch_GroupHopping){
|
||||
case 0 :
|
||||
// if neither, both disabled
|
||||
pucch_pdu->group_hop_flag = 0;
|
||||
pucch_pdu->sequence_hop_flag = 0;
|
||||
break;
|
||||
case 1 :
|
||||
// if enable, group enabled
|
||||
pucch_pdu->group_hop_flag = 1;
|
||||
pucch_pdu->sequence_hop_flag = 0;
|
||||
break;
|
||||
case 2 :
|
||||
// if disable, sequence disabled
|
||||
pucch_pdu->group_hop_flag = 0;
|
||||
pucch_pdu->sequence_hop_flag = 1;
|
||||
break;
|
||||
default:
|
||||
AssertFatal(1==0,"Group hopping flag %ld undefined (0,1,2) \n", bwp->bwp_Common->pucch_ConfigCommon->choice.setup->pucch_GroupHopping);
|
||||
}
|
||||
|
||||
if (bwp->bwp_Common->pucch_ConfigCommon->choice.setup->hoppingId != NULL)
|
||||
pucch_pdu->hopping_id = *bwp->bwp_Common->pucch_ConfigCommon->choice.setup->hoppingId;
|
||||
else
|
||||
pucch_pdu->hopping_id = *scc->physCellId;
|
||||
|
||||
pucch_pdu->bwp_size = NRRIV2BW(bwp->bwp_Common->genericParameters.locationAndBandwidth,275);
|
||||
pucch_pdu->bwp_start = NRRIV2PRBOFFSET(bwp->bwp_Common->genericParameters.locationAndBandwidth,275);
|
||||
pucch_pdu->subcarrier_spacing = bwp->bwp_Common->genericParameters.subcarrierSpacing;
|
||||
|
||||
Reference in New Issue
Block a user