NAME

  ShutInEstab2.seq - SHUTDOWN MUST NOT be send in SHUTDOWN-RECEIVED State


PURPOSE

  To check that if endpoint is in SHUTDOWN-RECEIVED state the the endpoint
  MUST NOT send a SHUTDOWN in response to a ULP request.


SYNOPSIS

  ./ShutInEstab2.seq [-tooloption ...] -pkt ./ShutInEstab2.def
    -tooloption : v6eval tool option
  See Also: ../common/STD_PKT_COMMON.def
            ../common/SCTP_COMMON.def


PRE-TEST CONDITION

  Association is established between endpoint A and B. Arrange the
  data in endpoint B such that Terminate primitive is received from
  upper layers in SHUTDOWN-RECEIVED state.


TEST PROCEDURE

  Endpoint A                           Endpoint B                ULP
  (ESTABLISHED)                        (ESTABLISHED)
                                                   <-----    Send
                <----------------       DATA
  SHUTDOWN      ----------------->
  SACK          ----------------->
                                                   <-----    Terminate
                                        SHUTDOWN will not be sent
                <----------------       SHUTDOWN-ACK
  SHUTDOWN-     ----------------->
  COMPLETE
  TEST DESCRIPTION:
  1. Attempt to terminate an association from endpoint A to endpoint B by 
     sending SHUTDOWN. 
     Record the message sequence using a signal emulator.
  2. Send Terminate primitive from ULP while in SHUTDOWN-RECEIVED state. 
  3. Check A: SHUTDOWN will not be sent.


NOTE

  None


REFERENCE

  RFC 4960
  9.2.  Shutdown of an Association
    An endpoint should limit the number of retransmissions of the
    SHUTDOWN chunk to the protocol parameter 'Association.Max.Retrans'.
    If this threshold is exceeded, the endpoint should destroy the TCB
    and MUST report the peer endpoint unreachable to the upper layer (and
    thus the association enters the CLOSED state).  The reception of any
    packet from its peer (i.e., as the peer sends all of its queued DATA
    chunks) should clear the endpoint's retransmission count and restart
    the T2-shutdown timer, giving its peer ample opportunity to transmit
    all of its queued DATA chunks that have not yet been sent.
    Upon reception of the SHUTDOWN, the peer endpoint shall
    -  enter the SHUTDOWN-RECEIVED state,
    -  stop accepting new data from its SCTP user, and
    -  verify, by checking the Cumulative TSN Ack field of the chunk,
       that all its outstanding DATA chunks have been received by the
       SHUTDOWN sender.
    Once an endpoint has reached the SHUTDOWN-RECEIVED state, it MUST NOT
    send a SHUTDOWN in response to a ULP request, and should discard
    subsequent SHUTDOWN chunks.