disabled all UL in the MAC during handover, including scheduling requests

master
Francisco Paisana 5 years ago committed by Francisco Paisana
parent 17cd3a02cb
commit 6908e0fab1

@ -959,14 +959,17 @@ uint32_t sched_ue::get_pending_ul_old_data(uint32_t cc_idx)
// Private lock-free implementation // Private lock-free implementation
uint32_t sched_ue::get_pending_ul_new_data_unlocked(uint32_t tti) uint32_t sched_ue::get_pending_ul_new_data_unlocked(uint32_t tti)
{ {
// Note: If there are no active bearers, scheduling requests are also ignored.
uint32_t pending_data = 0; uint32_t pending_data = 0;
bool ul_bearers_found = false;
for (int i = 0; i < sched_interface::MAX_LC; i++) { for (int i = 0; i < sched_interface::MAX_LC; i++) {
if (bearer_is_ul(&lch[i])) { if (bearer_is_ul(&lch[i])) {
pending_data += lch[i].bsr; pending_data += lch[i].bsr;
ul_bearers_found = true;
} }
} }
if (pending_data == 0) { if (pending_data == 0) {
if (is_sr_triggered()) { if (is_sr_triggered() and ul_bearers_found) {
return 512; return 512;
} }
for (uint32_t cc_idx = 0; cc_idx < carriers.size(); ++cc_idx) { for (uint32_t cc_idx = 0; cc_idx < carriers.size(); ++cc_idx) {

@ -966,11 +966,16 @@ void rrc::ue::rrc_mobility::intraenb_ho_st::enter(rrc_mobility* f)
return; return;
} }
/* Freeze all DRBs. SRBs are needed for sending the HO Cmd */ /* Freeze all DRBs. SRBs DL are needed for sending the HO Cmd */
for (const drb_to_add_mod_s& drb : f->rrc_ue->bearer_list.get_established_drbs()) { for (const drb_to_add_mod_s& drb : f->rrc_ue->bearer_list.get_established_drbs()) {
f->rrc_enb->pdcp->del_bearer(f->rrc_ue->rnti, drb.drb_id + 2); f->rrc_enb->pdcp->del_bearer(f->rrc_ue->rnti, drb.drb_id + 2);
f->rrc_enb->mac->bearer_ue_rem(f->rrc_ue->rnti, drb.drb_id + 2); f->rrc_enb->mac->bearer_ue_rem(f->rrc_ue->rnti, drb.drb_id + 2);
} }
sched_interface::ue_bearer_cfg_t bcfg = {};
bcfg.direction = sched_interface::ue_bearer_cfg_t::DL;
for (uint32_t srb_id = 0; srb_id < 3; ++srb_id) {
f->rrc_enb->mac->bearer_ue_cfg(f->rrc_ue->rnti, srb_id, &bcfg);
}
/* Prepare RRC Reconf Message with mobility info */ /* Prepare RRC Reconf Message with mobility info */
dl_dcch_msg_s dl_dcch_msg; dl_dcch_msg_s dl_dcch_msg;

Loading…
Cancel
Save