• Wei Yongjun's avatar
    sctp: Fix to handle SHUTDOWN in SHUTDOWN-PENDING state · cf896d51
    Wei Yongjun authored
    If SHUTDOWN is received in SHUTDOWN-PENDING state, enpoint should enter
    the SHUTDOWN-RECEIVED state and check the Cumulative TSN Ack field of
    the SHUTDOWN chunk (RFC 4960 Section 9.2). If the SHUTDOWN chunk can
    acknowledge all of the send DATA chunks, SHUTDOWN-ACK should be sent.
    
    But now endpoint just silently discarded the SHUTDOWN chunk.
    
    SHUTDOWN received in SHUTDOWN-PENDING state can happend when the last
    SACK is lost by network, or the SHUTDOWN chunk can acknowledge all of
    the received DATA chunks. The packet sequence(SACK lost) is like this:
    
    Endpoint A                       Endpoint B       ULP
    (ESTABLISHED)                    (ESTABLISHED)
    
                   <-----------      DATA
                                                 <--- shutdown
                                     Enter SHUTDOWN-PENDING state
      SACK         ----lost---->
    
      SHUTDOWN(*1) ------------>
    
                   <-----------      SHUTDOWN-ACK
    
     (*1) silently discarded now.
    
    This patch fix to handle SHUTDOWN in SHUTDOWN-PENDING state as the same
    as ESTABLISHED state.
    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>
    cf896d51
sm_statetable.c 33.5 KB