lib,rlc_am_nr: make sure we react to polling bit, even if SDU/SDU

segment is a duplicate/overlapping.
This commit is contained in:
Pedro Alvarez 2022-04-27 14:59:00 +01:00
parent 68cc16ad68
commit 5992303aca
1 changed files with 9 additions and 6 deletions

View File

@ -1351,6 +1351,15 @@ void rlc_am_nr_rx::handle_data_pdu(uint8_t* payload, uint32_t nof_bytes)
return;
}
// Trigger polling if poll bit is set.
// We do this before discarding duplicate SDUs/SDU segments
// Because t-PollRetransmit may transmit a PDU that was already
// received.
if (header.p) {
RlcInfo("status packet requested through polling bit");
do_status = true;
}
// Section 5.2.3.2.2, discard duplicate PDUs
if (rx_window->has_sn(header.sn) && (*rx_window)[header.sn].fully_received) {
RlcInfo("discarding duplicate SN=%d", header.sn);
@ -1393,12 +1402,6 @@ void rlc_am_nr_rx::handle_data_pdu(uint8_t* payload, uint32_t nof_bytes)
}
}
// Check poll bit
if (header.p) {
RlcInfo("status packet requested through polling bit");
do_status = true;
}
debug_state();
// 5.2.3.2.3 Actions when an AMD PDU is placed in the reception buffer