Added more checks when applying dci decisions in the dataplane, to reduce RLC request misses

This commit is contained in:
Xenofon Foukas
2016-03-16 11:48:18 +00:00
parent c2971d5176
commit ef22a539aa
@@ -181,6 +181,17 @@ void apply_ue_spec_scheduling_decisions(mid_t mod_id,
mod_id, frame, lcid, CC_id, rlc_size); mod_id, frame, lcid, CC_id, rlc_size);
if (rlc_size > 0) { if (rlc_size > 0) {
rlc_status = mac_rlc_status_ind(mod_id,
rnti,
mod_id,
frame,
ENB_FLAG_YES,
MBMS_FLAG_NO,
lcid,
0);
if (rlc_status.bytes_in_buffer > 0) {
rlc_status = mac_rlc_status_ind(mod_id, rlc_status = mac_rlc_status_ind(mod_id,
rnti, rnti,
mod_id, mod_id,
@@ -194,6 +205,8 @@ void apply_ue_spec_scheduling_decisions(mid_t mod_id,
LOG_D(MAC, "[TEST] RLC can give %d bytes for LCID %d during second call\n", rlc_status.bytes_in_buffer, lcid); LOG_D(MAC, "[TEST] RLC can give %d bytes for LCID %d during second call\n", rlc_status.bytes_in_buffer, lcid);
if (rlc_status.bytes_in_buffer > 0) {
sdu_lengths[i] += mac_rlc_data_req(mod_id, sdu_lengths[i] += mac_rlc_data_req(mod_id,
rnti, rnti,
mod_id, mod_id,
@@ -218,6 +231,8 @@ void apply_ue_spec_scheduling_decisions(mid_t mod_id,
num_sdus++; num_sdus++;
} }
}
}
} // SDU creation end } // SDU creation end
@@ -249,7 +264,7 @@ void apply_ue_spec_scheduling_decisions(mid_t mod_id,
ta_update = (ta_len > 0) ? ue_sched_ctl->ta_update : 0; ta_update = (ta_len > 0) ? ue_sched_ctl->ta_update : 0;
// If there is nothing to schedule, just leave // If there is nothing to schedule, just leave
if ((sdu_length_total + ta_len) < 0) { if ((sdu_length_total + ta_len) <= 0) {
return; return;
} }