• W
    sctp: Add check for the TSN field of the SHUTDOWN chunk · df10eec4
    Wei Yongjun 提交于
    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: NWei Yongjun <yjwei@cn.fujitsu.com>
    Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    df10eec4
sm_statefuns.c 186.2 KB