Added retransmissions to the UE's PDCP on re-establishment.

master
Pedro Alvarez 4 years ago committed by Francisco Paisana
parent 8ac6d7382f
commit 963dff34af

@ -84,6 +84,13 @@ void pdcp_entity_lte::reestablish()
} else { } else {
// Send status report if required on reestablishment in RLC AM // Send status report if required on reestablishment in RLC AM
send_status_report(); send_status_report();
// Re-transmit unacknwoledged SDUs
std::map<uint32_t, unique_byte_buffer_t> undelivered_sdus = std::move(undelivered_sdus_queue);
undelivered_sdus_queue.clear();
for (std::map<uint32_t, unique_byte_buffer_t>::iterator it = undelivered_sdus.begin(); it != undelivered_sdus.end();
++it) {
write_sdu(std::move(it->second), it->first);
}
} }
} }
@ -119,7 +126,7 @@ void pdcp_entity_lte::write_sdu(unique_byte_buffer_t sdu, int upper_sn)
// PDUs will be removed from the queue, either when the lower layers will report // PDUs will be removed from the queue, either when the lower layers will report
// a succesfull transmission or when the discard timer expires. // a succesfull transmission or when the discard timer expires.
// Status report will also use this queue, to know the First Missing SDU (FMS). // Status report will also use this queue, to know the First Missing SDU (FMS).
if (!rlc->rb_is_um(lcid)) { if (is_drb() && !rlc->rb_is_um(lcid)) {
store_sdu(used_sn, sdu); store_sdu(used_sn, sdu);
} }

Loading…
Cancel
Save