• Cedric Roux's avatar
    nr rlc am: bugfix: correc usage of tx_next · 82e83bc6
    Cedric Roux authored
    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.)
    82e83bc6
nr_rlc_entity_am.c 63.6 KB