• Wei Yongjun's avatar
    sctp: Add check for the TSN field of the SHUTDOWN chunk · df10eec4
    Wei Yongjun authored
    If SHUTDOWN chunk is received Cumulative TSN Ack beyond the max tsn currently
    send, SHUTDOWN chunk be accepted and the association will be broken. New data
    is send, but after received SACK it will be drop because TSN in SACK is less
    than the Cumulative TSN, data will be retrans again and again even if correct
    SACK is received.
    
    The packet sequence is like this:
    
    Endpoint A                       Endpoint B       ULP
    (ESTABLISHED)                    (ESTABLISHED)
    
                   <-----------      DATA (TSN=x-1)
    
                   <-----------      DATA (TSN=x)
    
      SHUTDOWN     ----------->      (Now Cumulative TSN=x+1000)
      (TSN=x+1000)
                   <-----------      DATA (TSN=x+1)
    
      SACK         ----------->      drop the SACK
      (TSN=x+1)
                   <-----------      DATA (TSN=x+1)(retrans)
    
    This patch fix this problem by terminating the association and respond to
    the sender with an ABORT.
    Signed-off-by: default avatarWei Yongjun <yjwei@cn.fujitsu.com>
    Signed-off-by: default avatarVlad Yasevich <vladislav.yasevich@hp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    df10eec4
sm_statefuns.c 186 KB