From 4e5f7f6ffa0bfcc8e3a58b117f405c5e633d4088 Mon Sep 17 00:00:00 2001 From: Andre Puschmann Date: Mon, 5 Feb 2018 15:12:16 +0100 Subject: [PATCH] rlc_am: flush retx queue after rx'ing status PDU to avoid unordered SNs --- lib/src/upper/rlc_am.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/src/upper/rlc_am.cc b/lib/src/upper/rlc_am.cc index 76eb10da4..862a21085 100644 --- a/lib/src/upper/rlc_am.cc +++ b/lib/src/upper/rlc_am.cc @@ -963,6 +963,11 @@ void rlc_am::handle_control_pdu(uint8_t *payload, uint32_t nof_bytes) poll_retx_timeout.reset(); + // flush retx queue to avoid unordered SNs, we expect the Rx to request lost PDUs again + if (status.N_nack > 0) { + retx_queue.clear(); + } + // Handle ACKs and NACKs std::map::iterator it; bool update_vt_a = true;