fix for SA nr of dl harq
This commit is contained in:
@@ -610,12 +610,23 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
|
|||||||
UE_info->CellGroup[UE_id] = CellGroup;
|
UE_info->CellGroup[UE_id] = CellGroup;
|
||||||
LOG_I(NR_MAC,"Modified UE_id %d/%x with CellGroup\n",UE_id,rnti);
|
LOG_I(NR_MAC,"Modified UE_id %d/%x with CellGroup\n",UE_id,rnti);
|
||||||
process_CellGroup(CellGroup,&UE_info->UE_sched_ctrl[UE_id]);
|
process_CellGroup(CellGroup,&UE_info->UE_sched_ctrl[UE_id]);
|
||||||
|
const NR_ServingCellConfig_t *servingCellConfig = CellGroup ? CellGroup->spCellConfig->spCellConfigDedicated : NULL;
|
||||||
|
const NR_PDSCH_ServingCellConfig_t *pdsch = servingCellConfig ? servingCellConfig->pdsch_ServingCellConfig->choice.setup : NULL;
|
||||||
|
const int nrofHARQ = pdsch ? (pdsch->nrofHARQ_ProcessesForPDSCH ?
|
||||||
|
get_nrofHARQ_ProcessesForPDSCH(*pdsch->nrofHARQ_ProcessesForPDSCH) : 8) : 8;
|
||||||
|
// add all available DL HARQ processes for this UE
|
||||||
|
NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
|
||||||
|
create_nr_list(&sched_ctrl->available_dl_harq, nrofHARQ);
|
||||||
|
for (int harq = 0; harq < nrofHARQ; harq++)
|
||||||
|
add_tail_nr_list(&sched_ctrl->available_dl_harq, harq);
|
||||||
|
create_nr_list(&sched_ctrl->feedback_dl_harq, nrofHARQ);
|
||||||
|
create_nr_list(&sched_ctrl->retrans_dl_harq, nrofHARQ);
|
||||||
// update coreset/searchspace
|
// update coreset/searchspace
|
||||||
void *bwpd = NULL;
|
void *bwpd = NULL;
|
||||||
target_ss = NR_SearchSpace__searchSpaceType_PR_common;
|
target_ss = NR_SearchSpace__searchSpaceType_PR_common;
|
||||||
if ((UE_info->UE_sched_ctrl[UE_id].active_bwp)) {
|
if ((sched_ctrl->active_bwp)) {
|
||||||
target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
|
target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
|
||||||
bwpd = (void*)UE_info->UE_sched_ctrl[UE_id].active_bwp->bwp_Dedicated;
|
bwpd = (void*)sched_ctrl->active_bwp->bwp_Dedicated;
|
||||||
}
|
}
|
||||||
else if (CellGroup->spCellConfig &&
|
else if (CellGroup->spCellConfig &&
|
||||||
CellGroup->spCellConfig->spCellConfigDedicated &&
|
CellGroup->spCellConfig->spCellConfigDedicated &&
|
||||||
@@ -623,9 +634,9 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
|
|||||||
target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
|
target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
|
||||||
bwpd = (void*)CellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP;
|
bwpd = (void*)CellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP;
|
||||||
}
|
}
|
||||||
UE_info->UE_sched_ctrl[UE_id].search_space = get_searchspace(scc, bwpd, target_ss);
|
sched_ctrl->search_space = get_searchspace(scc, bwpd, target_ss);
|
||||||
UE_info->UE_sched_ctrl[UE_id].coreset = get_coreset(Mod_idP, scc, bwpd, UE_info->UE_sched_ctrl[UE_id].search_space, target_ss);
|
sched_ctrl->coreset = get_coreset(Mod_idP, scc, bwpd, sched_ctrl->search_space, target_ss);
|
||||||
UE_info->UE_sched_ctrl[UE_id].maxL = 2;
|
sched_ctrl->maxL = 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_MAC_CONFIG, VCD_FUNCTION_OUT);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_MAC_CONFIG, VCD_FUNCTION_OUT);
|
||||||
|
|||||||
@@ -1991,15 +1991,16 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
|
|||||||
"no pdsch-ServingCellConfig found for UE %d\n",
|
"no pdsch-ServingCellConfig found for UE %d\n",
|
||||||
UE_id);
|
UE_id);
|
||||||
const NR_PDSCH_ServingCellConfig_t *pdsch = servingCellConfig ? servingCellConfig->pdsch_ServingCellConfig->choice.setup : NULL;
|
const NR_PDSCH_ServingCellConfig_t *pdsch = servingCellConfig ? servingCellConfig->pdsch_ServingCellConfig->choice.setup : NULL;
|
||||||
const int nrofHARQ = pdsch ? (pdsch->nrofHARQ_ProcessesForPDSCH ?
|
if (pdsch) {
|
||||||
get_nrofHARQ_ProcessesForPDSCH(*pdsch->nrofHARQ_ProcessesForPDSCH) : 8) : 8;
|
const int nrofHARQ = pdsch->nrofHARQ_ProcessesForPDSCH ?
|
||||||
// add all available DL HARQ processes for this UE
|
get_nrofHARQ_ProcessesForPDSCH(*pdsch->nrofHARQ_ProcessesForPDSCH) : 8;
|
||||||
create_nr_list(&sched_ctrl->available_dl_harq, nrofHARQ);
|
// add all available DL HARQ processes for this UE
|
||||||
for (int harq = 0; harq < nrofHARQ; harq++)
|
create_nr_list(&sched_ctrl->available_dl_harq, nrofHARQ);
|
||||||
add_tail_nr_list(&sched_ctrl->available_dl_harq, harq);
|
for (int harq = 0; harq < nrofHARQ; harq++)
|
||||||
create_nr_list(&sched_ctrl->feedback_dl_harq, nrofHARQ);
|
add_tail_nr_list(&sched_ctrl->available_dl_harq, harq);
|
||||||
create_nr_list(&sched_ctrl->retrans_dl_harq, nrofHARQ);
|
create_nr_list(&sched_ctrl->feedback_dl_harq, nrofHARQ);
|
||||||
|
create_nr_list(&sched_ctrl->retrans_dl_harq, nrofHARQ);
|
||||||
|
}
|
||||||
// add all available UL HARQ processes for this UE
|
// add all available UL HARQ processes for this UE
|
||||||
create_nr_list(&sched_ctrl->available_ul_harq, 16);
|
create_nr_list(&sched_ctrl->available_ul_harq, 16);
|
||||||
for (int harq = 0; harq < 16; harq++)
|
for (int harq = 0; harq < 16; harq++)
|
||||||
|
|||||||
@@ -306,6 +306,8 @@ int get_spf(nfapi_nr_config_request_scf_t *cfg);
|
|||||||
|
|
||||||
int to_absslot(nfapi_nr_config_request_scf_t *cfg,int frame,int slot);
|
int to_absslot(nfapi_nr_config_request_scf_t *cfg,int frame,int slot);
|
||||||
|
|
||||||
|
int get_nrofHARQ_ProcessesForPDSCH(e_NR_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH n);
|
||||||
|
|
||||||
void nr_get_tbs_dl(nfapi_nr_dl_tti_pdsch_pdu *pdsch_pdu,
|
void nr_get_tbs_dl(nfapi_nr_dl_tti_pdsch_pdu *pdsch_pdu,
|
||||||
int x_overhead,
|
int x_overhead,
|
||||||
uint8_t numdmrscdmgroupnodata,
|
uint8_t numdmrscdmgroupnodata,
|
||||||
|
|||||||
Reference in New Issue
Block a user