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;