• Jon Maloy's avatar
    tipc: don't send gap blocks in ACK messages · b7ffa045
    Jon Maloy authored
    In the commit referred to below we eliminated sending of the 'gap'
    indicator in regular ACK messages, reserving this to explicit NACK
    ditto.
    
    Unfortunately we missed to also eliminate building of the 'gap block'
    area in ACK messages. This area is meant to report gaps in the
    received packet sequence following the initial gap, so that lost
    packets can be retransmitted earlier and received out-of-sequence
    packets can be released earlier. However, the interpretation of those
    blocks is dependent on a complete and correct sequence of gaps and
    acks. Hence, when the initial gap indicator is missing a single gap
    block will be interpreted as an acknowledgment of all preceding
    packets. This may lead to packets being released prematurely from the
    sender's transmit queue, with easily predicatble consequences.
    
    We now fix this by not building any gap block area if there is no
    initial gap to report.
    
    Fixes: commit 02288248 ("tipc: eliminate gap indicator from ACK messages")
    Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b7ffa045
link.c 77.7 KB