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];
|
gNB_MAC_INST *nr_mac = RC.nrmac[Mod_idP];
|
||||||
NR_COMMON_channels_t *cc = nr_mac->common_channels;
|
NR_COMMON_channels_t *cc = nr_mac->common_channels;
|
||||||
NR_ServingCellConfigCommon_t *scc = cc->ServingCellConfigCommon;
|
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_pdcch_pdu;
|
||||||
nfapi_nr_dl_tti_request_pdu_t *dl_tti_pdsch_pdu;
|
nfapi_nr_dl_tti_request_pdu_t *dl_tti_pdsch_pdu;
|
||||||
int TBS;
|
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].dai = (pucch_sched->dai_c-1)&3;
|
||||||
dci_pdu_rel15[0].tpc = 2;
|
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].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",
|
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,
|
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_ResourceSet_t *pucchresset;
|
||||||
NR_PUCCH_FormatConfig_t *pucchfmt;
|
NR_PUCCH_FormatConfig_t *pucchfmt;
|
||||||
NR_PUCCH_ResourceId_t *resource_id = NULL;
|
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;
|
long *id0 = NULL;
|
||||||
int n_list, n_set;
|
int n_list, n_set;
|
||||||
uint16_t N2,N3;
|
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;
|
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
|
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_size = NRRIV2BW(bwp->bwp_Common->genericParameters.locationAndBandwidth,275);
|
||||||
pucch_pdu->bwp_start = NRRIV2PRBOFFSET(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;
|
pucch_pdu->subcarrier_spacing = bwp->bwp_Common->genericParameters.subcarrierSpacing;
|
||||||
|
|||||||
Reference in New Issue
Block a user