Fix mcs table update during RRCReconfiguration
This commit is contained in:
@@ -673,8 +673,6 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
|
|||||||
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]);
|
||||||
NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
|
NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
|
||||||
sched_ctrl->update_pdsch_ps = true;
|
|
||||||
sched_ctrl->update_pusch_ps = true;
|
|
||||||
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;
|
||||||
if (get_softmodem_params()->sa) {
|
if (get_softmodem_params()->sa) {
|
||||||
// add all available DL HARQ processes for this UE in SA
|
// add all available DL HARQ processes for this UE in SA
|
||||||
|
|||||||
@@ -589,7 +589,7 @@ bool allocate_dl_retransmission(module_id_t module_id,
|
|||||||
}
|
}
|
||||||
/* check whether we need to switch the TDA allocation since the last
|
/* check whether we need to switch the TDA allocation since the last
|
||||||
* (re-)transmission */
|
* (re-)transmission */
|
||||||
if (ps->time_domain_allocation != tda || sched_ctrl->update_pdsch_ps) {
|
if (ps->time_domain_allocation != tda) {
|
||||||
nr_set_pdsch_semi_static(sib1,
|
nr_set_pdsch_semi_static(sib1,
|
||||||
scc,
|
scc,
|
||||||
cg,
|
cg,
|
||||||
@@ -599,7 +599,6 @@ bool allocate_dl_retransmission(module_id_t module_id,
|
|||||||
ps->nrOfLayers,
|
ps->nrOfLayers,
|
||||||
sched_ctrl,
|
sched_ctrl,
|
||||||
ps);
|
ps);
|
||||||
sched_ctrl->update_pdsch_ps = false;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* the retransmission will use a different time domain allocation, check
|
/* the retransmission will use a different time domain allocation, check
|
||||||
@@ -914,7 +913,6 @@ void pf_dl(module_id_t module_id,
|
|||||||
layers[UE_id],
|
layers[UE_id],
|
||||||
sched_ctrl,
|
sched_ctrl,
|
||||||
ps);
|
ps);
|
||||||
sched_ctrl->update_pdsch_ps = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint16_t slbitmap = SL_to_bitmap(ps->startSymbolIndex, ps->nrOfSymbols);
|
const uint16_t slbitmap = SL_to_bitmap(ps->startSymbolIndex, ps->nrOfSymbols);
|
||||||
@@ -1067,6 +1065,8 @@ void nr_mac_update_timers(module_id_t module_id,
|
|||||||
sched_ctrl->rrc_processing_timer--;
|
sched_ctrl->rrc_processing_timer--;
|
||||||
if (sched_ctrl->rrc_processing_timer == 0) {
|
if (sched_ctrl->rrc_processing_timer == 0) {
|
||||||
LOG_I(NR_MAC, "(%d.%d) De-activating RRC processing timer for UE %d\n", frame, slot, UE_id);
|
LOG_I(NR_MAC, "(%d.%d) De-activating RRC processing timer for UE %d\n", frame, slot, UE_id);
|
||||||
|
sched_ctrl->update_pdsch_ps = true;
|
||||||
|
sched_ctrl->update_pusch_ps = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -579,16 +579,21 @@ void nr_set_pdsch_semi_static(const NR_SIB1_t *sib1,
|
|||||||
bwpd = (NR_BWP_DownlinkDedicated_t*)bwpd0;
|
bwpd = (NR_BWP_DownlinkDedicated_t*)bwpd0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bwpd &&
|
if (sched_ctrl->update_pdsch_ps == true) {
|
||||||
bwpd->pdsch_Config &&
|
if (bwpd &&
|
||||||
bwpd->pdsch_Config->choice.setup &&
|
bwpd->pdsch_Config &&
|
||||||
bwpd->pdsch_Config->choice.setup->mcs_Table) {
|
bwpd->pdsch_Config->choice.setup &&
|
||||||
if (*bwpd->pdsch_Config->choice.setup->mcs_Table == 0)
|
bwpd->pdsch_Config->choice.setup->mcs_Table) {
|
||||||
ps->mcsTableIdx = 1;
|
if (*bwpd->pdsch_Config->choice.setup->mcs_Table == 0) {
|
||||||
else
|
ps->mcsTableIdx = 1;
|
||||||
ps->mcsTableIdx = 2;
|
} else {
|
||||||
|
ps->mcsTableIdx = 2;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ps->mcsTableIdx = 0;
|
||||||
|
}
|
||||||
|
sched_ctrl->update_pdsch_ps = false;
|
||||||
}
|
}
|
||||||
else ps->mcsTableIdx = 0;
|
|
||||||
LOG_D(NR_MAC,"MCS Table Index: %d\n",ps->mcsTableIdx);
|
LOG_D(NR_MAC,"MCS Table Index: %d\n",ps->mcsTableIdx);
|
||||||
|
|
||||||
NR_PDSCH_Config_t *pdsch_Config;
|
NR_PDSCH_Config_t *pdsch_Config;
|
||||||
|
|||||||
Reference in New Issue
Block a user