nr,gnb,sched: avoid that ConRes CE gets allocated multiple times for the same Msg4

This commit is contained in:
Francisco 2021-11-23 12:07:40 +00:00 committed by Francisco Paisana
parent afd7bb8631
commit 1a985093f9
1 changed files with 4 additions and 2 deletions

View File

@ -163,9 +163,11 @@ void ue::mac_buffer_state(uint32_t ce_lcid, uint32_t nof_cmds)
void ue::rlc_buffer_state(uint32_t lcid, uint32_t newtx, uint32_t retx)
{
if (lcid == 0) {
if (lcid == 0 and buffers.get_dl_tx_total(0) == 0) {
// In case of DL-CCCH, schedule ConRes CE
// Note: use push_front because ConRes CE has priority
// Note1: rlc_buffer_state may be called multiple times for the same CCCH. Thus, we need to confirm lcid=0 buffer
// state is zero to avoid that multiple CEs being scheduled.
// Note2: use push_front because ConRes CE has priority
buffers.pending_ces.push_front({srsran::mac_sch_subpdu_nr::CON_RES_ID, cfg().carriers[0].cc});
}
buffers.dl_buffer_state(lcid, newtx, retx);