|
|
|
@ -119,7 +119,8 @@ void ue::new_slot(slot_point pdcch_slot)
|
|
|
|
|
auto& cc = carriers[ue_cc_cfg.cc];
|
|
|
|
|
if (cc != nullptr) {
|
|
|
|
|
// Discount UL HARQ pending bytes to BSR
|
|
|
|
|
for (uint32_t pid = 0; pid < cc->harq_ent.nof_dl_harqs(); ++pid) {
|
|
|
|
|
for (uint32_t pid = 0; pid < cc->harq_ent.nof_ul_harqs(); ++pid) {
|
|
|
|
|
if (not cc->harq_ent.ul_harq(pid).empty()) {
|
|
|
|
|
ul_pending_bytes -= cc->harq_ent.ul_harq(pid).tbs();
|
|
|
|
|
if (last_sr_slot.valid() and cc->harq_ent.ul_harq(pid).harq_slot_tx() > last_sr_slot) {
|
|
|
|
|
last_sr_slot.clear();
|
|
|
|
@ -127,6 +128,7 @@ void ue::new_slot(slot_point pdcch_slot)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (ul_pending_bytes == 0 and last_sr_slot.valid()) {
|
|
|
|
|
// If unanswered SR is pending
|
|
|
|
|
ul_pending_bytes = 512;
|
|
|
|
|