Skip to content

nr rlc am: bugfix: correct usage of tx_next

Cédric Roux requested to merge nr-rlc-fix-tx-next into develop

tx_next was increased only when all segments of an SDU were sent to lower layers. This may lead to a situation where the receive entity transmits a control PDU that is rejected because it sets its ACK to tx_next+1 (if all segments were not transmitted when the control PDU is sent).

What is done now is to increase tx_next as soon as we send the first segment of an SDU to lower layers. A control PDU received from the receive entity is now accepted and processed.

Specifications (38.322 5.2.3.1.1) say to increase tx_next when the RLC entity receives an SDU from upper layers. But for us, since the buffering of SDUs is done in the RLC layer and since the buffer size may be big, we may increase tx_next too much. The choice has been made to increase it only when we transmit an SDU to lower layers. We may change this logic if needed. (But it won't be simple.)

Merge request reports