From 4187be3ff9147420b795d1138a83d0c98c01aae9 Mon Sep 17 00:00:00 2001 From: Andre Puschmann Date: Mon, 8 Nov 2021 14:55:55 +0100 Subject: [PATCH] Revert "Revert "rlc_um_nr: reimplement update of RX_Next_Reassembly"" This reverts commit 296758e4abe66336b3dcbf743fa90d7c69d59463. --- lib/src/rlc/rlc_um_nr.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/src/rlc/rlc_um_nr.cc b/lib/src/rlc/rlc_um_nr.cc index 4d0553881..c87ac2eb4 100644 --- a/lib/src/rlc/rlc_um_nr.cc +++ b/lib/src/rlc/rlc_um_nr.cc @@ -433,9 +433,12 @@ void rlc_um_nr::rlc_um_nr_rx::handle_rx_buffer_update(const uint32_t sn) // find next SN in rx buffer if (sn == RX_Next_Reassembly) { - RX_Next_Reassembly = ((RX_Next_Reassembly + 1) % mod); - while (RX_MOD_NR_BASE(RX_Next_Reassembly) < RX_MOD_NR_BASE(RX_Next_Highest)) { - RX_Next_Reassembly = (RX_Next_Reassembly + 1) % mod; + for (auto it = rx_window.begin(); it != rx_window.end(); ++it) { + logger.debug("SN=%d has %zd segments", it->first, it->second.segments.size()); + if (RX_MOD_NR_BASE(it->first) > RX_MOD_NR_BASE(RX_Next_Reassembly)) { + RX_Next_Reassembly = it->first; + break; + } } logger.debug("Updating RX_Next_Reassembly=%d", RX_Next_Reassembly); }