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

This commit is contained in:
Pedro Alvarez 2021-02-16 11:53:55 +00:00 committed by Francisco Paisana
parent 8ac6d7382f
commit 963dff34af
1 changed files with 8 additions and 1 deletions

View File

@ -84,6 +84,13 @@ void pdcp_entity_lte::reestablish()
} else {
// Send status report if required on reestablishment in RLC AM
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
// a succesfull transmission or when the discard timer expires.
// 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);
}