mirror of https://github.com/PentHertz/srsLTE.git
rlc,bugfix - avoid accessing the PDCP info of RLC segments when the PDCP has already discarded the respective PDCP SN.
This commit is contained in:
parent
597729ac53
commit
7ced0e73eb
|
@ -530,6 +530,7 @@ void rlc_am_lte::rlc_am_lte_tx::discard_sdu(uint32_t discard_sn)
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Discard fails when the PDCP PDU is already in Tx window.
|
||||||
logger.info("%s PDU with PDCP_SN=%d", discarded ? "Discarding" : "Couldn't discard", discard_sn);
|
logger.info("%s PDU with PDCP_SN=%d", discarded ? "Discarding" : "Couldn't discard", discard_sn);
|
||||||
|
|
||||||
// always try remove from undelivered SDUs queue
|
// always try remove from undelivered SDUs queue
|
||||||
|
@ -1296,6 +1297,10 @@ void rlc_am_lte::rlc_am_lte_tx::update_notification_ack_info(uint32_t rlc_sn)
|
||||||
// Iterate over all PDCP SNs of the same RLC PDU that were TX'ed
|
// Iterate over all PDCP SNs of the same RLC PDU that were TX'ed
|
||||||
for (rlc_am_pdu_segment& acked_segment : acked_pdu) {
|
for (rlc_am_pdu_segment& acked_segment : acked_pdu) {
|
||||||
uint32_t pdcp_sn = acked_segment.pdcp_sn();
|
uint32_t pdcp_sn = acked_segment.pdcp_sn();
|
||||||
|
if (pdcp_sn == rlc_am_pdu_segment::invalid_pdcp_sn) {
|
||||||
|
logger.debug("ACKed segment in RLC_SN=%d already discarded in PDCP. No need to notify the PDCP.", rlc_sn);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
pdcp_pdu_info& info = undelivered_sdu_info_queue[pdcp_sn];
|
pdcp_pdu_info& info = undelivered_sdu_info_queue[pdcp_sn];
|
||||||
|
|
||||||
// Remove RLC SN from PDCP PDU undelivered list
|
// Remove RLC SN from PDCP PDU undelivered list
|
||||||
|
|
Loading…
Reference in New Issue