diff --git a/srsenb/src/stack/upper/pdcp.cc b/srsenb/src/stack/upper/pdcp.cc index 3ca5c7b5f..9607e33e5 100644 --- a/srsenb/src/stack/upper/pdcp.cc +++ b/srsenb/src/stack/upper/pdcp.cc @@ -172,7 +172,7 @@ void pdcp::user_interface_rlc::write_sdu(uint32_t lcid, srslte::unique_byte_buff void pdcp::user_interface_rlc::discard_sdu(uint32_t lcid, uint32_t discard_sn) { - rlc->discard_sdu(lcid, discard_sn); + rlc->discard_sdu(rnti, lcid, discard_sn); } bool pdcp::user_interface_rlc::rb_is_um(uint32_t lcid) diff --git a/srsenb/src/stack/upper/rlc.cc b/srsenb/src/stack/upper/rlc.cc index 5ee8372d0..038c81984 100644 --- a/srsenb/src/stack/upper/rlc.cc +++ b/srsenb/src/stack/upper/rlc.cc @@ -205,12 +205,11 @@ void rlc::discard_sdu(uint16_t rnti, uint32_t lcid, uint32_t discard_sn) pthread_rwlock_rdlock(&rwlock); if (users.count(rnti)) { - users[rnti].rlc->discard_sdu(lcid, discard_sn); - tx_queue = users[rnti].rlc->get_buffer_state(lcid); - } - // In the eNodeB, there is no polling for buffer state from the scheduler, thus + users[rnti].rlc->discard_sdu(lcid, discard_sn); + tx_queue = users[rnti].rlc->get_buffer_state(lcid); + + // In the eNodeB, there is no polling for buffer state from the scheduler, thus // communicate buffer state every time a new SDU is discarded - uint32_t retx_queue = 0; mac->rlc_buffer_state(rnti, lcid, tx_queue, retx_queue); log_h->info("Buffer state: rnti=0x%x, lcid=%d, tx_queue=%d\n", rnti, lcid, tx_queue);